1 of 48

Continuous Delivery

Practices and real experiences

2 of 48

Hi!

I’m Eduardo Ferro

VP Platform Engineering Nextail

Available at:

@eferro

https://www.eferro.net

2

3 of 48

Agile & DevOps

What the data says

3

1

4 of 48

4

5 of 48

Accelerate: The Science of Lean Software and Devops (link) / DORA Report 2019 (link)

5

6 of 48

Accelerate: The Science of Lean Software and Devops (link) / DORA Report 2019 (link)

6

7 of 48

Accelerate: The Science of Lean Software and Devops (link) / DORA Report 2019 (link)

7

8 of 48

Myth

Velocity increase

Deployment Frequency

Stability/Availability decrease

8

9 of 48

Built-in Quality

9

10 of 48

10

11 of 48

“Firms with high-performing IT organizations were twice as likely to exceed their profitability, market share and productivity goals”

11

12 of 48

12

13 of 48

Built-in Quality

13

14 of 48

DORA Report 2019 (link)

14

15 of 48

DORA Report 2019 (link)

15

16 of 48

Agile & DevOps Works!!!

16

17 of 48

17

18 of 48

Should work, right?

18

2

19 of 48

According to Gartner 70% of the IT market is focusing on DevOps and another study found that 88% of organizations have adopted agile...

Chris Richardson

19

20 of 48

According to Gartner 70% of the IT market is focusing on DevOps and another study found that 88% of organizations have adopted agile, but only 26% of organizations have broadly adopted test automations.

Chris Richardson

20

21 of 48

21

22 of 48

We are agile, we use Scrum... We don't use any of the agile technical practices nor do we know what XP is.

22

23 of 48

23

24 of 48

24

25 of 48

Continuous Delivery

¿What? ¿How?

25

3

26 of 48

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments

https://www.continuousdelivery.com Jez Humble (link)

26

27 of 48

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users

https://www.continuousdelivery.com Jez Humble (link)

27

28 of 48

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.

https://www.continuousdelivery.com Jez Humble (link)

28

29 of 48

29

30 of 48

30

31 of 48

Continuous Delivery

  • Test automation
  • Deployment automation
  • Continuous Integration
  • Trunk based development
  • Loosely coupled architectures
  • Version control
  • Monitoring / Proactive Notifications

Accelerate: The Science of Lean Software and Devops (link) / DORA Report 2019 (link)

31

32 of 48

Test Automation

  • XP practice (TDD, Customer tests)
  • Unit test (fast), integration, acceptance
  • Other
    • End2end tests
    • Load tests
    • Test in production

32

33 of 48

Deployment automation

  • Automate deployment pipelines
  • Remove human errors
  • Deployment vs Releasing

33

34 of 48

Continuous Integration

  • XP practice
  • Trunk branch always prepared for deployment
  • Every dev merge to trunk every day
  • High confidence (TDD, Acceptance tests)
  • Automated build
  • It's not: using jenkins in Feature Branches

34

35 of 48

Trunk based development

  • No feature branches or shorter than one day
  • Small increments
  • Each increment deployed to production
  • Require
    • Feature flags
    • Parallel changes
    • Split in small increments (Agile skill)

https://trunkbaseddevelopment.com/ (link)

35

36 of 48

Loosely coupled architectures

  • Service oriented architecture
  • Bounded Context (DDD)
  • Hexagonal Architecture / Clean Architecture
  • Each service
    • Individual deployment
    • Can change autonomously

36

37 of 48

Versión Control

  • Code
  • Configuration
  • Infrastructure
  • Experiments

37

38 of 48

Monitoring and proactive notifications

  • Production system Feedback
  • Architecture validation (fitness functions)
  • Instrumentation / Observability

38

39 of 48

DORA Report 2019 (link)

39

40 of 48

40

41 of 48

Real Experiences

Agile & Devops

41

3

42 of 48

Nextail 2018-Now

  • Deployment frequency 1-3/day, cloud, SaaS
  • On our way to XP & DevOps
  • TDD (not always)
  • Pairing/Mob (>30%)
  • Collective ownership (Product/Code)
  • Trunk base development (not always)
  • Hexagonal architecture (for new services)
  • Splitting the monolith

42

43 of 48

Nextail 2018-Now

  • Continuous Integration: Partially (on the way)
  • Continuous Delivery: For all the services
  • Continuous Deployment: Not yet
  • Infrastructure as a Code: Terraform
  • Immutable infrastructure: Yes (aws: eks k8s)
  • Deployment patterns:
    • Canary releasing, Rolling Deploys

43

44 of 48

TheMotion 2015-2018

  • Deployment frequency 5-10/day, cloud, SaaS
  • XP & DevOps practices
  • TDD
  • Pairing/Mob (>70%)
  • Collective ownership (Product/Code)
  • Trunk base development
  • Hexagonal architecture
  • Microservices, Event driven architecture

44

45 of 48

TheMotion 2015-2018

  • Continuous Integration: For all the services
  • Continuous Delivery: For all the services
  • Continuous Deployment: Not for all services
  • Infrastructure as a Code: Ansible, Terraform
  • Immutable infrastructure: Yes (aws: ECS)
  • Deployment patterns:
    • Canary releasing, Rolling Deploys

45

46 of 48

Alea Soluciones 2012-2016

  • Deployment frequency 5-10/week, on-prem
  • XP & DevOps practices
  • TDD
  • Pairing/Mob (>70%)
  • Collective ownership (Product/Code)
  • Trunk base development
  • Hexagonal architecture
  • Service-oriented architecture

46

47 of 48

Alea Soluciones 2012-2016

  • Continuous Integration: For all the services
  • Continuous Delivery: For all the services
  • Continuous Deployment: Not for all services
  • Infrastructure as a Code: Puppet, Ansible
  • Immutable infrastructure: Partially (docker)
  • Deployment patterns:
    • Canary releasing, Zero downtime deployment

47

48 of 48

Thank You!

and now, let’s discuss

@eferro

https://www.eferro.net

48