CD with Kubernetes: The Prequel @pritianka @pritianka - - PowerPoint PPT Presentation

cd with kubernetes the prequel
SMART_READER_LITE
LIVE PREVIEW

CD with Kubernetes: The Prequel @pritianka @pritianka - - PowerPoint PPT Presentation

CD with Kubernetes: The Prequel @pritianka @pritianka #velocityconf #velocityconf 1 Speaker Priyanka Sharma Director of Technical Evangelism - GitLab Board Member - Cloud Native Computing Foundation @pritianka @pritianka #velocityconf


slide-1
SLIDE 1 1

@pritianka #velocityconf @pritianka #velocityconf

CD with Kubernetes: The Prequel

slide-2
SLIDE 2 2

#velocityconf @pritianka

Speaker

Priyanka Sharma

Director of Technical Evangelism - GitLab Board Member - Cloud Native Computing Foundation @pritianka

slide-3
SLIDE 3 3

#velocityconf @pritianka

The Real Hero

Marin Jankovski (and his team) Engineering Manager, Delivery

@maxlazio

slide-4
SLIDE 4 4

#velocityconf @pritianka

Agenda

Cloud native development and accelerating cycle time is increasingly important to business survival. To succeed, engineering leaders must embrace CI/CD and be thoughtful of how to leverage new tech. This is GitLab’s story to moving a large scale production system to continuous delivery.

  • How we did it - legacy first
  • The value CD brought to GitLab
  • DevOps - achievement unlocked
  • The business imperative - cycle time compression
slide-5
SLIDE 5

Business survival depends upon a radically faster DevOps lifecycle which can only be enabled by shifting left

slide-6
SLIDE 6

Speeding Up Release Cycle Time is Critical to Business

What you initially thought the goal was What the initial optimal solution was Optimal solution moved to

Cycle time compression may be the most underestimated force in determining winners & losers in tech.

— Marc Andreessen

slide-7
SLIDE 7

How: Small, very small changes unlock velocity MVP MVF MVF MVF MVC MVC MVC MVC MVC MVC

slide-8
SLIDE 8

Release management at GitLab (2013-2018) 1. Monthly release on the 22nd 2. Rotating Release Manager role 3. Manual actions 4. Semi - automated

But our reality was different

slide-9
SLIDE 9 9

#velocityconf @pritianka

Agenda

Cloud native development and accelerating cycle time is increasingly important to business survival. To succeed, engineering leaders must embrace CI/CD and be thoughtful of how to leverage new tech. This is GitLab’s story to moving a large scale production system to continuous delivery.

  • How we did it - legacy first
  • The value CD brought to GitLab
  • DevOps - achievement unlocked
  • The business imperative - cycle time compression
slide-10
SLIDE 10 10

Release management at GitLab (2018)

  • July - Release management team formed
  • October - renamed to Delivery team with expanded mandate - Kubernetes migration

Let’s make releases easier!

slide-11
SLIDE 11 11

1. GitLab.com is a live system -> No downtime 2. GitLab still needs to release at the same cadence -> No delays 3. Migration to Kubernetes is a multi month project -> No time 4. Engineering organization ready for Continuous Delivery? -> ???

Our constraints

slide-12
SLIDE 12

#velocityconf @pritianka

What the delivery team spent time (2018)

slide-13
SLIDE 13 13

#velocityconf @pritianka

Tackling 80% of the pie

This would bring: 1. No release delays 2. Repeatable and faster deploys to enable no downtime 3. More time for our Kubernetes migration 4. More space to prepare the org for Continuous Delivery

The game plan

slide-14
SLIDE 14 14

@pritianka #velocityconf

GOVERNED

Develop and operate with confidence

EFFICIENT

Collaborate without waiting

VISIBLE

Real time view across the entire lifecycle

GitLab runs on GitLab

slide-15
SLIDE 15 15

@pritianka #velocityconf

GitLab runs on GitLab, uses Ansible, and does not yet use k8s for CD

slide-16
SLIDE 16 16

@pritianka #velocityconf

Before

slide-17
SLIDE 17 17

@pritianka #velocityconf

Good enough solution

slide-18
SLIDE 18 18

@pritianka #velocityconf

We’ve used a number of GitLab features: 1. GitLab CI scheduled pipelines with GitLab API to automate Deploys

a. Create branches b. Cherry-pick merge requests c. Create issues

2. GitLab project mirroring for CE and EE 3. GitLab CI for reducing manual RM work

a. Multi project pipelines b. Deployment c. Automated QA

4. GitLab Chatops to reduce context switching and do everything from Slack

a. All release publishing tasks are triggered through Chatops

Automation with existing tools

slide-19
SLIDE 19 19

@pritianka #velocityconf

Expanded pipeline

🔎

slide-20
SLIDE 20 20

#velocityconf @pritianka

Agenda

Cloud native development and accelerating cycle time is increasingly important to business survival. To succeed, engineering leaders must embrace CI/CD. This is GitLab’s story to moving a large scale production system to continuous delivery.

  • How we did it - legacy first
  • The value CD brought to GitLab
  • DevOps - achievement unlocked
  • The business imperative - cycle time compression
slide-21
SLIDE 21 21

@pritianka #velocityconf @pritianka #velocityconf

Commit to Canary in 2 hours

slide-22
SLIDE 22 22

@pritianka #velocityconf @pritianka #velocityconf

From weekly to daily deploys

slide-23
SLIDE 23 23

@pritianka #velocityconf @pritianka #velocityconf

All developers in on call rotation within 3 weeks

slide-24
SLIDE 24 24

#velocityconf @pritianka

Agenda

Cloud native development and accelerating cycle time is increasingly important to business survival. To succeed, engineering leaders must embrace CI/CD. This is GitLab’s story to moving a large scale production system to continuous delivery.

  • How we did it - legacy first
  • The value CD brought to GitLab
  • DevOps - achievement unlocked
  • The business imperative - cycle time compression
slide-25
SLIDE 25 25

#velocityconf @pritianka

What does the Release team spend their time in 2019?

slide-26
SLIDE 26 26

#velocityconf @pritianka

More frequent deploys

slide-27
SLIDE 27 27

@pritianka #velocityconf

Our culture shift

Quality is a priority No hot-patching unless p1 and s1 Every engineer is on the on-call rotation

slide-28
SLIDE 28

All aboard the k8s boat!

Next up

image: CC0: by: https://pixabay.com/en/users/kliempictures-3066210/ link:https://pixabay.com/en/container-container-ship-port-1611490/
slide-29
SLIDE 29

First service running in Kubernetes!

slide-30
SLIDE 30

#velocityconf @pritianka

Resources

  • Automated scheduled deployments design
  • Automated deployments process
  • Automated deployment transition
  • Report from GitLab 10.4 release
  • Kubernetes work

○ Kubernetes configuration decisions ○ Container Registry production readiness review ○ Container Registry work epic

slide-31
SLIDE 31

#velocityconf @pritianka

Rate today’s session!

slide-32
SLIDE 32 32

#velocityconf @pritianka

Thank you!

Priyanka Sharma

Director of Technical Evangelism - GitLab Board Member - Cloud Native Computing Foundation @pritianka

slide-33
SLIDE 33 33

@pritianka #velocityconf

GitLab is the first single application for the entire DevOps lifecycle

Manage Plan Create Verify Package Secure Release Configure Monitor Defend

Since 2016 Since 2011 Since 2011 Since 2012 Since 2016 Since 2017 Since 2016 Since 2018 Since 2016 Coming soon: Cycle Analytics DevOps Score Audit Management Authentication and Authorization Coming soon: Code Analytics Workflow Policies Kanban Boards Project Management Agile Portfolio Management Service Desk Coming soon: Value Stream Management Requirements Management Quality Management Source Code Management Code Review Wiki Snippets Web IDE Coming soon: Design Management Live Coding Continuous Integration (CI) Code Quality Performance Testing Coming soon: System Testing Usability Testing Accessibility Testing Compatibility Testing Container Registry Maven Repository NPM Registry Coming soon: Rubygem Registry Linux Package Registry Helm Chart Registry Dependency Proxy SAST DAST Dependency Scanning Container Scanning License Management Coming soon: Secret Detection IAST RASP Continuous Delivery (CD) Release Orchestration Pages Review Apps Incremental Rollout Feature Flags Coming soon: Release Governance Auto DevOps Kubernetes Configuration ChatOps Serverless Coming soon: PaaS Chaos Engineering Runbook Configuration Cluster Cost Optimization Metrics Logging Cluster Monitoring Tracing Error Tracking Coming soon: Synthetic Monitoring Incident Management Status Page Runtime Application Self Protection Web Application Firewall Threat Detection Behavior Analytics Vulnerability Management Data Loss Prevention Container Network Security
slide-34
SLIDE 34 34

@pritianka #velocityconf

15X

faster builds

Ticketmaster migrated from Jenkins to GitLab to speed up build time.

Public Case Study

slide-35
SLIDE 35 35

@pritianka #velocityconf

120X

Increased QA efficiency

Paessler AG automated QA tasks down from 1 hour to 30 seconds.

Public Case Study

slide-36
SLIDE 36 36

@pritianka #velocityconf

26X

faster release cycles

SVN was a blocker to adopting DevOps. Axway implemented GitLab and went from yearly to biweekly deployments.

Public Case Study

OKAY for now - replace with Goldman Sachs when we can