COURSE 5 – CONFIGURATION MANAGEMENT AND THE CLOUD

Module 4: CICD

GOOGLE IT AUTOMATION WITH PYTHON PROFESSIONAL CERTIFICATE

Complete Coursera Study Guide

Last updated:

INTRODUCTION – CICD

In this module, you’ll delve into the realm of data storage in the cloud, exploring various storage types such as block storage and object storage, and discerning their distinctions. Additionally, you’ll explore advanced load balancing techniques like round-robin DNS and sticky sessions, enhancing your understanding of managing traffic efficiently. The module extends to change management, covering diverse testing methods like unit tests and integration tests, along with concepts such as continuous integration, continuous deployment, and A/B testing.

Furthermore, you’ll address potential errors and challenges encountered during cloud storage implementation, learning strategies to mitigate risks and optimize performance. Delving into monitoring and alerting, you’ll explore systems offering these functionalities and delve into setting achievable SLAs (Service Level Agreements). Moreover, you’ll gain practical insights into basic monitoring in GCP, configuring alerting policies, conditions, and aggregators to streamline data management. Lastly, the module culminates in troubleshooting and debugging systems, equipping you with techniques to identify and recover from failures effectively, ensuring the resilience and reliability of your cloud infrastructure.

Learning Objectives

  • Understand and explain the different types of storage available
  • Explain the difference between round robin DNS and sticky sessions
  • List the different types of integration testing that are available
  • Understand and explain the concept of SLAs
  • Troubleshoot and debug a system without being physically present
  • Understand what a rollback is and how they can help in a system failure
  • Understand how primary and secondary instances can help in a disaster recovery situation

PRACTICE QUIZ: CI/CD PIPELINES

1. Which types of tests are automated and run by a CI/CD pipeline?

  • Unit, integration, and system (CORRECT­)
  • Integration, delivery, and deployment
  • End-to-end, stress, and load
  • Jenkins, GitLab, and CircleCI

Correct. Unit, integration, and system are the types of tests commonly used to perform continuous testing in a CI/CD pipeline.

2. Why is automated testing important? Select all that apply.

  • It reduces the amount of manual work and the risk of human error. (CORRECT­)
  • It increases communication and collaboration.
  • It manages your source code repository and version histories.
  • It ensures that all of your code changes are tested early in the development process. (CORRECT­)

That’s right! Automated testing ensures that all of your code changes are tested for errors or bugs, allowing you to create fixes as issues arise. It also reduces the risk of human error, especially when performing larger tests that would take time if conducted manually.

3. Which actions typically trigger a CI/CD pipeline to start? Select all that apply.

  • A change in code (CORRECT­)
  • A decrease in workflow efficiency
  • A scheduled or user-initiated workflow (CORRECT­)
  • Another pipeline (CORRECT­)

That’s right! A change in code, a scheduled or user-initiated workflow, and another pipeline are all actions that could trigger a CI/CD pipeline to start.

4. What are some advantages of implementing DevOps?

  • Continuous, iterative improvement of your applications
  • An automated software development lifecycle
  • Collaborative environments
  • All of the above (CORRECT)

That’s right! The advantages of implementing DevOps include an automated software development lifecycle, collaborative environments for the development and operations teams, and continuous, iterative improvements to your software or applications.

5. Which of the following are benefits of using containers in your CI/CD pipeline? Select all that apply.

  • It allows you to deploy applications easily to multiple operating systems and hardware platforms. (CORRECT­)
  • It allows you to deploy multiple versions of an application at the same time without interfering with one another. (CORRECT­)
  • It creates a more reliable way to work with applications at any stage in the pipeline process. (CORRECT­)
  • It allows you to continuously integrate code into your shared code repository.

That’s right! The benefits of using containers in your CI/CD pipeline include deploying applications easily to multiple different operating systems and hardware platforms, deploying multiple versions of an application at the same time without interfering with one another, and creating a more reliable way to work with applications at any stage in the pipeline process.

PRACTICE QUIZ: CONTINUOUS INTEGRATION

1. What is the role of a webhook in GitHub?

  • It serves as a version control system.
  • It enables GitHub to notify CI tools about code changes. (CORRECT­)
  • It allows coding collaboration at scale.
  • It generates new tokens so that you can connect your CI system to GitHub.

Correct! A webhook is a URL provided to GitHub by the CI system, and it allows GitHub to notify CI tools about code changes.

2. Which of the following are the core components of Cloud Build? Select all that apply.

  • Build triggers (CORRECT­)
  • Build configurations (CORRECT­)
  • Build steps (CORRECT­)
  • Build artifacts

Correct! Build triggers, configurations, and steps all make up the core components of Cloud Build. Build triggers are events that begin the Cloud Build process. Build configurations are YAML files that define the steps and settings for your build. Build steps are the actions that Cloud Build executes in a specific order depending on the build configuration.

3. What is the purpose of utilizing version control in continuous integration with your code?

  • It is a way to direct artifacts to the correct repository.
  • It is a way to manage code changes and to track the code’s history. (CORRECT­)
  • It is a way to receive feedback from different tests to determine what issues your code contains.
  • It is a way to create multiple versions of a code and distribute the codes among stakeholders.

Correct! Version control allows developers to view code history and manage the code changes as needed.

4. Why should you run integration tests? Select all that apply.

  • To catch errors earlier in the CI pipeline (CORRECT­)
  • To make sure your application components work together as expected (CORRECT­)
  • To verify the functionality and performance of an entire software application from start to finish
  • To check how individual units of code are working as expected

Correct! You conduct integration tests to make sure the different parts of your application work together and catch errors earlier on in the CI pipeline, which can save you time, money, and a lot of headaches.

5. You have developed new code for an application you are creating for a client. You are using the Cloud Build service supported by Google Cloud Platform, or GCP. Which step in the build steps process refers to moving the application to an environment when it is ready for production?

  • Running tests
  • Deploying (CORRECT­)
  • Fetching dependencies
  • Building the application

Correct! The last step in the build step process is to deploy the application to a specific environment for production.

PRACTICE QUIZ: CONTINUOUS DELIVERY

1. Why would you use value stream mapping? Select all that apply.

  • To reduce the number of steps in your process (CORRECT­)
  • To increase the efficiency of your process (CORRECT­)
  • To identify bugs in your code
  • To identify current areas of improvement (CORRECT­)

That’s right! Value stream mapping, or VSM, can help you identify areas of improvement and steps that you do not need, and increase the efficiency of your process!

2. What does GitHub Actions do? Select all that apply.

  • Suggests corrections to the code commits
  • Allows developers to run tasks whenever certain events occur in their code repository (CORRECT­)
  • Alerts new actions in the workflow
  • Offers ready-to-use CI/CD workflows (CORRECT­)

That’s right! GitHub Actions allows you to run tasks whenever certain events occur in your code repository.

That’s right! GitHub Actions have more than 13,000 ready-to-use workflows for you to choose from.

3. What is another name for a configuration file? Select all that apply.

  • Cabinet
  • Playbook (CORRECT­)
  • Manifest (CORRECT­)
  • Folder

That’s right! Depending on the configuration management tool utilized, a playbook and manifest are considered a configuration file. It communicates what the desired state of a system should look like and how it should behave.

4. Which of the following is a form of software development waste that you can identify with value stream mapping, or VSM?

  • Overproduction waste
  • Transport waste
  • Handoff waste (CORRECT­)
  • Inventory waste

That’s right! Handoff waste can occur in DevOps through communication pipelines. When products or services are frequently passed off between teams that are not closely integrated, you run the risk of having communication errors.

5. Which of the following statements is considered a best practice for CD?

  • Automate as much as you can. (CORRECT­)
  • While CI should be automated, CD should not.
  • Clear CD configuration and scripts from the version control system as soon as you can.
  • Avoid using feature flags whenever possible.

That’s right! The entire CD process must be automated so that results are repeatable and consistent.

GRADED ASSESSMENT FOR MODULE 4

1. You are about to use GitHub as part of your continuous integration (CI) pipeline. You prepare your code and other artifacts from source control. Then, you log in to GitHub. Aside from your username, which of the following items is required to initiate the integration?

  • Webhook
  • URL
  • Token (CORRECT­)
  • Password

2. Your manager informs you of Cloud Build, which is a fully managed continuous integration and continuous delivery service provided by GCP. Which of the following are the core components of Cloud Build? Select all that apply.

  • Build images
  • Build triggers (CORRECT­)
  • Build steps (CORRECT­)
  • Build configurations (CORRECT­)

3. You are excited to implement a new practice in your coding development. What software development practice describes code changes that occur automatically, frequently, and safely when integrating them into a shared repository?

  • Continuous development
  • Continuous installation
  • Continuous improvement
  • Continuous integration (CORRECT­)

4. Which of the following statements best describes GitHub Actions?

  • GitHub Actions helps programmers debug codes.
  • GitHub Actions runs tasks in response to events in the repository. (CORRECT­)
  • GitHub Actions is an add-on application that requires a separate installation.
  • GitHub Actions is a universal tool that cannot be modified.

5. Your team has just launched a mobile application that translates English into American Sign Language. Upon the release, your team discovers that the app doesn’t integrate well with the Android system. Your team fixes the problem urgently and after a few quick rounds of testing, your team pushes out another release. What type of release is this?

  • Major release
  • Minor release
  • Patch release
  • Hotfix release (CORRECT­)

6. A software developer pushes out some poorly written code to production. This resulted in a system failure and multiple outages. Which process allows teams to understand and learn from system failures and incidents?

  • System alignment
  • Post-mortem (CORRECT­)
  • Production failure
  • Recorrect assessment

7. What is DevOps? Select the best answer.

  • DevOps is the steps of the software development lifecycle that happen after the code is written. (CORRECT­)
  • DevOps is only used for assembling and testing code blocks.
  • DevOps is the process of programmers writing code blocks to be integrated later.
  • DevOps is solely responsible for storing and managing artifacts and containers.

8. You’re a developer who wants to employ the use of DevOps tools during the CI/CD process. What are some popular tools you can use to automate different stages of the software development lifecycle? Select all that apply.

  • Spinnaker and Argo CD (CORRECT­)
  • Jenkins and GitLab (CORRECT­)
  • Docker and Kubernetes
  • GitHub and Bitbucket

9. Which of the following statements are true about the “from coding to the cloud” process? Select all that apply.

  • Preparing code for the cloud is a mix of DevOps and programmer responsibilities. (CORRECT­)
  • From coding to the cloud relies heavily on software development best practices.
  • From coding to the cloud is a strategic IT approach to software development. (CORRECT­)
  • Preparing code for the cloud is an example of old technology used in a new way.

10. There are seven key concepts of automation for continuous integration. Which of the following are included in those concepts? Select all that apply.

  • Handling exceptions (CORRECT­)
  • Better integration (CORRECT­)
  • Critical mass
  • Consistency (CORRECT­)

11. Which metric would you employ to measure the length of time it takes for a code change to be committed to a branch and be in a deployable state?

  • Mean time to recovery
  • Deployment frequency
  • Change failure rate
  • Lead time for changes (CORRECT)

12. Value stream mapping (VSM) can help you identify bottlenecks in your value stream, inefficiencies in your process, and current areas of improvement. Which of the following are common components of VSM? Select all that apply.

  • Wait times (CORRECT­)
  • Handoffs (CORRECT­)
  • Delays
  • Waste (CORRECT­)

13. When building your project on GitHub, the CI system uses the GitHub API token to add a URL to the GitHub project. What is this URL called?

  • Webhook (CORRECT­)
  • Webpage
  • Web address
  • Uniform Resource Locator

14. You log on to a virtual call to meet with another software developer to discuss build steps in Cloud Build. What are the build steps that are typically included in the build configuration? Select all that apply.

  • Fetching dependencies (CORRECT­)
  • Building the application (CORRECT­)
  • Debugging the code
  • Running tests (CORRECT­)

15. Your team launched a mobile application that translates English into American Sign Language. Since the initial launch, your team has worked hard to improve this app. Now the team is ready to release a new version, which includes major enhancements and a new user interface design. What type of release is this?

  • Major release (CORRECT­)
  • Minor release
  • Patch release
  • Hotfix release

16. You just discovered that a software developer for a banking company had a security breach that included exposing clients’ data and will need to conduct a post-mortem. What does a post-mortem do? Select all that apply.

  • Examines the impact of the breach (CORRECT­)
  • Determines updates needed to protect from future attacks (CORRECT­)
  • Determines a process to protect data
  • Determines the phone numbers of the clients impacted

17. As part of a development or operations team, what are the benefits of using DevOps tools in the software development lifecycle?

  • They’re designed to address many of the pain points common to software development organizations.
  • They save you—and your organization—time and money.
  • They help you tackle processes like continuous integration, continuous delivery, automation, and collaboration.
  • All of the above. (CORRECT­)

18. Which of the steps of the “from coding to the cloud” process listed below are done by the DevOps team? Select all that apply.

  • Containers are received. (CORRECT­)
  • Code is cleaned and containerized.
  • The code is completed.
  • Code is delivered to the cloud. (CORRECT­)

19.  “Automation” is a programming function. What does “automation” do? Select all that apply.

  • Is used in place of the CI/CD pipeline
  • Reduces the need for human intervention (CORRECT)
  • Catches errors in repetitive tasks (CORRECT)
  • Enables repetitive routines to scale (CORRECT)

20. You want to check that everything in your application or software is working as it should. Which kinds of tests should you run to check for system performance?

  • End-to-end tests (CORRECT­)
  • System tests (CORRECT­)
  • Integration tests
  • Unit tests

21. You’re looking to reduce the amount of waste happening within your CI/CD pipeline. What are some things that you can look for?

  • Partially completed work (CORRECT)
  • Lead time
  • Task-switching (CORRECT­)
  • Handoffs (CORRECT­)

22. You inform a colleague that continuous integration (CI) is a way to develop software to make it easier, faster, and more reliable. What are the three core practices CI is composed of? Select all that apply.

  • Accelerated deployment
  • Automated building (CORRECT­)
  • Automated testing (CORRECT­)
  • Version control system integration (CORRECT­)

23. GitHub supports CI/CD by allowing you to run tasks whenever certain events occur in your code repository and allowing you to trigger any part of a CI/CD pipeline off any webhook on GitHub. Which GitHub feature supports these activities?

  • Webhook
  • GitHub Actions (CORRECT­)
  • GitHub automation
  • GitLab

24. Complete this sentence. DevOps describes the steps of the software development lifecycle that ________________________________. Select the best answer.

  • provides security testing
  • take place after the code is written. (CORRECT­)
  • is only used to patch application and security risks
  • occur during scaling and replication

25. Which technique can be used to analyze, design, and manage the flow of materials and information required to bring a product to a customer?

  • Continuous improvement
  • Value stream mapping (VSM) (CORRECT­)
  • A CI/CD pipeline
  • Containers in a CI/CD pipeline

26. When speaking to a new Python programmer, how might you describe the workflows available in GitHub Actions? Select all that apply.

  • The workflows run your tests only on GitHub-hosted virtual machines.
  • The workflows run your tests only on your own machines.
  • The workflows can be customized using YAML files. (CORRECT­)
  • The workflows on GitHub are pre-written and tested. (CORRECT­)

27. Which of the following processes can DevOps tools help you tackle during the software development lifecycle? Select all that apply.

  • Continuous integration (CORRECT­)
  • Continuous improvement
  • Continuous delivery (CORRECT­)
  • Automation (CORRECT­)

28. How does automation reduce errors? Select all that apply.

  • It eliminates human intervention. (CORRECT­)
  • It focuses on running each task individually. (CORRECT­)
  • It bypasses repetitive functions. (CORRECT­)
  • It blocks the viruses that cause errors.

29. Which of the following scenarios is an example of a minor release?

  • A developer releases a quick fix for an operating system that resolves an issue with Bluetooth.
  • SoundGrounds, an app for coffee drinkers, releases a new version with an enhancement to the payment system. (CORRECT­)
  • A developer releases a new operating system that is designed to replace the previous operating system.
  • SoundGrounds, an app for coffee drinkers, releases a new version that fixes bugs found in the previous release.

30. You overheard two software programmers discussing the need to conduct a post-mortem in the break room. What’s another term for post-mortem?

  • Incident analysis (CORRECT­)
  • Problem analysis
  • Solution analysis
  • Operation analysis

31. Which of the following are steps in the “from coding to the cloud” process? Select all that apply.

  • The programmer removes materials like API keys and passwords. (CORRECT­)
  • The end user downloads the application from the cloud.
  • The DevOps team receives the Docker files. (CORRECT­)
  • The DevOps team assembles and tests the code.

CONCLUSION – CICD

In conclusion, this module has provided a comprehensive exploration of data storage and management in the cloud, covering essential concepts and advanced techniques to optimize performance and reliability. From understanding different storage types to implementing load balancing strategies and change management practices, you’ve gained valuable insights into ensuring efficient data handling in cloud environments.

Moreover, the module has equipped you with the knowledge to address potential challenges such as errors, quotas, and limits, empowering you to proactively manage and troubleshoot issues that may arise. By delving into monitoring, alerting, and SLA setting, you’ve learned crucial aspects of maintaining service reliability and meeting performance expectations.

As you continue your journey, the skills acquired in this module will serve as a solid foundation for effectively managing data storage and ensuring the smooth operation of cloud-based systems. By leveraging these techniques, you’ll be better equipped to optimize performance, mitigate risks, and drive success in your cloud computing endeavors.