DevOps Flashcards
1
Q
What is DevOps?
A
DevOps is the practice of operations and development developers participate in together throughout the service lifecycle, form design to deployment to production support.
2
Q
Why would you use DevOps?
A
- Devops describes a culture and a set of processes that bring development and operations teams together to complete software development.
- Once practices are in place development is extremely fast compared to other development processes, allowing multiple iterations.
- This allows you to build the base product and ad multiple features and fixes in quick succession.
- DevOps pipelines work in a cycle allowing for continuous development, integration, and deployment.
- Netflix and spotify have extremely effective build pipelines.
3
Q
What is CI?
A
- CI is short for continuous integration
- Continuous integration is a development practice that requires developers to integrate code into a shared repository several times after a period called check-ins, these check-ins take pushed code and run an automated build to find problems early
- The growing code base becomes more efficient with integrating new features and fixes, hence the name continuous integration.
4
Q
What is CD?
A
- Continuous Deployment
- The next step after integration that is aimed at minimizing lead time.
- Lead time is the time elapsed from a new push and that new code being used by live users in production
- Continuous deployment is achieved by automating the various steps leading up to deployment so that after integration is successfully complete the live application is updated with the new code.
- Continuous Delivery
- Very similar to continuous deployment with the exception that continuous delivery doesn’t mean that the code is deployed just that it is deployable at a given time.
5
Q
What is Jenkins?
A
- Jenkins is a continuous integration and/or delivery environment.
- Runs on a server, uses hooks to pull code from a repository when the code is pushed, and it will run the tests and provided they pass it can then deploy it, depending on the implementation.
6
Q
What is Maven?
A
- Maven is a project management tool that comes with a dependency manager to import plugins and external dependencies to your project.
- Comes with a cli that can be used to test, build, and package your application.
7
Q
Where are Maven Dependencies Stored?
A
- Stored in a configuration file called the pom
- Pom is an xml file
- Pom stands for project object model
8
Q
What is GREP?
A
A unix/linux command that searches files for the occurence of a string that matches a specific pattern
9
Q
How do you configure Jenkins?
A
- Run Jenkins as a service
- Create Users - this is for added security and role management, not anyone can deploy or rollback builds, not everyone can see build results, etc.
- Create a Jenkins project - this is the actual project configuration of jenkins (assuming you have necessary plugins)
- Click new item
- Select the project type:
- Freestyle project
- Maven project
- External Job
- multi-configuration project - Set up the source repository for this you can generate a github hook that jenkins can use on github.
- Next you can add build steps that jenkins should take when activated.
- After that save your changes and whenever that hook is activated jenkins will pull the repo and execute the specified build steps
10
Q
What is Agile?
A
- Agile is a development strategy based on the idea of incremental delivery using technology such as continuous integration, development, delivery, and deployment.
- The strategy is to break the application into a set of features and add features to the basic application in a series of sprints to build the software overtime.
- Using continuous integration and deployment tools sprints can go very fast and helps detect bugs and problems as you go making bug fixing quicker.
11
Q
What is SCRUM?
A
- Scrum is the practice of the agile strategy
- Agile is the idea, scrum is agile in practice.
In Scrum there is a scrum master who holds meetings to track the progress of the sprint - The scrum master also breaks the sprint into features and assigns them points according to difficulty
- Team members pick features to work on and their work is classified from in progress, to testing, to fixing or debugging, and finally to complete/finished.
- Finished features are pulled to the staging branch which will run a set of integration tests and deploy.
12
Q
What are the important parts of SCRUM?
A
- The product owner: the company
- The scrum master: project manager
- The scrum team: the developers
- The master defines sprints and features with difficulty points
- The team takes features and develops them
Progress is tracked throughout the development process with standups and tests.
13
Q
What is the Waterfall Methodology?
A
- The development lifecycle for an entire application
- An alternative to the agile methodology.
- Instead of breaking up the application into features and sprints it brakes the development process up into steps.
- Steps are:
- System engineering
- Analysis
- Design
- Code
- Testing
- Maintenance
- All steps must be completed one at a time, you can’t go to the next step until the entire application is finished on the step before.
you have to go all the way to the bottom of the chain before you can go back up to the top and make a new application or version. - Typically less favored in software development because the pace.