Continuous Delivery / Continuous Deployment How to automate your Deliveries. Bernhard Keprt

115  Download (0)

Full text

(1)

Continuous Delivery / Continuous Deployment


How to automate your Deliveries

Bernhard Keprt 24.02.2014

(2)

Continuous Delivery – willhaben.at 2

Bernhard Keprt


Software Developer

• Teamleader Software Development Job at willhaben.at

!

• Likes

• Agile Development

• Test Driven Development

• Software Architecture

• Hates

• Bugs

(3)

Continuous Delivery – willhaben.at 2

willhaben.at

• Austria’s largest public portal

• > 765 Mil. page impressions per month

• > 22,8 Mil. visits per month

• > 4,6 Mil. unique clients per month

• > 33,7% reach

• > 2,3 Mil. online adverts

!

!

• Great Place To Work

(4)

Continuous Delivery – willhaben.at 3

(5)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

(6)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

(7)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

(8)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

(9)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

(10)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

(11)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

Testing

(12)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

Testing

(13)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

Testing

Deployment

(14)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development

Code Freeze

Testing

Deployment

(15)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development Code Freeze Testing Deployment Tests Feature Live

(16)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development Code Freeze Testing Deployment Tests Feature Live

(17)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

Development Code Freeze Testing Deployment Tests Feature Live

(18)

Continuous Delivery – willhaben.at 3

(19)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

(20)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

(21)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

(22)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

PM

Dev Meetings

(23)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

PM

Dev Meetings

(24)

Continuous Delivery – willhaben.at 3

Common Feature Lifecycle

PM

Dev Meetings

QA

(25)

Continuous Delivery – willhaben.at 3

(26)

Continuous Delivery – willhaben.at 3

(27)

Continuous Delivery – willhaben.at 3

(28)

Continuous Delivery – willhaben.at 3

(29)

Continuous Delivery – willhaben.at 3

(30)

Continuous Delivery – willhaben.at 3

(31)

Continuous Delivery – willhaben.at 3

(32)

Continuous Delivery – willhaben.at 3

(33)

Continuous Delivery – willhaben.at 3

(34)

Continuous Delivery – willhaben.at 3

(35)

Continuous Delivery – willhaben.at 3

(36)

Continuous Delivery – willhaben.at 3

(37)

Continuous Delivery – willhaben.at 3

(38)

Continuous Delivery – willhaben.at 2

(39)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

(40)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

(41)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

(42)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

(43)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

(44)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

(45)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

(46)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

(47)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

• Every commit is tested

(48)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

• Every commit is tested

(49)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

• Every commit is tested

• Every environment is up to date in no time!

(50)

Continuous Delivery – willhaben.at 2

Benefits of CI/CD

• Fast feedback

• Improves Quality

• Finding a bug early lowers its costs

• Every commit is built

• Every commit is tested

• Every environment is up to date in no time!

(51)

Continuous Delivery – willhaben.at 2

Obstacles

• Technical

!

• Team

!

• Organization

!

• QA

!

• IT-OPs

!

• Hardware

(52)

Continuous Delivery – willhaben.at 2

Technical Obstacles

• Your software architecture is not ready

!

• Your start-up process is inadequate

!

• Your configuration is misplaced

!

• Your database / -connection is not useable for CD

!

(53)

Continuous Delivery – willhaben.at 2

Team Obstacles

• Your team is not using agile methods (waterfall)

!

• You don’t use sprints / SCRUM / Kanban

!

• Your team members don’t trust each other

!

• Someone in your team „owns“ code

!

(54)

Continuous Delivery – willhaben.at 2

Organizational Obstacles

• Team autonomy is a foreign word in your company

!

• Your company divides responsibilities rigorously

!

• Your organization misses courage

!

(55)

Continuous Delivery – willhaben.at 2

QA Obstacles

• Your QA uses manual testing only

!

(56)

Continuous Delivery – willhaben.at 2

IT-Operations Obstacles

• Your IT-OPs want to rule the (server-)world

!

(57)

Continuous Delivery – willhaben.at 2

Hardware Obstacles

• You don’t have the proper hardware

!

(58)

Continuous Delivery – willhaben.at 2

Which roles are affected by CD?

• Product Owner

• Product Manager / Project Manager

• Scrum Master • Developer • QA • IT-Operator • Customer

!

!

(59)

Continuous Delivery – willhaben.at 2

Product Owner / Product Manager

• Time to market increased

• Short feedback loop for features

• Smaller features means more control

• Feature-Pipeline will not be blocked

• Planning becomes more feature oriented

• Smaller planning iterations

• Less specification at a time

• => Specification on demand

• Immediate technical feedback

• Lower risk

• High PO satisfaction

(60)

Continuous Delivery – willhaben.at 2

Scrum Master

• Small sized, release-able features

!

• Higher sprint success rate

!

(61)

Continuous Delivery – willhaben.at 2

Developer

• Code for Testing vs. Code for Production

• Every Code is potentially deployed to production environment

• Test Driven Development

• More important than ever

• Fast Feedback is necessary

• from QA, PM

• Releasing features is routine

!

(62)

Continuous Delivery – willhaben.at 2

QA

• Testing is more focused

!

• Testing effort is reduced within a sprint

!

• High quality and even improving

!

• Test automation is a useful assistant

!

(63)

Continuous Delivery – willhaben.at 2

IT-Operator

• Standardized methods for deployment

!

• No manual effort necessary for a release

!

• Focus on stabilizing deployment process

!

(64)

Continuous Delivery – willhaben.at 2

(65)

Continuous Delivery – willhaben.at 2

(66)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

(67)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

(68)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

(69)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

(70)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

(71)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

(72)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

(73)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

• That’s not enough specification!

(74)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

• That’s not enough specification!

(75)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

• That’s not enough specification!

• Yeah… of course… „The bug is fixed now“…

(76)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

• That’s not enough specification!

• Yeah… of course… „The bug is fixed now“…

(77)

Continuous Delivery – willhaben.at 2

How can you tame the QA dragon?

• A lot of justified arguments:

• Developers produce bugs!

• Environments are not the same!

• What about cascaded bugs?

• You don’t have enough coverage!

• What if you forget about config?

• That’s not enough specification!

• Yeah… of course… „The bug is fixed now“…

• They do their job:

(78)

Continuous Delivery – willhaben.at 2

(79)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

(80)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

(81)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

(82)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

• Specification / Test Cases

(83)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

• Specification / Test Cases

• Estimation, planning, releasing

• Earn their trust!

• Enable CD for individual environments one after another

(84)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

• Specification / Test Cases

• Estimation, planning, releasing

• Earn their trust!

• Enable CD for individual environments one after another

• Every reported bug leads to an automated test

(85)

Continuous Delivery – willhaben.at 2

Integrate QA to development process

• Test automation

• REST-tests

• Selenium

• Specification / Test Cases

• Estimation, planning, releasing

• Earn their trust!

• Enable CD for individual environments one after another

• Every reported bug leads to an automated test

(86)

Continuous Delivery – willhaben.at 2

(87)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

(88)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

(89)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

(90)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

(91)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

(92)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

(93)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

(94)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

(95)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

Size matters!

(96)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

Size matters!

• Design your features small enough:

(97)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

Size matters!

• Design your features small enough:

• Specified and documented

(98)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

Scrum emphasizes working product at the end of the sprint that is really „done“; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

• Use short sprint durations!

• User stories / features within the sprint are going to be released!

Size matters!

• Design your features small enough:

• Specified and documented

• They finish within the sprint

(99)

Continuous Delivery – willhaben.at 2

(100)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

(101)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

(102)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

• Don’t branch!

• Use feature trigger instead

• Configuration enables features

• Use bridge-pattern:

• Build a new bridge

• Redirect traffic

(103)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

• Don’t branch!

• Use feature trigger instead

• Configuration enables features

• Use bridge-pattern:

• Build a new bridge

• Redirect traffic

• Tear down old bridge

(104)

Continuous Delivery – willhaben.at 2

(105)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

• Your feature toggle comes first

(106)

Continuous Delivery – willhaben.at 2

Combine CD with Scrum

• Your feature toggle comes first

• Need a hotfix? No problem!

(107)

Continuous Delivery – willhaben.at 2

(108)

Continuous Delivery – willhaben.at 2

Use the power of communication

(109)

Continuous Delivery – willhaben.at 2

Use the power of communication

(110)

Continuous Delivery – willhaben.at 2

Use the power of communication

• Encourage communication

• Claim for early feedback

(111)

Continuous Delivery – willhaben.at 2

Use the power of communication

• Encourage communication

• Claim for early feedback

• Both ways (PM <-> Dev)

(112)

Continuous Delivery – willhaben.at 2

Use the power of communication

• Encourage communication

• Claim for early feedback

• Both ways (PM <-> Dev)

(113)

Continuous Delivery – willhaben.at 2

Use the power of communication

• Encourage communication

• Claim for early feedback

• Both ways (PM <-> Dev)

• QA creates test scenarios along with specification

(114)

Continuous Delivery – willhaben.at 2

Use the power of communication

• Encourage communication

• Claim for early feedback

• Both ways (PM <-> Dev)

• QA creates test scenarios along with specification

(115)

Figure

Updating...

References

Related subjects :