Professional Documents
Culture Documents
Introduction
IaaS
Servers, storage,
networking
Introduction
IaaS PaaS
Kubernetes
Engine
IaaS PaaS
Introduction to Anthos
Lab
IaaS
App App App
VMs OS OS OS
Hypervisor
Hardware
IaaS
App App App
OS OS OS
Hypervisor
Hardware
Web Middle-
IaaS server Database ware
OS OS OS
Hypervisor
Hardware
IaaS
App App App App App
OS OS OS OS OS
Hypervisor Hypervisor
Hardware Hardware
App Engine
Services
Data | Cache | Storage | DB | Network
App Engine
Services
Data | Cache | Storage | DB | Network
App Engine
P1 P2 P3
Services
Data | Cache | Storage | DB | Network
Containers
OS / Hardware
Containers
OS / Hardware
Containers
OS / Hardware
implements
container
interfaces
Containers
Host
Containers App App App
Host
Host
Containers
Host
Containers
MS2
MS1 MS3
MS2
MS1 MS3
Kubernetes
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!\n"
@app.route("/version")
def version():
return "Helloworld 1.0\n"
if __name__ == "__main__":
app.run(host='0.0.0.0')
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!\n"
@app.route("/version")
def version():
return "Helloworld 1.0\n"
if __name__ == "__main__":
app.run(host='0.0.0.0')
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!\n"
@app.route("/version")
def version():
return "Helloworld 1.0\n"
if __name__ == "__main__":
app.run(host='0.0.0.0')
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!\n"
@app.route("/version")
def version():
return "Helloworld 1.0\n"
if __name__ == "__main__":
app.run(host='0.0.0.0')
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!\n"
@app.route("/version")
def version():
return "Helloworld 1.0\n"
if __name__ == "__main__":
app.run(host='0.0.0.0')
requirements.txt
Flask==0.12
uwsgi==2.0.15
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Dockerfile
FROM ubuntu:18.10
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT ["python3", "app.py"]
Build and run
API
cluster
Kubernetes
API
cluster
GKE
cluster k1
Virtual Ethernet
port port
pod
container container
volume A volume B
Kubernetes
API
cluster k1
depl pod
API
cluster k1
depl pod
API
cluster k1
depl pod
API
fixed IP
cluster k1
depl service
pod
public IP
Network Load
API Balancer
fixed IP
cluster k1
depl service
pod
End users
public IP
Network Load
Balancer
cluster k1
depl service
pod
End users
fixed IP
cluster k1
depl service
pod
cluster k1
depl service
pod
API
cluster k1
depl service
API
cluster k1
depl service
API
cluster k1
depl service
API
cluster k1
depl service
cluster k1
depl service
cluster k1
depl service
cluster k1
depl service
cluster k1
depl service
$ curl 104.198.149.140
cluster k1
depl service
spec:
# ...
replicas: 5
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
# ...
Distributed systems
housed on-premises is
the traditional approach
but it lacks flexibility and
agility
Monolithic Application Containerized Microservices
Application
SERVICE B
Account
services
Front-end
Account
SERVICE C
services SERVICE A
Payment
Payment Front-end
services
User services User
Shipping SERVICE D
services
Shipping
services
Distributed systems
housed on-premises are
difficult to upgrade
Cloud
Console
Google
Kubernetes
Engine
GKE On-Prem is turn-key production-grade Kubernetes
Cloud
Console
Google GKE
Kubernetes On-Prem
Engine
Marketplace applications are available to all clusters
Cloud
Console
Google Cloud
Google GKE
Marketplace
Kubernetes On-Prem
Engine
Service Meshes make apps more secure & observable
Cloud
Console
Google Cloud
Google GKE
Marketplace
Kubernetes On-Prem
Engine
Stackdriver Logging and Monitoring watches all sides
Cloud
Console
Google Cloud
Google GKE
Marketplace
Kubernetes On-Prem
Engine
Stackdriver
Logging and Monitoring
Configuration Manager is the single source of truth
Cloud Policy
Store
Console Repository Policy
Google Cloud
Google GKE
Marketplace
Kubernetes On-Prem
Engine
Stackdriver
Logging and Monitoring
You can learn more about
Anthos from these links
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Compute Engine
Cluster nodes Amazon EC2 instances
instances
GKE, EKS and ECS have similar service models
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Compute Engine
Cluster nodes Amazon EC2 instances
instances
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Compute Engine
Cluster nodes Amazon EC2 instances
instances
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Compute Engine
Cluster nodes Amazon EC2 instances
instances
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Compute Engine
Cluster nodes Amazon EC2 instances
instances
Google Kubernetes
Amazon EKS Amazon ECS
Engine
Google Kubernetes
Amazon EKS Amazon ECS
Engine