Skip main navigation

What is DevOps?

In this article, you’ll discover the significance of Infrastructure as Code by gaining an understanding of what DevOps is.

Infrastructure as code

Software and software development is more than just code. There are many people involved in releasing usable software that solves business problems and these stakeholders can be divided into two groups:

  • The development team consists of programmers, software testers, business analysts, architects and project managers.
  • The deployment team consists of infrastructure architects, security operations, network operations, database administrators, server administrators, release managers, production support and level 3 support teams.

The traditional process

Traditionally, development and deployment teams work in silos. The development team develops software and passes it along to the deployment team, who don’t really know what needs to be done.

The development team’s performance is measured on the speed of development, and the deployment team’s performance is measured on the stability of the environments in which the software is released.

What is the result of this speed vs stability paradox? The customer loses. The customer may be able to log onto a test environment and provide feedback but they still can’t use the software daily.

Bottlenecks

Apart from the development and deployment teams working towards separate goals and inevitably delaying the release of the software, other bottlenecks such as release processes can cause further delays.

To streamline your development and deployment processes, you may want to consider DevOps.

What is DevOps?

DevOps brings together development and operations with efficient tools and methodologies to deliver faster, high-quality applications and services continuously.

How to use DevOps

Although there is no one right answer for how to do DevOps, there are obvious ways that DevOps should not be done. DevOps is not a toolbelt that you can buy from the market.

You’re doing DevOps wrong if you’ve only branded one team as DevOps. DevOps is not a separate team. DevOps in isolation is not a tool. DevOps is not just a process that you can inherit and run with.

DevOps is the union of people, processes and tools to deliver continuous value to customers.

DevOps Practices

DevOps drives good development and operational practices that aim to shorten the systems development life cycle and provide continuous delivery with high software quality. The practices associated with DevOps drive are:

  • a cohesive team
  • a culture of modular architecture
  • a strong source of control
  • continuous delivery.

The Advantages of Implementing DevOps

DevOps not only amplifies the speed with which you can ship working software but also enables you to develop high-quality, secure, scalable solutions quickly and with less cost.

A dynamic, reliable experience

Customers expect a dynamic, reliable experience when they consume software and services. Teams must rapidly iterate on software updates, measure the impact of the updates, and respond quickly with new development iterations to address issues or provide more value.

Cloud platforms such as Microsoft Azure have removed traditional bottlenecks and helped commoditise infrastructure. Software reigns in every business as the key differentiator, and it’s an important factor in business outcomes.

In today’s environment, no organisation, developer, or IT worker can or should avoid the DevOps movement.

Implementing DevOps

For an organisation to succeed in DevOps, a culture of collaboration and trust must be established and fostered. High-performing DevOps teams adopt several of the following practices:

  1. Agile planning and project management techniques are used to plan and isolate work into sprints, manage team capacity, and help teams quickly adapt to changing business needs. In other words, break the work into sizeable chunks that are independent and isolated enough to be delivered in small increments.
  2. Strong source control (usually with Git) enables teams located anywhere in the world to collaborate and integrate code better.
  3. Continuous integration drives the ongoing code merging and testing which leads to finding defects early. Other benefits include less time wasted on fighting merge issues and more rapid feedback for development teams.
  4. Manage technical debt. Teams that can’t identify technical debt end up paying for it by getting trapped in the cycle of fixing defects rather than releasing new features.
  5. Continuous delivery of software solutions to production and testing environments helps organisations fix bugs and respond to ever-changing business requirements timeously.
  6. Production monitoring and application telemetry not only enables a view of the application health in the live site but also ensures a better understanding of how end-users are interacting with your applications.
  7. Infrastructure as Code (IaC) enables infrastructure to be treated like code and to be subject to the best practices that you’d apply to code in code reviews and unit testing. IaC enables the automation and validation of network and virtual machine creation and teardown to help deliver secure, stable application hosting platforms.
  8. Microservices architecture is leveraged to isolate business use cases into small reusable services. This architecture enables scalability and efficiency.
This article is from the free online

Microsoft Future Ready: DevOps Development, Implementation and Azure Automation

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now