DevOps Flashcards
What is Continuous Integration?
It is a practice where new code changes to an app for example are regularly built, tested and merged. Why is this important? Because it avoids this issue where many developers are working on multiple branches in development at once that might conflict with each other.
What is Continuous Deployment and Delivery?
CD in CI/CD usually refers to either Continuous Deployment or Continuous Delivery. Deployment, as the name implies, automatically deploys some changes to production whereas Delivery simply releases the changes which are ready to be deployed in production.
What is DevOps and what are some of its practices?
It is a combination of practices and tools to deliver applications and services at high velocity. It is a combination of Dev (Development) and Ops (Operations) into a single unit instead of treating it as different things or teams.
- CI/CD is one practice which frequently deliver apps by introducing automation into the stages of app development.
- Version Control is another practice where manage code in versions
- Infrastructure as Code is another practice where you manage resources using code which helps deploying resources in a reliable, repeatable and controlled way.
Explain what Docker is, and the difference between a Docker Image and a Docker Container
Docker is a platform for developing, shipping, and running applications. It enables you to separate your application from your infrastructure so you can deliver software quickly. It fixes the “it works in my computer” issue.
A Docker Image is a way to package up applications and server environments into a single place. Suppose you have a web server that uses Ubuntu, Apache Server, MySQL and PHP. You can create a Docker Image that packages all those services into a single place.
A Docker Container is a runnable instance of an Image. You can think of it like a Virtual Machine. The main difference though, is that Docker Containers share the host operating system which makes them lightweight.
What is Jenkins?
It is automation tool that allows you to automate tasks related to building, testing and delivering or deploying software. For example, you can automatically test, build and deploy every time you make a commit.
What is Jenkins Pipeline?
It is a sequence steps or events that happen in the code lifecycle. Starting from the build, to testing and deployment.
What are the types of Jenkins Pipelines?
Declarative Pipelines: Makes use of generic predefined build steps/stages (i.e code snippets)
Scripted Pipelines: Custom defined using a Groovy syntax.
Explain Jenkins Multibranch Pipeline
It is a pipeline that can be configured to multiple branches within a single repository.
What are the ways to trigger a Jenkins Job/Pipeline?
Manually from the web application.
API POST request
Time-based like a cron-job
Event-based like SCM actions (Git commit, Pull request)
What is Blue Ocean in Jenkins?
It is a redefined user experience for Jenkins. It reduces clutter and increases clarity.