(Photo by:Sylvain Kalache)
Dockerが2013年に登場してから5年経過しました。今ではコンテナ技術の代表格として幅広く支持を集め、ソフトウェア開発・運用に欠かせないインフラの一部として定着しています。
この記事ではDockerがどのように導入されているのか事例を紹介します。
ポケモンGOの事例(Niantic社)
全世界で数百万人のプレイヤーを支える技術にDockerが利用されています。
世界的大ブームを巻き起こしたスマホゲームのポケモンGOのアプリケーションロジックはGoogle Cloud PlatformのContainer Engine上で動作しています。
Container EngineはオープンソースのKubernetesで構築されたDockerコンテナのオーケストレーションシステムです。
日本サービスの開始にあたってはDockerコンテナクラスターに数千ノードを追加できるようContainer Engineに変更を加えています。
参照情報
https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO-to-life-on-Google-Cloud.html
AbemaTVの事例(サイバーエージェント社)
インターネットテレビ局のAbemaTVでGoogle Cloud PlatformのContainer Engine上が利用されています。マイクロサービスとの親和性とスケーラビリティがDocker採用の理由に挙げられています。
各コンテナの出力は同じくGCPのStackdriver Loggingにまとめています。
Dockerの採用にはオーケストレーションツールのKubernetesをマネージドサービスであるContainer Engineで利用できるメリットも影響しているようです。
参照情報
https://ameblo.jp/principia-ca/entry-12164657818.html
Mapboxの事例
カスタムマップを設計し公開するプラットフォームを提供するMapboxではAmazon EC2 Container Service (ECS)を利用しています。
EC2からECSへ切り替える事でECの請求額を半減させることができ、EC2の煩雑さに伴う問題から解放され、コンテナと開発環境で実行環境を揃える事が出来るようになったとあります。
EC2に限らずサーバーを管理する事によって起こる幾つかの問題があります。例えば以下のような問題です。
- 本番と開発で実行環境の違いによる不具合
- セキュリティ、ネットワークの問題
- ストレージ障害
- ロギングとログファイルの扱い、等
Dockerはコンテナのためサーバーに依存した問題と切り離して管理ができます。そしてDockerの実行環境にAWSのフルマネージドサービスであるECSを使う事でサーバーに依存した問題から解放されます。
参照情報
https://www.mapbox.com/blog/switch-to-ecs/
Realtor.comの事例
Realtor.comは全米リアルター協会(NAR)の不動産物件及び情報の包括的なデータベースを扱っています。NARは住宅や商業物件取引業者の会員から構成されたアメリカ最大の業界団体です。
オンプレミスでの運営をAWSに移行し、AWSの他サービスと合わせてECSを利用しています。
「ECS は同社がクラウドインフラストラクチャの使用率を高めながら、よりすばやくコードをデプロイすることをサポートしています」とあります。
具体的にどの用途でECSを利用しているのか明記されていないのですがEC2を利用しているので、その実行環境の代替えとしてDockerが利用されているかも知れません。
参照情報
https://aws.amazon.com/jp/solutions/case-studies/realtor-com/
BBC Newsの事例
BBC Newsは8,500人以上を雇用し28か国以上で毎日ニュースを8万記事以上も配信しています。
既存のCI環境をDockerコンテナに置き換える事でCIの実行時間を60%以上短縮する事が出来ました。
スケジューリングの30分と他の実行時間の30分が無くなり、シーケンシャルに実行されていたジョブが複数ジョブを並行して実行できるようになりました。この方法は他のBBCのグループでも採用されています。
Docker Hubの事例で紹介されているため、コンテナをDocker Hub上で管理しているようです。
参照情報
https://www.docker.com/customers/bbc-news-reduce-ci-job-time-over-60
Bunchballの事例
Bunchballはゲーミフィケーションで顧客のロイヤリティとエンゲージメントを高めるサービスをクラウドベースで提供しています。
アプリケーションの開発から運用開始まで三カ月かかっており、そのプロセスも上手く行く事ばかりではありませんでした。
Dockerコンテナを利用するマイクロサービスを活用したアーキテクチャに変更する事で1週間以内にアプリケーションをデプロイできるようになりました。依存関係がコンテナに収まっているためQAで本番と同じものをテストできるようになりました。
参照情報
https://www.docker.com/customers/bunchball-accelerates-app-deployment-3-months-1-week
オープングルーヴの事例
ソフトウェア開発チームは、お客様向け環境に合わせて CI 環境を構築しています。主な CI 環境として Jenkins と Docker コンテナで構築するパターンが多いです。
Docker 環境による CI 環境によるメリットとして、テスタビリティの向上、ビルド速度の改善、可用性の向上がありました。
デメリットとしてジョブのメンテナンスに Docker の知識が必要になったため Jenkins への依存度がとても高くなってしまいました。
(Photo by:Hamza Butt)
まとめ
Docker は実績について心配する事がないレベルで利用されています。開発環境や CI サーバーでは自社内で Docker コンテナの実行環境を構築する事が多いですが、本番運用においてはクラスター管理の特殊性・複雑性からか GCP の Container Engine や AWS の EC2 Container Service の利用が多いようです。
VirtualBox や VMWare のような仮想マシンの役割が GCP や AWS のクラウドプラットフォームに移り、その中で動作する Docker のような仮想化されたコンテナの需要が高まってきているのを感じます。
Dockerが使われている理由として多いのは、Dockerを利用した方が安くて速いケースです。コンテナ技術のスケーラビリティと可用性を引き出すアーキテクチャはクラウドプラットフォームが得意とする領域に合致しています。
Docker の実績を心配する前に、Docker に代表されるコンテナを活用していない自社は損をしているのでないか?
と心配をしなければならない状況になりつつあります。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments