chapter 4 Flashcards
Explain what DevOps is in a nutshell
Devops is a set of practices, tools, and cultural philosophy that automate and integrate the processes between software development and IT operations/infrastructure teams. The goal is to bridge the gap between it operations/infrastructure and software development. The devops lifecycle is all about agility and automation it consists of 8 phases.
Describe the DevOps lifecycle in general and why it is formed into an infinity sign
Because it is a process that keeps repeating itself, it never stops
Explain what GitHub Actions is as a DevOps tool and how it works in general
Github actions is a feature that lets you automate various actions related to your repository
Github calls the files and the system you set up with these files, workflows. However as we already stated they are more generally known as pipilines, devops pipelines or CI/CD pipelines
Describe the different parts and keywords of a .yml workflow file in detail name, on, jobs, display-hostname, runs-on, steps, - name, run
Name: the name of the workflow that will appear on github
On: the event that will trigger the workflow to run
Jobs: the collection of tasks that will be executed as part of the workflow
Display-hostname (onder jobs:) : name of the job
Runs-on: type of runner that the job will run on
Steps: the sequence of commands that will be executed as part of the job
- Name: name for the step of the job
Run: the command that will be executed by the runner VMs shell
Describe how the Plan Code Test Release Deploy steps of the DevOps lifecycle are reflected in the tools and the workflow pipeline file
Plan: this step involves defining the software requirements, designing the software solution, and choosing the tools and technologies to be used
Code: this step involves writing, editing and organizing the code using version control systems and code editors, developers also push their code changes to a remote repository where the code is continuously integrated with the main codebase
Test: this step involves verifying and validating the functionality, performance, and security of the code using various testing methods and tools. This happens automatically in a CI pipeline or workflow
Release: in this step, the software is prepared for deployment and released as a package, executable or container
Deploy: in this step, the software is delivered to the production environment and made available for use by the users
Explain what Continuous Integration / Continuous Delivery / Continuous Deployment is and when a pipeline reaches these points
Continuous integration or CI: promotes frequent integration of the changes done by developers into the existing code. This helps In catching issues early and maintaining a stable codebase as with every integration the included tests also run
Continuous delivery or CD: enables frequent delivery of the software to the customer or the team, this helps in reducing cost, time and risk of delivering changes and maintaining a high quality product as with every delivery the software is verified by tests and feedback
Continuous deployment or CD: enables automatic deployment of the software to the users