What is DevOps?

DevOps (a portmanteau of “development” and “operations”) is the combination of practices and tools designed to increase an organization’s ability to deliver applications and services faster than traditional software development processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

In simple terms, DevOps is about removing the barriers between traditionally siloed teams, development and operations. Under a DevOps model, development and operations teams work together across the entire software application life cycle, from development and test through deployment to operations.

Benefits of DevOps

  • Speed. DevOps practices let you move at the velocity you need to innovate faster, adapt to changing markets better, and become more efficient at driving business results.
  • Rapid delivery. When you increase the pace of releases, you can improve your product faster and build competitive advantage.
  • Reliability. DevOps practices like continuous integration and continuous delivery can ensure the quality of application updates and infrastructure changes so you can reliably deliver at a more rapid pace while maintaining an optimum experience for end users.
  • Improved collaboration. Under a DevOps model, developers and operations teams collaborate closely, share responsibilities, and combine their workflows. This reduces inefficiencies and saves time.
  • Security. You can adopt a DevOps model without sacrificing security by using automated, integrated security testing tools.

Synopsys helps you build security into DevOps

Learn more

 

DevOps Security and DevSecOps

DevOps security, more commonly referred to as DevSecOps, refers to the discipline and practice of safeguarding the entire DevOps environment through strategies, policies, processes, and technology. The DevSecOps philosophy is that security should be built into every part of the DevOps life cycle, including inception, design, build, test, release, support, maintenance, and beyond.

Traditional security operates from the position that once a system has been designed, its security defects can then be determined and corrected before release. With the change to a DevOps model, traditional security practices occur too late in the development cycle and are too slow for the design and release of software built by iteration. Thus, they can become a major roadblock to delivering applications and services at speed.

With DevSecOps, security becomes the focus of everyone on a DevOps team. DevSecOps has the goal of implementing security decisions at speed and scale without sacrificing safety. DevSecOps involves ongoing, flexible collaboration between release engineers and security teams. The concepts of “speed of delivery” and “building secure code” are merged into one streamlined process. Security testing is done in iterations without slowing down delivery cycles. Critical security issues are dealt with as they become apparent, not after a threat or compromise has occurred.

How to find the right DevOps tools

DevOps practices rely on effective tools to help teams rapidly and reliably deploy and innovate for their customers. These tools should automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high-velocity pace that is DevOps.

The DevOps workflow consists of phases:

  • Planning the next iteration of the product’s development
  • Building the code
  • Testing and deploying to the production environment
  • Delivering product updates
  • Monitoring and logging software performance
  • Gathering customer feedback

Planning. Schedule planning and task tracking tools are needed to ensure the DevOps team knows what tasks are at hand, what is currently being done, and whether there are any risks of falling behind schedule. Tools like Confluence and Jira help DevOps teams achieve a seamless and efficient project management cycle and ensure timely product delivery.

Build and delivery. Developers need rapid deployment of development and testing environments and can’t wait long for repairs when something goes wrong. Docker containerization ensures consistency across multiple development and release cycles and provides repeatable development, build, test, and production environments. Other popular tools for this phase include KubernetesTerraformChefAnsible, and Puppet.

Testing. Look for tools such as JenkinsCircleCI, and GitLab CI, which help minimize the time and effort devoted to testing without compromising the code quality or user experience.

Software monitoring and logging. Once software is moved to production, it must be monitored to ensure stable performance and increased customer satisfaction. This stage also involves performance analysis and logging, raising smart alerts on various issues, gathering customer feedback, and so on. Tools for performing these tasks include PrometheusGrafanaElastic (ELK) StackSplunk, and Sumo Logic.

Enable DevSecOps with IAST

Watch webinar

DevOps methodologies

DevOps is the direct descendant of agile software development, born from the need to keep up with increased software development velocity and throughput agile methods. Advancements in agile development highlighted the need for a more holistic approach to the software delivery life cycle, resulting in DevOps.

“Agile development” is an umbrella term for several iterative software development methodologies, many of which have carried over to DevOps:

  • Scrum—a framework in which people can address complex adaptive problems while delivering products of the highest possible value.
  • Kanban—a method for managing the creation of products with an emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanban is a process designed to help teams work together more effectively.
  • Scaled Agile Framework (SAFe)—a set of organization and workflow patterns intended to guide enterprises in scaling lean and agile practices. SAFe is one of a growing number of frameworks that seek to address the problems encountered when scaling beyond a single team.
  • Lean development—a translation of lean manufacturing principles and practices to the software development domain. Lean offers a conceptual framework, values, and principles, as well as best practices derived from experience, that support agile organizations.
  • Extreme programming (XP)—a software development methodology intended to improve software quality and responsiveness to changing customer requirements. XP advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Other elements of extreme programming include programming in pairs or doing extensive code review, unit testing of all code, not programming of features until they are needed, a flat management structure, code simplicity and clarity, expecting changes in the customer’s requirements as time passes and the problem is better understood, and frequent communication with the customer.

Features and advantages of DevOps practices and processes

Several key practices can help organizations innovate faster through automating and streamlining the software development management process. One fundamental DevOps practice is to perform very frequent but small updates. These updates are usually more incremental than the updates performed under traditional release practices. Organizations using a DevOps model deploy updates much more often than organizations using traditional software development practices.

Communication and collaboration are keystones of the set of DevOps practices. Automation of the software delivery process establishes collaboration by physically bringing together the workflows and responsibilities of development and operations. Communication across developers, operations, and even other teams, such as marketing and sales, allows all parts of the organization to align more closely on goals and projects.

DevOps practices such as continuous integration and continuous delivery let DevOps teams deliver rapidly, safely, and reliably. Monitoring and logging help DevOps teams track the performance of applications so they can react quickly to problems.

Microservices

The microservices architecture is a design approach to build a single application as a set of small services. Each service runs in its own process and communicates with other services through a well-defined interface using a lightweight mechanism. You can use different frameworks or programming languages to write microservices and deploy them independently, as a single service, or as a group of services.

Organizations may also use a microservices architecture to make their applications more flexible and enable quicker innovation. Typically, each service is paired with a small, agile team who takes ownership of the service.

Continuous integration and continuous delivery

DevOps practices such as CI/CD let DevOps teams deliver rapidly, safely, and reliably. CI is a software development practice where developers regularly merge their code changes into a central repository, followed by automated builds and tests. The key goals of CI are to find and fix bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates. CD expands on CI by deploying all code changes to a testing or production environment after the build stage.

Monitoring and logging

By capturing and analyzing logs generated by applications, DevOps teams can better understand how software changes or updates may affect users.

Building a secure DevOps model

Moving to DevOps and DevSecOps is not a destination. It is a journey. DevOps is fundamentally changing how development and operations are done today. You can use the DevOps practices, process, frameworks, and workflow, based on the DevOps philosophy, to build security into your software development life cycle at speed and scale without sacrificing safety, while minimizing risks, ensuring compliance, and reducing friction and costs. DevOps and DevSecOps allow development, operations, and security teams to balance security and compliance with speed of delivery, and to build security into the full SDLC.

eBook
White Paper