狠狠撸

狠狠撸Share a Scribd company logo
顿辞肠办别谤について
自己紹介
Kodaといいます(はじめまして!)
OSSの情報共有サービス「Knowledge」を作ってます
「Web」「Cloud」に詳しいです
GitHubアイコン
Amazon ?Web ?Services(AWS)は米国時間12月21日、「Amazon ? EC2 ?Container ?
Registry(ECR)」の一般提供を開始したと発表した。このサービスを利用することで、同社
のクラウドプラットフォーム上における「Docker」コンテナイメージの保存や管理、配備を容
易にするための、完全マネージド型のDockerコンテナレジストリが提供される。
MicrosoftとDockerがWindows ?Server ?Containersを事前公開
Windows専用のソフトウェアをコンテナ内で実行することが可能になった。 Windows ?Server ?
2016 ?Technical ?Preview ?3 は,このテクノロジを最初にサポートするWindowsリリースだ。
Windows ?Server ?Containersは,Linuxのコンテナとほぼ同じ機能を,Windowsエコシステ
ムの環境で実現する。Dockerもまた,独自のテクニカルプレビューをリリースして,Windows
コンテナの管理機能を紹介している。
[速報]Google Container Engine発表。Dockerコンテナを実行しKubernetesで管理す
るクラウドサービス
Googleは11月4日(日本時間5日)、サンフランシスコでイベント「Google Cloud
Platform Live」を開催。Dockerコンテナ上でアプリケーションを実行し、それを
Kubernetesで管理するクラウドサービス、「Google Container Engine」(略称はGKE。
Google Compute Engineの略称GCEとかぶるためにGKEになったのだと思われます)を
発表しました。
レッドハット、DockerベースのPaaS基盤「OpenShift Enterprise ?3」を出荷
レッドハットは2015年7月22日、仮想マシンを使わずにDockerベースでPaaS型クラウドを
実現する基盤ソフト「OpenShift Enterprise ?3」を発表、同日出荷した。
激アツ!
既にどこでも使えます
本日の発表
Webのインフラに主流になりつつある「Docker」につい
て、私のDocker愛とともに紹介します
Dockerとは?
コンテナ型の仮想化技術
VMware ESXiやLinux KVMなどは「ハイパーバイザー型
の仮想化」
Dockerは「コンテナー型の仮想化」
何が嬉しいの?
インフラ操作がテキストファイルで書くので、インフラの構
成がコードのように管理される)
(Infrastructure as Code)
OSのプロセス/メモリを共有するので、各コンテナは大
きくリソースを使わない
やりたいことに絞ってコンテナを起動(1コンテナ1プロセス)
VM vs Docker(Dockerの良いところ)
VM Docker
イメージのサイズ 大きい(?GB) 小さい(?MB)
起動時間 時間がかかる 素早い
インフラ管理 管理しづらい コードで管理
顿辞肠办别谤について
Infrastructure as Code
インフラを手動で構築すると、作業ミスが発生
インフラを手動で変更する場合も作業ミスが多い
インフラAとインフラBの構成が変わってきていて、Aの変更
作業をBで実施しても、同じようにうごかない
Dockerでは、イメージの構築手順はDockerfileというテキ
ストで管理します(Gitで差分管理できます!)
半年前くらいに、VPSを変更したときを例に実際のメリットを紹介します
Dockerfile
# Dockerfile for Knowledge
FROM tomcat:jre8
# ==== dumb-init ====
ADD https://github.com/Yelp/dumb-init/releases/download/v1.0.0/dumb-
init_1.0.0_amd64 ?
/usr/local/bin/dumb-init
# ==== environment====
RUN rm -rf /usr/local/tomcat/webapps/ROOT ?
&& update-ca-certificates -f ?
&& chmod +x /usr/local/bin/dumb-init
# ==== add Knowledge ====
ADD https://github.com/support-
project/knowledge/releases/download/v1.1.0/knowledge.war ?
/usr/local/tomcat/webapps/ROOT.war
VOLUME [ "/root/.knowledge" ]
EXPOSE 8080
CMD [ "/usr/local/bin/dumb-init", "/usr/local/tomcat/bin/catalina.sh","run" ]
基本は「RUN」 から初めてLinuxのコマンド書いておけばOK
“Knowledge” 旧動作環境
Webサーバー
SSLの終端(https)
Database ライブラリ管理 Knowledge(Webアプリ)
Container Container Container Container
VM
“Knowledge” の現在の稼働環境
Webサーバー
SSLの終端(https)
Database ライブラリ管理 Knowledge(Webアプリ)
Container Container Container Container
VM
乗り換え手順
VPSでLinuxサーバーを準備
Dockerさえ動けば、ホストのOSは何でもOK
各VPSの「初期設定」でついてきたものをそのまま利用
VPSのUIでポチポチすれば数分後に準備完了
Dockerをインストール
各コンテナを起動(コード実行)
普通なら、Databaseをインストール&セットアップして、次はWebサーバーで、、、、、
とかなる作業が、自動になっているので簡単に構築できた
顿辞肠办别谤について
仮想化が無い環境
サーバーに直接データベースなどのアプリをインストー
ルしている場合、カジュアルにバージョンアップできない
Server
Host OS
Bins/Libs
DB1 App1
DBをバージョンアップしたら、後戻りできない。
また、Bins/LibsはDB,Appで共有されること
になるので、その依存により、
バージョンアップ出来ないこともある
VM
リソースが潤沢にあれば、
複数のバージョンを
起動できる
けっこう大変、かつ
リソースを使う
Server
Host OS
Hypervisor
GuestOS
Bins/Libs
DB1
GuestOS
Bins/Libs
DB1’
GuestOS
Bins/Libs
App1
DB1のVMイメージをコピーして、
DB1’の環境を作成して、
その環境でバージョンアップを試す。
Appに依存しているものは無いので、
バージョンアップの敷居は下がる。
Docker
Dockerでは、イメージの
リソースは非常に小さい
環境構築も高速
気軽にコンテナを
作成/削除
Server
Host OS
Docker
Bins/Libs
DB1 DB1’
Bins/Libs
App1
DB1’の環境を作成しても
この点線部分のリソースしか増えない
Database Knowledge(Webアプリ)
Container Container
Database
Container
バージョンアップ
今稼働しているもの
?
バージョンアップを気軽に
試せる
顿辞肠办别谤について
激アツ!
顿辞肠办别谤について

More Related Content

顿辞肠办别谤について