Below is the Skydingo definition of DevOps that is similar to other definitions you will see on the Internet. The definition is very high-level and academic. And yes, our definition provides little help to those seeking a tangible understanding of DevOps. However, it is a good reference and starting point for the conversation. Skydingo.com provides information in key areas that encompass the DevOps world and hopefully we have content that will provide value!
DevOps does not have a standard definition and is not a published set of practices like ITIL. Therefore the "what is DevOps" questions continues to be answered in different ways, but with a common theme around collaboration and automation.
DevOps: "An interaction of Culture, Workflow and Tools with a focus on empowering people to improve IT Delivery quality, speed and business alignment across Development, QA and Operations teams." - Paul Jenson
Effective IT Delivery! IT Delivery is the primary DevOps concept in the Skydingo world. It's our term representing the IT value chain and a focus on maximizing the "flow" of business requests to deliver business value. The underpinning fundamentals are around building Architecture for Repeatability in everything from the organization structure, IT process, network design, systems design, tools and dashboards. This requires Leadership that cares about detail level process. It is leadership that expects more than great results, but expects effective process flow that can reproduce the same great results again and again.
Most of the DevOps conversation is around tactical automation tools for software build automation, test automation and infrastructure scripting; but automation and tools are more the "how" and not the "what". The core principles of DevOps are based on thirty year old manufacturing methodologies such as Lean Management, Theory of Constraints, and Continuous Improvement. Lean Management is mostly derived from the Toyota Production System and Kaizen is the term for Continuous Improvement. Great books for understanding these concepts include The Goal (1984) and The Toyota Way (2004).
A key learning from Lean Management is to prioritize decisions based on improving "flow" instead of lowering cost. That is not to say cost is ignored, but it is a recognition that maximizing "flow" as the top priority increases throughput and has a derivative effect of lowering cost. For IT organizations, flow is the IT Delivery of feature requests that move through development processes, environment setup processes, testing processes and into production release where business value is achieved.Continuous Delivery is the automation of the IT Delivery flow enabling features to deliver value in production with speed and quality through end-to-end process automation. Jez Humble coined the term when he published his book Continuous Delivery in 2010, which took Continuous Integration (software build principles) to the next level with the concept of Deployment Pipelines. Gene Kim published The Phoenix Project in 2014 as a DevOps novel. His book is essentially a rewrite of the thirty year old publication The Goal, but the storyline is switched from a manufacturing plant setting to an IT organization. This represents a progression of the Lean Management principles moving from manufacturing industries to technology industries with Continuous Integration, Extreme Programming, Agile Project Management, Continuous Delivery and DevOps.
DevOps is a combination of the three perspectives listed below, and it is difficult to talk about one without integrating concepts from the other two. We define these three perspectives as independent categories because they are a fair representation of varying DevOps views expressed across the industry. In many cases these three categories have been helpful in articulating answers to the the “what is DevOps” mystery. Although this could be viewed as a three step maturity model, please do not think in terms of serial progression. DevOps includes everything below as an integrated concept:
Automation - characterized by, but not limited to:
Continuous Delivery - characterized by, but not limited to:
Lean Management - characterized by, but not limited to:
DevOps is not... daily production releases: Although DevOps can enable daily releases, the release frequency is a business decision not a DevOps definition. The underlying principles that DevOps is derived from does promote the value of frequent, small batch releases. Most Agile organizations require daily or "frequent" deployments in their non-production environments, and many of the underpinning automation needs align with Continuous Delivery regardless of the production release frequency. It is important to remember that DevOps is not just about the production release, it is about the process and "flow" of getting to production release as well as executing the release.
DevOps is not... production releases without testing: DevOps embraces a strong investment in test automation enabling far greater quality, confidence and repeatability.
DevOps is not... developers making production deployment decisions: Although empowered teams and self-service automation should be primary themes, policies would always exist for managing business risk, separation of duty, audit and compliance regulations.
DevOps is not... the latest fad just for the cool kids at Facebook and Google: The core principles of DevOps are based on thirty year old manufacturing methodologies such as Lean Management, Theory of Constraints, and Continuous Improvement.
Continuous this, continuous that! What do all these terms mean? Here is a little help understanding some of the common DevOps terms used on this site.
Continuous Integration - commonly called "CI," is used to describe software build automation tools but is more specifically a methodology for software build practices. It stresses a process of fast feedback where developers commit code daily, if not more frequent, and all developers work off the same source code trunk. It includes the practice of automated staged builds that include compilation, unit testing and integration testing as part of the build feedback loop.
Deployment Pipeline - is a representation of your delivery process and all the steps required. This includes the code deployment progression through a predetermined environment flow such as Dev, Test, Stage and Production.
Deployment Automation - is the automation of code deployments to each environment such as Dev, Test, Stage and Production. Code deployments typically include the software artifact, environment specific property files, service restarts, and can include numerous components such as the application servers, runtime dependencies, SSL configurations, load balancer configurations, etc.
Test Automation - is the automation of quality assurance for functional test and non-functional test scenarios.
Continuous Delivery - commonly called "CD," is the automation of the Deployment Pipeline and includes the scope of Continuous Integration, Deployment Automation and Test Automation. Continuous Delivery represents single button push automation starting with a code commit that triggers Continuous Integration processes, uses Deployment Automation to move code through each environment and uses Test Automation to run quality checks for promotion through the pipeline to validate production release readiness.
Continuous Deployment - is the same as Continuous Delivery, but includes the automated deployment of the Production Release based on the successful completion of all test automation. For example, if all the test automation is "green" the deployment is automatically released to production.
Deployment Orchestration - is the deployment automation of multiple application components and layers in a sequenced, orchestrated order to maintain application functionality. For example, it could include the deployment automation and sequencing of front-end application code updates, web services code updates, database schema changes, DNS updates, load balancing updates, and associated service restarts in a manner that maintains or restores end user functionality.
IT Delivery - is the primary DevOps concept in the Skydingo world. It's our term representing the IT value chain and a focus on maximizing the "flow" of business requests to deliver business value. This includes all the delivery complexity of Continuous Delivery, Deployment Orchestration, Dashboards of systems and process visibility; plus all technology layers from infrastructure, platforms and software.
Automation Is... Automation Framework Automation Breakdown - Data Sources - Build Automation - Test Automation - Platform Automation - Infrastructure Automation - Deployment Automation - Operations Automation
Copyright © 2011-2017 Skydingo Technology, skydingo.com. All Rights Reserved.