T2T2’s diary

アウトプット

201215アウトプット 時間の使い方を調整する

日の振り返り】

用語をまとめるに時間がかかりすぎた。

やることが非常に多くなり時間の使い方を考えなければいけない。

何かを取り入れるため、何かを捨てなければいけない、または縮小しなくててはいけない。

ひとまず今日はここまでと区切り、明日また再開する。

 
◯ Dockerについて
コンテナの概念として2つがある
・アプリケーション・コンテナ(Docker,Kubernetes
 :1つのコンテナに1つのアプリという方針
・システム・コンテナ
 :1つのコンテナに全体ののアプリが集約されている方法
 
アプリケーション・コンテナの利点
・お互いが疎結合のため、1つに障害が起きても
 全体に影響を避けることが出来る
・スケールアップをする際にも、それぞれが独立しているので
 問題発見がわかりやすい
 
一般的なアプリケーションは複合的に設計されており、
複数の組み合わせから形成されているため、 Nginxを利用するにも、
システム・コンテナ(コンテナが1台)だと2つの起動する際に
設定が必要となる。
 
アプリケーション・コンテナの場合はそれぞれが独立して
Nginxを利用することが出来る。
 
ただし全てのコンテナを作っていくのは大変手間がかかります。
そのためDocker Compose(ドッカー・コンポーズ)というものを利用
 
Docker Composeはプロジェクトと呼ばれる単位で
アプリケーションを扱い、それぞれの設定を変えなくても
複数の環境の形成を用意にします。
 
Docker Composeとは複数のコンテナで動作する
Dockerアプリのツールの事をさします。
 
docker-composeコマンドを使用することで、
Dockerに「プロジェクト作成」の指示を与えます。
 
利点
・1つのホスト(ローカル)に複数の環境を動かす
・プロジェクト事にネットワーク環境を分離して形成
・コンテナのボリュームデータ(DBなどの保存されたデータ)を
 プロジェクト毎に保持
環境変数の設定を、次回のコンテナでも再利用する設定が可能
 
DockerComposeを利用するためには、YAMLファイルが必要
 
YAMLファイルとは?
GitHubでも公開されている、
 Dockerコンテナを用いるアプリの設計図のこと。
 Dockerがセットアップされていれば、読み込むだけで
 複数コンテナのアプリを実行できる。
 環境構築、EC2の設定からなにからを含めてYAMLファイル一つで
 作成できてしまいます。
 
そのためDockerを利用できる=YAMLファイルが理解できているDockerComposewo利用して、コンテナを活用出来るのことが目安です。
 
コンテナ開発に伴いDockerだけでなくKubernetesも存在感があります。 それぞれオーケストレーション用のツールとも呼ばれています。
 
ただしDocker単体での運用は非効率のため、Kubernetesが多く取り入れられているところがあります。
 
この2つは宣言型のオーケストレーションとも呼ばれています。
宣言型のオーケストレーションとは?
①アプリの実行前に、アプリの理想的な状態を
 設定ファイルで定義しておく
 
②オーケストレータ(ここではKubernetes)が、
 現在と理想的な状態を自動で比較をする
 
③状態に差分が出たら、自動的に調整を行う
 
例)
 複数のコンテナ(5個)が立ち上がっている状態が理想状態のアプリが
 あった場合、 0個(起動されていない状態)だと5個のコンテナを
 自動的に起動させる。 また2つのサーバーが何かしらの障害が発生
 した場合、自動的に2個のサーバーを立ち上げてくれる
 
先ほどシェアの割合でDockerよりもKubernetesの方が多いと
ありましたが、 Kubernetesに関しては、コンテナのアプリを実行させることが出来ること、 数百台以上のサーバー管理が出来るため、大規模開発に向いているためとなります