Deciphering DevOps: what is is & why its important

This article is the basic concepts of DevOps, CI/CD for beginners. There are two parts:

Part 1: Deciphering DevOps: what is is & why its important

Part 2: Getting Started with CI/CD: A Beginner's Guide to Continuous Integration and Continuous Deployment ( coming soon )


What is DevOps?

DevOps is a term that refers to a set of practices that combines software development and IT operations to deliver software faster, better, and more reliably. DevOps is also a culture that fosters collaboration, communication, and continuous improvement among the teams involved in the software lifecycle. DevOps aims to break down the silos and barriers between developers, testers, operations, and managers, and to automate and streamline the processes of coding, building, testing, releasing, deploying, operating, and monitoring software

 

Some of the benefits of DevOps are:

  • Faster delivery time: DevOps enables shorter and more frequent development cycles, which means faster feedback and faster deployment of new features and updates.
  • Higher quality: DevOps improves the quality of software by implementing practices such as code review, testing, integration, and delivery. DevOps also reduces the risk of errors and bugs by using automation and standardisation.
  • Lower costs: DevOps reduces the costs of software development and maintenance by optimising the use of resources and eliminating waste. DevOps also lowers the costs of downtime and recovery by enhancing the reliability and availability of software.
  • Higher customer satisfaction: DevOps increases customer satisfaction by delivering software that meets their needs and expectations. DevOps also improves customer loyalty by providing better support and service.

Some of the challenges of DevOps are:

  • Cultural change: DevOps requires a shift in mindset and behaviour from the traditional way of working. DevOps demands more collaboration, transparency, accountability, and flexibility from the teams and individuals involved in the software lifecycle.
  • Skill gap: DevOps requires a diverse set of skills and competencies from the teams and individuals involved in the software lifecycle. DevOps requires not only technical skills, but also soft skills, such as communication, teamwork, problem-solving, and learning.
  • Tool integration: DevOps involves using various tools and technologies to support the different phases and aspects of the software lifecycle. DevOps requires integrating these tools and technologies to ensure a smooth and seamless workflow.

How is DevOps different from traditional IT?

The old lifecycle process, also known as the waterfall model, is a linear and sequential approach to software development. The DevOps process, on the other hand, is an agile and iterative approach that emphasises collaboration and automation. Here are some of the main differences between the two processes:

  • Phases: The old lifecycle process consists of distinct and separate phases, such as planning, analysis, design, implementation, testing, deployment, and maintenance. Each phase has to be completed before moving on to the next one, and there is little or no feedback or communication between the phases. The DevOps process breaks down the phases into smaller and more frequent cycles, such as code, build, test, release, deploy, operate, and monitor. Each cycle is integrated and aligned with the others, and there is constant feedback and communication between the cycles.
  • Roles: The old lifecycle process involves different roles and teams for each phase, such as developers, testers, operations, and managers. Each role and team works in isolation and has its own goals and responsibilities. The DevOps process involves cross-functional roles and teams that work together throughout the entire lifecycle. Each role and team shares the same goals and responsibilities and collaborates with each other.
  • Tools: The old lifecycle process uses different tools for each phase, such as code editors, compilers, debuggers, testing tools, deployment tools, and monitoring tools. Each tool is used separately and manually by the respective role or team. The DevOps process uses integrated tools that automate and streamline the entire lifecycle. Each tool is connected and synchronised with the other tools and can be used by any role or team.
  • Outcomes: The old lifecycle process results in long delivery times, high costs, low quality, and low customer satisfaction. The DevOps process results in short delivery times, low costs, high quality, and high customer satisfaction

Why is DevOps used?

The problems from on the old lifecycle are:

  • Long delivery time: The old lifecycle process requires each phase to be completed before moving on to the next one, and there is little or no feedback or communication between the phases. This results in long delivery times and delays in delivering new features and updates to the customers.
  • Low quality: The old lifecycle process does not emphasise testing and quality assurance throughout the development process. Testing is often done at the end of the lifecycle process, which makes it difficult to detect and fix errors and bugs. This results in low quality software that may not meet the customer's needs and expectations.
  • High costs: The old lifecycle process involves high costs of software development and maintenance, due to the inefficiency and waste of resources. The old lifecycle also involves high costs of downtime and recovery, due to the unreliability and unavailability of software.
  • Low customer satisfaction: The old lifecycle does not involve the customer in the development process, and does not respond to the customer's feedback and changes in requirements. This results in low customer satisfaction and loyalty, as the software may not deliver the value and benefits that the customer wants.

DevOps helps to solve the problems of the old lifecycle by:

  • Shortening delivery time: DevOps enables shorter and more frequent development cycles, which means faster feedback and faster deployment of new features and updates. DevOps also uses automation and standardisation to streamline and optimise the processes of coding, building, testing, releasing, deploying, operating, and monitoring software.
  • Improving quality: DevOps improves the quality of software by implementing practices such as code review, testing, integration, and delivery throughout the development process. DevOps also reduces the risk of errors and bugs by using automation and standardisation.
  • Reducing costs: DevOps reduces the costs of software development and maintenance by optimising the use of resources and eliminating waste. DevOps also lowers the costs of downtime and recovery by enhancing the reliability and availability of software.
  • Increasing customer satisfaction: DevOps increases customer satisfaction by delivering software that meets their needs and expectations. DevOps also improves customer loyalty by providing better support and service

 

(To be continued...)

Duoc Le, DevOps @UnDigital®

Full Article

Featured projects.

OZ Design Furniture

We executed a three-phased omnichannel headless ecommerce store, PIM and data feeds integration.

Sekisui House

We re-platformed 7 websites into a shared ecosystem and saved the business $200k in licensing and IP fees as well as thousands of dollars per month on maintenance fees.