Google confidential | Do not distribute
Journey to Containerized Applications
Google Container Engine
Etsuji Nakai
Cloud Solutions Architect at Google
2016/07/29 ver1.0
$ who am i
▪Etsuji Nakai
Cloud 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 99001ms
rtt 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 GCP
Single 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.
Container
Host
Container
Host
Container
Host
・・・
A single computer on top of a Kubernetes cluster
Microservice
Application
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
Backend
Services
Existing
Applications
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!

Journey to Containerized Application / Google Container Engine

  • 1.
    Google confidential |Do not distribute Journey to Containerized Applications Google Container Engine Etsuji Nakai Cloud Solutions Architect at Google 2016/07/29 ver1.0
  • 2.
    $ who ami ▪Etsuji Nakai Cloud Solutions Architect at Google Twitter @enakai00
  • 3.
    What is GoogleCloud Platform?
  • 4.
    Google’s Vision “to provideaccess to the world's information in one click.”
  • 5.
  • 6.
    How? Controlled by DistributedSoftware Technology
  • 7.
  • 8.
    What is GoogleCloud Platform? Opening up Computing Resource from Google’s Infrastructure
  • 9.
    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
  • 10.
    Global Private Networkon GCP — instance-b.c.cloud-ace-demo.internal ping statistics — 100 packets transmitted, 100 received, 0% packet loss, time 99001ms rtt min/avg/max/mdev = 0.327/0.401/0.679/0.053 ms Inter-zone latency example https://cloud.google.com/compute/docs/networking
  • 11.
    Cloud Load Balanceron GCP Single 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
  • 12.
    Google Cloud Platformin a Nutshell “Software that works easily, readily and automatically.”
  • 13.
  • 14.
    More Insights, MoreFreedom ▪ 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.
  • 15.
    Google’s Journey onContainerized Apps http://queue.acm.org/detail.cfm?id=2898444
  • 16.
  • 17.
    サーバーの境界を意識しないアプリケーションデプロイ ▪ コンテナの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つのコン ピューティングリソース」として活用します。 ▪ アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリットが得られま す。 –必要な機能を負荷に応じてオートスケールします。 – 機能単位でコンテナを入れ替えることにより、稼働中のアプリケーションの動的な機能変更が可能 になります。 コンテナ ホスト コンテナ ホスト コンテナ ホスト ・・・ 複数ホストを束ねて「1つのコンピュータ」として活用 マイクロサービス化 アプリケーション Japanese page
  • 18.
    ▪ Nonetheless, theisolation 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
  • 19.
    Application Deployment withoutSystem 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. Container Host Container Host Container Host ・・・ A single computer on top of a Kubernetes cluster Microservice Application
  • 20.
    Combining Microservices withfront/back-ends Load Balancing Compute Engine Container Engine Object Store Cloud SQL Cloud Datastore Cloud Storage RDB NoSQL DB Microservices Common Backend Services Existing Applications Global Network Agile / Dynamic / Scalable parts of the Application
  • 21.
  • 22.
    Share Your BestPractices! ▪ 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.
  • 23.