ci/cd at verizon media using...

21
Information Classification: General CI/CD at Verizon Media using Screwdriver Jithin Emmanuel April 18, 2019

Upload: others

Post on 02-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

CI/CD at Verizon Media

using ScrewdriverJithin EmmanuelApril 18, 2019

Page 2: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

2

Jithin Emmanuel

Senior Engineering

ManagerPlatforms and Technology

Sunnyvale

Jithin Emmanuel is a Sr. Software

Development Manager for Developer Platform

Services at Verizon Media. Jithin leads the

product development and operations of

Screwdriver, which is a flagship CICD product

used at scale in Verizon Media.

Page 3: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

3

Overview

Page 4: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

4

Page 5: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

5

Stats

29k+Pipelines

30k+Daily builds

10+Programming

Languages

470+Hosts

5Build Clusters

4Versions

2011Established

Template

sFootprint HistoryUsage

Page 6: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

6

Daily Habit Integration

Secure Continuous Delivery

● Feature code checked into SCM

● Screwdriver Pull Request Workflow

● Pull Request merged

● Screwdriver Production Workflow

Page 7: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

7

Pipeline as Codejobs:

build:

requires: [~pr, ~commit]

image: node:10

steps:

- init: npm install

- test: npm test

publish:

requires: [build]

image: node:10

steps:

- publish: npm install

- deploy: ./deploy.sh

Page 8: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

8

Runs Anywhere

● Pluggable components enables

Screwdriver cluster admins to

choose what’s best

● Multiple build executors to choose

from

● Helm chart for easy setup in a

Kubernetes cluster

● Screwdriver in a box

Page 9: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

9

Containerized Builds

● Multiple build executors available to run your build

○ Enables build execution as Docker containers or Kubernetes

pods

● Strict build isolation via HyperContainer, a VM-based executor

Page 10: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

10

Architecture

Page 11: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

11

Features

Page 12: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

12

See Screwdriver in action

https://cd.screwdriver.cd

Page 13: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

13

Powerful Workflow

● Fan-in & fan-out jobs

● Detached workflows

● Easy rollback workflows

● Remote triggers

● Periodic jobs

● Execution constraints - freeze windows, blocked by, collapsed builds

https://cd.screwdriver.cd/pipelines/2313

https://cd.screwdriver.cd/pipelines/1

Page 14: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

14

Advanced

● Native support for mono-repos

○ https://cd.screwdriver.cd/pipelines/1837/events

● Branch Filtering enables feature branch workflows

○ https://cd.screwdriver.cd/pipelines/1838/events

● External config for orchestrating multiple pipelines

○ https://cd.screwdriver.cd/pipelines/1074/child-pipelines

● Pull request workflow

○ https://cd.screwdriver.cd/pipelines/2539/pulls

Page 15: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

15

Build Cache

● Provides native caching support for builds

● Simple yaml config to cache artifacts with varying scopes (pipeline, event, or

job-level)

https://cd.screwdriver.cd/pipelines/1773/events

Page 16: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

16

Build Analysis

● SonarQube integration for build analysis

● Microservice architecture enables additional build analysis tools

https://cd.screwdriver.cd/pipelines/777/builds/73879

Page 17: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

17

Templates & Commands

● Shared best practices.

● Abstracts build container and build steps.

● Opens up Screwdriver platform to subject matter experts

● Screwdriver at Verizon Media supports - Node.js, Golang, Android, iOS,

Python, Docker, Java, and more

https://cd.screwdriver.cd/templates

https://cd.screwdriver.cd/commands

Page 18: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

18

Build Metrics

● Detailed insights into your build pipeline

● Powerful UI

https://cd.screwdriver.cd/pipelines/1/metrics

Page 19: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

19

Links

● Homepage - https://screwdriver.cd

● User Guide - https://docs.screwdriver.cd

● Example cluster - https://cd.screwdriver.cd

● Contributing - https://docs.screwdriver.cd/about/contributing/index

● Slack - https://screwdriver-cd.slack.com

● Blog - https://blog.screwdriver.cd/

Page 20: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

20

Questions?

Page 21: CI/CD at Verizon Media using Screwdriverfiles.informatandm.com/uploads/2019/4/1405_Jithin_Emmanuel.pdf · Information Classification: General 5 Stats 29k+ Pipelines 30k+ Daily builds

Information Classification: General

Contact

Jithin EmmanuelSenior Engineering Manager

Platforms & Technology, Sunnyvale

[email protected]

https://www.linkedin.com/in/jithine