41
CI Implementation with Kubernetes LivePerson Case study Saar Demri, LivePerson

CI Implementation with Kubernetes at LivePerson by Saar Demri

Embed Size (px)

Citation preview

Page 1: CI Implementation with Kubernetes at LivePerson by Saar Demri

CI Implementation with KubernetesLivePerson Case study

Saar Demri, LivePerson

Page 2: CI Implementation with Kubernetes at LivePerson by Saar Demri

WHO AM I?

https://il.linkedin.com/in/saardemri

https://www.facebook.com/saar.demri

@DemriSaar

Saar Demri CI-DevOps Team LeaderProduction – Cloud Group

[email protected]

Page 3: CI Implementation with Kubernetes at LivePerson by Saar Demri

WHO ARE WE - INTRO

Page 4: CI Implementation with Kubernetes at LivePerson by Saar Demri

WHO ARE WE - CUSTOMERS

More then 18,500 customers

Page 5: CI Implementation with Kubernetes at LivePerson by Saar Demri

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

Page 6: CI Implementation with Kubernetes at LivePerson by Saar Demri

CI INFORMATION

1600Releases per year

160Micro Services

10KWeekly Builds

1400GitHub Repos

70CI Agents

3000TeamCity Configs

30Dev Teams

4WW Dev Areas

Page 7: CI Implementation with Kubernetes at LivePerson by Saar Demri

AGENDA

Current CI at Liveperson.

CI new flow integrating Docker and Kubernetes.

Benefits and what’s next.

1

2

3

Page 8: CI Implementation with Kubernetes at LivePerson by Saar Demri

LivePerson

CONTINUOUS INTEGRATION FLOW

Page 9: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 10: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 11: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 12: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 13: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 14: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 15: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 16: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 17: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 18: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 19: CI Implementation with Kubernetes at LivePerson by Saar Demri

Moving to

Docker and Kebernetes

Page 20: CI Implementation with Kubernetes at LivePerson by Saar Demri

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

Page 21: CI Implementation with Kubernetes at LivePerson by Saar Demri

Setup inhouse

LivePerson Docker base images

Page 22: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 23: CI Implementation with Kubernetes at LivePerson by Saar Demri

NODEJSTOMCATNGINX

CentOS

APPAPPAPP

io.fabric8:docker-maven-plugin

Page 24: CI Implementation with Kubernetes at LivePerson by Saar Demri

Develop inhouse

Maven Kubernetes Plugin

Page 25: CI Implementation with Kubernetes at LivePerson by Saar Demri
Page 26: CI Implementation with Kubernetes at LivePerson by Saar Demri

kubernetes-maven-plugin:replace

Page 27: CI Implementation with Kubernetes at LivePerson by Saar Demri

kubernetes-maven-plugin:uploadastag

Page 28: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 29: CI Implementation with Kubernetes at LivePerson by Saar Demri

CURRENT DEPLOYMENT PREPERATION NEW DEPLOYMENT PREPERATION

Page 30: CI Implementation with Kubernetes at LivePerson by Saar Demri

kubernetes-maven-plugin:deploy

Page 31: CI Implementation with Kubernetes at LivePerson by Saar Demri

kubernetes-maven-plugin:getservice

Get Node name and ports

Set env and trigger tests

Page 32: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 33: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 34: CI Implementation with Kubernetes at LivePerson by Saar Demri

Developer

TeamCity CI Server Build Integrate

Scan

Unit TestGitHub Hosted Preparation for Deployment

DeploySystem Test

QA & Automation Regression setup

Page 35: CI Implementation with Kubernetes at LivePerson by Saar Demri

Self Service

Service Installation

Page 36: CI Implementation with Kubernetes at LivePerson by Saar Demri

Jenkins Active Choice Parameters plugin

Page 37: CI Implementation with Kubernetes at LivePerson by Saar Demri

Benefits?

Page 38: CI Implementation with Kubernetes at LivePerson by Saar Demri

Service isolation

Dev dependencies

Concurrent builds

Build/install once run multiple times

Server To service

Page 39: CI Implementation with Kubernetes at LivePerson by Saar Demri

What’s Next?

Page 40: CI Implementation with Kubernetes at LivePerson by Saar Demri

HUB

DEPLOYMENTS

AUTO-PROMOTION

AUTO-STAGING DELIVERY

Page 41: CI Implementation with Kubernetes at LivePerson by Saar Demri

THANK YOU