SlideShare a Scribd company logo
Container CI/CD with 

Google Cloud Platform
Minku Lee
CTO, Shakr
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
GitHub
DEVELOPMENT
GitHub
DEVELOPMENT
Travis CI
CONTINUOUS INTEGRATION
GitHub
DEVELOPMENT
Travis CI
CONTINUOUS INTEGRATION
Container 

Registry
IMAGE REGISTRY
GitHub
DEVELOPMENT
Travis CI
CONTINUOUS INTEGRATION
Container 

Registry
IMAGE REGISTRY
Compute Engine &
Container Engine
INFRASTRUCTURE
GitHub
Shakr - Container CI/CD with Google Cloud Platform
Pull Request
Travis CI
Travis CI
Travis CI
.travis.yml
sudo: required
services:
- docker
before_script:
- docker build -t videobox:$TRAVIS_BUILD_NUMBER .
- docker images
script:
- docker run videobox:$TRAVIS_BUILD_NUMBER bundle exec rubocop
- docker run videobox:$TRAVIS_BUILD_NUMBER bundle exec rspec
- openssl aes-256-cbc -K $encrypt_key -iv $encrypt_iv -in service_account.json.enc 
-out service_account.json -d
- docker login -e docker@sha.kr -u _json_key -p "$(cat service_account.json)" https://us.gcr.io
- docker tag videobox:$TRAVIS_BUILD_NUMBER gcr.io/shakr/videobox:$TRAVIS_BUILD_NUMBER
- docker push gcr.io/shakr/videobox:$TRAVIS_BUILD_NUMBER
notifications:
slack: "..."
Docker
sudo: required
services:
- docker
https://docs.travis-ci.com/user/docker
Docker
before_script:
- docker build -t videobox:$TRAVIS_BUILD_NUMBER .
- docker images
Dockerfile
Dockerfile
script:
- docker run videobox:$TRAVIS_BUILD_NUMBER bundle exec rubocop
- docker run videobox:$TRAVIS_BUILD_NUMBER bundle exec rspec
Container Registry
- docker login -e docker@sha.kr -u _json_key 

-p "$(cat service_account.json)" 

https://us.gcr.io
- docker tag videobox:$TRAVIS_BUILD_NUMBER 

gcr.io/shakr/videobox:$TRAVIS_BUILD_NUMBER
- docker push gcr.io/shakr/videobox:$TRAVIS_BUILD_NUMBER
https://cloud.google.com/container-registry/docs/advanced-authentication
Container Registry
Google Container Registry
Google Compute Engine 인스턴스에서 

Google Compute Engine 인스턴스에서 

US, EU, ASIA
Google Compute Engine 인스턴스에서 

US, EU, ASIA
Nearline GCS
gcloud CLI
$ gcloud docker pull gcr.io/google_appengine/nodejs
Using 'pull gcr.io/google_appengine/nodejs' for DOCKER_ARGS.
Using default tag: latest
latest: Pulling from google_appengine/nodejs
a3ed95caeb02: Pull complete
..
Digest: sha256:a7fcfb84b..
Status: Downloaded newer image for gcr.io/google_appengine/
nodejs:latest
gcloud CLI
$ docker login -e docker@sha.kr -u _json_key 

-p "$(cat service_account.json)" 

https://us.gcr.io
$ docker pull gcr.io/my_gcp_project/private_image:latest
https://cloud.google.com/container-registry/docs/advanced-authentication
Cloud Console
Google Container Engine
Google Container Engine
as a service
Google Container Engine
Container Scheduling Auto-healing Service Discovery
Config Management


Load Balancing
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: Videobox
labels:
name: videobox
spec:
containers:
- name: videobox
image: gcr.io/shakr/videobox:xxx
imagePullPolicy: IfNotPresent
env:
- name: RACK_ENV
value: production
restartPolicy: Always
dnsPolicy: default
rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: videobox
spec:
replicas: 3
selector:
app: videobox
template:
metadata:
name: videobox
labels:
app: videobox
spec:
# Pod spec here...
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Pods
Nodes
Replication Controllers
Persistent Volumes
Stateful Sets (Pet Set)
Cron Jobs
Secrets
Services
Volumes
Replica Sets
Pods
Nodes
Replication Controllers
Persistent Volumes
Stateful Sets (Pet Set)
Cron Jobs
Secrets
Services
Volumes
Replica Sets
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
GCS PersistentVolume
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
ReplicationController
videobox replicas=3
replica scale-up/
scale-down
k8s worker
worker
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
Pod
gcr.io/shakr/videobox:1
ReplicationController
videobox replicas=3
Pod
gcr.io/shakr/vault:1
ReplicationController
vault replicas=1
(Infrastructure as Code)
Git
(Infrastructure as Code)
Git
On-Premise
(Infrastructure as Code)
Git
On-Premise
PaaS PaaS
(Infrastructure as Code)
Git
On-Premise
PaaS PaaS
master/worker
Preemptible VM
PVM Node Pool (Beta)
Preemptible VM
PVM Node Pool (Beta)
Cluster Autoscaler (Beta)
Preemptible VM
PVM Node Pool (Beta)
Cluster Autoscaler (Beta)
(>50GB per pod)
Local SSD를 Pod
Google Compute Engine
with containers!
Container-Optimized OS (BETA)
Chromium OS Verified Boot
Active-passive
systemd
cloud-init
Google
Container-Optimized OS (BETA)
gcloud CLI
$ gcloud compute instances create gci-instance-test 
--image-project google-containers 
--image-family gci-stable 
--zone asia-northeast1-a 
--machine-type n1-standard-1
cloud-init
$ gcloud compute instances create gci-instance-test 
--image-project google-containers 
--image-family gci-stable 
--zone asia-northeast1-a 
--machine-type n1-standard-1 
--metadata-from-file user-data=cloud-init.yml
cloud-init.yml
#cloud-config
users:
- name: myservice
uid: 2000
write_files:
- path: /etc/systemd/system/myservice.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Start a simple docker container
[Service]
ExecStartPre=/usr/share/google/dockercfg_update.sh
ExecStart=/usr/bin/docker run --rm -u 2000 --net=host --name=myservice -e RACK_ENV=production -p 80:80 
gcr.io/project/myservice:latest
ExecStop=/usr/bin/docker stop myservice
ExecStopPost=/usr/bin/docker rm myservice
runcmd:
- systemctl daemon-reload
- systemctl enable myservice.service
- systemctl start myservice.service
systemd
VM
Preemptible VM, Regional Managed Instance Group 등
Kubernetes
GitHub
DEVELOPMENT
Travis CI
CONTINUOUS INTEGRATION
Container 

Registry
IMAGE REGISTRY
Compute Engine &
Container Engine
INFRASTRUCTURE
Google Cloud Platform
가장 앞선 컨테이너 기술을 빠르고 쉽게 적용 가능한 플랫폼
Thank you
We're looking for talented engineers!
Minku Lee minku@sha.kr

More Related Content

PDF
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
PDF
Introduction to Google Compute Engine
PDF
Introduction to Google Cloud Platform
PDF
Google Cloud Platform and Kubernetes
PDF
Google Compute Engine Starter Guide
PDF
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
PPTX
Google Cloud Platform, Compute Engine, and App Engine
PDF
Kubernetes best practices
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
Introduction to Google Compute Engine
Introduction to Google Cloud Platform
Google Cloud Platform and Kubernetes
Google Compute Engine Starter Guide
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
Google Cloud Platform, Compute Engine, and App Engine
Kubernetes best practices

What's hot (20)

PDF
Google Cloud Platform Special Training
PDF
My kubernetes toolkit
PPTX
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
PPTX
Serverless and Servicefull Applications - Where Microservices complements Ser...
PPTX
Google Compute Engine
PDF
What's new in Kubernetes
PDF
Autoscaling Kubernetes
PDF
Google compute engine - overview
PPT
Deploying and running Grails in the cloud
PDF
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
PPTX
Cloud computing by Google Cloud Platform - Presentation
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
PDF
Kubernetes - Sailing a Sea of Containers
PDF
Google Cloud Networking Deep Dive
PDF
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
PDF
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
Google Cloud Platform Special Training
My kubernetes toolkit
Cloud Native 오픈소스 서비스 소개 및 Serverless로 실제 게임 개발하기
Serverless and Servicefull Applications - Where Microservices complements Ser...
Google Compute Engine
What's new in Kubernetes
Autoscaling Kubernetes
Google compute engine - overview
Deploying and running Grails in the cloud
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
Cloud computing by Google Cloud Platform - Presentation
Scaling Docker Containers using Kubernetes and Azure Container Service
Kubernetes - Sailing a Sea of Containers
Google Cloud Networking Deep Dive
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Architecture - beyond a black box - Part 1
[OpenInfra Days Korea 2018] Day 2 - E4 - 딥다이브: immutable Kubernetes architecture
Ad

Viewers also liked (20)

PPTX
Understanding cloud with Google Cloud Platform
PDF
A Tour of Google Cloud Platform
PPTX
Google Cloud Platform
PDF
Google Cloud Platform Empowers TensorFlow and Machine Learning
PDF
Achieving CI/CD with Kubernetes
PDF
Waffle @ Youth Venture Summit 2011 - Minku Lee & Dongsung Kim
PDF
Waffle @ Startup Asia - Minku Lee
PPTX
Tectonic Summit 2016: It's Go Time
PPTX
How to Make Test Automation for Cloud-based System
PPTX
TIAD : Automate everything with Google Cloud
PDF
Adding Value in the Cloud with Performance Test
PDF
Cloud Computing System models for Distributed and cloud computing & Performan...
PDF
Meteor South Bay Meetup - Kubernetes & Google Container Engine
PDF
쉐이커의 AWS 이용 사례
PDF
Thinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
PPT
PPTX
Cloud computing 101 with amazon web service
PPTX
대용량 로그분석 Bigquery로 간단히 사용하기
PPTX
Google's LOON Project
PDF
Speeding up Development with Cloud Foundry
Understanding cloud with Google Cloud Platform
A Tour of Google Cloud Platform
Google Cloud Platform
Google Cloud Platform Empowers TensorFlow and Machine Learning
Achieving CI/CD with Kubernetes
Waffle @ Youth Venture Summit 2011 - Minku Lee & Dongsung Kim
Waffle @ Startup Asia - Minku Lee
Tectonic Summit 2016: It's Go Time
How to Make Test Automation for Cloud-based System
TIAD : Automate everything with Google Cloud
Adding Value in the Cloud with Performance Test
Cloud Computing System models for Distributed and cloud computing & Performan...
Meteor South Bay Meetup - Kubernetes & Google Container Engine
쉐이커의 AWS 이용 사례
Thinking Outside the Container: Deploying Standalone Apps to Cloud Foundry
Cloud computing 101 with amazon web service
대용량 로그분석 Bigquery로 간단히 사용하기
Google's LOON Project
Speeding up Development with Cloud Foundry
Ad

Similar to Shakr - Container CI/CD with Google Cloud Platform (20)

PPTX
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
PDF
State of Union - Containerz
PPTX
Getting Started With Docker on AWS
PDF
Running your dockerized application(s) on AWS Elastic Container Service
PDF
Docker, Kubernetes, and Google Cloud
PDF
Head First to Container&Kubernetes
PPTX
Docker and Microservice
PPTX
Managing Container Clusters in OpenStack Native Way
PPTX
Containers as a Service with Docker
PPTX
Docker Container As A Service - March 2016
ODP
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
PPTX
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
PDF
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
PPTX
What's New in Docker - February 2017
PDF
Francisco Javier Ramirez Urea - Hopla - OSL19
PDF
Docker + Microservices in Production
PPTX
An intro to Docker, Terraform, and Amazon ECS
PDF
Docker for developers
PDF
Building Your Docker Tech Stack
PDF
Building your production tech stack for docker container platform
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
State of Union - Containerz
Getting Started With Docker on AWS
Running your dockerized application(s) on AWS Elastic Container Service
Docker, Kubernetes, and Google Cloud
Head First to Container&Kubernetes
Docker and Microservice
Managing Container Clusters in OpenStack Native Way
Containers as a Service with Docker
Docker Container As A Service - March 2016
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
What's New in Docker - February 2017
Francisco Javier Ramirez Urea - Hopla - OSL19
Docker + Microservices in Production
An intro to Docker, Terraform, and Amazon ECS
Docker for developers
Building Your Docker Tech Stack
Building your production tech stack for docker container platform

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
Advanced IT Governance
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Spectral efficient network and resource selection model in 5G networks
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
Review of recent advances in non-invasive hemoglobin estimation
Network Security Unit 5.pdf for BCA BBA.
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Monthly Chronicles - July 2025
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Advanced IT Governance
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
Spectral efficient network and resource selection model in 5G networks

Shakr - Container CI/CD with Google Cloud Platform