What is DevOps?
You might have noticed that publishing a website takes a lot of work! Because there’s so much involved, web development teams assign a specific role to manage web deployment. The name for web developers that manage the publishing process is development operations (DevOps).
Note: DevOps includes deployment work beyond the deployment of a website.
Historically, development and operations, and even testing, have been siloed. A work function is siloed when it operates in relative isolation to other functions. For example, can you imagine how chaotic party planning would be if the person in charge of arranging the tables and chairs didn’t interact with the person organizing the decorations, and neither of them interacted with the people responsible for the food?
DevOps is an approach to deployment that promotes closer collaboration between the business that uses the website, website development, and information technology (IT) operations.
DevOps brings functions together to improve and reduce the time needed to address user feedback. With continuous delivery, continuous deployment, and continuous monitoring of applications, teams can:
- Respond to users faster and build engaging user experiences
- Continuously deploy websites into development, test, and production environments
- Scale DevOps successfully without disrupting the business
- Ensure consistency from testing to production
- Facilitate improved website quality and stability by releasing website features more frequently
- Help reduce costs through improved efficiency and reduced outages
The DevOps lifecycle
The DevOps lifecycle consists of a series of iterative, automated development processes, or workflows, within a larger, automated development process. Take a moment to review the following diagram. Notice that it’s a repeatable cycle with six general workflows: Planning, development, integration, deployment, operations, and learning. The diagram also illustrates the continuous process of testing, security, and compliance throughout the DevOps lifecycle.
The lifecycle is designed to enable web developers to release high-quality websites quickly. Here are the six general workflows that web developers follow in a typical DevOps lifecycle.
Planning (or ideation)
In this workflow, teams plan what new features and functions a website should have for its next release. They develop these features and functions based on user feedback and by studying how users interact with previous releases of the website. The goal in the planning stage is to figure out how to prioritize which features should go in new versions of the website by creating a backlog. A backlog is a list of features and functions the web development team needs to build.
Development
This is the programming step, where developers test, code, and build new and enhanced features based on items in the backlog. Web developers often use their individual computers to write and test the website code before sending it to the continuous delivery system.
Integration
In this workflow, new code is integrated into the existing code and tested before it’s deployed to the live website. The most common automation activities include merging code changes into a primary code file, checking out the code from a source code repository, testing it, and making it ready for use.
Deployment
This workflow involves pushing the new or updated code to a staging environment for testing. DevOps engineers will test for quality and legal compliance. If they find errors or defects, developers have a chance to fix any problems before users see them. Sometimes DevOps engineers deploy an updated website first to a small group of users and then gradually to all users when the engineers are confident it has no major problems.
Operations
In this workflow, DevOps engineers monitor the updated website for performance and behavior to ensure that all the target users can access it. This is called availability. Operations ensure that features are running smoothly and that users experience no interruptions. They make sure the network, storage, web server, and security features are all healthy. If something goes wrong, operations identify the problems and notify the appropriate people to fix them.
Learning (or continuous feedback)
This workflow is when members of the team get feedback from end users and customers on how the website is functioning. They take the feedback back to the website development team for enhancements and features they should consider adding to the next release. This workflow takes the team back to the planning workflow, where they “continuously improve”!
Testing, Security, and Compliance
Throughout every phase of the lifecycle, team members should be continually testing their changes. They also should be adhering to security guidelines and requirements, and ensure their code meets the compliance requirements of their organization.
These are general workflows that web development teams implement. Teams can modify the lifecycle by adding or removing workflows. This lifecycle has proven to be a model that works well and has helped many development teams create quality websites for their users.