What is DevOps?
What is DevOps?
DevOps is an approach to developing and delivering software faster and safer. DevOps represents both a cultural and technological movement. To embrace DevOps, organizations must change their organizational structure culture and structure, such as adopting new tools and processes.
On the organizational side, participants must embrace collaboration across teams and share the goal of automation and consistent delivery for applications.
“DevOps is about building high-velocity organizations. Everyone who practices DevOps is doing it to create these types of companies. DevOps is born from the experiences of its practitioners. Although many people assume that the original DevOps practitioners were web innovators, that’s not necessarily true. What does matter is that DevOps practitioners are always honing their skills and looking for ways to improve,” argued the Embrace DevOps eBook.
What is DevOps Engineering?
DevOps is now coming with its own list of technical and job categories, one of which is DevOps engineering and, of course, DevOps engineers.
A DevOps engineer is a technical position working with developers, system operators (SysOps), and other IT stakeholders such as IT operations and quality assurance. These engineers oversee code releases, which are frequent in Agile environments that adopt continuous integration/continuous deployment (CI/CD) processes.
DevOps engineering teams also work on the infrastructure upon which software relies, ensuring resources that support the software are properly deployed and provisioned; the right deployment model is chosen; and the software is tested and validated before release. Moreover, they are often charged with maintaining the underlying environment and improving it through automation.
Much Agile and DevOps work occurs in the cloud, making for easier collaboration and doing away with the need to manage on-premises infrastructure.
The same is increasingly true for DevOps tools themselves.
Work in the cloud and managing cloud applications and infrastructure is fundamentally different from on-premises.
The benefits of DevOps in the cloud are myriad. For one, they don’t have to worry about hardware, but can scale at will just by getting more capacity, whether for computing or storage.
Deploying from the cloud and then hosting the app in the cloud is far easier than installing on on-premises end points. You don’t have to configure the app for end points and you know everyone has the same version.
DevOps professionals are concerned with the security of their applications throughout their entire lifecycle, including iterations which occur frequently due to Agile methods. CSPM should be baked into all stages of the application development process with security tracked, managed and guaranteed through continuous monitoring.
When it comes to CSPM, the earlier the better. “A core tenet of DevOps is to do things at the point where it costs the least amount of money to fix. The earlier you can identify issues in the process of creating resources, the faster you can give feedback to the people who are creating and consuming resources in the cloud. DevSecOps solutions such as CSPM, IaC scanning and Policy as Code help organizations merge these processes and get people on the same page,” claimed the For Better Security and Efficiency, Add CSPM to DevOps Processes blog.
DevOps vs. DevSecOps
DevSecOps is an expansion of the DevOps concept including security as part of the DevOps framework. DevSecOps has DevOps’ back by integrating security into the entire software development lifecycle (SDLC).
“DevOps combines software development (Dev) and IT operations (Ops). Merging the two disciplines brings IT operations into the entire development lifecycle. DevOps shortens the development process and provides continuous delivery and higher software quality, usually implemented using agile software development practices. Chef automation makes DevOps practices easier by using a common language across engineering teams,” explained the 12 Common DevSecOps Definitions blog. “DevSecOps combines development, security, and operations. Security is a shared responsibility by all teams and starts at the beginning of the software-development lifecycle and continues throughout. Chef Policy as Code brings together configuration management, security, and visibility.”
DevOps Best Practices
Change the Developer and Operations Culture Developers and operations need to think of themselves as silos, but through integration and collaboration they also need to create a new, synergistic approach.
Go Agile As an iterative approach to software development, Agile delivers software faster by focusing on and delivering smaller increments. Along the way, objective plans and the code itself are continuously evaluated.
Shift Left Be sure to make testing an early part of the development and coding process. Continuous integration and continuous delivery (CI/CD) maintains your ability to shift left.
Automate By codifying everything, DevOps gains standardization of processes and policies which are implemented as repeatable functional code. This is the key to automating the development and deployment process.
The Embrace DevOps eBook has a great take on DevOps principles, specifically highlighting five. Here is what the eBook has to say:
“Safety Safety can mean human safety, or it can mean safety of information. It can also have a broader meaning, which is the ability of individuals to act without fear of unintended consequences. DevOps builds organizations where people can express themselves without getting hurt.
Knowledge Access to knowledge is a leading indicator of social progress. The goal isn’t to minimize the amount of knowledge you need. The goal is to make sure people can access the knowledge they need when they need it. For example, can your engineers see the revenue the company generates and why? If they can’t, how can they even begin to understand what products and features will improve the business?
Freedom Freedom is the power to act or speak or think without hindrance or restraint. DevOps empowers people to act. DevOps means that you trust the people in your organization, no matter what their job, and give them the freedom to do what they know best.
Contentment Contentment means being satisfied with the things you have. Constant happiness is not a realistic goal for a DevOps practice. You will always have bad days. Contentment is a realistic goal. If you feel good about the people you work with, the systems you’re building, and the outcomes you expect, you can achieve contentment. Even on bad days, you’ll have a community of people you can rely on to help you get through.
People over products A final marker of DevOps practitioners is that they put people over products and companies. DevOps practitioners, when they talk about what they’re doing and why they’re doing it, talk about people before they talk about the company or the products the company makes. DevOps practice prioritizes the human beings who are doing the work.”
There are two ways of looking at DevOps management. There are DevOps management technology solutions, such as those offered by Chef, similar in some ways to network management or system management where the terms refer to software tools and also the IT roles that are responsible for these areas. These DevOps solutions manage DevOps by monitoring, automating and countless other ways.
DevOps Managers are people that are responsible for making sure DevOps policies and procedures are properly followed. Theses can include:
- Configuration management
- Change management
- Problem management
- Release and deployment management
- Service monitoring, and
DevOps itself is seen by some as a methodology designed to dramatically improve the software development lifecycle. This method, which repeats itself as software iterates, has these key steps:
DevOps itself relies on other methodologies, including:
- Agile development
The Embrace DevOps eBook walks through the importance of having DevOps roadmaps, adding steps to create them. It begins by deciding to pursue a particular development project under the principle that, in an enterprise, you should treat employees as if they are customers.
“To begin, every product needs a strong value proposition. In other words, it should be a product that people will love. Liking a product isn’t enough,” the eBook argues. “Start by focusing on what customers need, not on what they want. A single customer might be adamant about needing a feature, but if none of your other customers ask for it, it’s probably a feature that only the particular customer wants. If you have fifty customers asking for a feature, it’s something your customers need.”
- Start with a vision.
- Align the vision with what people want.
- Balance the desire to innovate with current employee/customer needs.
- Examine and group finding from the steps 1 through 3 into themes. Link each theme with a desired outcome.
- Distill those themes down into features, then find out if these features meet end user needs.
The DevOps lifecycle is unlike typical lifecycles which have a beginning and an end. DevOps lifecycles loop continuously until the software is decommissioned and no longer worth updating.
The software development lifecycle (SDLC) — the pure development part of the overall DevOps lifecycle — has eight basic phases, as the graphic below shows:
The DevOps lifecycle also has several unique components, including:
- Continuous development
- Continuous integration
- Continuous testing
- Continuous deployment, and
- Continuous monitoring
Below is one take on the phases of the DevOps lifecycle:
Source: JanBask Training
If you want to excel at DevOps, the key is to automate everything. Using code to represent tasks is critical. “Codifying everything brings in standardization of processes and policies across the organization. The processes are simplified into repeatable functional code, and this makes it easier to automate the development and deployment processes while reducing human errors significantly,” the Embrace DevOps eBook said.
The end result is continuous automation. “Continuous Automation is the practice of automating every aspect of an application’s lifecycle to build and deploy software and changes quickly, consistently, and safely,” the Understanding Continuous Automation blog argues. “It integrates automation of infrastructure, applications, and compliance, defining elements as code to make it easy to manage multiple versions, test for a variety of conditions, change when needed, and apply at scale. It is a sophisticated approach to building, deploying, and managing software.”
DevOps Automation Tools
DevOps pros can’t just snap their fingers and automate manual process. Instead solutions, such as those from Chef, do the heavy lifting. “Chef Enterprise Automation Stack helps your organization become a Coded Enterprise, defining infrastructure, security, and application requirements as code to drive automation at scale and focus on what really matters: delivering value to the customer,” the Chef Enterprise Automation Stack page explains.
Automated DevOps Pipeline
DevOps pipelines move faster and more securely with automation, resulting in the Holy Grail: continuous delivery pipelines. Chef makes this happen.
“Most organizations already have a source control, build server, and technology provisioning process. Chef doesn't replace these tools but makes them easier to manage, scale and validate. For example, tools like Jenkins require users to create and maintain individual pipelines for each application,” the Continuous Delivery Pipeline Automation Tools page suggests. “Chef creates universal, compliant artifacts that can be consumed by any pipeline automation tool (Jenkins, Azure DevOps, Build kite, etc.), deployed to almost any environment (Windows, Linux, Docker, Cloud Platforms, Kubernetes, VMware, etc.) and validated in real-time.”
DevOps Continuous Integration
Continuous integration depends on developers regularly merging code changes and updates into a central repository that holds changes from other team members, and then run automated builds and tests to ensure the security, functionality and performance of the software.
DevOps Continuous Delivery
Continuous delivery in the next step in the continuous integration/continuous deployment (CI/CD) tag team process. “Continuous Delivery (CD) is a set of capabilities that enables application and DevOps teams to get changes of all types into production quickly, safely and reliably. Using pipelines, organizations can define a consistent path to production where changes can be peer reviewed, automatically tested, and audited as they make their way to production,” Chef’s Continuous Delivery Pipeline Automation Tools page argues. “CD goes beyond application code changes automating not only the continuous integration of the software but also the delivery of infrastructure, supporting systems and requirements for running and maintaining the application.”
How Chef DevOps Solutions Standout
DevOps as a Service
“DevOps as a Service is a delivery model for a set of tools that facilitates collaboration between an organization's software development team and the operations team. In this delivery model, the DevOps as a Service provider provides the disparate tools that cover various aspects of the overall process and connects these tools to work together as one unit. DevOps as a Service is the opposite of an in-house best-of-breed toolchain approach, in which the DevOps team uses a disconnected collection of discrete tools,” argued TechTarget in its DevOps as a Service (DaaS) blog.
Chef DevOps solutions are available on-premises or as a SaaS service. This makes it a snap to manage your Chef deployments on the cloud, including Amazon AWS and Microsoft Azure. Chef SaaS gives you on-demand access to all Chef solutions, can accelerate automation across your organization, and transform your shop into a compliant coded enterprise.
Get Started with DevOps
DevOps Success Stories
Here are three DevOps customer success story that show the power of Chef:
Get started with DevOps with the help of Introduction to DevOps.
Get the Book on DevOps
Want to learn all there is to know about DevOps? Simply download the Embrace DevOps eBook.
Here are four webinars to boost your DevOps knowledge: