SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Jenkins X Hands-on
automated CI/CD solution
for modern cloud applications on Kubernetes
JBUG Korea
automated CI/CD solution
for modern cloud applications
on Kubernetes
Application Build & Deploy
as WAR
on WAS
** AS-IS **
Application Build & Deploy
as Container
on Kubernetes
** TO-BE **
Jenkins X
automated CI/CD for kubernetes
Hands-on Overview
● 데모 동영상 보시면서 각자 실습 진행해주시면 됩니다 !
● Step 1.Install Jx
○ https://jenkins-x.io/getting-started/install/
● Step 2. Create Cluster GKE
○ https://jenkins-x.io/demos/create_cluster_gke/
● Step 3. Create Cloud App - Spring Boot
○ http://jenkins-x.io/demos/create_spring/
Jenkins X
Jenkins + other apps
https://jenkins-x.io
helm, skaffold, nexus,
monocular etc
Jenkins: CI/CD pipeline solution
Nexus: artifact repository
Chartmuseum: Helm Chart repository
Monocular: Web UI for helm charts
Jenkins X
automated CI/CD for kubernetes
https://goo.gl/qSGeUw
Let’s start Hands-on
Hands-on Overview
● Step 1.Install Jx
○ https://jenkins-x.io/getting-started/install/
● Step 2. Create Cluster GKE
○ https://jenkins-x.io/demos/create_cluster_gke/
● Step 3. Create Cloud App - Spring Boot
○ http://jenkins-x.io/demos/create_spring/
Prerequisites
● Laptop
● Google Cloud Engine account
● github account
● Install git
● Install gcloud
○ https://cloud.google.com/sdk/
○ https://cloud.google.com/sdk/downloads#interactive
■ curl https://sdk.cloud.google.com | bash
■ exec -l $SHELL
■ gcloud init
● Install kubectl
https://dpzbhybb2pdcj.cloudfront.net/luksa/Figures/02fig04_alt.jpg
Step 1. Install Jx
● https://jenkins-x.io/getting-started/install/
Step 2. Create Cluster GKE
● https://console.cloud.google.com/
● 먼저 Google Cloud 에 가입 후 프로젝트를 생성 한다.
○ ex: jenkinsx-dev
● https://jenkins-x.io/commands/jx_create_cluster/
● https://jenkins-x.io/commands/jx_create_cluster_gke/
● https://jenkins-x.io/demos/create_cluster_gke/
$ jx create cluster gke --cluster-name myk8scluster
Step 2. Create Cluster GKE
$ jx create cluster gke --cluster-name myk8scluster
--default-admin-password admin123!
? Google Cloud Zone: asia-northeast1-a
? Google Cloud Machine Type: n1-standard-2
$ jx get build logs
$ jx get apps
● http://jenkins-x.io/demos/create_spring/
● http://jenkins-x.io/developing/browsing/
● How to create a new Spring Boot application with CI / CD and GitOps
Promotion
$ jx create spring -d web -d actuator
$ jx get build logs
$ jx get apps
Step 3. Create Cloud App
$ jx open --env staging
$ cd demo && jx create issue -t 'add a homepage'
$ git checkout -b wip
$ git add src
$ git commit -a -m 'add a homepage fixes #1'
$ git push origin wip
$ brew install hub
$ hub pull-request
Step 3. Create Cloud App
Step 3. Create Cloud App
$ jx env
dev
$ jx get build logs
$ jx get apps
$ jx promote --version 0.0.2 --env production --timeout 1h
$ jx get apps
$ jx env
$ jx open
Install Minikube
● https://kubernetes.io/docs/tasks/tools/install-minikube/
● Install Hypervisor => Hyperkit driver
○ https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver
● Install kubectl
○ https://kubernetes.io/docs/tasks/tools/install-kubectl/
● Install Minikube
○ https://github.com/kubernetes/minikube/releases
○ brew cask install minikube
○ minikube stop
eval $(minikube docker-env -u)
minikube delete
brew cask uninstall --force minikube
Hello Minikube
● https://kubernetes.io/docs/tutorials/hello-minikube/
○ 필요한 설치 가이드 이미 모두 있음
Create Cluster using Minikube
● https://jenkins-x.io/getting-started/create-cluster/#using-minikube-local
● jx create cluster minikube
● minikube dashboard
References
● Jenkins X: automated CI/CD for kubernetes https://goo.gl/qSGeUw
● Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes
https://jenkins.io/blog/2018/03/19/introducing-jenkins-x/
● James Strachan https://twitter.com/jstrachan
● https://github.com/jstrachan/jep/blob/jx/jep/400/README.adoc
● Jenkins X: Continuous Delivery for Kubernetes with James Strachan https://goo.gl/7jpaKh
● Jenkins X: Easy CI/CD for Kubernetes (Intermediate Skill Level) https://goo.gl/y589Qn
● Hypothesis driven development
https://www.thoughtworks.com/insights/blog/how-implement-hypothesis-driven-development
● Helm Charts https://helm.sh/
● https://docs.bitnami.com/kubernetes/get-started-kubernetes/#step-4-install-helm-and-tiller

Contenu connexe

Tendances

Tendances (20)

ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift Primer
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
 
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
 
Docker dev, test & production (afas)
Docker  dev, test & production (afas)Docker  dev, test & production (afas)
Docker dev, test & production (afas)
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-stepSetting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
 
Docker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore MeetupDocker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore Meetup
 
Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoin
 
CD NYC From Source Code to Production
CD NYC From Source Code to ProductionCD NYC From Source Code to Production
CD NYC From Source Code to Production
 
Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!
 
Development tools at Base
Development tools at BaseDevelopment tools at Base
Development tools at Base
 
Continuous integration in games development
Continuous integration in games developmentContinuous integration in games development
Continuous integration in games development
 
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CIBreaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
 
Unlimited Staging Environments on Kubernetes
Unlimited Staging Environments on KubernetesUnlimited Staging Environments on Kubernetes
Unlimited Staging Environments on Kubernetes
 
Next-gen DevOps engineering with Docker and Kubernetes by Antons Kranga
Next-gen DevOps engineering with Docker and Kubernetes by Antons KrangaNext-gen DevOps engineering with Docker and Kubernetes by Antons Kranga
Next-gen DevOps engineering with Docker and Kubernetes by Antons Kranga
 
November 15 cloud bees clusterhq meetup fli, flockerhub, and jenkins
November 15 cloud bees clusterhq meetup   fli, flockerhub, and jenkinsNovember 15 cloud bees clusterhq meetup   fli, flockerhub, and jenkins
November 15 cloud bees clusterhq meetup fli, flockerhub, and jenkins
 
Azure workshop
Azure workshopAzure workshop
Azure workshop
 

Similaire à Jenkins X Hands-on - automated CI/CD solution for cloud native applications on Kubernetes

Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with Jenkins
Michael Kröll
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Weaveworks
 

Similaire à Jenkins X Hands-on - automated CI/CD solution for cloud native applications on Kubernetes (20)

CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with Jenkins
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Jenkins x gitops
Jenkins x gitopsJenkins x gitops
Jenkins x gitops
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
 
Introduction to Jenkins X
Introduction to Jenkins XIntroduction to Jenkins X
Introduction to Jenkins X
 
DockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with Docker
 
Introduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guideIntroduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guide
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
 
node-webkit : Make a magic from your a desktop app to desktop app!
node-webkit : Make a magic from your a desktop app to desktop app!node-webkit : Make a magic from your a desktop app to desktop app!
node-webkit : Make a magic from your a desktop app to desktop app!
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Using Minikube for Node.js development
Using Minikube for Node.js developmentUsing Minikube for Node.js development
Using Minikube for Node.js development
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with Docker
 
OpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBossOpenShift State of the Union, brought to you by JBoss
OpenShift State of the Union, brought to you by JBoss
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 

Plus de Ted Won

JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
Ted Won
 

Plus de Ted Won (17)

Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
JBoss Modules Internal
JBoss Modules InternalJBoss Modules Internal
JBoss Modules Internal
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
JDG 7 & Spark Integration
JDG 7 & Spark IntegrationJDG 7 & Spark Integration
JDG 7 & Spark Integration
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Nara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewNara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick Review
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6th
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 

Dernier

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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

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
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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 ...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"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 ...
 

Jenkins X Hands-on - automated CI/CD solution for cloud native applications on Kubernetes

  • 1. Jenkins X Hands-on automated CI/CD solution for modern cloud applications on Kubernetes JBUG Korea
  • 2. automated CI/CD solution for modern cloud applications on Kubernetes
  • 3. Application Build & Deploy as WAR on WAS ** AS-IS **
  • 4. Application Build & Deploy as Container on Kubernetes ** TO-BE **
  • 5. Jenkins X automated CI/CD for kubernetes
  • 6. Hands-on Overview ● 데모 동영상 보시면서 각자 실습 진행해주시면 됩니다 ! ● Step 1.Install Jx ○ https://jenkins-x.io/getting-started/install/ ● Step 2. Create Cluster GKE ○ https://jenkins-x.io/demos/create_cluster_gke/ ● Step 3. Create Cloud App - Spring Boot ○ http://jenkins-x.io/demos/create_spring/
  • 8. Jenkins + other apps https://jenkins-x.io
  • 10. Jenkins: CI/CD pipeline solution Nexus: artifact repository Chartmuseum: Helm Chart repository Monocular: Web UI for helm charts
  • 11. Jenkins X automated CI/CD for kubernetes https://goo.gl/qSGeUw
  • 13. Hands-on Overview ● Step 1.Install Jx ○ https://jenkins-x.io/getting-started/install/ ● Step 2. Create Cluster GKE ○ https://jenkins-x.io/demos/create_cluster_gke/ ● Step 3. Create Cloud App - Spring Boot ○ http://jenkins-x.io/demos/create_spring/
  • 14. Prerequisites ● Laptop ● Google Cloud Engine account ● github account ● Install git ● Install gcloud ○ https://cloud.google.com/sdk/ ○ https://cloud.google.com/sdk/downloads#interactive ■ curl https://sdk.cloud.google.com | bash ■ exec -l $SHELL ■ gcloud init ● Install kubectl
  • 16. Step 1. Install Jx ● https://jenkins-x.io/getting-started/install/
  • 17. Step 2. Create Cluster GKE ● https://console.cloud.google.com/ ● 먼저 Google Cloud 에 가입 후 프로젝트를 생성 한다. ○ ex: jenkinsx-dev ● https://jenkins-x.io/commands/jx_create_cluster/ ● https://jenkins-x.io/commands/jx_create_cluster_gke/ ● https://jenkins-x.io/demos/create_cluster_gke/ $ jx create cluster gke --cluster-name myk8scluster
  • 18. Step 2. Create Cluster GKE $ jx create cluster gke --cluster-name myk8scluster --default-admin-password admin123! ? Google Cloud Zone: asia-northeast1-a ? Google Cloud Machine Type: n1-standard-2 $ jx get build logs $ jx get apps
  • 19. ● http://jenkins-x.io/demos/create_spring/ ● http://jenkins-x.io/developing/browsing/ ● How to create a new Spring Boot application with CI / CD and GitOps Promotion $ jx create spring -d web -d actuator $ jx get build logs $ jx get apps Step 3. Create Cloud App
  • 20. $ jx open --env staging $ cd demo && jx create issue -t 'add a homepage' $ git checkout -b wip $ git add src $ git commit -a -m 'add a homepage fixes #1' $ git push origin wip $ brew install hub $ hub pull-request Step 3. Create Cloud App
  • 21. Step 3. Create Cloud App $ jx env dev $ jx get build logs $ jx get apps $ jx promote --version 0.0.2 --env production --timeout 1h $ jx get apps $ jx env $ jx open
  • 22. Install Minikube ● https://kubernetes.io/docs/tasks/tools/install-minikube/ ● Install Hypervisor => Hyperkit driver ○ https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver ● Install kubectl ○ https://kubernetes.io/docs/tasks/tools/install-kubectl/ ● Install Minikube ○ https://github.com/kubernetes/minikube/releases ○ brew cask install minikube ○ minikube stop eval $(minikube docker-env -u) minikube delete brew cask uninstall --force minikube
  • 23. Hello Minikube ● https://kubernetes.io/docs/tutorials/hello-minikube/ ○ 필요한 설치 가이드 이미 모두 있음
  • 24. Create Cluster using Minikube ● https://jenkins-x.io/getting-started/create-cluster/#using-minikube-local ● jx create cluster minikube ● minikube dashboard
  • 25. References ● Jenkins X: automated CI/CD for kubernetes https://goo.gl/qSGeUw ● Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes https://jenkins.io/blog/2018/03/19/introducing-jenkins-x/ ● James Strachan https://twitter.com/jstrachan ● https://github.com/jstrachan/jep/blob/jx/jep/400/README.adoc ● Jenkins X: Continuous Delivery for Kubernetes with James Strachan https://goo.gl/7jpaKh ● Jenkins X: Easy CI/CD for Kubernetes (Intermediate Skill Level) https://goo.gl/y589Qn ● Hypothesis driven development https://www.thoughtworks.com/insights/blog/how-implement-hypothesis-driven-development ● Helm Charts https://helm.sh/ ● https://docs.bitnami.com/kubernetes/get-started-kubernetes/#step-4-install-helm-and-tiller