SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Improving utilization and portability with
Containers and CI/CD on Google Cloud
Mattia Gandolfi - Google Cloud Customer Engineer
CODEMOTION MILAN - SPECIAL EDITION
10 – 11 NOVEMBER 2017
Confidential + Proprietary
Everything at Google runs in containers:
• Gmail, Web Search, Maps, ...
• MapReduce, batch, ...
• GFS, Colossus, ...
• Even Google’s Cloud Platform: our VMs
run in containers!
Confidential + Proprietary
Everything at Google runs in containers:
• Gmail, Web Search, Maps, ...
• MapReduce, batch, ...
• GFS, Colossus, ...
• Even Google’s Cloud Platform: our VMs
run in containers!
We launch over 2 billion containers per
week
Proprietary + Confidential
But why containers? What makes them so useful?
Confidential + Proprietary
Containers in a nutshell:
• Lightweight - Fewer layers between the
app and hardware. Efficient use of
resources.
• Scale - The lower overhead permits
smarter and faster scheduling.
• Speed - Quickly iterate on a build to
launch or make a change to a product.
Improvements to productivity.
VM
App
1
Bins/
Libs
Guest
OS
App
1.1
Bins/
Libs
Guest
OS
App
2
Bins/
Libs
Guest
OS
Hypervisor (Type 1)
Hardware
Confidential + Proprietary
Containers in a nutshell:
Container
• Portability - Run the container almost
anywhere.
• Deployment speed - Sealed deployable
application.
• Eases Development - Don’t need to install
MySQL, MongoDB, RabbitMQ, Hadoop
locally. Pull from a repo and run.
• Predictability - Pre-packaged nature of
the container helps to know what to
expect.
App
1
Bins/
Libs
Docker
HOST OS
Hardware
App
1.1
App
2.0
App
2.1
App
3.0
App
4.0
Bins/
Libs
Containers enable scale by allowing:
● Developers to design, build and
package applications as a set of
micro-services that can be combined
together into portable, reusable and
modular architectures.
● Operations to run and support
applications comprised of
self-contained, repeatable artefacts
that deploy and execute predictably
across multiple environments.
Confidential + Proprietary
Too many...containers…..
• Deployment
• Monitoring
• Updates
• Discovery
• Scaling, replication sets
• Isolation - Noisy Neighbours
This all needs to be controlled, at scale.
You can manage 1 container easily, but what
about thousands? At that scale you can easily
drown without the correct management.
Confidential + Proprietary
We are the Borg
Google’s own container cluster manager.
Manages many thousands of applications and machines.
Whether it's service jobs like
● Web front-ends and stateful servers
● Systems like Bigtable and Spanner,
● Batch frameworks like MapReduce and Millwheel,
We declare to Borg what we want, and the system works out
how to make it happen. At scale step by step instruction
becomes cumbersome.
Abstract that away and just tell the system what you need.
Confidential + Proprietary
Kubernetes Greek for “Helmsman”; also the root of the
words “governor” and “cybernetic”
● Manages container clusters
● Inspired and informed by Google’s
experiences and internal systems
● Supports multiple cloud and bare-metal
environments
● Supports multiple container runtimes
● 100% Open Source, written in Go
Manage applications, not machines
Confidential + Proprietary
Runs in many environments, including
“bare metal” and “your laptop”
The API and the implementation are
100% open
The whole system is modular and
replaceable
Build your apps on-prem, lift-and-shift
into cloud when you are ready
Kubernetes
Kubernetes has great momentum
50,000+ commits
in Kubernetes
1,200+ unique
contributors
Top 0.001% of all
GitHub Projects
5,000+ External
Projects Based
on Kubernetes
Companies
Contributing
Companies
Using
Competitive landscape: trends
Source: https://trends.google.it/trends/explore?q=kubernetes,Cloud%20Foundry,Docker%20swarm,Apache%20Mesos,Amazon%20Container%20Service
Kubernetes
Cloud Foundry
Docker Swarm
Apache Mesos
Amazon Container Service
Confidential + Proprietary
Architecture fundamentals
The master instance runs a number of services to
manage and coordinate the container cluster nodes
that constitute the cluster.
A node provides dedicated CPU and memory
resources to the container cluster.
Each node belongs to one container cluster.
Each node runs Docker, which is responsible for
downloading images and running containers
Pods act as the basic units of scheduling,
deployment, and horizontal scaling
Network
USER
Kubernatomy
Cntr
Bins/
Libs
Docker
HOST OS
Hardware
Cntr
Cntr
Cntr
Cntr
Cntr
Bins/
Libs
Cntr
Bins/
Libs
Docker
HOST OS
Hardware
Cntr
Cntr
Cntr
Cntr
Cntr
Bins/
Libs
Controller
Manager
Scheduler
MASTER
API SERVER
PODPODPODPOD
SERVICE SERVICE
Confidential + Proprietary
Architecture fundamentals
A Pod is the basic building block of
Kubernetes–the smallest and simplest unit
in the Kubernetes object model that you
create or deploy.
A service presents a stable endpoint.
A Kubernetes object is a “record of
intent”–once you create the object, the
Kubernetes system will constantly work to
ensure that object exists.
Kubernatomy
● The easiest way of getting started with Kubernetes
● Fully managed by Google
● Manages operational logistics like logging, monitoring, and health
● Let you focus on the interesting part
● Once connected, it’s just Kubernetes
Google Container Engine
# Create cluster
gcloud container clusters create hello-world --num-nodes 3
# Connect Kubernetes
gcloud container clusters get-credentials hello-world
# Use Kubernetes
kubectl get pods
Multi-zone clusters
● Deploy up to 5000 nodes and 60k pods per
cluster
● Multi-zone HA working out of the box (inside
the same region)
● Improves availability in event of Zone failure
● By default, scheduler will spread pods across
all available zones in the cluster
gcloud container clusters create cluster-name
--num-nodes=3 --zone us-central1-a
--additional-zones=us-central1-b, us-central1-f
Node and pod autoscaling
● Configure pod autoscaling in your Replica Set
● Configure node autoscaling in your cluster
● Minimum and maximum values per zone
kubectl autoscale rc nginx --min=1 --max=4
--cpu-percent=80
gcloud container clusters update cluster-name
--enable-autoscaling --min-nodes=1 --max-nodes=10
Always up-to-date
● One new release every three months
● 1-2 weeks after the release, GKE is updated to the new
release
● Our own Google Container-optimized VM Image based
on Chromium OS helps to make it possible
● One-click update to latest version
Seamless upgrades
Get notified and perform the upgrade directly from gcloud or UI:
$ gcloud container clusters list
NAME ZONE MASTER_VERSION ... NODE_VERSION NUM_NODES STATUS
fy-old-cls us-central1-b 1.5.2 ... 1.3.1 ** 1 RUNNING
fy-prod-cls us-central1-f 1.5.3 ... 1.4.9 * 3 RUNNING
* - There is an upgrade available for your cluster(s).
** - The current version of your cluster(s) will soon be out of support, please
upgrade.
A single, open, standard API
Container Engine API Kubernetes API
Served by Kubernetes API Server
process running on the
kubernetes-master node
RESTful API with client library written
in and for Go
Also accessible through the kubectl
command-line utility
Standard RESTful Google Cloud
Platform API
Supports the standard Google API
Client Libraries
Used by the Cloud SDK ‘gcloud
container’ command-line utility
Demo

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

My kubernetes toolkit
My kubernetes toolkitMy kubernetes toolkit
My kubernetes toolkit
 
Containerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesContainerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to Kubernetes
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
 
Paris Container Day 2016 : Kubernetes, votre assurance-vie pour le cloud (Go...
 Paris Container Day 2016 : Kubernetes, votre assurance-vie pour le cloud (Go... Paris Container Day 2016 : Kubernetes, votre assurance-vie pour le cloud (Go...
Paris Container Day 2016 : Kubernetes, votre assurance-vie pour le cloud (Go...
 
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASY
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASYKUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASY
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASY
 
Kubernetes - Starting with 1.2
Kubernetes  - Starting with 1.2Kubernetes  - Starting with 1.2
Kubernetes - Starting with 1.2
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
How to integrate Kubernetes in OpenStack: You need to know these project
How to integrate Kubernetes in OpenStack: You need to know these projectHow to integrate Kubernetes in OpenStack: You need to know these project
How to integrate Kubernetes in OpenStack: You need to know these project
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Load Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & KubernetesLoad Balancing in the Cloud using Nginx & Kubernetes
Load Balancing in the Cloud using Nginx & Kubernetes
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Getting started with Azure Container Service (AKS)
Getting started with Azure Container Service (AKS)Getting started with Azure Container Service (AKS)
Getting started with Azure Container Service (AKS)
 
KubeCon EU 2016: Multi-Tenant Kubernetes
KubeCon EU 2016: Multi-Tenant KubernetesKubeCon EU 2016: Multi-Tenant Kubernetes
KubeCon EU 2016: Multi-Tenant Kubernetes
 
Securing and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSecuring and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with Kyverno
 
Building Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and DockerBuilding Clustered Applications with Kubernetes and Docker
Building Clustered Applications with Kubernetes and Docker
 
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
 

Similar a Mattia Gandolfi - Improving utilization and portability with Containers and CI/CD on Google Cloud - Codemotion Milan 2017

Similar a Mattia Gandolfi - Improving utilization and portability with Containers and CI/CD on Google Cloud - Codemotion Milan 2017 (20)

Containerizing the Cloud with Kubernetes and Docker
Containerizing the Cloud with Kubernetes and DockerContainerizing the Cloud with Kubernetes and Docker
Containerizing the Cloud with Kubernetes and Docker
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you need
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Google container engine (GKE)
Google container engine (GKE)Google container engine (GKE)
Google container engine (GKE)
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Kubernetes Boulder - Kit Merker - Cloud Native Deployment
Kubernetes Boulder - Kit Merker - Cloud Native DeploymentKubernetes Boulder - Kit Merker - Cloud Native Deployment
Kubernetes Boulder - Kit Merker - Cloud Native Deployment
 
Kubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQKubernetes: https://youtu.be/KnjnQj-FvfQ
Kubernetes: https://youtu.be/KnjnQj-FvfQ
 
Session 4 GCCP.pptx
Session 4 GCCP.pptxSession 4 GCCP.pptx
Session 4 GCCP.pptx
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
 
Powerup & GCP | Workshop on Google Kubernetes Engine
Powerup & GCP | Workshop on Google Kubernetes EnginePowerup & GCP | Workshop on Google Kubernetes Engine
Powerup & GCP | Workshop on Google Kubernetes Engine
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
 
Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017
Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017
Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017
 
Kubernetes - An introduction
Kubernetes - An introductionKubernetes - An introduction
Kubernetes - An introduction
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)
 

Más de Codemotion

Más de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 

Mattia Gandolfi - Improving utilization and portability with Containers and CI/CD on Google Cloud - Codemotion Milan 2017

  • 1. Improving utilization and portability with Containers and CI/CD on Google Cloud Mattia Gandolfi - Google Cloud Customer Engineer CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017
  • 2.
  • 3.
  • 4. Confidential + Proprietary Everything at Google runs in containers: • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even Google’s Cloud Platform: our VMs run in containers!
  • 5. Confidential + Proprietary Everything at Google runs in containers: • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, ... • Even Google’s Cloud Platform: our VMs run in containers! We launch over 2 billion containers per week
  • 6. Proprietary + Confidential But why containers? What makes them so useful?
  • 7. Confidential + Proprietary Containers in a nutshell: • Lightweight - Fewer layers between the app and hardware. Efficient use of resources. • Scale - The lower overhead permits smarter and faster scheduling. • Speed - Quickly iterate on a build to launch or make a change to a product. Improvements to productivity. VM App 1 Bins/ Libs Guest OS App 1.1 Bins/ Libs Guest OS App 2 Bins/ Libs Guest OS Hypervisor (Type 1) Hardware
  • 8. Confidential + Proprietary Containers in a nutshell: Container • Portability - Run the container almost anywhere. • Deployment speed - Sealed deployable application. • Eases Development - Don’t need to install MySQL, MongoDB, RabbitMQ, Hadoop locally. Pull from a repo and run. • Predictability - Pre-packaged nature of the container helps to know what to expect. App 1 Bins/ Libs Docker HOST OS Hardware App 1.1 App 2.0 App 2.1 App 3.0 App 4.0 Bins/ Libs
  • 9. Containers enable scale by allowing: ● Developers to design, build and package applications as a set of micro-services that can be combined together into portable, reusable and modular architectures. ● Operations to run and support applications comprised of self-contained, repeatable artefacts that deploy and execute predictably across multiple environments.
  • 10. Confidential + Proprietary Too many...containers….. • Deployment • Monitoring • Updates • Discovery • Scaling, replication sets • Isolation - Noisy Neighbours This all needs to be controlled, at scale. You can manage 1 container easily, but what about thousands? At that scale you can easily drown without the correct management.
  • 11. Confidential + Proprietary We are the Borg Google’s own container cluster manager. Manages many thousands of applications and machines. Whether it's service jobs like ● Web front-ends and stateful servers ● Systems like Bigtable and Spanner, ● Batch frameworks like MapReduce and Millwheel, We declare to Borg what we want, and the system works out how to make it happen. At scale step by step instruction becomes cumbersome. Abstract that away and just tell the system what you need.
  • 12. Confidential + Proprietary Kubernetes Greek for “Helmsman”; also the root of the words “governor” and “cybernetic” ● Manages container clusters ● Inspired and informed by Google’s experiences and internal systems ● Supports multiple cloud and bare-metal environments ● Supports multiple container runtimes ● 100% Open Source, written in Go Manage applications, not machines
  • 13. Confidential + Proprietary Runs in many environments, including “bare metal” and “your laptop” The API and the implementation are 100% open The whole system is modular and replaceable Build your apps on-prem, lift-and-shift into cloud when you are ready Kubernetes
  • 14. Kubernetes has great momentum 50,000+ commits in Kubernetes 1,200+ unique contributors Top 0.001% of all GitHub Projects 5,000+ External Projects Based on Kubernetes Companies Contributing Companies Using
  • 15. Competitive landscape: trends Source: https://trends.google.it/trends/explore?q=kubernetes,Cloud%20Foundry,Docker%20swarm,Apache%20Mesos,Amazon%20Container%20Service Kubernetes Cloud Foundry Docker Swarm Apache Mesos Amazon Container Service
  • 16. Confidential + Proprietary Architecture fundamentals The master instance runs a number of services to manage and coordinate the container cluster nodes that constitute the cluster. A node provides dedicated CPU and memory resources to the container cluster. Each node belongs to one container cluster. Each node runs Docker, which is responsible for downloading images and running containers Pods act as the basic units of scheduling, deployment, and horizontal scaling Network USER Kubernatomy Cntr Bins/ Libs Docker HOST OS Hardware Cntr Cntr Cntr Cntr Cntr Bins/ Libs Cntr Bins/ Libs Docker HOST OS Hardware Cntr Cntr Cntr Cntr Cntr Bins/ Libs Controller Manager Scheduler MASTER API SERVER PODPODPODPOD SERVICE SERVICE
  • 17. Confidential + Proprietary Architecture fundamentals A Pod is the basic building block of Kubernetes–the smallest and simplest unit in the Kubernetes object model that you create or deploy. A service presents a stable endpoint. A Kubernetes object is a “record of intent”–once you create the object, the Kubernetes system will constantly work to ensure that object exists. Kubernatomy
  • 18. ● The easiest way of getting started with Kubernetes ● Fully managed by Google ● Manages operational logistics like logging, monitoring, and health ● Let you focus on the interesting part ● Once connected, it’s just Kubernetes Google Container Engine # Create cluster gcloud container clusters create hello-world --num-nodes 3 # Connect Kubernetes gcloud container clusters get-credentials hello-world # Use Kubernetes kubectl get pods
  • 19. Multi-zone clusters ● Deploy up to 5000 nodes and 60k pods per cluster ● Multi-zone HA working out of the box (inside the same region) ● Improves availability in event of Zone failure ● By default, scheduler will spread pods across all available zones in the cluster gcloud container clusters create cluster-name --num-nodes=3 --zone us-central1-a --additional-zones=us-central1-b, us-central1-f
  • 20. Node and pod autoscaling ● Configure pod autoscaling in your Replica Set ● Configure node autoscaling in your cluster ● Minimum and maximum values per zone kubectl autoscale rc nginx --min=1 --max=4 --cpu-percent=80 gcloud container clusters update cluster-name --enable-autoscaling --min-nodes=1 --max-nodes=10
  • 21. Always up-to-date ● One new release every three months ● 1-2 weeks after the release, GKE is updated to the new release ● Our own Google Container-optimized VM Image based on Chromium OS helps to make it possible ● One-click update to latest version
  • 22. Seamless upgrades Get notified and perform the upgrade directly from gcloud or UI: $ gcloud container clusters list NAME ZONE MASTER_VERSION ... NODE_VERSION NUM_NODES STATUS fy-old-cls us-central1-b 1.5.2 ... 1.3.1 ** 1 RUNNING fy-prod-cls us-central1-f 1.5.3 ... 1.4.9 * 3 RUNNING * - There is an upgrade available for your cluster(s). ** - The current version of your cluster(s) will soon be out of support, please upgrade.
  • 23. A single, open, standard API Container Engine API Kubernetes API Served by Kubernetes API Server process running on the kubernetes-master node RESTful API with client library written in and for Go Also accessible through the kubectl command-line utility Standard RESTful Google Cloud Platform API Supports the standard Google API Client Libraries Used by the Cloud SDK ‘gcloud container’ command-line utility
  • 24.
  • 25. Demo