Yegor Bugayenko Lecture #10 Out Of 16 90 Minutes - GitHub Pages

Transcription

Continuous Deliveryand its designYegor BugayenkoLecture #10 out of 1690 minutesAll visual and text materials presented in this slidedeck are eitheroriginally made by the author or taken from public Internet sources,such as website. Copyright belongs to their respected authors.

2/21Continuous IntegrationContinuous DeliveryOpen Source in GitHubBooks, Venues, Call-to-ActionContinuous Delivery and its design@yegor256

CI CD GitHub B.V.C.3/21Chapter #1:Continuous IntegrationContinuous Delivery and its design@yegor256

CI CD GitHub B.V.C.4/21[ CI Pre-Flight ]How Continuous Integration (CI) works:It doesn’t work :(Continuous Delivery and its design@yegor256

5/21CI CD GitHub B.V.C.[ CI Pre-Flight ]“Crucially, if the build fails, the development teamstops whatever they are doing and fixes the problemimmediately”— Jez Humble, Continuous Delivery, p. 55Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.6/21[ CI Pre-Flight ]Pre-Flight BuildsMaster branch is “read-only”!Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.7/21Chapter #2:Continuous DeliveryContinuous Delivery and its design@yegor256

8/21CI CD GitHub B.V.C.https://www.youtube.com/watch?v 55mwAbuDrV8 Joker Conf 2018, Quality vs Quantity, in RussianContinuous Delivery and its design@yegor256

9/21CI CD GitHub B.V.C.“Each stage of a build pipeline is looking for reasonsto reject the build. Tests failed? Reject it. Lintcomplains? Reject it. Build fails integration tests instaging? Reject it. Finished archive smells funny?Reject it.”— Michael Nygard, Release It!Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.10/21[ Wall Targets Versions Tools Blue/Green ]Quality WallLintersStatic analyzersUnit testsIntegration testsTest coverage controlMutation coverage controlManual code review(s)Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.11/21[ Wall Targets Versions Tools Blue/Green ]Target PlatformsStatic web site: GitHub PagesLibrary: Maven Central, RubyGems.org, Npm.org, etc.Small web app: Heroku or DokkuBigger web app: AWS Elastic BeanstalkMobile app: TestFlightContinuous Delivery and its design@yegor256

CI CD GitHub B.V.C.12/21[ Wall Targets Versions Tools Blue/Green ]Versioningsnapshot, alpha, beta, finalsemver.org: 1.4.170ver.org: 0.43.3Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.13/21[ Wall Targets Versions Tools Blue/Green ]CI/CD ToolsJenkins1000 Hosted Services like TravisGitHub ActionsRultor.comContinuous Delivery and its design@yegor256

CI CD GitHub B.V.C.14/21[ Wall Targets Versions Tools Blue/Green ]Blue/Green DeploymentMay not work with databases :(Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.15/21Chapter #3:Open Source in GitHubContinuous Delivery and its design@yegor256

CI CD GitHub B.V.C.Continuous Delivery and its design16/21@yegor256

CI CD GitHub B.V.C.17/21Chapter #4:Books, Venues, Call-to-ActionContinuous Delivery and its design@yegor256

18/21CI CD GitHub B.V.C.“Continuous Delivery: ReliableSoftware Releases through Build,Test, and Deployment Automation”by Jez Humble et al.Continuous Delivery and its design“Release It!: Design and DeployProduction-Ready Software” byMichael T. Nygard@yegor256

CI CD GitHub B.V.C.19/21Where to go:Collect 1000 stars on GitHub for your product.Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.20/21Call to Action:Setup continuous delivery pipeline in your application so that it is releasedto production automatically on each commit to master branch.Continuous Delivery and its design@yegor256

CI CD GitHub B.V.C.21/21Still unresolved issues: How to parallelize tests? How to speed up merging into “master”? How to generate tests automatically? How to enforce quality for legacy code base?Continuous Delivery and its design@yegor256

Continuous Delivery and its design @yegor256 Continuous Integration Continuous Delivery Open Source in GitHub Books, Venues, Call-to-Action. . — Jez Humble, Continuous Delivery, p. 55. CICD GitHub B.V.C. [ CI Pre-Flight] 6/21 Continuous Delivery and its design @yegor256 Pre-Flight Builds