• No results found

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
115
0
0

Loading.... (view fulltext now)

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)

References

Related documents

The positive and signi…cant coe¢ cient on the post shipment dummy in the fourth column implies that prices charged in post shipment term transactions are higher than those charged

Checkpoint Tools and SMART Audit Suite • Powerful online resource—Checkpoint • Leading engagement management— Engagement CS and AdvanceFlow.. © 2013 Thomson Reuters/Tax

The results of this investigation indicate that the beam coverage of the WSR-88D using VCP 11 located at the Melbourne NWS Office is comparable (difference in percent of the

The Lithuanian authorities are invited to consider acceding to the Optional Protocol to the United Nations Convention against Torture (paragraph 8). XII-630 of 3

Our experience shows that: (1) implementation of a Nooks layer is achievable with only modest engineering effort, even on a monolithic operating system like Linux, (2) extensions such

Reporting. 1990 The Ecosystem Approach in Anthropology: From Concept to Practice. Ann Arbor: University of Michigan Press. 1984a The Ecosystem Concept in

The key segments in the mattress industry in India are; Natural latex foam, Memory foam, PU foam, Inner spring and Rubberized coir.. Natural Latex mattresses are

Once viewed as simply a way to automate back-office opera- tions, today’s software development features advanced approaches that create more agile, end-to-end, continuous