The processes used to build and deploy today’s applications have undergone a dramatic shift. Efforts that were once segregated and performed in isolation are being joined into a single process flow that incorporates both development and operations known as DevOps. DevOps a combination of Software Development and IT Operations bringing together its people, processes and technology with the aim to deliver software rapidly, frequently and reliably.
The DevOps approach calls for a shift in perspective from one that sees application development as a set of discrete, independent stages to one that incorporates the entire application delivery chain into a continuous, integrated process flow that includes everything from application design to system monitoring Below are the phase dev-ops teams during the application development usually go through:
In the plan phase, DevOps teams ideate, define, and describe features and capabilities of the applications and systems they are building. They track progress at low and high levels of granularity—from single-product tasks to tasks that span portfolios of multiple products. Creating backlogs, tracking bugs, managing agile software development with Scrum, using Kanban boards, and visualizing progress with dashboards are some of the ways DevOps teams plan with agility and visibility.
The development phase includes all aspects of coding—writing, testing, reviewing, and the integration of code by team members—as well as building that code into build artifacts that can be deployed into various environments. Teams use version control, usually Git, to collaborate on code and work in parallel. They also seek to innovate rapidly without sacrificing quality, stability, and productivity. To do that, they use highly productive tools, automate mundane and manual steps, and iterate in small increments through automated testing and continuous integration.
Delivery is the process of deploying applications into production environments in a consistent and reliable way, ideally via continuous delivery. The deliver phase also includes deploying and configuring the fully governed foundational infrastructure that makes up those environments. These environments often make use of technologies like Infrastructure as Code (IaC), containers, and microservices.
DevOps teams define a release management process with clear manual approval stages. They also set automated gates that move applications between stages until they’re made available to customers. Automating these processes makes them scalable, repeatable, controlled, and well-tested.
The operate phase involves maintaining, monitoring, and troubleshooting applications in production environments, usually hosted in public, private and hybrid clouds. In adopting DevOps practices, teams work to ensure system reliability, high availability, and aim for zero downtime while reinforcing security and governance.
The DevOps approach brings development and operations together with the goal of streamlining application building and deployment into an automated process that takes into account the entire delivery chain.