ci implementation with kubernetes at liveperson by saar demri
TRANSCRIPT
CI Implementation with KubernetesLivePerson Case study
Saar Demri, LivePerson
WHO AM I?
https://il.linkedin.com/in/saardemri
https://www.facebook.com/saar.demri
@DemriSaar
Saar Demri CI-DevOps Team LeaderProduction – Cloud Group
WHO ARE WE - INTRO
WHO ARE WE - CUSTOMERS
More then 18,500 customers
WHO ARE WE - NUMBERS
24/7Dedicated Monitoring team
~1100Employees
2 Billions (3M peak)
Monthly Visits
27 MillionMonthly Engagements
>8000Servers
1.6 MillionsMetrics / Second
~160Micro Services
6Data Centers
JS
CI INFORMATION
1600Releases per year
160Micro Services
10KWeekly Builds
1400GitHub Repos
70CI Agents
3000TeamCity Configs
30Dev Teams
4WW Dev Areas
AGENDA
Current CI at Liveperson.
CI new flow integrating Docker and Kubernetes.
Benefits and what’s next.
1
2
3
LivePerson
CONTINUOUS INTEGRATION FLOW
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Moving to
Docker and Kebernetes
PREPERATION TO KUBERNETES
Install Docker client on all CI build agents (slaves)
Install Kubernetes CI cluster and dedicated Docker registry
Create base images (Tomcat, NodeJS, NGINX and more…)
1
2
3
Develop a dedicated inhouse kubernetes-maven-plugin4
Setup inhouse
LivePerson Docker base images
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
NODEJSTOMCATNGINX
CentOS
APPAPPAPP
io.fabric8:docker-maven-plugin
Develop inhouse
Maven Kubernetes Plugin
kubernetes-maven-plugin:replace
kubernetes-maven-plugin:uploadastag
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
CURRENT DEPLOYMENT PREPERATION NEW DEPLOYMENT PREPERATION
kubernetes-maven-plugin:deploy
kubernetes-maven-plugin:getservice
Get Node name and ports
Set env and trigger tests
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Developer
TeamCity CI Server Build Integrate
Scan
Unit TestGitHub Hosted Preparation for Deployment
DeploySystem Test
QA & Automation Regression setup
Self Service
Service Installation
Jenkins Active Choice Parameters plugin
Benefits?
Service isolation
Dev dependencies
Concurrent builds
Build/install once run multiple times
Server To service
What’s Next?
HUB
DEPLOYMENTS
AUTO-PROMOTION
AUTO-STAGING DELIVERY
THANK YOU