DevOps

The DevOps workflow. Source: Pease, 2017.
The DevOps workflow. Source: Pease, 2017.

DevOps is the coming together of both development and operations teams into a coordinated workflow such that collaboration and productivity are improved to meet shared business goals. Building on Agile and Lean, DevOps enables the business to respond to changes and meet customer needs faster. Tools and automation are necessary enablers. Practices such as Continuous Integration and Continuous Delivery are often followed.

Traditionally, products were monolithic in nature and release cycles were long. While developers focused on creating working software, it was operations who (manually) ensured that it could run in a production environment. Dev was all about adding new features. Ops was about stability and availability. Between these two were the testers. DevOps brings these teams closer so that releases can happen as quickly as necessary.

DevOps has been described variously as a culture, a mindset, a framework and a movement.

Discussion

  • How did DevOps come about?
    DevOps brings together Dev, Ops and QA. Source: Baker, 2016.
    DevOps brings together Dev, Ops and QA. Source: Baker, 2016.

    Until early 2000s, software release cycles were typically long. Even if developers could churn out features quickly, business folks would be wary of changes since software was considered brittle and deployments risky. At the same time, user expectations and competition forced vendors to consider shorter release cycles. Agile and Lean methods were used to do this. Even then, making frequent releases on a monolithic product was a challenge.

    What really changed the scene was the arrival of cloud computing, SaaS and microservices. Products were delivered as web services and later as a bunch of microservices. This enabled vendors to make faster releases at the microservice level. But deploying a networked service is the work of operations, who were mostly ignored by the Agile and Lean movements. The result was that software that was ready would not go to customers until weeks or months later, waiting for operations to ensure it works properly in production environment. Also, operations now had to worry about security, virtual machines, containers, scaling, and more. It was no longer plain system administration for operations. DevOps has come to address these challenges.

  • Can you define DevOps?
    DevOps means many things at once. Source: Baker, 2015.
    DevOps means many things at once. Source: Baker, 2015.

    There's no single definition of DevOps:

    • DevOps is a cultural, professional movement focused on how we build and operate high-velocity organizations, born from the experiences of its practitioners.
    • DevOps is largely founded in an organization’s skillful collaboration and communication, and the culture that results.
    • DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
    • DevOps is ops who think like devs and devs who think like ops.
    • The point of dev-ops is that developers need to learn how to create high-quality, production-ready software, and ops needs to learn that Agile techniques are actually powerful tools to enable effective, low-risk change management. Ultimately, we’re all trying to achieve the same thing – creating business value through software.
    • The Devops movement is characterized by people with a multidisciplinary skill set - people who are comfortable with infrastructure and configuration, but also happy to roll up their sleeves, write tests, debug, and ship features.
  • Could you dispel the common misconceptions or myths about DevOps?

    DevOps is not just about using tools or automating processes, although these are important. DevOps is not just about people, culture or processes. DevOps requires all of these to work together.

    DevOps goes beyond just developers and operations. It requires support and alignment from sales, marketing and even executives.

    Having someone attend a DevOps conference or bringing a DevOps "expert" into your team doesn't make a project "DevOps compliant". For that matter, DevOps is neither a standard nor a specification. There's no certification to recognize DevOps experts. DevOps is really driven by practitioners and could be considered a knowledge-based movement. It's always evolving.

    DevOps is not limited to using open source software. It does not eliminate IT operations (NoOps) or replace Agile.

    Continuous integration/delivery are not goals themselves. They're simply necessary steps in achieving DevOps goals. Neither is there a goal to make multiple releases per day or week. DevOps aims to release as often as necessary.

    DevOps is not just for web companies delivering SaaS products or companies working at scale. DevOps is for everyone.

  • Can you list some best practices for getting DevOps right?

    Although DevOps is not a set of practices, the following may help newbies get into the DevOps movement:

    • DevOps is about People, Process and Tools, in that order. Starting with tools will be the wrong way to do it.
    • John Willis gives us the CAMS formula: Culture, Automation, Measurement, Sharing. Again, culture is critical to successful DevOps. Everything needs to be automated and measured. For measurements, establish KPIs. Mean time to recovery is an example KPI.
    • Empathy is important to understand needs, break down silos and bring various teams together.
    • Start small on something strategic and then apply it on a large scale across the organization.
    • Invest in tools that give real-time visibility. Tool integration is essential. Multiple tools that don't work well together will hamper collaboration.
    • Increase the speed of deployment. To achieve this, invest in automation and practise Agile techniques.
    • Participate in community events and online channels to share and learn.
    • Improve feedback at every step, whether it's build, deploy, recovery or notifications.
  • Can you describe some common DevOps terms?

    Here are some terms often used in the DevOps world:

    • Feature switch: Ability to turn on/off features at code level and thereby facilitate Continuous Delivery.
    • Trunk-based development: A version control practice in which all changes go into trunk rather than isolated branches.
    • Container: An isolated environment at OS level where microservices and applications can be deployed and executed more reliably.
    • Shift left: Automated testing is built into the software methodology from the outset. The same can be done with deployment.
    • Orchestration: Method to manage and deploy applications and containers.
    • Staging: An environment that mimics production environment so that updates can be tested before going into production.
    • Deployment pipeline: An automated pipeline to get software quickly from version control to users.
    • Serverless: An architecture in which resources are allocated on demand without explicit server management.
    • Microservices: Smaller manageable pieces of an application accessed via standard interfaces.
    • Immutable infrastructure: Infrastructure that can't be changed once initialized for better robustness and reliability.
    • Infrastructure-as-Code: Describes automated provisioning, configuring and monitoring of infrastructure.
  • What tools can facilitate DevOps implementation?
    DevOps tools by phases and categories. Source: Bowman, 2017.
    DevOps tools by phases and categories. Source: Bowman, 2017.

    There are dozens of tools out there to automate every aspect of DevOps. These are commercial or open source. As of July 2017, some tools were considered indispensable: Ansible, Docket, Chet, Puppet, JIRA, Jenkins, New Relic, Visual Studio, etc. XebiaLabs curated a list of 100+ tools arranged as a "periodic table". They also published a list of open source tools.

    Since tool integration requires effort, some vendors offer suites of integrated tools. This can cause problems. Errors in them will propagate through the entire lifecycle. For example, throwing generic errors, tighly coupling pipeline stages to environments, showing ambiguous status or using terminology in the wrong sense can all be problems for a DevOps culture. Instead, adopt single-purpose, focused tools that use open standardized API.

  • How is DevOps related to Agile and Lean?
    Agile, Lean and DevOps. Source: Marschall, 2012.
    Agile, Lean and DevOps. Source: Marschall, 2012.

    It's been said that to deliver quality products we need all three: Lean concepts, Agile practices, and DevOps mindset. DevOps is an extension/adoption of Agile because what Agile does for development and testing, DevOps does for operations as well. Agile is a powerful tool that operations can use. Agile was about automating build, test and delivery. DevOps extends automation to deployment.

    Lean focuses on end-to-end flow to address bottlenecks and wastages. Lean is also about early product validation via customer feedback. Agile on the other hand employs various techniques to build products faster. DevOps uses Agile practices but also talks about how to integrate, test and deliver the product into the hands of users.

    Just grafting operations to an existing Agile development process is not DevOps. Having a DevOps team separate from the development team creates silos and this goes against the spirit of DevOps. The Agile process has to be rethought to include operations from the outset. Theresa Neate put it nicely,

    When you have a #DevOps team, you are not doing devops.
  • Are there any specializations of DevOps?

    DevSecOps attempts to bring security aspects into DevOps. With the growing importance of data analytics, especially in real time, DataOps attempts to apply DevOps to analytics and enable better data-driven decisions. While DevOps has been proven for individual applications, will it work for enterprises that use hundreds of diverse applications across private/public clouds and on-premises? This is being addressed by BizDevOps that's more operations focused and has less tolerance for risk taking. When it comes to collaboration, ChatOps is a model based on conversations to bring together tools, bots and people for transparent workflows. NetOps tries to achieve agility in operations without sacrificing availability. When IT operations are completely automated, though not eliminated, we have NoOps. Cloud providers offering PaaS ease so much of day-to-day operations for their users that they tend to use the term NoOps as augmenting DevOps.

Milestones

2006

Even before the term DevOps is coined, some companies start practising it. In an interview, Amazon's Werner Vogels states that their developers are also looking after day-to-day operations, interfacing with customers and collecting direct feedback. The goal is to improve quality of service.

Aug
2008

At the Agile Conference in Toronto, Andrew Shafer calls for a session titled "Agile Infrastructure". Only one person, Patrick Debois, attends this. He later meets Andrew and they together form the "Agile Systems Administration Group".

Nov
2008

Eric Ries refers to Steve Blank's book titled "The Four Steps to Epiphany". The basic idea is to release early a minimum set of features to the customer, get feedback, validate product-market fit and iterate quickly. This was the start of the Lean movement and had an influence on DevOps.

Jun
2009
A slide from the 2009 talk by Allspaw and Hammond: Elements of Tools and Culture for DevOps. Source: Allspaw, 2009.
A slide from the 2009 talk by Allspaw and Hammond: Elements of Tools and Culture for DevOps. Source: Allspaw, 2009.

At the O'Reilly Velocity conference John Allspaw and Paul Hammond present 10+ Deploys a Day: Dev and Ops Cooperation at Flickr. Debois watches this from Belgium. Inspired by this, Patrick Debois organizes DevOpsDays in Ghent, Belgium in October. By the time the event ends, twitter hastag #DevOps becomes commonly used, giving the movement its current name.

2010

DevOpsDays is organized in Sydney, California, Hamburg and Sao Paulo. This is also the year when Jez Humble publishes his well-known book titled "Continuous Delivery".

2014

Enterprises start adopting DevOps.

References

  1. AWS. 2017. "What is DevOps?" Accessed 2017-12-14.
  2. Allspaw, John. 2009. "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr." SlideShare. June 23. Accessed 2017-12-14.
  3. Allspaw, John. 2010. "DevOps: These Soft Parts." Agile Web Development & Operations. December 9. Accessed 2017-12-14.
  4. Baker, Ed. 2015. Demystifying DevOps Behaviours." Microsoft TechNet Blog. December 18. Accessed 2017-12-14.
  5. Baker, Justin. 2016. "DevOps 2.0." LaunchDarkly. May 9. Accessed 2017-12-16.
  6. Bergh, Chritopher. 2017. "The DataOps Ecosystem Emerges." Tamr. May 4. Accessed 2017-12-14.
  7. Betteley, James and Matthew Skelton. 2017. "Merging Agile and DevOps." InfoQ. August 30. Accessed 2017-12-14.
  8. Bisson, David. 2017. "12 Indispensable DevOps Tools for 2017." Tripwire. July 30. Accessed 2017-12-14.
  9. Bowman, James. 2017. "Continuous delivery tool landscape." January 30. Accessed 2017-12-15.
  10. Candelmo, Caitlin. 2017. "40 DevOps Terms You Need to Know." DZone. August 31. Accessed 2017-12-14.
  11. Deshpande, Aniket. 2017. "DevOps an Extension of Agile Methodology – How It will Impact QA?" Software Testing Help. November 2. Accessed 2017-12-14.
  12. Edwards, Damon. 2012. "The (Short) History of DevOps." YouTube. September 12. Accessed 2017-12-14.
  13. Fowler, Martin. 2017. "Feature Toggles (aka Feature Flags)." October 9. Accessed 2017-12-14.
  14. Hammond, Jeffrey. 2011. "The Relationship Between Dev-Ops And Continuous Delivery: A Conversation With Jez Humble Of ThoughtWorks." Forrester. September 9. Accessed 2017-12-14.
  15. Hand, Jason. 2015. "The top 10 DevOps myths debunked." TechBeacon. October 14. Accessed 2017-12-14.
  16. Harvey, Cynthia. 2016. "9 Best Practices for DevOps." Datamation. June 23. Accessed 2017-12-14.
  17. Heckart, Christine. 2017. "NetOps: Can networks be both available and agile?" Network World. April 11. Accessed 2017-12-14.
  18. Heusser, Matt. 2016. "A complete beginner's guide to DevOps best practices." TechTarget. July 20. Accessed 2017-12-14.
  19. Honor, Alex. 2010. "People over Process over Tools." dev2ops. February 24. Accessed 2017-12-14.
  20. Javed, Shoeb. 2017. "Why DevOps Doesn’t Work for Enterprise Applications." DZone. June 20. Accessed 2017-12-14.
  21. Kappelman, Erik. 2017. "Why microservices and DevOps are a match made in heaven." Packt Publishing. October 13. Accessed 2017-12-14.
  22. Kim, Gene, Jez Humble, Patrick Debois, and John Willis. 2016. "The DevOps Handbook." IT Revolution Press, First Edition.
  23. Krill, Paul. 2015. "What is devops? It depends on whom you ask." InfoWorld. April 6. Accessed 2017-12-14.
  24. Loukides, Mike. 2012. "What is DevOps?" O'Reilly Radar. June 7. Accessed 2017-12-16.
  25. Marschall, Matthias. 2012. "How are Lean, Agile, and Devops related to each other?" Agile Web Development & Operations. July 12. Accessed 2017-12-14.
  26. Moorthy, Tan. 2017. "DevOps in 2017: From Building to Executing." DevOps.com. January 9. Accessed 2017-12-14.
  27. Mueller, Ernest. 2010. "What Is DevOps?" The Agile Admin. August 2. Updated 2017-07-24. Accessed 2017-12-14.
  28. Neate, Theresa. 2017. "Break down DevOps team roles so you can actually get to DevOps." TechTarget. December 14. Accessed 2017-12-16.
  29. Nelson-Smith, Stephen. 2010. "What Is This Devops Thing, Anyway?" Just Enough Developed Infrastructure. February 12. Accessed 2017-12-14.
  30. Pais, Manuel and Matthew Skelton. 2017. "Continuous Delivery Anti-Patterns." DZone. January 31. Accessed 2017-12-14.
  31. Paul, Fredric. 2014. "The Incredible True Story of How DevOps Got Its Name." New Relic Blog. May 16. Accessed 2017-12-14.
  32. Pease, Jeremy. 2017. "DevOps Part 1: It’s More Than Teams." Contegix. June 9. Accessed 2017-12-14.
  33. Pruitt, Joe. 2015. "DevOps 101 - A Brief History Of Time." DevCentral. April 2. Updated 2015-12-9. Accessed 2017-12-14.
  34. Rackspace. 2013. "What is DevOps? - In Simple English." YouTube. December 12. Accessed 2017-12-15.
  35. Rapaport, Richard. 2014. "A Short History of DevOps." CA Technologies. December 23. Accessed 2017-12-14.
  36. Regan, Sean. 2016. "What is ChatOps? A guide to its evolution, adoption, and significance." Atlassian Blog. January 22. Accessed 2017-12-15.
  37. Ries, Eric. 2008. "What is customer development?" Startup Lessons Learned. November 8. Accessed 2017-12-14.
  38. Searle, Will. 2016. "A Brief History of DevOps." Turbonomic. May 19. Accessed 2017-12-14.
  39. Stephan, Fadi. 2015. "Lean Discovery, Agile Delivery & the DevOps Mindset." SlideShare. November 13. Accessed 2017-12-14.
  40. TechTarget. 2015. "Definition: NoOps." July. Accessed 2017-12-15.
  41. Tozzi, Christopher. 2017. "DevOps Dictionary: A Guide to DevOps Words and Terms." Channel Futures. April 5. Accessed 2017-12-14.
  42. Vargo, Seth. 2014. "The 10 Myths of DevOps." December 23. Accessed 2017-12-14.
  43. Vashishtha, Shrikant. 2013. "Demystifying DevOps : Difference between Agile and DevOps." Agile Buddha. August 9. Accessed 2017-12-14.
  44. Vogels, Werner. 2006. "A Conversation with Werner Vogels." ACM Queue, vol. 4, issue 4. June 30. Accessed 2017-12-14.
  45. Weaver, Rick. 2016. "The Shift Left Principle and DevOps." DZone. June 14. Accessed 2017-12-15.
  46. Willis, John. 2010. "What Devops Means to Me." Chef Blog. July 16. Accessed 2017-12-14.
  47. XebiaLabs. 2015a. "Periodic Table of DevOps Tools (V2)." XebiaLabs. April 13. Accessed 2017-12-15.
  48. XebiaLabs. 2015b. "The Ultimate List of Open Source DevOps Tools." XebiaLabs. June 5. Accessed 2017-12-15.
  49. Zwieback, Dave. 2015. "DevOps keeps it cool with ICE." O'Reilly Radar. January 15. Accessed 2017-12-14.

Further Reading

  1. Rackspace. 2013. "What is DevOps? - In Simple English." YouTube. December 12. Accessed 2017-12-15.
  2. Mueller, Ernest. 2010. "What Is DevOps?" The Agile Admin. August 2. Updated 2017-07-24. Accessed 2017-12-14.
  3. Allspaw, John. 2009. "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr." SlideShare. June 23. Accessed 2017-12-14.
  4. Ambler, Scott W. 2013. "Top 10 Practices for Effective DevOps." Dr. Dobb's. February 26. Accessed 2017-12-14.
  5. Gracely, Brian. 2017. "The 7 habits of highly effective DevOps." The Enterprises Project. August 21. Accessed 2017-12-16.

Article Stats

Author-wise Stats for Article Edits

Author
No. of Edits
No. of Chats
DevCoins
2
0
3710
5
1
203
1
0
6
1779
Words
14
Likes
51K
Hits

Cite As

Devopedia. 2022. "DevOps." Version 8, February 15. Accessed 2023-11-12. https://devopedia.org/devops
Contributed by
3 authors


Last updated on
2022-02-15 11:50:01