Building Containers for 10000 Applications

Building Containers
for 10,000 Applications
Marty Pauley
ContainerCon Japan, 2016
0
Marty Pauley
• Technology Fellow
• Cloud Platforms
• Sys Admin / Ops
• Developer
• 10 years working in
Goldman Sachs
• 10 years living in Tokyo
マーティー・ポーリー
• テクノロジー・フェロー
• クラウド・プラットフォーム
• システム管理者/運用者
• 開発者
• 10年ゴールドマン・サック
スで働いています
• 10年東京に住んでいます
• でも、日本語が下手です
m(_ _)m
1
Goldman Sachs is a leading
global investment banking,
securities and investment
management firm that
provides a wide range of
financial services to a
substantial and diversified
client base that includes
corporations, financial
institutions, governments
and individuals.
ゴールドマン・サックスは
投資銀行業務、証券業務お
よび投資運用業務を中心に、
企業、金融機関、政府機関、
個人など多岐にわたるお客
様を対象に幅広い金融
サービスを提供している世
界有数の金融機関です。
2
Goldman Sachs
• More than 8000
engineers
• More than 100,000
servers
• Many thousands of
applications
• Many different apps
serving many different
businesses
ゴールドマン・サックス
• 8千人以上のエンジニア
• 10万台以上のサーバ
• 何千個ものアプリ
• 多くの異なるビジネスで
多くの異なるアプリが動
作している
3
Learn more at GS.com/Engineering
The term ‘engineer’ referenced in this section is neither a licensed engineer nor an individual offering engineering services to the general public under applicable law.
These materials (“Materials”) are confidential and for discussion purposes only. The Materials are based on information that we consider reliable, but Goldman Sachs does not represent that
it is accurate, complete and/or up to date, and it should not be relied on as such. The Materials do not constitute advice nor is Goldman Sachs recommending any action based upon them.
Opinions expressed may not be those of Goldman Sachs unless otherwise expressly noted. As a condition to Goldman Sachs presenting the Materials to you, you agree to treat the
Materials in a confidential manner and not disclose the contents thereof without the permission of Goldman Sachs. © Copyright 2014 The Goldman Sachs Group, Inc. All rights reserved.
4
私たちは何かを売ろうとしているわけではない
We're not trying to sell you anything
DockerについてContainerConで
説明する必要もない(ですよね☺)
No need to explain Docker at ContainerCon
• Not new technology
• OpenVZ
• LXC
• AppArmor
• 新しくないテクノロジー
• kernel namespaces
• control groups
• filesystem layers
• Not new technology
• OpenVZ
• LXC
• AppArmor
• 新しくないテクノロジー
• kernel namespaces
• control groups
• filesystem layers
• Not easy for developers
• 開発者にとって簡単じゃ
ない
• Devs don't want to worry • 開発者は運用のことを気
about Ops
にしたくない
It solves DevOps problems DevOpsの問題を解決する
• "It works on my
• 「僕のマシーンではちゃ
んと動いている」
machine"
• Devs don't want to
• 開発者はサーバを気に
worry about servers
したくない
• It's easy
• 簡単だね
10,000個のアプリケーションのための
コンテナの作り方
Building containers for
10,000 applications
まず、アプリケーションを1万ビルドする
First, build 10,000 applications
•
•
•
•
version control system
continuous integration
automated testing
artifact repository
•
•
•
•
バージョン管理システム
継続的インテグレーション
自動テスト
アーティファクトリポジトリ
$ vim Dockerfile
$ commit Dockerfile
$ exit
$ vim Dockerfile
$ commit Dockerfile
$ exit
大いなる力には大いなる責任が伴う
With great power comes great responsibility
• Not easy for developers
• 開発者にとって簡単じゃ
ない
• Devs don't want to worry • 開発者は運用のことを気
about Ops
にしたくない
• containers are opaque
• コンテナは不透明だ
• we can't easily see inside • 簡単に内側を見ることが
できない
「DevOps」=
開発担当者と運用担当者が連携して協力する
"DevOps" =
good collaboration between Devs and Ops
Dev
Ops
開発者
Model
Build
Deploy
運用者
• Devs provide metadata
• 開発者はメタデータを準
備する
• Ops build containers
• 運用者はコンテナをビル
ドする
• no direct access to
Dockerfile
• insist apps follow
standard conventions
• rebuild the container
regularly
• retire obsolete versions
• Dockerfileに直接アクセス
させない
• アプリが標準的な規格に
沿っていることを強制する
• コンテナを定期的にリビル
ドする
• 古いバージョンを引退さ
せる
•
•
•
•
version control system
continuous integration
automated testing
artifact repository
• build container
• automated testing
•
•
•
•
バージョン管理システム
継続的インテグレーション
自動テスト
アーティファクトリポジトリ
• コンテナをビルドする
• 自動テスト
Dev
Ops
開発者
Model
Build
Deploy
運用者
• model the application's
services when creating a
new application
• 新しいアプリケーションを
作るときそのアプリケー
ションのサービスをモデリ
ングする
• connect exposed ports to • 公開したポートを他のリ
other remote exposed
モートで公開したポートに
ports
つなぐ
• for existing applications,
automatically discover
the components
• 既存のアプリケーションに
対しては、コンポーネント
を自動識別する
$ ps
$ lsof
$ netstat
Dev
Ops
開発者
Model
Build
Deploy
運用者
• Some parts working now;
other parts under
development
• 動いているところもあるし、
まだ開発中のところもある
• A few good results so far, • これまでの結果は悪くは
ないが、まだ道のりは長い
but still a long way to go
• Hope to have more info
next year
• 来年はもっと詳細な話が
できるように頑張ってます
☺
ご清聴ありがとうございました
Thank you for your attention
34
Learn more at GS.com/Engineering
The term ‘engineer’ referenced in this section is neither a licensed engineer nor an individual offering engineering services to the general public under applicable law.
These materials (“Materials”) are confidential and for discussion purposes only. The Materials are based on information that we consider reliable, but Goldman Sachs does not represent that
it is accurate, complete and/or up to date, and it should not be relied on as such. The Materials do not constitute advice nor is Goldman Sachs recommending any action based upon them.
Opinions expressed may not be those of Goldman Sachs unless otherwise expressly noted. As a condition to Goldman Sachs presenting the Materials to you, you agree to treat the
Materials in a confidential manner and not disclose the contents thereof without the permission of Goldman Sachs. © Copyright 2014 The Goldman Sachs Group, Inc. All rights reserved.
35