[{"data":1,"prerenderedAt":292},["ShallowReactive",2],{"\u002Fen\u002Fpost\u002F2019\u002F01\u002Fdevops-benefits":3},{"id":4,"title":5,"author":6,"body":7,"createdAt":277,"description":278,"extension":279,"meta":280,"navigation":281,"path":282,"seo":283,"slug":284,"stem":285,"tags":286,"__hash__":291},"posts\u002Fposts\u002F2019\u002F01\u002Fdevops-benefits.md","DevOps: Benefits",null,{"type":8,"value":9,"toc":262},"minimark",[10,15,19,24,27,31,34,38,41,45,48,61,65,69,72,76,79,83,86,90,93,97,100,114,125,129,132,140,143,147,150,170,178,181,188,194,238,242,245],[11,12,14],"h1",{"id":13},"introduction","Introduction",[16,17,18],"p",{},"Main benefits that a company generally expects and finds in the adoption of\nculture:",[20,21,23],"h2",{"id":22},"faster-and-cheaper-releases","Faster and Cheaper Releases",[16,25,26],{},"Since releases will be continuous and frequent, deliverables will turn into\nsmall changes with the benefit of increasing speed in the development cycle\n(delivering always).",[20,28,30],{"id":29},"improved-operational-support-with-quick-fixed","Improved Operational support with quick fixed",[16,32,33],{},"If there is a failure during delivery, the impact is minimal because the amount\nof modifications is small, just as the rollback is faster. Having a simple\ninspection and debugging.",[20,35,37],{"id":36},"better-time-to-market-ttm","Better Time-to-market (TTM)",[16,39,40],{},"The software will be delivered much earlier when it's still an MVP. Customers\nwill be integrated as part of the development process, bringing insights and\nfeedback to the development team. Thus allowing for a higher launch speed in the\nmarket.",[20,42,44],{"id":43},"superior-quality-products","Superior quality products",[16,46,47],{},"As has been said before, early failures prevent defects from being delivered to\nproduction, because:",[49,50,51,55,58],"ul",{},[52,53,54],"li",{},"Reduces the volume of defects in the product as a whole;",[52,56,57],{},"Increases frequency of new features and releases;",[52,59,60],{},"Appropriate development processes in teams, including automation.",[11,62,64],{"id":63},"now-we-understood-why-lets-talk-about-how","Now we understood WHY, let's talk about HOW",[20,66,68],{"id":67},"continuous-releases-integration-delivery-deployment","Continuous releases (integration, delivery, deployment)",[16,70,71],{},"Usually follows a code versioning approach (through Git) using specific branches\nfor each environment (e.g.: feature branches with git flow).",[20,73,75],{"id":74},"continuous-integration","Continuous integration",[16,77,78],{},"Automatic execution of unit tests, integration tests and code quality analysis\nagainst a git branch, to ensure that there was no disruption of the modified\npiece of code.",[20,80,82],{"id":81},"continuous-delivery","Continuous delivery",[16,84,85],{},"Packaging the software that is tested and approved, to deliver it somewhere that\nit is possible to use in a deploy later. Examples are libs delivered in\nrepositories to be integrated into the code during the next update and code\ndeploy.",[20,87,89],{"id":88},"continuous-deployment","Continuous deployment",[16,91,92],{},"Once you have completed all of the above steps, you can do automated deployments\nright in the environments, when the team is more confident about the tools they\nare testing, as well as the risk they're taking and also understanding that\nthere is a possibility of failure in a tests environment without worrying that\nit's going to be divergent from production.",[20,94,96],{"id":95},"configuration-andor-infrastructure-as-code","Configuration (and\u002For Infrastructure) as code",[16,98,99],{},"To be able to test software with assertiveness, and to understand that it will\ntransit between environments without changing behavior, it is essential that the\nconfigurations are also expressed in code. This allows the settings to be also\nversioned, following the code. Also guaranteeing a uniformity among the\nenvironments, which enables:",[49,101,102,105,108,111],{},[52,103,104],{},"Reduction in maintenance costs, having a single point to look at and\nunderstand the operation of the system;",[52,106,107],{},"Easy to recreate the infrastructure, if it is necessary to move everything to\nanother place, this can happen with a few manual interactions;",[52,109,110],{},"Allows for a code review of infrastructure and configurations, which\nconsequently brings a culture of collaboration in the development, sharing of\nknowledge and increases the democratization of the infra;",[52,112,113],{},"Documentation as code, helping new team members get a faster warm up.",[16,115,116,117,124],{},"These points were well-stressed by the Heroku team and gave rise to the famous\npaper: ",[118,119,123],"a",{"href":120,"rel":121},"https:\u002F\u002F12factor.net\u002F",[122],"nofollow","The Twelve-Factor App",". It's an excellent reading\nfor the explanation of the benefits of configuration management.",[20,126,128],{"id":127},"observability-monitoring-and-self-healing","Observability, Monitoring, and self-healing",[16,130,131],{},"At the end of the delivery process, the software must be monitored. Avoiding to\nwait for an external report of failures, ensuring that the actions are proactive\nrather than reactive.",[16,133,134,135,139],{},"With mature monitoring, it's possible to create trigger against alerts, creating\na self-healing system in which actions (scripts) are performed to ",[136,137,138],"strong",{},"fix known","\nfailures in the infrastructure so that everyone can sleep peacefully at night,\nwithout having to worry about the on-call schedule that makes you read some\ndocumentation at dawn. (If you have had experience with this, you know for sure\nhow bad it is).",[16,141,142],{},"Scaling up only those cases that are extreme exceptions (mistakes not\nknown\u002Fexpected) in the process for the employee to act, ensuring higher health\nin operation.",[20,144,146],{"id":145},"processes-automation","Processes automation",[16,148,149],{},"All processes that cause Muda should be addressed with automation, allowing\npeople to work more quickly. Good examples of processes that are usually\nautomated are:",[49,151,152,155,158,161,164,167],{},[52,153,154],{},"Deployment;",[52,156,157],{},"Self-healing (system resilience in response to anomalies);",[52,159,160],{},"Renewal of Certificates;",[52,162,163],{},"Execution of tests (unitary, integration, functional, etc.);",[52,165,166],{},"Monitoring (with auto-discovery);",[52,168,169],{},"User Governance;",[11,171,173],{"id":172},"devops-toolchain",[118,174,177],{"href":175,"rel":176},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDevOps_toolchain",[122],"DevOps toolchain",[16,179,180],{},"A combination of tools to facilitate the maintenance and operation of the\nsystem, with the flow:",[16,182,183],{},[184,185],"img",{"alt":186,"src":187},"Development Cycle Using DevOps","\u002Fimg\u002Fcontent\u002Fdevops-lifecycle.png",[189,190,191],"blockquote",{},[16,192,193],{},"Note: Any similarity to the PDCA is pure certainty.",[49,195,196,202,208,214,220,226,232],{},[52,197,198,201],{},[136,199,200],{},"Plan",": Project planning phase, in which feedbacks are collected for\nrequirements survey, and backlog creation;",[52,203,204,207],{},[136,205,206],{},"Create",": Creation of a deliverable (to validate a hypothesis), such as an\nMVP;",[52,209,210,213],{},[136,211,212],{},"Verify",": Pass the deliverable to the test phase;",[52,215,216,219],{},[136,217,218],{},"Package:"," Package the build to be able to put it in some testing\nenvironment;",[52,221,222,225],{},[136,223,224],{},"Release",": Deploy packaged deliverable;",[52,227,228,231],{},[136,229,230],{},"Configure",": Perform the configuration of the deliverable in the testing\nenvironment, trying to get as close as possible to the twelve-factor app.",[52,233,234,237],{},[136,235,236],{},"Monitor",": After deploying to the environment, track business metrics and\ninfrastructure to ensure everything is working as expected.",[11,239,241],{"id":240},"conclusion","Conclusion",[16,243,244],{},"During the implementation of these techniques it is possible to observe\nimprovements in the development process, the most notable gains are:",[49,246,247,250,253,256,259],{},[52,248,249],{},"Increase in team engagement;",[52,251,252],{},"Knowledge sharing;",[52,254,255],{},"Reduction of bottlenecks;",[52,257,258],{},"More free time to do work that really matters (adds value to the user\nexperience or generates impact);",[52,260,261],{},"Greater confidence in delivering software.",{"title":263,"searchDepth":264,"depth":264,"links":265},"",2,[266,267,268,269,270,271,272,273,274,275,276],{"id":22,"depth":264,"text":23},{"id":29,"depth":264,"text":30},{"id":36,"depth":264,"text":37},{"id":43,"depth":264,"text":44},{"id":67,"depth":264,"text":68},{"id":74,"depth":264,"text":75},{"id":81,"depth":264,"text":82},{"id":88,"depth":264,"text":89},{"id":95,"depth":264,"text":96},{"id":127,"depth":264,"text":128},{"id":145,"depth":264,"text":146},"2019-01-11T22:00:00","Benefits of implementing DevOps culture in business, why this is a feasible option and the DevOps world big picture in-a-nutshell from a business point of view.","md",{},true,"\u002Fposts\u002F2019\u002F01\u002Fdevops-benefits",{"title":5,"description":278},"devops-benefits","posts\u002F2019\u002F01\u002Fdevops-benefits",[287,288,289,290],"devops","culture","agile","lean","aezJy2B7ysB2yGf6LD84oSRLU3IRqSAhMgGJVt50D5M",1778441744205]