Built on the same infrastructure that allows Google to return billions of search results in milliseconds, serve 6 billion hours of YouTube video per month and provide storage for 680 million Gmail users, Google Cloud Platform enables developers to build, test and deploy applications on Google’s highly-scalable and reliable infrastructure. Wether you use Google Deployment Manager, Ansible, Chef, Puppet, or Salt, you can now virtually automate everything!
17. Google and Containers
Everything at Google runs in a container.
Internal usage:
• Resource isolation and predictability
• Quality of Services
• batch vs. latency sensitive serving
• Overcommitment
• Resource Accounting
We start over 2 billion containers per week.
Image: "Container" glynlowe CC-BY-2.0 https://www.flickr.com/photos/glynlowe/10921733615
18. Let Me Contain That For You
open source version of Google’s container stack
github.com/google/lmctfy
• Replacement for LinuX Container
• Integrating with Docker
(https://github.com/dotcloud/docker/pull/4891)
• Separates policy from enforcement; buffers
users from cgroups APIs
• Programmable API and CLI
19. Declarative Over Imperative
Imperative:
"Start this container on that server"
Declarative:
"Run 100 copies of this container with a target
of <= 2 tasks down at any time"
Pros:
• Repeatable
• "Set it and forget it"
• Eventually consistent
• Easily updatable
Con:
• Tracing action/reaction can be difficult. "I
made a change, is it done?" Image: "Space Needle under construction, 1961" seattlemunicipalarchives CC-BY-2.0
http://www.flickr.com/photos/seattlemunicipalarchives/6847114249
22. Google Cloud Platform
Google Deployment Manager
GDM is an infrastructure management service that makes it simple
to create, deploy, and manage Google Cloud Platform resources, using static or
dynamic templates.
https://cloud.google.com/deployment-manager/overview
23. Google Cloud Platform
Google Deployment Manager Terminology
● Resource (ex: vm instance, sql instance)
● Configuration file (YAML)
● Templates : Python code or a Jinja template that defines a set of
resources
● Manifest : read-only fully-expanded list describing all resources for a
deployment.
● Deployment : collection of resources that are deployed and managed
together, using a configuration file
24. Google Cloud Platform
Google Deployment Manager Tutorial
https://cloud.google.com/deployment-manager/create-advanced-deployment
33. Google Cloud Platform
Master/Agent versus Standalone trade-offs
Master/Agent allows :
● Single holistic view of your deployments
● Fine-grained access controls
● Group or role-based privilege separation
● Change logs for audit review
● Centralized views and reports
● Inventory categorization
-> But it’s more complex harder to get started
35. Google Cloud Platform
The deployment of open-source Puppet
● Registering the Puppet repository with the package manager.
● Installing the Puppet master server and its dependencies.
● Configuring a firewall, if applicable.
● Starting the Puppet master and Puppet database.
● Setting service processes to start on boot.
● Making various changes required to properly operate Puppet, such as
installing a patch to fix a bug in a module, removing a deprecated
configuration, and avoiding red warnings.
37. Google confidential │ Do not distribute
● Single interface for
monitoring all of your
cloud resources
● Rich dashboards and
alerting capabilities
● Find and fix
performance problems
quickly
Cloud Monitoring
Data Center - For the past 14 years...
» Where does Google fit in? It's simple. For the past 14 years we have been building out the world's fastest, most powerful, highest quality cloud infrastructure on the planet. Google powers Google - some of the largest, highest availability software products ever created and now we are bringing that to you.
Data Center - Cloud Platform is built on the same infrastructure that powers Google.
» The Google Cloud Platform is us, productizing the same infrastructure, tools, processes, and systems that we used to build Google so that you can build your software and run your business in the same place. Enjoy the cost benefits. The quality. The reliability. And the performance. We're making it possible for you to use our infrastructure to power your business in an extremely scalable and efficient way.
Relentless focus on (re)defining what’s possible on the Web [ This slide builds ]:
+ How far we’ve come
+ Timeline | (select) Google infrastructure innovations - constantly pushing the boundaries for what’s possible
+ Spent billions of dollars making this the best web infrastructure in the world
[ click for build ]
+ For those of you that are technical … examples of how we’ve externalized our innovations (eg. MapReduce)
+ GCP: AppEngine, Compute Engine + Containers
+ Latest announcements at GCPLive 2.0 (esp. containers)
Predictability =
This is a lower level component that most users won't interact with directly.
In this model, management of Compute Engine resources and instance software is performed from one or more workstations or laptops within your organization. In its most basic form, changes are explicitly initiated and pushed from a workstation.
In a variant of the Standalone model, configuration information is pushed to a central repository, such as Google Cloud Storageor GitHub. Instances are set up with a simple scheduling tool such as cron to pull and apply the latest software and configuration.
In this model, management of Compute Engine resources and instance software is performed from one or more workstations or laptops within your organization. In its most basic form, changes are explicitly initiated and pushed from a workstation.
In a variant of the Standalone model, configuration information is pushed to a central repository, such as Google Cloud Storageor GitHub. Instances are set up with a simple scheduling tool such as cron to pull and apply the latest software and configuration.
In this model, management of Compute Engine resources and instance software is performed from one or more workstations or laptops within your organization. In its most basic form, changes are explicitly initiated and pushed from a workstation.
In a variant of the Standalone model, configuration information is pushed to a central repository, such as Google Cloud Storageor GitHub. Instances are set up with a simple scheduling tool such as cron to pull and apply the latest software and configuration.
In this model, administrators make configuration changes on the master, and the changes propagate to the managed instances to be applied locally. Managed instances report back to the master the success or failure of applying changes. Managed instances can receive software and configuration changes from the master in either a pull or push model.
Pull model: The more traditional of the two approaches is the pull model. Agent software installed on the managed instance polls the master periodically for new configurations. Changes deployed in this model are expected to be applied "soon" (typically within a half hour).
Push model: In this model, the master has the ability to push changes to agent nodes, generally using some form ofmiddleware such as a message queue. Changes deployed in this model are expected to be applied very quickly (within seconds or minutes).