Modern Continuous Delivery

deploy to production from commit #1

Peter Bittner

Developer
of people, companies and code

@peterbittner, django@bittner.it

Continuous Delivery

a set of practices and principles in software engineering
aimed at building, testing, and releasing software
safely, faster, more frequently, and in a sustainable way.

the goal is to put the release schedule
in the hands of the business, not in the hands of IT.

Modern?

Immutable infrastructure

Container orchestration

Version control + automation

Cloud-native applications

Choice or Lock-in?

1. Clean code

2. Deploy to production
from commit #1

There must be a better way!

Responsibility Layers

Application

Development

Deployment

Automation

Application

One environment!

12-factor app.

Build with features.

Compose in environments.

1

Development

Make it easy!

Standard practices.

No comprehensive instructions.

Simple & user-friendly!

3

Deployment

Make it beautiful!

Easy to explain.

Generate + seal your secrets,

or seal + commit your secrets.

2

Automation

Keep it simple!

What you would do manually.

Tell a story!

ASAP

4

ASAP!

as simple as possible

Deploy to production!

often + from commit #1

Iterate!

... and improve

Agile, please.

test-driven, pair-programming

Free your software

no secrets, no security holes

The only way to go fast
is to go well.

--- Robert C. Martin

Thank you!

for your precious time

Painless Software

Less pain, more fun.

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough
to break the rules.
Although practicality beats purity.

Pythonistas Oath

1

Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse
the temptation to guess.
There should be one-- only one --obvious way to do it.
Although that way may not be obvious
at first sight.

Pythonistas Oath

2

Now is better than never.
Although never is often better
than *right* now.
If the implementation is hard to explain,
it's a bad idea.
If the implementation is easy to explain,
it may be a good idea.

Pythonistas Oath

3

Continuous delivery is
a honking great idea.
If you deploy to production
from commit #1.

Let's do it! -- I start today.

Pythonistas Oath

4

Python

Modern Continuous Delivery

By Peter Bittner

Modern Continuous Delivery

Local development, pipelines, Kubernetes & OpenShift, platform vendor lock-in, automation. https://www.youtube.com/watch?v=MC30D_sVD6Y

  • 2,856