/DevOps-Automation

A public repository of work for the DevOps-Automation component of the undergrad squad for Doubtfire.

DevOps-Automation

DevOps automation is the addition of technology that performs tasks with reduced human assistance to processes that facilitate feedback loops between operations and development teams so that iterative updates can be deployed faster to applications in production. DevOps DevOps is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness through rapid, high-quality service delivery. DevOps practices bring development and operations team members together into a single DevOps team. This moves ideas and projects from development to production faster and more efficiently. DevOps involves more frequent changes to code and more dynamic infrastructure use when compared to traditional, manual management strategies. Automation Automation is the use of technology to perform tasks with reduced human assistance. Automation helps you accelerate processes and scale environments, as well as build continuous integration, continuous delivery, and continuous deployment (CI/CD) workflows. There are many kinds of automation, including IT automation, business automation, robotic process automation, industrial automation, artificial intelligence, machine learning, and deep learning.

Provisioning DevOps environments encompass a variety of technologies. Provisioning and deploying changes to these complex environments can be time-consuming and requires expert knowledge for each component. Applying Infrastructure as Code (IaC) approaches with automation allows IT teams to provide self-service capabilities and deliver preapproved resources and configurations with limited manual intervention.

Development Software developers require IT resources to create, continually test, and deploy new applications and services. Manual IT operations can delay resources and complicate the service delivery pipeline. It can impede proof-of-concept performance, ultimately resulting in slower development. By combining application programming interface (API)-centric design with automation, IT teams can deliver resources faster while supporting rapid proofs of concept, development, testing (using test automation open-source projects like Jenkins), and deployment.

CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment. CI/CD is a solution to the problems integrating new code can cause for development and operations teams (AKA "integration hell").

Specifically, CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment. Taken together, these connected practices are often referred to as a "CI/CD pipeline" and are supported by development and operations teams working together in an agile way with either a DevOps or Site reliability engineering (SRE) approach.