This blog post covers a brief overview of the topics covered and some common questions asked during Day 1 Live Interactive training on Azure DevOps Engineer Certification [AZ-400].
During our Day 1 Live Session, we covered DevOps, DevOps as a Job Role, Components that form DevOps, Types of Teams in DevOps Organizations, Types of DevOps Projects, Azure DevOps Work Items, What is Azure DevOps?, Features of Azure DevOps?, Azure Boards?, Azure Repos?, Microsoft hosted agent, Self hosted agent, Why Organizations choose DevOps?.
DevOps
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: DevOps evolved from traditional Development and Operations infrastructure management processes. DevOps enables organizations to better serve their customers and compete more effectively in the market.
DevOps as a Job Role
DevOps professionals combine people, processes, and technologies to continuously deliver valuable products and services that meet end-user needs and business objectives.
Azure DevOps professionals must be able to design and implement DevOps practices for version control, compliance, infrastructure as code, configuration management, build, release, and testing by using Azure technologies.
Tasks performed by DevOps Engineer:
- Plan & Build: In the context of software development, build refers to the process that converts files and other assets under the developer’s responsibility into a software product in its final or consumable form. The build may include compiling source files. This might consist of building an image into a container and saving it to an image repository.
- Test: This is the strongest area where DevOps experience and expertise can be seen. Automation and testing go hand in hand and hence strong testing skills are essential for successful DevOps engineers. Testing ensures that there is no breakdown and the application is working as intended. From the initial stages of the development till deployment tests are automated to ensure that the application is intact.
- Continuous Integration: Continuous Integration is a software development practise where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The critical goals of Continuous Integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
- Continuous Delivery: Continuous Delivery is a software development practice where code changes are automatically built, tested, and prepared for a production release. It expands upon Continuous Integration by deploying all code changes to a testing environment or a production environment after the build stage. When Continuous Delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process.
Know more about the Roles, Responsibilities and Monitoring of a DevOps Engineer here.
Components that form DevOps
- Stakeholder: A stakeholder is a customer who asks for requirements. They can be teams within an organization such as sales or technical teams or they can from outside the organization who is asking for certain solutions.
- Organization: Organization that works with the stakeholder to understand their requirement and create documentation of tools, features or products that are requested by the stakeholder. The organization coordinates with stakeholders to prepare Design documents for DevOps teams.
- Design Document: This document is created by the organization serving the Stakeholder and it contains the details of requirements and features of the stakeholder. This document also specifies the solution that has to be built.
- Planning: This is the planning phase of DevOps. Here teams plan the technology stack for the solution that has to be built. The following are taken into consideration during the planning phase
- Technical stack of the Project
- Teams who will build the solution
- Deadlines & Iterations
- Who is going to work on each module?
- How to track status for the project
So far, we have covered the planning phase of DevOps. Now let’s look into the type of teams that form a DevOps organization.
Types of Teams in DevOps Organizations
Development Team: The development team is responsible for writing, testing, and maintaining the codebase. They collaborate closely with other teams to understand requirements, implement features, and fix bugs. Development teams often follow Agile methodologies and work in iterations or sprints.
Operations Team: The operations team, sometimes referred to as the infrastructure or sysadmin team, manages the underlying infrastructure and ensures its availability, stability, and security. They handle tasks such as server provisioning, configuration management, monitoring, and troubleshooting. In DevOps, the operations team works closely with the development team to automate infrastructure processes and ensure smooth deployments.
Quality Assurance (QA) Team: The QA team focuses on ensuring the quality and reliability of the software being developed. They perform various testing activities, including functional testing, integration testing, performance testing, and security testing. QA teams work closely with the development team to identify and resolve any defects or issues found during testing.
Release Management Team: The release management team is responsible for managing the software release process, including coordinating and scheduling releases, ensuring proper versioning, and managing the release pipeline. They work closely with the development, operations, and QA teams to plan and execute releases effectively.
Security Team: The security team focuses on identifying and mitigating security risks throughout the software development lifecycle. They perform security assessments, vulnerability scanning, and ensure compliance with relevant security standards and regulations. The security team collaborates with development, operations, and QA teams to integrate security practices into the development and deployment processes.
Product Owner: The product owner represents the customer or end user and is responsible for defining and prioritizing the product backlog. They work closely with the development team to ensure that the product meets customer requirements and aligns with the organization’s goals.
DevOps Evangelists/Champions: These individuals promote the DevOps culture and practices within the organization. They help educate teams on DevOps principles, facilitate collaboration, and drive the adoption of DevOps processes and tools.
Types of DevOps Projects
- Infrastructure Automation: This type of project focuses on automating the provisioning, configuration, and management of infrastructure resources. It involves using tools like Infrastructure as Code (IaC), such as Terraform or Ansible, to define and deploy infrastructure resources, enabling consistent and repeatable deployments.
- Continuous Integration and Delivery (CI/CD): CI/CD projects revolve around setting up and improving the automation of build, test, and deployment processes. The goal is to enable teams to deliver software changes frequently and reliably. CI/CD pipelines are created to automate the building, testing, and deployment of applications, ensuring that they are always in a deployable state.
- Cloud Migration: This type of project involves moving on-premises applications or infrastructure to cloud environments, such as Microsoft Azure, Amazon Web Services (AWS), or Google Cloud Platform (GCP). DevOps practices are applied to streamline and automate the migration process, ensuring efficient and secure transition to the cloud.
- Microservices Architecture: A project focused on adopting a microservices architecture aims to break down monolithic applications into smaller, independent services. DevOps practices play a crucial role in managing the deployment, scalability, and monitoring of these microservices, enabling teams to work on them independently and deploy updates quickly.
- DevSecOps: DevSecOps projects emphasize integrating security practices throughout the software development and deployment lifecycle. The focus is on automating security checks, vulnerability scanning, and compliance monitoring, ensuring that security is treated as an integral part of the DevOps process.
- Monitoring and Observability: This type of project revolves around implementing effective monitoring and observability practices. It involves setting up tools and processes to collect, analyze, and visualize application and infrastructure metrics, logs, and traces. This enables teams to proactively identify issues, troubleshoot problems, and optimize system performance.
- Performance Optimization: Projects aimed at improving application performance involve identifying and addressing performance bottlenecks and optimizing resource utilization. DevOps practices, such as continuous monitoring, load testing, and performance profiling, are utilized to ensure that applications meet performance requirements and deliver optimal user experience.
- ChatOps and Collaboration: ChatOps projects focus on integrating chat platforms, such as Slack or Microsoft Teams, with DevOps tools to facilitate collaboration and communication within teams. Chatbots and automation scripts are used to enable operations and development tasks directly from chat interfaces, enhancing team productivity and transparency.
Know more about DevOps Projects here.
Azure DevOps Work Items
- Epic: Epic is a body of work that can be broken down into specific tasks (called user stories) based on the needs/requests of customers or end-users. Epics are an important practice for agile and DevOps teams. When adopting agile and DevOps, an epic serves to manage tasks.
- Story: Stories are used as the basis for estimating, planning, and whether the value was delivered to customers. A key DevOps strategy is bringing small increments through into productive use, which exposes process issues that need tuning
- Features: This defines a set of requirements for a specific part of the project
- Backlogs: A product backlog is a prioritized list of deliverables (such as new features) that should be implemented as part of a project or product development. It’s a decision-making artifact that helps you estimate, refine, and prioritize everything you might sometime in the future want to complete.
- Tasks: Here tasks are assigned to team members. This process enables easy tracking of the project status.
Know more about Work Items here
What is Azure DevOps?
Azure DevOps is a cloud platform from Microsoft that provides an end-to-end DevOps toolchain for developing and deploying software. It also integrates with most leading tools on the market and is a great option for orchestrating a DevOps toolchain. It helps teams automate, organize and manage applications and services.
Features of Azure DevOps?
Azure Pipelines: A continuous integration and delivery (CI/CD) platform that enables automated build, test, and deployment of applications to various environments. It supports building and deploying applications for different platforms and integrates with popular development languages and frameworks.
Azure Test Plans: A comprehensive testing solution that provides tools for manual and exploratory testing, test case management, and test execution. It allows teams to plan, track, and manage testing efforts and generate detailed test reports.
Azure Artifacts: A package management system that allows teams to create, host, and share packages across their organization. It supports various package types, including NuGet, npm, Maven, and more, and provides secure and reliable package feeds.
Azure DevOps Extensions Marketplace: A marketplace that offers a wide range of extensions and integrations to enhance the functionality of Azure DevOps. These extensions provide additional capabilities, such as integrations with popular tools, custom build and release tasks, and reporting and dashboard enhancements.
Azure Boards and Repos for GitHub: Integration with GitHub, allowing teams to connect their GitHub repositories to Azure Boards and Azure Repos. This enables seamless collaboration and provides a unified experience for managing work items, tracking code changes, and enabling CI/CD.
Azure DevOps API and Extensions: Azure DevOps provides a rich set of APIs that allow teams to extend and customize the platform to meet their specific requirements. This enables integration with third-party tools, automation of workflows, and the development of custom applications and extensions.
Azure Boards?
Azure Boards is an interface or a service of DevOps through which teams can manage their projects throughout the entire development lifecycle. It allows the team to track their tasks, work status, user stories, backlogs, features, and track bugs and defects that are noticed in the project.
The three basic work items are Epics, Issues, and Task. Read more on Azure DevOps Services. Some features of Azure boards include:
- Scalability: The system scales as the organization and team grows – this is critical to ensure we can measure and manage the work regardless of the organization or project size.
- Interactive/Visual tools and easy to customize: Work progress can be easily monitored and customize boards, using common configurable dialogue.
- Built-in Tools and capture information: Items are designed to help in Editing, adding images, and attachments can be done on these work items.
- Extensions: You can achieve more functionality by adding a Marketplace extension. Extensions are installable units that add enhancements to the already existing tools.
- Integration with GitHub: It is easy to connect to GitHub and you can perform pull, push, and commit requests easily.
Source: Microsoft
Azure Repos?
Azure Repos is a version control service provided by Microsoft as part of the Azure DevOps suite. It is a Git repository hosting service that allows teams to securely manage and collaborate on source code and related artifacts.
Microsoft hosted agent
A Microsoft hosted agent, also known as an Azure Pipelines hosted agent, is a virtual machine provided by Microsoft as part of the Azure Pipelines service in Azure DevOps. Azure Pipelines is a continuous integration and continuous delivery (CI/CD) platform that helps automate the building, testing, and deployment of software applications.
When setting up a CI/CD pipeline in Azure Pipelines, you typically need an agent to execute the pipeline tasks and jobs. A hosted agent is a pre-configured virtual machine maintained and managed by Microsoft. It comes with a specific set of tools, runtimes, and dependencies installed, which allows you to build and deploy your applications without having to manage the underlying infrastructure.
Azure Pipelines provides various types of hosted agents to cater to different needs, including Windows, Linux, and macOS agents. Each hosted agent type offers a specific operating system and a predefined set of software and tools suitable for different development environments.
When you use a Microsoft hosted agent, you don’t have to worry about provisioning, managing, or maintaining the agent machines. Microsoft takes care of updates, security patches, and scalability of the agent infrastructure. You can simply select the appropriate hosted agent type in your pipeline configuration, and Azure Pipelines will automatically provision and assign an available agent to execute your pipeline tasks.
If you have specific requirements or need additional customization, you also have the option to set up your self-hosted agent, where you provision and maintain your own machines to run the pipeline tasks. However, hosted agents offer convenience and ease of use, especially for smaller projects or when you prefer not to manage the underlying infrastructure.
Self hosted agent
A self-hosted agent, in the context of software development and DevOps, refers to a computing resource that is set up and maintained by the organization or individual within their own infrastructure. It is used to execute tasks, such as running build pipelines, deploying applications, or performing other automated processes.
In the context of Azure DevOps, a self-hosted agent is a machine or virtual machine that runs the Azure Pipelines agent software. This agent connects to Azure DevOps or Azure DevOps Server (formerly known as Team Foundation Server) and executes build and release tasks on behalf of the organization.
The self-hosted agent provides several advantages:
- Flexibility: Organizations can set up and configure their own hardware or virtual machines to meet their specific requirements, including operating systems, dependencies, and security measures.
- Performance and Security: Running builds and deployments on a self-hosted agent can provide faster execution times and better control over security measures since it operates within the organization’s infrastructure.
- Connectivity: Self-hosted agents can be deployed in environments that have limited or no internet access, enabling organizations to build and deploy applications in isolated or restricted networks.
- Cost: By utilizing existing infrastructure or on-premises resources, organizations can potentially reduce costs associated with cloud-based build and deployment resources.
Setting up a self-hosted agent involves installing and configuring the Azure Pipelines agent software on the desired machine or virtual machine. Once connected to Azure DevOps or Azure DevOps Server, the self-hosted agent can be assigned to specific pipelines or used dynamically based on agent pool configurations.
Why Organizations choose DevOps?
- Automation − Automate everything, such as workflows, testing new code, and how your infrastructure is provisioned.
- Iteration − Write small chunks of code during a time-box sprint to support releases and sub-releases that increase the speed and frequency of deployments.
- Continuous Improvement − Continuously test, learn from failures, and act on feedback to optimize performance, cost, and time to deployment.
- Collaboration − Unite teams, foster communication, and break down silos between development, IT operations, and quality assurance.
FAQ’s asked in the session are:
These are some questions that were asked during the AZ-400 day 1 live session. These questions are from modules 1 & 2.
Q1: Does a DevOps engineer need to know SQL coding in detail?
A: No it’s not required. As a DevOps Engineer, you can work on the domain in which you specialize, whether you are a System Admin or you are good at SQL Coding, you can use that knowledge in DevOps and be an expert. In this Training, you’ll see all the services but you can be an expert in your own field.
Q2: What is Agile?
A: Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a “big bang” launch, an agile team delivers work in small, but consumable increments.
Q3: What is Jenkins?
A. Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used for building and testing the software projects continuously making it easier for developers to continuously work on the betterment of the product by integrating changes to the project, and making it easier for users to obtain a fresh build. It also allows you to continuously deliver your software by integrating with a large number of testing and deployment technologies.
Q4: How is azure DevOps different from Jenkins?
A: Azure DevOps is a complete project management and software shipment platform, providing an unlimited hosted git repository for better code integration and a complete agile and project management solution both on cloud and on-premises.
Jenkins is an open-source leading CI server known for its enormous integration plugins for building, testing, and deploying virtually any application. Read more about Azure Pipelines vs Jenkins
Q5: What is an Organization in Azure DevOps?
A. An organization is used to connect groups of related projects, helping to scale up an enterprise. You can use a personal Microsoft account, GitHub account, or a work or school account. Use your work or school account to automatically connect your organization to your Azure Active Directory (Azure AD).
Q6: Are Stories and Backlogs the same?
A. It depends on the Template. Here, we are using Parts Unlimited Template which is Scrum-based, so that’s why you see Backlogs under the Boards Hub but if you go for any other Template you’ll see the Stories instead of Backlogs.
Q7: Does DevOps Engineer replace the Scrum Master Role?
A. No, the Scrum Master Roles is not replaced by Azure DevOps Engineer. In Azure DevOps, we deal with only Azure Services and Azure DevOps Services. If you take any other DevOps Training like Scrum or DevOps Foundation then you’ll know more about the Scrum Master, there is a difference between these two roles.
Q8: We have Azure Board and you told me about the Trello Board also. Can you tell me how both are helpful in Azure DevOps?
A. Trello Boards are offered by Trello and are separate services for boards management and then if you wanted to work on everything in one location and start using Azure DevOps Boards then you have to migrate your entire components, flow charts, and notes from Trello Boards to Azure from the help of Azure Boards.
Q9: What if I have two email IDs (my customer perspective email id and my internal organization email id) connected to the same organization in Azure DevOps?
A. You can assign permissions to each individual user on a project in Azure DevOps. You can also invite a guest user by inviting them to your organization’s Active Directory. Read more about DevOps Organization.
Q10. Can we use SVN for open source in Azure projects?
A. Yes you can use SVN with Azure Pipelines. Azure Pipelines support the SVN. Know more about SVN here
Q11. What is self-hosted and Microsoft hosted agent?
An agent that you set up and manage on your own to run jobs is a self-hosted agent. You can use self-hosted agents in Azure Pipelines or Azure DevOps Server, formerly named Team Foundation Server (TFS). Self-hosted agents give you more control to install dependent software needed for your builds and deployments.
Quiz Time (Sample Exam Questions)!
With our DevOps Engineer Program, we cover 150+ sample exam questions to help you prepare for the certification AZ-400. Check out these questions and see if you can answer them…
Question: Your company uses cloud-hosted Jenkins for builds. You need to ensure that Jenkins can retrieve source code from Azure Repos. Which three actions should you perform? Each correct answer presents part of the solution.
- A. Create a Webhook in Jenkins.
- B. Add the Team Foundation Server (TFS) plug-in to Jenkins.
- C. Add a personal access token to your Jenkins account.
- D. Create a Personal Access Token (PAT) in your Azure DevOps account.
- E. Create a service hook in Azure DevOps
Question: You have an Azure Resource Manager template that deploys a multi-tier application. You need to prevent the user who performs the deployment from viewing the account credentials and connection strings used by the application. What should you use?
- A. Azure Key Vault
- B. Web.config file
- C. Appsettings.json file
- D. Azure Storage table
- E. Azure Resource Manager parameter file
Comment your answers below.
References
- [AZ-400] Microsoft Azure DevOps Certification Exam: Everything You Need To Know
- [AZ-400] Roles And Responsibilities As An Azure DevOps Engineer
- [AZ-400] Azure DevOps Services for Beginners
- [AZ-400] Azure DevOps For Beginners
Next Task For You
Begin your journey toward Mastering Azure Cloud and landing high-paying jobs. Just click on the register now button on the below image to register for a Free Class on Mastering Azure Cloud: How to Build In-Demand Skills and Land High-Paying Jobs. This class will help you understand better, so you can choose the right career path and get a higher paying job.
shiv says
I really liked reading it. I learned a lot of things from this piece. Thanks for writing this interesting article
Rahul Dangayach says
Hi Shiv,
We are glad that you liked our blog.
Please stay tuned for more informative blogs.
Thanks & Regards
Rahul Dangayach
Team K21 Academy