Day 1 Introduction to DevOps
Table of contents
No headings in the article.
#90DaysOfDevOpsChallenge:
- What is Devops?
Ans: DevOps is a methodology that helps both Software Development and Operations teams to work in collaboration and efficiently. It helps in evolving, improving and delivering the product at a faster pace than using the traditional software development and infrastructure management processes. This speed enables organization to server better to their customers.
Devops lifecylce > Plan > Code > Build > Test > Release > Deploy > Operate > Monitor
- What all are important for DevOps?
Ans: DevOps Transformation includes People, Proccesses and Platform. To add value to the stakeholders need to be identified. Highly motivated people with affective communication skills are necessary. Devops is all about improving processes that improve value and delivery to the Cusotmers. There are many tools available for DevOps implemenation and the people involved need to choose suitable tools for the particular task. DevOps is not just tools, it is a methodology.
- CI/CD DevOps basics
Ans: Continous Integration - CI is a software development practice where developers regularly merge their codes to a central repository after which automated builds and tests run. It basically aligns with the Code and Build phases of the DevOps pipeline.By merging smaller changes more regularly, these issues become smaller and easier to manage, improving overall productivity and sanity.
Continoud Depolyment - CD is a software development practice where the code changes are automatically build, tested and prepared for a release to production. It expands upon continous integration by deploying all code changes to a testing environment and or a production environment after the build stage. When continuous delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process.
- DevOps tools
Ans: The DevOps model relies on effective tooling to help teams rapidly and reliably deploy and innovate for their customers. These tools automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps. AWS provides services that are designed for DevOps and that are built first for use with the AWS cloud.
Version Control Systems: > Git: A distributed version control system used for tracking changes in source code during software development. It supports collaboration, branching, merging, and code review workflows. > Continuous Integration/Continuous Deployment (CI/CD) Tools: > Jenkins: An open-source automation server that facilitates building, testing, and deploying applications. It integrates with various tools and supports creating pipelines to automate CI/CD workflows. > GitLab CI/CD: A DevOps platform that provides built-in CI/CD capabilities, including source code management, continuous integration, and deployment pipelines.
Configuration Management Tools: > Ansible: An open-source automation tool that allows you to define and manage infrastructure as code. It uses simple declarative syntax and SSH to configure and manage systems. > Chef: A configuration management tool that enables infrastructure automation and configuration management using a domain-specific language (DSL) called "recipes." > Puppet: A configuration management tool that uses a declarative language to define system configurations. It helps automate the provisioning, configuration, and management of infrastructure.
Containerization and Container Orchestration: > Docker: A platform that enables you to package applications and their dependencies into lightweight containers, providing consistent environments for running applications. > Kubernetes: An open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides features like load balancing, service discovery, and self-healing.
Cloud Platforms and Infrastructure as Code (IaC) Tools: > Amazon Web Services (AWS): A cloud computing platform that offers a wide range of services for computing, storage, networking, and more. AWS CloudFormation is an IaC tool for provisioning AWS resources. > Google Cloud Platform (GCP): A suite of cloud computing services provided by Google. GCP provides services for compute, storage, networking, and machine learning. Deployment Manager is the IaC tool for GCP. > Microsoft Azure: A cloud computing platform by Microsoft, offering a range of services for building, deploying, and managing applications. Azure Resource Manager is the IaC tool for Azure.
Monitoring and Logging Tools: > Prometheus: An open-source monitoring and alerting toolkit that collects metrics from various sources, stores them, and provides a querying language for analysis. > Grafana: A visualization tool that works with various data sources, including Prometheus, to create dashboards and visualize metrics and logs. > ELK Stack: A combination of Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine, Logstash is a data collection and parsing pipeline, and Kibana is a data visualization dashboards