Google confidential | Do not distribute
Journey to Containerized ApplicationsGoogle Container Engine
Etsuji NakaiCloud Solutions Architect at Google2016/07/29 ver1.0
$ who am i
▪Etsuji NakaiCloud Solutions Architect at Google
Twitter @enakai00
What is Google Cloud Platform?
Google’s Vision
“to provide access to the world's information in one click.”
How?
Datacenter as a Computer
How?
Controlled by Distributed Software Technology
How?http://research.google.com/pubs/papers.html
What is Google Cloud Platform?
Opening up Computing Resource from Google’s Infrastructure
Global Network Infrastructure
▪ Edge Points of Presence– Entry points to the Google’s internal network infrastructure.– Being used to deliver Google’s service contents.
https://peering.google.com/#/infrastructure
Global Private Network on GCP
— instance-b.c.cloud-ace-demo.internal ping statistics —100 packets transmitted, 100 received, 0% packet loss, time 99001msrtt min/avg/max/mdev = 0.327/0.401/0.679/0.053 ms
Inter-zone latency example
https://cloud.google.com/compute/docs/networking
Cloud Load Balancer on GCPSingle global IP address distributes packets for ALL regions.
https://cloudplatform.googleblog.com/2015/09/Announcing-new-global-load-balancing-locations-and-new-Carrier-Interconnect-partner-Orange-Business-Services.html
Google Cloud Platform in a Nutshell
“Software that works easily, readily and automatically.”
Journey to Containerized Apps
More Insights, More Freedom▪ Understanding the engineering intensions, the intended use cases of the technology gives you a better control of the infrastructure.
http://research.google.com/pubs/pub43438.html http://research.google.com/pubs/pub44824.html
You don't have to build it yourself. However, you'd still better understand it.
Google’s Journey on Containerized Apps
http://queue.acm.org/detail.cfm?id=2898444
キーメッセージの抜粋
Japanese page
サーバーの境界を意識しないアプリケーションデプロイ
▪ コンテナの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つのコン
ピューティングリソース」として活用します。
▪ アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリットが得られま
す。
– 必要な機能を負荷に応じてオートスケールします。
– 機能単位でコンテナを入れ替えることにより、稼働中のアプリケーションの動的な機能変更が可能
になります。
コンテナホスト
コンテナホスト
コンテナホスト
・・・
複数ホストを束ねて「1つのコンピュータ」として活用
マイクロサービス化アプリケーション
Japanese page
▪ Nonetheless, the isolation and dependency minimization provided by containers have proved quite effective at Google, and the container has become the sole runnable entity supported by the Google infrastructure.
▪ Building management APIs around containers rather than machines shifts the "primary key" of the data center from machine to application.
– It relieves application developers and operations teams from worrying about specific details of machines and operating systems
– it provides the infrastructure team flexibility to roll out new hardware and upgrade operating systems with minimal impact on running applications and their developers
– it ties telemetry collected by the management system (e.g., metrics such as CPU and memory usage) to applications rather than machines.
⇒ It allows application developers to use the infrastructure as a single computer hiding hardware and operating systems.
Key Takeouts
Application Deployment without System Boundaries
▪ The container scheduler places containers across multiple hosts, like a process scheduler of the operating system.
▪ Splitting application into multiple containers based on functions gives additional flexibility.– Autoscaling not a whole application, but just a necessary component. – Specific functions can be replaced without disrupting the service.
ContainerHost
ContainerHost
ContainerHost ・・・
A single computer on top of a Kubernetes cluster
MicroserviceApplication
Combining Microservices with front/back-ends
Load Balancing
Compute Engine
Container Engine
Object Store
Cloud SQL
Cloud Datastore
Cloud Storage
RDB
NoSQL DB
Microservices
Common BackendServices
ExistingApplications
Global Network
Agile / Dynamic / Scalable parts of the
Application
Challenge
Share Your Best Practices!
▪ Architecture Design– How to migrate from existing architecture.
▪ Practical Knowledge– The devil lives in the detail, as always.
▪ Aligning the team toward DevOps– Need to remap existing people to a new set of roles.
Thank you!