ebook img

Antifragile Software. Building Adaptable Software with Microservices PDF

153 Pages·2016·9.68 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Antifragile Software. Building Adaptable Software with Microservices

Antifragile Software Building Adaptable Software with Microservices Russ Miles Thisbookisforsaleathttp://leanpub.com/antifragilesoftware Thisversionwaspublishedon2016-02-08 ThisisaLeanpubbook.Leanpubempowersauthorsand publisherswiththeLeanPublishingprocess.LeanPublishingis theactofpublishinganin-progressebookusinglightweight toolsandmanyiterationstogetreaderfeedback,pivotuntil youhavetherightbookandbuildtractiononceyoudo. ©2013-2016RussMiles Tweet This Book! PleasehelpRussMilesbyspreadingthewordaboutthisbook onTwitter! Thesuggestedhashtagforthisbookis#antifragilesoftware. Findoutwhatotherpeoplearesayingaboutthebookby clickingonthislinktosearchforthishashtagonTwitter: https://twitter.com/search?q=#antifragilesoftware Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 GrabbingtheCode . . . . . . . . . . . . . . . . . . 2 Option1:BrowsethecodeonGitHub . . . . . . . . 3 Option2:DownloadtheCodeasZipFiles . . . . . . 3 AboutTheAuthor . . . . . . . . . . . . . . . . . . . 4 Acknowledgements . . . . . . . . . . . . . . . . . . 6 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7 WhatthisbookisNOTabout . . . . . . . . . . . . . 8 PhilosophicalUnderpinnings . . . . . . . . . . . . . 11 Axioms . . . . . . . . . . . . . . . . . . . . . . . . . 12 Whatarewereallydealingwith,then? . . . . . . . 20 ANodTowardsOver-Production . . . . . . . . . . . 22 BookI-ThePhilosophyofChangeinSoftware . . . . 25 TheParableofTheElephantintheStandup . . . . . . 26 Grief,Anger,Disbelief… . . . . . . . . . . . . . . . 28 …Guilt… . . . . . . . . . . . . . . . . . . . . . . . . 29 TheElephantintheStandup . . . . . . . . . . . . . 29 EverybodyLies . . . . . . . . . . . . . . . . . . . . 30 Lie1:It’saBigChangereally… . . . . . . . . . . . . 31 CONTENTS Lie2:TheExtended-Holidayof‘Refactoring’ . . . . 32 RefactoringshouldbeQuick,Easy andConstant . . 33 Lie3:Sorry,you’reinTechnicalDebt… . . . . . . . 34 TechnicalDebtisforreal . . . . . . . . . . . . . . . 35 The Elephant in the Standup is not Technical Debt, nor Refactoring . . . . . . . . . . . . . . . . . 35 SoftwareArchitectureisPhilosophy . . . . . . . . . . 36 WhatisSoftwareArchitectureandDesign? . . . . . 36 WhatisPhilosophy? . . . . . . . . . . . . . . . . . 37 SoftwareArchitectureAbides . . . . . . . . . . . . 39 PlatoandtheWaterfall . . . . . . . . . . . . . . . . 40 Agility andFortuna . . . . . . . . . . . . . . . . . . 42 ArchitectureneedstoembraceFortuna . . . . . . . 44 StressorsonSoftware . . . . . . . . . . . . . . . . . . . 46 AntifragilityinSoftware . . . . . . . . . . . . . . . . . 50 Change,AdaptionandAnti-fragility . . . . . . . . . 51 TheChangeStressorandtheAdaptionResponse . . 51 DefiningAntifragileSoftwareSystems. . . . . . . . 58 The Need for Antifragility in Software: Enabling Innovation. . . . . . . . . . . . . . . . . . . . 59 EmergenceandAntifragility . . . . . . . . . . . . . 60 AntifragilityisintheRelationships . . . . . . . . . 61 LoveisAntifragile,aninterlude . . . . . . . . . . . 62 RelationshipsbetweenPartsaretheKey . . . . . . . 63 SimplicityinSoftware,Defined . . . . . . . . . . . . . 64 SimplicityisObjective . . . . . . . . . . . . . . . . . 65 TheSimplicityContinuum . . . . . . . . . . . . . . 65 Essential &Accidental Complexity. . . . . . . . . . 67 CONTENTS Whydoweintroduceaccidentalcomplexity? . . . . 67 SimpleArchitecture&Design? . . . . . . . . . . . . 68 Microservice-based Architectures for Antifragility & Simplicity . . . . . . . . . . . . . . . . . . . . . . . 69 EmbracingChangewithMicroservices . . . . . . . 70 EmbracingorevenThrivingonChangeintheLinks betweenMicroservices . . . . . . . . . . . . . 71 Lies,DamnedLies,andLiesaboutMicroservices . . 73 ThePayback:SpeedofInnovation . . . . . . . . . . . . 75 Whatisinnovation? . . . . . . . . . . . . . . . . . . 75 EnablingInnovation . . . . . . . . . . . . . . . . . . 76 TechnicalInnovationStressors . . . . . . . . . . . . 78 OntheOriginofServices… . . . . . . . . . . . . . . 79 Antifragile Systems of Microservices are an Engine forInnovation . . . . . . . . . . . . . . . . . . 80 Remember&Apply . . . . . . . . . . . . . . . . . . . . 82 Book II - Architecture, Design & Implementation for Antifragility . . . . . . . . . . . . . . . . . . . . . . 84 SkinintheGame . . . . . . . . . . . . . . . . . . . . . 85 Ethics:DoIt,RiskIt . . . . . . . . . . . . . . . . . . 86 Show,Share,MakeMistakes,LearnandImprove . . 88 OnBeingCritical . . . . . . . . . . . . . . . . . . . 89 Fear,Loathing&PromiseinUncertainty-Ville . . . . 90 Idea1:AnOpenCloudIndex . . . . . . . . . . . . . 93 Phone,OrHaveaDrinkwith,AFriend . . . . . . . 94 UbiquitousLanguage&DomainObjects? . . . . . . 95 CONTENTS TheIllsoftheLayeredArchitecture . . . . . . . . . 96 The Domain Objects at the Centre of the Universe Anti-Pattern . . . . . . . . . . . . . . . . . . . 100 NoonewantstochangetheDomainObjects… . . . . 103 Promiscous and Incorrect Domain Objects and the RippleEffect . . . . . . . . . . . . . . . . . . . 104 NottheThings,theThingsthathappen . . . . . . . 105 Events,aBetterUbiquitousLanguage . . . . . . . . 106 Past,UnchangeableFacts . . . . . . . . . . . . . . . 107 UnderstandingEvents-90%Accountant,10%RockStar108 EventStreams . . . . . . . . . . . . . . . . . . . . . 109 Comprehending Event Streams with Projections & Aggregates . . . . . . . . . . . . . . . . . . . 111 AnsweringtheQuestionwithViews . . . . . . . . . 114 Fast andSlowFlows . . . . . . . . . . . . . . . . . . 116 Lambdas!? . . . . . . . . . . . . . . . . . . . . . . . 117 WhatnoREST yet? . . . . . . . . . . . . . . . . . . 119 SoftwareAntifragilitypatternswithStressors . . . . 120 Time…toBuild . . . . . . . . . . . . . . . . . . . . . . 122 TheProblemofBelongingtoTomorrow . . . . . . . 123 ReducingthefearofBigDecisions . . . . . . . . . . 125 EatinganElephantwiththeLifePreserver . . . . . . 128 ATaleofThreeTeams . . . . . . . . . . . . . . . . 129 Backto“SkinintheGame” . . . . . . . . . . . . . . 130 Whatistherightapproachtobuildingasystem? . . 131 TheProcessandTool:TheLifePreserver . . . . . . . 132 DoingO.R.E.:Organise,Reduce&Encapsulate . . . 133 The Life Preserver Process: Asking and Answering Questions . . . . . . . . . . . . . . . . . . . . 134 CONTENTS JustEnoughDesign . . . . . . . . . . . . . . . . . . 134 Wheredoesmycomponentgo? . . . . . . . . . . . 134 Whatshouldmycomponentdo? . . . . . . . . . . . 134 GroupTogetherthatChangeTogether . . . . . . . . 134 WhenshouldIsplitmycomponent? . . . . . . . . . 134 DiscovertheDomain . . . . . . . . . . . . . . . . . 134 HowshouldmyComponentsCommunicate?Design Events . . . . . . . . . . . . . . . . . . . . . . 135 How should my Events be transmitted? Design Dis- patch. . . . . . . . . . . . . . . . . . . . . . . 135 HowshouldmyEventsbeEncoded?DesignPayload 135 ThinkingStressors . . . . . . . . . . . . . . . . . . . 137 CreatingStressors . . . . . . . . . . . . . . . . . . . 137 ConsiderCircuitBreakers . . . . . . . . . . . . . . . 137 ConsiderBulkheads . . . . . . . . . . . . . . . . . . 137 12-FactorServices? . . . . . . . . . . . . . . . . . . 137 ConsiderTechnologiesEarly . . . . . . . . . . . . . 137 BoundedContexts,Boundaries&FractureLineswith TectonicPlates . . . . . . . . . . . . . . . . . 137 What‘could’change . . . . . . . . . . . . . . . . . 137 Naiveisok,atfirst . . . . . . . . . . . . . . . . . . 137 HavingaConversationaboutChange . . . . . . . . 137 SeeingInter-Plateand-ComponentCommunication 137 FrictionattheFaultLines . . . . . . . . . . . . . . . 137 FocusonwheretheFrictionisGreatest . . . . . . . 137 TestingyourInter-PlateChangeCoupling . . . . . . 138 TheDangersofInappropriateInter-PlateIntimacy . 138 FlowsacrosstheLifePreserver . . . . . . . . . . . . 138 ContinuousRefinement:EmergentDesign . . . . . . 138 ScalingLifePreservers . . . . . . . . . . . . . . . . 138 BigPayback:Objectivitity . . . . . . . . . . . . . . . 138 CONTENTS ManifestNOforAntifragileSoftware . . . . . . . . . . 139 ChangeandOssification . . . . . . . . . . . . . . . 139 EvilManifestosofYearsPast . . . . . . . . . . . . . 139 WhyaManifestoatall? . . . . . . . . . . . . . . . . 139 DodgingtheBullet . . . . . . . . . . . . . . . . . . 139 WhyMicroservicesarenotjustSOA . . . . . . . . . 140 Remember&Apply . . . . . . . . . . . . . . . . . . . . 141 SuggestedFurtherReading . . . . . . . . . . . . . . . . 142 CONTENTS 1 ForMali ForAshton ForSiobhán FromRuss:Ihopeyourlearningjourneysneverend

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.