Skip to main content

Command Palette

Search for a command to run...

DevOps Concepts

Published
•4 min read•View as Markdown
V

Dedicated DevOps Engineer with a passion for automating infrastructure and streamlining workflows. Experienced in implementing CI/CD pipelines, containerization (Docker, Kubernetes), and cloud platforms (AWS). Seeking a challenging role to contribute to innovative projects and drive operational excellence

DevOps

DevOps is a software development methodology. It mainly merges Development and Operation components in the Software Development lifecycle. The important aspect of DevOps is to deliver software faster.

Example
For Instance, Developers build a new feature for the E-commerce platform like adding an order tracking feature but operations are not sure to release it may cause performance issues. With the DevOps approach, we can reduce the risks with the proper configuration of resources.

SDLC Models

Software Development Lifecycle - it is a process that defines Planning, Creating, testing, deploying, and maintaining software applications.

Example
Let's take Google Maps, When we need to travel from Point A to Point B we use Google Maps. This enables us to save a lot of time or else we need to manually follow the signs to get the destination Like wise SDLC provides a road map to develop software applications.

  1. Lean SDLC: It focuses on delivering the most value to users as quickly as possible.

  2. Information Technology Infrastructure Library SDLC: It is the Standardized framework for IT service management.

  • service strategy

  • service design

  • service transition

  • service operations

  • continual service improvement

  1. Agile SDLC: Iterative process and incremental development with continuous feedback. It mainly focuses on adapting to change requirements. This means frequent releases and rapid feedback cycles.

Why DevOps is important?

DevOps leverages Agile methodologies to foster collaboration between development and operations teams. From the Business point of view, DevOps increases the revenue and faster version upgrades of software.

History behind DevOps

In 2009 DevOps concepts came into the picture, it is a huge cultural shift in the IT industry.

DevOps stakeholders

Development Team

Operations Team

Security Team

Product Owners

Observability Engineer

Cloud engineer

Important terminologies Used

CI/CD

Infrastructure as Code(IAC)

Configuration Management

Version Control system

Repository

Continuous Testing

Deployment

Monitoring

DevSecOps

Observability

Provisioning

DevOps and Agile

Following are the benefits achieved with the combination of DevOps and Agile.

  • Faster Delivery

  • Improved Quality

  • Increased Reliability

  • Better Collaboration

  • Adaptability to change

DevOps Tools

DevOps Practices can be achieved with many technologies, while new frameworks will be released in the market regularly but the Tools will be standard.

ToolsTechnologiesUse Case
Version Control SystemGit, SubversionTrack Code Changes Overtime
CI/CD PipelineJenkins, GitLab CI/CD, Circle CI, Travis CIAutomate building, testing, and deploying code changes
Configure ManagementAnsible, Puppet, ChefManage Configuration of Servers
Infrastructure As CodeTerraform, AWS Cloud formation, AWS CDK, Azure Resource ManagerDefine and manage infrastructure as code files.
ContainerizationDocker, KubernetesPackaging applications with all their dependencies into standardized units for easier deployment.
Monitoring and observabilityPrometheus, Grafana, ELK Stack, Cloud WatchContinuously monitor the performance and health of the application and infrastructure.
SecuritySonarQube, Nexus RepositoryIntegrate Security Considerations, and fix security vulnerabilities in Code.
CommunicationSlack, Microsoft TeamsFacilitates the communication between developers, the operation team, and other cross-functional teams.
Ticketing ToolsJira, Service Nowto manage workflow
DocumentationConfluenceActs as a central hub for all the company documents.

Configuration Management

Configuration management is an approach to establishing the desired state of IT systems, Software applications, and infrastructure components.

Example
Imagine a company website is hosted on multiple web servers. To Set up and run a website we should need a desired state of system

The following are the requirements to achieve desired state

  • Operating System: Ubuntu 20.04

  • Web Server Software: Apache 2.4

  • Document Root: /var/www/HTML

  • Security Settings: Firewalls enabled with specific ports open (e.g., port 80 for HTTP access)

  • PHP Version: 7.4

Manually configuring this will be prone to error so we leverage tools like Ansible to achieve the desired state of the servers.

Continuous Integration and Deployment

Continuous Integration: It's a process where developers merge their code changes into a central repository, followed by automated builds, tests, and feedback loops.

Example
we use Jenkins as a continuous integration tool. To achieve CI we setup pipeline that we can build stages that compile the code and test it.

Deployment: It is the last step of the continuous integration process, usually passes all the tests and deploys the code into the desired environment - Testing, staging, and production.

Example
Web application update, Mobile App update