+ All Categories
Home > Documents > Continuous Delivery - pycon.it · Peter Bittner Developer (of people, companies, code) Co-founder...

Continuous Delivery - pycon.it · Peter Bittner Developer (of people, companies, code) Co-founder...

Date post: 27-Feb-2019
Category:
Upload: lythuy
View: 216 times
Download: 0 times
Share this document with a friend
20
Continuous Delivery Continuous Delivery starts at your starts at your Development Development Environment Environment PyCon 9, 2018 PyCon 9, 2018 live slides @ tinyurl.com/py9dev
Transcript

Continuous DeliveryContinuous Delivery starts at yourstarts at your

DevelopmentDevelopment EnvironmentEnvironment

PyCon 9, 2018PyCon 9, 2018live slides @ tinyurl.com/py9dev

Peter BittnerPeter BittnerDeveloper (of people, companies, code)Co-founder Painless Software@peterbittner, [email protected]

behave-django codeship-yaml sentrylogsdjango-apptemplates djangocms-maps

AgendaAgenda

1. Continuous Delivery Intro2. More Than Just Servers3. Demo: Setup Automation4. Demo: Infrastructure Automation

WhatWhatContinuousContinuous Delivery?Delivery?

isis JezHumble?

Continuous DeliveryContinuous Delivery

“ ... a set of practices and principles ...building, testing, and releasing software,

faster and more frequently

“ ... put release schedule in the hands ofthe business - not IT

Source: https://painless.software/continuous-delivery

“    .

Development ProcessDevelopment ProcessAutomation, pipelines & DevOps.

push codeopen PR/MR approve

build review

featureproduction

systembranch

server system

TDD, BDD, SeleniumTDD, BDD, SeleniumTests are fundamental for build pipeline.

No automated verification w/o testsNo safeguarding against regressionNo safety net against deployments that would take the site down

TDD good practice

BDD helpful for acceptance

Selenium / performance

!! ris

k !!

Envs & ContainersEnvs & ContainersContainers make process easier.

Feature parity across environmentsDevelop, Staging, Production identicalSimplify deployments, no builds on hostsSimplify rollbacks

Optional, but makes it easier

Container images built by pipeline

Push complete system

It's Agile (Ever Since)It's Agile (Ever Since)

Source: http://agilemanifesto.org/principles.html

“ Satisfy the customer!

Why Do It?Why Do It?

Move FasterMove Fasterrelease more oftenfaster ROIless dependencieseliminate frictions

Improve ConfidenceImprove Confidencehigh probability of successbroken things can be fixedfast / easilysustainable corrections"it's worth investing" (time + effort)

CD in a NutshellCD in a NutshellConcept Patterns Techniques

Pipeline CI, automatic feedback, continuousdeployment, feature toggles

Empower sponsor review apps, self-service deployment,zero-downtime, canary + b/g releases

Prove featurecompleteness

BDD, TDD, automatic tests (regression,performance, penetration)

Error prevention environment parity, locked-down envs,transient envs, automatic provisioning

Visibility version control, dashboards, monitoring

Speed fast tests, resilient / self-healing envs

MoreMore

ServersServers

thanthanjustjust

What Did We Do?What Did We Do?

1. deployment2. testing3. environments

“ Big picture

Fix things we first neglect

Make It BiggerMake It BiggerWe're neglecting dev infra

on-boarding developers takes daysno tool parity across dev PCscan't wipe PC when it behaves weirdeveryone asks you (how do I?)"projects" for switching technologies or introducing new tools

What's Wrong?What's Wrong?CD Pattern Anti-Pattern

Automate environment config Manual setup, "work of art"

Scripted setup Notes, documentation of setup

Single command builds Comprehensive instructions

Fix broken environments first Ignore errors, postpone fixes

TDD, automate tests Manual verification + fixes

Fully version controlled Parts not version controlled

Visibility, dashboards, sharing Geeky "secret configurations"

Solution (part #1)Solution (part #1)Automate your setup

configuration managementtreat your dev env like a containerresist manual changesversion controlbackup + restore your data

DemoDemoansible-softwareansible-software

github.com/painless-software/ansible-software

Solution (part #2)Solution (part #2)Automate your infrastructure

fully automatic setup: desktops & serversinfrastructure monitoring & mgmtcomplete tool chain: infra as codeautomatic backups (offsite)user data synchronization (offline)

DemoDemogroundcontrolgroundcontrol

github.com/painless-software/groundcontrol

Thank you!Thank you!for your precious timefor your precious time

Painless SoftwarePainless SoftwareLess pain, more fun.


Recommended