Module 3: Working DevOps
Question 1: How is DevOps different from Taylorism?
- DevOps is about managers determining how work is to be done.
- Taylorism is about pushing decisions down to the workers.
- DevOps facilitates a culture of teaming and collaboration.
- Taylorism is about building individually crafted products.
Answer: DevOps facilitates a culture of teaming and collaboration.
Explanation: DevOps emphasizes collaboration, communication, and shared ownership between development and operations teams. Unlike Taylorism, which focuses on rigid, top-down management, DevOps fosters teamwork and continuous improvement through joint decision-making and collaboration.
Question 2: Select the correct statement regarding software engineering in a DevOps environment.
- One process finishes before the next can begin.
- Team members feel ownership for the work.
- When a project is complete, the members of the team move on to other projects.
- The behavior of the system remains the same over time.
Answer: Team members feel ownership for the work.
Explanation: In a DevOps environment, team members share responsibility for the entire software lifecycle, from development to deployment and maintenance. This shared ownership fosters a sense of accountability and encourages collaboration, ensuring high-quality software.
Question 3: Instead of the project model, a better way to create software is to do it like _____.
- Product development
- Building an office building
- Waterfall
- Civil engineering
Answer: Product development
Explanation: DevOps promotes continuous software development through iterative, product-focused approaches rather than a project-based model. This encourages long-term, ongoing improvement, with features being released in increments to gather user feedback.
Question 4: How does the operations team (Ops) typically view the development team (Dev)?
- Making all or nothing changes
- Using cut and paste from runbooks
- Making frequent changes and lacking back-out plans and testing
- Being furthest from the code and not understanding the code
Answer: Making frequent changes and lacking back-out plans and testing
Explanation: Historically, the Ops team often viewed Dev teams as making frequent and sometimes risky changes without sufficient testing or fallback plans. DevOps bridges this gap by encouraging collaboration, ensuring code is well-tested and deployable, and enabling better back-out strategies.
Question 5: Which of the following are required DevOps behaviors?
- Avoiding and preventing change and using alarms and escalations
- Breaking down silos, shared ownership, and collaboration
- Using manual fulfillment methods such as ticket queues
- Building and maintaining hand-crafted, unique servers
Answer: Breaking down silos, shared ownership, and collaboration
Explanation: DevOps encourages breaking down silos between development and operations teams, promoting shared responsibility and collaboration. It’s all about enabling continuous collaboration and communication, improving efficiency and reducing friction in software delivery.
Question 6: What is ephemeral or transient infrastructure?
- Infrastructure in a textual format
- Infrastructure that is created when needed, used, and discarded
- Infrastructure that is built once and maintained
- Infrastructure that is configured manually
Answer: Infrastructure that is created when needed, used, and discarded
Explanation: Ephemeral infrastructure is dynamic and temporary. It’s created on-demand for specific tasks or workloads and discarded once no longer needed. This allows for efficient scaling, cost management, and automation, often using cloud technologies.
Question 7: Select the correct statement regarding Continuous Integration.
- Continuous Integration is integrating long lists of features, all at once.
- Continuous Integration is building, testing, and integrating, which results in potentially deployable code.
- Continuous Integration is continuously deploying to production.
- Continuous Integration is working in long-lived development branches with developers adding to the development branch.
Answer: Continuous Integration is building, testing, and integrating, which results in potentially deployable code.
Explanation: Continuous Integration (CI) involves frequently integrating small changes into a shared codebase, ensuring that new code passes automated tests and is immediately available for deployment. This approach reduces integration issues and allows for faster feedback.
Question 8: Which of these is a benefit of Continuous Integration?
- Being able to write the test cases after you have built the interface
- Being able to get faster reaction time to changes
- Being able to merge untested code into the master branch
- Being able to check in large batches (weeks of work) at one time
Answer: Being able to get faster reaction time to changes
Explanation: CI allows for faster feedback on changes by running tests and builds frequently. This makes it easier to detect errors early in the process, providing quicker reaction times to issues, and ensuring better quality and consistency in the codebase.
Question 9: What is Continuous Delivery?
- Building software by having people do repetitive tasks and using computers to solve problems
- Building software so it can be released to production at any time
- Building software so it can be deployed into the actual production environment
- Building software without using cloud-based tools
Answer: Building software so it can be released to production at any time
Explanation: Continuous Delivery (CD) is the practice of automatically preparing code for release into production at any time. It ensures that the code is always in a deployable state, making it easier to push updates to users quickly and safely.
Question 10: Which of the following are key principles of Continuous Delivery?
- Using automation to deploy to production and testing once it is integrated
- Building in quality, working in small batches, and using actionable measurements
- Using feature flags, blue-green deploys, and canary testing
- Never roll back, one-size-fits-all deployment, and avoiding risk and changes
Answer: Building in quality, working in small batches, and using actionable measurements
Explanation: Key principles of Continuous Delivery include maintaining quality through automation, working in small batches to reduce complexity, and utilizing metrics for continuous improvement. These principles allow for a smoother, more reliable delivery process, and faster feedback.