EuroPython 2019: Modern Continuous Delivery for Python Developers

EuroPython 2019: Modern Continuous Delivery for Python Developers

Deployment automation, cloud platforms, containerization, short iterations to develop and release software—we’ve progressed a lot. And finally it’s official: Kubernetes and OpenShift are the established platforms to help us do scaling and zero downtime deployments with just a few hundred lines of YAML. It’s a great time.

Can we finally put all our eggs into one basket? Identify the cloud platform that fits our needs, and jump on it? That could well backfire: Vendor lock-in is the new waterfall, it slows you down. In future you’ll want to jump over to the next better platform, in a matter of minutes. Not months.

This talk is about The Art of Writing deployment pipelines that will survive Kubernetes, OpenShift and the like. It’s for Python developers and Kubernetes enthusiasts of all levels – no domain specific knowledge required, all you need to understand will be explained. You’ll learn how to separate application-specific and deployment-specific configuration details, to maximize your freedom and avoid vendor lock-in.

Come see a demo of a Django project setup that covers everything from local development to automatic scaling, flexible enough to be deployed on any of your favorite container platforms. Take home a working, future-proof setup for your Python applications.

See the original presentation at https://slides.com/bittner/modern-continuous-delivery/

0de2b4614a6e1bde25d1b1c7ac040104?s=128

Peter Bittner

July 12, 2019
Tweet

Transcript

  1. 1.

    Modern Continuous Delivery Modern Continuous Delivery “ deploy to production

    deploy to production from commit #1 from commit #1
  2. 2.

    Peter Bittner Peter Bittner Developer Developer of people, companies and

    code of 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
  3. 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
  4. 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
  5. 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
  6. 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 deploym ent deploym ent
  7. 11.

    Modern? Modern? Immutable infrastructure Immutable infrastructure Container orchestration Container orchestration

    Version control + automation Version control + automation Cloud-native applications Cloud-native applications
  8. 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!
  9. 14.
  10. 22.

    Deployment Deployment Make it beautiful! Easy to explain. Generate +

    seal your secrets, or seal + commit your secrets. 2 2
  11. 28.
  12. 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
  13. 30.

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

    precious time Painless Software Painless Software Less pain, more fun.
  14. 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 1
  15. 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 2
  16. 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 3
  17. 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 4 Python