Modern Continuous Delivery Modern Continuous Delivery deploy to - - PowerPoint PPT Presentation

modern continuous delivery modern continuous delivery
SMART_READER_LITE
LIVE PREVIEW

Modern Continuous Delivery Modern Continuous Delivery deploy to - - PowerPoint PPT Presentation

Modern Continuous Delivery Modern Continuous Delivery deploy to production deploy to production from commit #1 from commit #1 Peter Bittner Peter Bittner Developer Developer of people, companies and code of people, companies and code


slide-1
SLIDE 1

Modern Continuous Delivery Modern Continuous Delivery

“ deploy to production

deploy to production from commit #1 from commit #1

slide-2
SLIDE 2

Peter Bittner Peter Bittner

Developer Developer

  • f people, companies and code
  • f people, companies and code

@peterbittner, django@bittner.it behave-django pyclean djangocms-maps ansible-role-software django-probes django-apptemplates codeship-yaml django-organice PythonTurtle painless/tox django-bootstrap-static

slide-3
SLIDE 3

Continuous Delivery 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.

Source: painless.software/continuous-delivery

slide-4
SLIDE 4

Continuous Delivery 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.

Source: painless.software/continuous-delivery

slide-5
SLIDE 5

Continuous Delivery 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.

Source: painless.software/continuous-delivery

?? ?? Continuous Continuous integration integration

slide-6
SLIDE 6

Continuous Delivery 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.

Source: painless.software/continuous-delivery

?? ?? Continuous Continuous integration integration ?? ?? Continuous Continuous deployment deployment

slide-7
SLIDE 7

Modern? Modern?

slide-8
SLIDE 8

Modern? Modern?

Immutable infrastructure Immutable infrastructure

slide-9
SLIDE 9

Modern? Modern?

Immutable infrastructure Immutable infrastructure Container orchestration Container orchestration

slide-10
SLIDE 10

Modern? Modern?

Immutable infrastructure Immutable infrastructure Container orchestration Container orchestration Version control + automation Version control + automation

slide-11
SLIDE 11

Modern? Modern?

Immutable infrastructure Immutable infrastructure Container orchestration Container orchestration Version control + automation Version control + automation Cloud-native applications Cloud-native applications

slide-12
SLIDE 12

Choice or Lock-in? Choice or Lock-in?

slide-13
SLIDE 13
  • 1. Clean code
  • 1. Clean code
  • 2. Deploy to production
  • 2. Deploy to production

from commit #1 from commit #1

There must be a better way! There must be a better way!

slide-14
SLIDE 14

Demo Demo

slide-15
SLIDE 15

Responsibility Layers Responsibility Layers

slide-16
SLIDE 16

Responsibility Layers Responsibility Layers

Application Application

slide-17
SLIDE 17

Responsibility Layers Responsibility Layers

Application Application Development Development

slide-18
SLIDE 18

Responsibility Layers Responsibility Layers

Application Application Development Development Deployment Deployment

slide-19
SLIDE 19

Responsibility Layers Responsibility Layers

Application Application Development Development Deployment Deployment Automation Automation

slide-20
SLIDE 20

Application Application

One environment! 12-factor app. Build with features. Compose in environments.

1

slide-21
SLIDE 21

Development Development

Make it easy! Standard practices. No comprehensive instructions. Simple & user-friendly!

3

slide-22
SLIDE 22

Deployment Deployment

Make it beautiful! Easy to explain. Generate + seal your secrets,

  • r seal + commit your secrets.

2

slide-23
SLIDE 23

Automation Automation

Keep it simple! What you would do manually. Tell a story! ASAP

4

slide-24
SLIDE 24

ASAP! ASAP!

as simple as possible as simple as possible

slide-25
SLIDE 25

Deploy to production! Deploy to production!

  • ften + from commit #1
  • ften + from commit #1
slide-26
SLIDE 26

Iterate! Iterate!

... and improve ... and improve

slide-27
SLIDE 27

Agile, please. Agile, please.

test-driven, pair-programming test-driven, pair-programming

slide-28
SLIDE 28

Free your software Free your software

no secrets, no security holes no secrets, no security holes

slide-29
SLIDE 29

“ The only way to go fast

The only way to go fast is to go well. is to go well.

  • -- Robert C. Martin

Source: , 2015 Technology and Friends, Episode 354

slide-30
SLIDE 30

Thank you! Thank you!

for your precious time for your precious time

Painless Software Painless Software

Less pain, more fun.

slide-31
SLIDE 31

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 Pythonistas Oath

1

slide-32
SLIDE 32

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 Pythonistas Oath

2

slide-33
SLIDE 33

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 Pythonistas Oath

3

slide-34
SLIDE 34

Continuous delivery is a honking great idea. If you deploy to production from commit #1. Let's do it! ­­ I start today.

Pythonistas Oath Pythonistas Oath

4

Python