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 2
The Real Hero Marin Jankovski (and his team) Engineering Manager, Delivery @maxlazio @pritianka #velocityconf 3
Cloud native development and accelerating cycle time is increasingly important to business survival. Agenda 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. ● The business imperative - cycle time compression ● How we did it - legacy first ● The value CD brought to GitLab ● DevOps - achievement unlocked @pritianka #velocityconf 4
Business survival depends upon a radically faster DevOps lifecycle which can only be enabled by shifting left
Speeding Up Release Cycle Time is Critical to Business Cycle time compression may be What you initially the most underestimated force in thought the goal was determining winners & losers in tech . What the — Marc Andreessen initial optimal solution was Optimal solution moved to
How: Small, very small changes unlock velocity MVC MVF MVC MVC MVP MVF MVF MVC MVC MVC
But our reality was different Release management at GitLab (2013-2018) 1. Monthly release on the 22nd 2. Rotating Release Manager role 3. Manual actions 4. Semi - automated
Cloud native development and accelerating cycle time is increasingly important to business survival. Agenda 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. ● The business imperative - cycle time compression ● How we did it - legacy first ● The value CD brought to GitLab ● DevOps - achievement unlocked @pritianka #velocityconf 9
Let’s make releases easier! Release management at GitLab (2018) July - Release management team formed ● October - renamed to Delivery team with expanded mandate - Kubernetes migration ● 10
Our constraints 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? -> ??? 11
What the delivery team spent time (2018) @pritianka #velocityconf
The game plan 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 @pritianka #velocityconf 13
GitLab runs on GitLab VISIBLE EFFICIENT GOVERNED Develop and operate Real time view across Collaborate with confidence the entire lifecycle without waiting @pritianka #velocityconf 14
GitLab runs on GitLab, uses Ansible, and does not yet use k8s for CD @pritianka #velocityconf 15
Before @pritianka #velocityconf 16
Good enough solution @pritianka #velocityconf 17
Automation with existing tools 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 @pritianka #velocityconf 18
Expanded pipeline 🔎 @pritianka #velocityconf 19
Cloud native development and accelerating cycle time is increasingly important to business survival. Agenda To succeed, engineering leaders must embrace CI/CD. This is GitLab’s story to moving a large scale production system to continuous delivery. ● The business imperative - cycle time compression ● How we did it - legacy first ● The value CD brought to GitLab ● DevOps - achievement unlocked @pritianka #velocityconf 20
Commit to Canary in 2 hours @pritianka @pritianka #velocityconf #velocityconf 21
From weekly to daily deploys @pritianka @pritianka #velocityconf #velocityconf 22
All developers in on call rotation within 3 weeks @pritianka @pritianka #velocityconf #velocityconf 23
Cloud native development and accelerating cycle time is increasingly important to business survival. Agenda To succeed, engineering leaders must embrace CI/CD. This is GitLab’s story to moving a large scale production system to continuous delivery. ● The business imperative - cycle time compression ● How we did it - legacy first ● The value CD brought to GitLab ● DevOps - achievement unlocked @pritianka #velocityconf 24
What does the Release team spend their time in 2019? @pritianka #velocityconf 25
More frequent deploys @pritianka #velocityconf 26
Our culture shift Quality is a priority No hot-patching unless p1 and s1 Every engineer is on the on-call rotation @pritianka #velocityconf 27
Next up All aboard the k8s boat! image: CC0: by: https://pixabay.com/en/users/kliempictures-3066210/ link:https://pixabay.com/en/container-container-ship-port-1611490/
First service running in Kubernetes!
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 @pritianka #velocityconf
Rate today’s session! @pritianka #velocityconf
Thank you! Priyanka Sharma Director of Technical Evangelism - GitLab Board Member - Cloud Native Computing Foundation @pritianka @pritianka #velocityconf 32
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 Kanban Source Code Continuous Container SAST Continuous Auto DevOps Metrics Runtime Boards Management Integration (CI) Registry Delivery (CD) Application DevOps Score DAST Kubernetes Logging Self Protection Project Code Review Code Quality Maven Release Configuration Web Audit Management Repository Dependency Orchestration Cluster Application Management Wiki Performance Scanning ChatOps Monitoring Firewall Agile Portfolio Testing NPM Registry Pages Authentication Management Snippets Container Serverless Tracing Threat and Coming soon: Coming soon: Scanning Review Apps Detection Authorization Service Desk Web IDE Coming soon: Error Tracking System Testing Rubygem License Incremental Behavior Coming soon: Coming soon: Coming soon: Registry Management Rollout PaaS Analytics Usability Coming soon: Code Analytics Value Stream Design Testing Linux Package Coming soon: Feature Flags Chaos Vulnerability Management Management Management Registry Engineering Synthetic Workflow Accessibility Secret Coming soon: Monitoring Data Loss Policies Requirements Live Coding Testing Helm Chart Detection Runbook Prevention Management Registry Release Configuration Incident Compatibility IAST Governance Management Container Quality Testing Dependency Cluster Cost Network Management Proxy RASP Optimization Status Page Security @pritianka #velocityconf 33
Ticketmaster migrated from Jenkins to GitLab to speed up build time. 15X faster builds Public Case Study @pritianka #velocityconf 34
Paessler AG automated QA tasks down from 1 hour to 30 seconds. 120X Increased QA efficiency Public Case Study @pritianka #velocityconf 35
SVN was a blocker to adopting DevOps. Axway implemented GitLab and went from yearly to biweekly deployments. 26X faster release cycles OKAY for now - replace with Goldman Sachs when we can Public Case Study @pritianka #velocityconf 36
Recommend
More recommend