chef meetupfiles.meetup.com/5851622/chef delivery.pdf · maggie walker • front-end developer on...

Post on 03-Jun-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Chef Meetup

• 6:30 – 7:00 – Meet, greet, and eat• 7:00 – 7:20 – Introductions and Welcome• 7:20 – 8:30 – Chef Delivery• 8:30 – 9:00 – Networking & Wrap-up

Introductions & Announcements

•  Hiring?•  Looking for work?•  Attend or speaking at a conference?•  Something we all should know?

Chef DeliveryNathen Harvey & Maggie Walker

Maggie Walker

•  Front-end Developer on the CIA team at Chef•  Maker of shiny UI on chef.io, downloads.chef.io, learn.chef.io, and docs.chef.io•  Past life as a Professional Hula Hoop Dance Teacher and Performer (yes, really)

•  @magwalk•  mwalker@chef.io

Nathen Harvey

•  VP, Community Development at Chef•  Co-host of the Food Fight Show Podcast•  Co-organizer of DevOpsDC meetup•  Occasional farmer – http://ei.chef.io•  Love eggs – http://eggs.chef.io

•  @nathenharvey•  nharvey@chef.io

Introducing Chef Delivery

Adopt a proven workflow to go more quickly from idea to shipped software

High velocity with safetyReliable and repeatable workflow

Visibility of who did what, and when

Shared Workflow

Delivery’s pipeline is shared across projects and teams

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

SubmitChange

Chef Provides a Proven Approach to DevOps

...

...

...

Targets/Workloads

Collaborative Dev

Chef Analytics

Production

Chef Server

Chef Server

Chef Supermarket

Assessment

Chef Compliance

� Search

^ Audit

Ǘ Discover

Deploy

Test

Chef Delivery!

Local Dev

ê Model

ƨ Build

¿ Test

Chef DK

Chef Client & Cookbooks

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SubmitChange

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SubmitChange

Does thiscode changelook good?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

SubmitChange

Does thiscode changelook good?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

ProvisionDeploySmoke

Functional

SubmitChange

Does thiscode changelook good?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

ProvisionDeploySmoke

Functional

SubmitChange

Does thiscode changelook good?

Do we wantto ship this?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

SubmitChange

Does thiscode changelook good?

Do we wantto ship this?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

SubmitChange

Does thiscode changelook good?

Do we wantto ship this?

Unified Pipeline Shape

The stages are fixed, and each stage has a fixed set of phases!

APPROVE DELIVER

LintSyntaxUnit

SecurityQualityPublish

LintSyntaxUnit

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

SubmitChange

Does thiscode changelook good?

Do we wantto ship this?

Delivery Phases

Verify and Build

Build

Acceptance, Union, Rehearsal, Delivered

Provision Deploy

Smoke Functional

Delivery Phases – Example Java Application

•  JUnit

Verify and Build

Build

•  Lint4J •  javac

•  Fortify •  FindBugs •  Maven•  Artifactory

Acceptance, Union, Rehearsal, Delivered

•  EC2•  Chef Provisioning

Provision Deploy

•  Load jar in Tomcat

•  Curl $URL; check for 200 OK

Smoke Functional

•  Selenium•  Cucumber•  Chef InSpec

Delivery Phases – Learn Chef

•  RSpec

Verify and Build

Build

•  skip •  skip

•  skip •  skip •  Create tarball

Acceptance, Union, Rehearsal, Delivered

•  Chef Provisioning•  S3 Buckets•  Setup Fastly

Provision Deploy

•  Upload to S3•  Flush Fastly

•  Curl $URL; check for 200 OK

Smoke Functional

•  linkchecker•  Notify Slack

Delivery Phases

Verify and Build

Build

Acceptance, Union, Rehearsal, Delivered

Provision Deploy

Smoke Functional

Shared Workflow

Delivery’s pipeline is shared across projects and teams

Visualization of ChangeDelivery’s dashboard summarizes all changes at a glance

Build Cookbook

•  Each project has a build cookbook !•  Build cookbooks can also be shared across projects•  Delivery project = build cookbook + project config + project code

├── recipes/ ├── lint.rb ├── syntax.rb └── unit.rb

Phase Execution

Delivery provides syntactic helpers for common tasks

log "Running unit tests"

repo = node['delivery_builder']['repo']

execute "run my junit tests" do command "mvn test" cwd repoend

top related