LIG での Docker 活用
LIGでのDocker活用
@frontainer
CTO Web Creative Group Leader
Frone-End Team Leader Front-End Engineer
林 優一
株式会社LIG - CTO (兼 Web制作グループ長)
AngularJS Japan User Group
フロントエンド開発・フロントエンドエンジニア育成を担当し デザイン分野からサーバーサイド分野まで幅広く対応。 AngularJSのコミュニティに所属し、ng-mtgやDevelopers Summitでスピーカーを務める。得意言語はJavaScript。
2015年6月にフロントエンドチームリーダー兼務のままCTO就任。
自社開発チームのエンジニアとしても活動。3月にng-japan登壇予定。
最近共著で本が出ました本にある通り専門分野はフロントエンドです
今日のテーマはDocker
LIGでDockerを使っているところ
Dockerを導入した理由
1. マイクロサービス化
小さなサービスを複数立ち上げ同じ設定はある程度使いまわしたい
2. ローカル開発環境の統一と整備
フロントエンドエンジニアでも簡単に環境を作りたいなるべく本番と同じ環境で動かしたい
3. なんか良さそう
AWSもGCPもどんどんサポートしてるし、単純に面白そう & やってみたかった
ローカル開発環境で活用
Route53 ELB
ECS
EC2 RDS
CloudWatchLogs
CodeDeploy
DockerHub
導入してみた結果と印象
1. 環境構築が早い
新規メンバー加入時の環境整備が早くなったDockerToolboxインストールしてコマンド叩けばOK
2. 変更に強い
サーバー環境の変化に強く、他エンジニアへの影響が少ないDB構造の変更やテストデータの共有がしやすくなった
3. パフォーマンスは低下しなかった
Dockerが挟まる分遅くなったりするのを懸念したが特に問題があるようでは今のところなさそう
Concurrency Level: 500Time taken for tests: 119.262 secondsComplete requests: 10000Failed requests: 0Total transferred: 87856040 bytesHTML transferred: 86090000 bytesRequests per second: 83.85 [#/sec] (mean)Time per request: 5963.123 [ms] (mean)Time per request: 11.926 [ms] (mean, across all concurrent requests)Transfer rate: 719.40 [Kbytes/sec] received
$ ab -n 10000 -c 500 https://poole-job.jp/ EC2t2.micro * 2
4. ログが困った
ログをどこにどう置くべきか悩んだDockerはCloudWatchLogsに対応したが、ECSではまだ
→ fluentdコンテナを立ててそこからCloudWatchLogsへ
5. DockerImage置き場に悩んだ
DockerImageをどこにどう置くべきか悩んだ 結局DockerHub + Githubを使うというお金で解決
→ AWSのContainerRegistryは東京リージョンまだ
6. 内部処理が見えにくい
メリットでありデメリット結局ちょいちょいDockerfileを見にいくことが
まだ課題はあるものの 導入して良かったと思える状態
T h a n k y o u@frontainer