QC 3 Flashcards
What is DevOp?
DevOp is the development and operations team working together to bring the latest features and versions of software to the customer as fast as possible.
What is CI in DevOp?
Continuous Integration. Continuous Integration helps to find defects early by merging and testing code continuously.
What are some tools involved with CI?
Pipelines: Azure Pipelines, Github Actions, Jenkins, AWS
Code Analysis: Sonar Cloud
What is CD?
Continuous Deployment or Continuous Delivery. When someone of authority manually deploys the code to production after much deliberation.
What is the flow if CI/CD?
File -> Source Control (commit changes)
- > Build (run build and unit tests)
- > Staging (deploy to test environment, run integration tests, load tests, and other tests)
- > Production (deploy to production environment)
How do you achieve DevOps
- CI/CD
- Utilizing VCS
- Agile planning
- Monitoring and logging
- Designing for scale
Marriage of development and operations
A culture
It’s the concept of the development team and the operations team working together to bring the latest features and versions of software to the customer as fast as possible
a set of practices that allows us to roll out new features from the dev team and environment to production with quick response to any failures
DevOps
Drives the ongoing merging and testing of code, which leads to finding defects early (2018, Guckenheimer)
All about constantly updating the main codebase with the latest developments/features (provided of course that these new additions are of quality)
Tools involved with _______:
Pipelines (like Azure Pipelines, Github Actions, Jenkins, AWS Code Pipeline)
Code Analysis tools like Sonar Cloud (more on this later)
CI (continuous integration)
________ is when someone (obviously a authority figure) manually deploys the code to prod after much deliberation
__________ is when everything is automated to even the deployment of code to prod
Of course ___ is not only limited to releasing code to production, using the idea of ___ to other environments before production like testing helps find bugs that might come up in an environment different from dev
CD (continuous deployment or continuous delivery)
What are the respective goals of the dev and ops teams?
Devs design and implement code that revolves around what customers want. Ops make sure the app is running correctly.
Why is DevOps important?
Because you want your app to be constantly evolving and you also want it to run correctly
What’s CI/CD?
Continuous integration and continuous delivery
Both __________ and _______ provide solutions to creating a uniform environment across machines. This means that with either, you will be able to run your application in an environment that has the necessary artifacts.
Containerization and Virtualization
first difference between Containerization and Virtualization?
Containerization uses containers to achieve a uniform environment. Virtualization uses virtual machines (VMs).
second difference between Containerization and Virtualization?
Containers virtualize the OS. VMs virtualize a machine.
third difference between Containerization and Virtualization?
Containers allocate resources dynamically. VMs allocate resources statically.
This means that with containers you only get assigned resources as needed. With VMs the resources are always there even if they aren’t being used.
______ is a containerization platform
It’s a tool that allows you to wrap up your code into a deployable form (image) and run it anywhere using containers
Docker
filesystem, that contains everything needed to run an application - all dependencies, configuration, scripts, binaries, etc.
This is what ensures that the environment is uniform throughout the containers
Images
A process that you run (on the filesystem you set up with an image)
Containers
A place that lets you distribute docker images
Registry
a text document that contains all the commands a user could call on the command line to assemble an image
Dockerfile
This helps to avoid unnecessarily sending large or sensitive files and directories to the daemon (the engine that your containers are run on) and potentially adding them to images
Dockerignore
What are images? Containers? How are they related?
containers are a process that you run (on the filesystem you set up with an image)
What is the docker daemon?
the engine that your containers are run on