What is DevOps, Cloud, Agile, CICD, and Azure DevOps

Piyush Sachdeva
5 min readApr 3, 2024

--

This blog post is part of the Azure DevOps Zero to Hero series, featuring full-length YouTube videos with graphics, animations, concepts, and hands-on demos of real-time projects.

The below topics will be covered in this blog:

  • What is Cloud Computing
  • IaaS VS PaaS VS SaaS
  • What is a Shared Responsibility Model
  • What is a Traditional Build and Deployment workflow
  • What is a Waterfall model in SDLC
  • Problems with the traditional software development life cycle (SDLC)
  • What is Agile, and how does it solve the above challenges
  • What is DevOps and Why It Matters
  • What is CI/CD
  • What is Azure DevOps
  • Azure DevOps Pricing
  • Azure DevOps hosting options: Azure DevOps Services VS Azure DevOps Server

If you are a visual learner, feel free to checkout this video with detailed explanation from beginners point of view, else continue reading the blog:

Azure DevOps Day- 1/16

What is Cloud Computing?

Before jumping into cloud computing, let’s understand why it’s necessary. 🤷‍♂️

Imagine you’re the owner of a small IT firm with dreams of scaling your business. However, traditional expansion comes with hefty upfront costs (CapEx) and recurring expenses (OpEx), slowing your growth. Here’s where cloud computing steps in as a game-changer.

CapEx vs. OpEx: Upfront expenses, like office space, hardware, and salaries, are termed CapEx.

Additionally, ongoing operational expenses like maintenance and utilities are termed OpEx.

These hurdles hinder scalability and efficiency. Cloud computing provides access to computing resources and services over the Internet without the need for upfront investment.

Cloud computing allows you to rent computing resources online from a provider instead of buying and maintaining the hardware yourself.

Benefits of Cloud Computing:

  • Minimize Expenses
  • High Scalability
  • High Availability
  • Security
  • High performance

IaaS VS PaaS VS SaaS:

In the cloud paradigm, services are categorized into IaaS, PaaS, and SaaS. Infrastructure as a Service (IaaS) provides complete control over infrastructure resources, similar to renting virtual machines.

PaaS(Platform as a Service) refers to a type of computing model that provides a runtime environment and platform for deploying applications. This model abstracts the underlying infrastructure, allowing developers to focus on creating and deploying their applications without worrying about the underlying infrastructure's technical details.

Software as a Service (SaaS) provides hosted applications on the cloud, eliminating the need for deployment and management.

IaaS V/s PaaS V/s SaaS

Shared Responsibility Model:

Cloud providers follow the Shared Responsibility Model, which clearly outlines the responsibilities of both the provider and the customer. In the Infrastructure-as-a-Service (IaaS) model, customers are responsible for managing the operating system and above, while the provider takes care of the underlying infrastructure. On the other hand, in the Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) models, the provider takes on more responsibilities, making it easier for the customer to manage their resources.

Shared Responsibility Model in a Cloud

Traditional software development used to follow a linear waterfall model which involved sequential phases with little room for flexibility.

There were a lot of limitations with the traditional development workflow, some of which are outlined below:

Waterfall methodology best suits projects with clear, fixed, and documented requirements, well-defined technical tools, architectures, and infrastructures, and a short life cycle.

Image showing a Waterfall model used in SDLC

Agile methodologies have introduced iterative development, which emphasizes collaboration and adaptability. This approach allows teams to continuously improve their work by breaking down projects into smaller, manageable pieces and incorporating feedback.

Agile Methodology

DevOps expands on integrating development and operations, emphasizing automation, monitoring, and continuous feedback.

DevOps

It includes various phases:

Continuous integration (CI) automates code integration from multiple contributors into a single project. It includes Build, test, security scans, etc.

Continuous deployment (CD) is an automated software release process that uses rigorous testing to validate changes before autonomous deployment to production. It doesn't require manual intervention from the code commit until it's deployed into production.

Continuous delivery (CD) refers to the automated process of delivering completed code to testing and development environments, providing a consistent and efficient way to deploy code. A manual intervention is required to deploy the code to production.

Continuous monitoring is an automated and ongoing process for evaluating the performance and security of an organization's systems and processes.

Introduction to Azure DevOps:

Azure DevOps is a comprehensive suite of services that enables you to implement end-to-end DevOps in your organization. The suite includes services such as Azure Repos, Boards, Wiki, Build and Release pipelines, Test plans, and Artifacts.

Azure DevOps Signup Link — https://dev.azure.com

Azure DevOps offers a user-friendly interface for managing projects, repositories, pipelines, testing, and artifacts. Users can access many tools and services by signing up for Azure DevOps Services, with public or private project configuration options.

Understanding Pricing and Service Limitations: The pricing for Azure DevOps is flexible and offers a free basic plan for up to five users. However, there may be additional costs for extra features like test plans. On the bright side, organizations with Visual Studio subscriptions can access Azure DevOps for free and added benefits.

Azure DevOps offers two types of hosting plans:

  1. Azure DevOps Services — Cloud offering
  2. Azure DevOps Server — On-Premises implementation (or) Own data center

Conclusion:

In this guide for beginners, we have simplified the concepts of cloud computing, DevOps, and Azure DevOps. Understanding these concepts can enhance scalability, efficiency, and collaboration in software development. The next blog will share more insights and practical demonstrations on cloud computing and DevOps. Keep learning, and have a great time!

References:

--

--