Build Agents and Pools
Configuring API Access
The course is part of this learning path
Azure DevOps has many great tools for implementing and managing your build infrastructure, and this course walks you through how to use them. With a mix of theory and real-life demonstrations from the Azure portal, you will learn how to create Azure pipelines, use them to integrate 3rd party build systems, utilize agent pools, and learn how to put it all together to set up an automated workflow that can potentially save you hundreds of man-hours. So, whether you’re here to learn more about DevOps, improve your development process, or learn more about Azure DevOps in particular, this course will help get you further along your path.
For any feedback, queries, or suggestions relating to this course, please contact us at email@example.com.
- Learn how to build an Azure DevOps pipeline and add automation tasks
- Use the visual designer for adding build tasks to a pipeline
- Create a pipeline that closely matches an existing build process
- Determine a pipeline strategy based on the information given to you during a discovery process
This course is intended for:
- IT professionals looking to become certified DevOps professionals
- IT professionals experienced with other cloud providers who want to gain a better understanding of Azure
- Anyone who wants a better understanding of Azure build infrastructure processes
To get the most from this course, you should have some understanding of the software development process, at least at a high level, as well as an understanding of what DevOps is and the terminology related to it.
In this lecture, we are gonna talk about service connections, service endpoints, and webhooks. A service connection, in simple terms, is a defined connection that allows Azure DevOps to communicate with an external service. Some well-known services, like GitHub or Jenkins, already have service connections that you can configure in Azure DevOps, but what if you wanted to create your own unique service that responded to events from Azure DevOps to perform some unique action? That's where service endpoints, extensions, and webhooks come into the picture. Service providers, or service hook publishers, create a definition for a set of events that can be subscribed to.
Subscriptions are a way to subscribe and listen for specific events. Subscriptions also define a set of actions that can be taken directly, or they can target external services, called consumers, that run their own action or set of actions based on an event that was raised.
To integrate Azure DevOps with external services, you use service connections or service hooks, and the service endpoint is the set of properties provided to a service connection or service hook. To integrate Azure DevOps with external services, you use service connection or service hooks, and the service endpoint is the set of properties provided to the service connection or service hook to give you the information needed for the connection to function.
Some of the properties that you'll find in a service endpoint are Service Name, Description, Server URL, Certificates or Tokens, User names, and Passwords.
Publishers, consumers, and service endpoints all come together to form a service connection that can be used to create extensions or custom tasks that need to connect to external services. Extensions utilize service endpoints to gather information to be able to integrate Azure DevOps and perform their own tasks based on events they subscribe to.
There are many extensions available in the Visual Studio Marketplace that utilize service hooks and endpoints. They fall into several categories: Build and Release, Collaborate, Customer Support, Plan and Track, and Integrate.
Under the Integrate category, we find webhooks. Webhooks are a way for a server to call a client-provided endpoint to let the client know that an event has occurred on the server without the client being required to constantly poll the server for new events. You can create a service connection that uses a webhook to post to a REST endpoint in your own application, or you can use a webhook to connect to an external server that has a REST endpoint.
You can set up a webhook by providing a trigger definition. Some examples of this are Build Completed, Code Pushed, and Pull Request Created. You also can add a filter, so that your webhook can be limited to a single project, and a build status, like succeeded or failed. You can also send HTTP Headers, messages, and event data. Event data is sent as JSON. You can also optionally send basic authentication credentials. Once you created your webhook, you can test it by sending a message during the configuration steps to make sure that you've configured the webhook correctly and you're getting a response from your endpoint.
So, as you can see there's a ton of extensibility options available to you if Azure DevOps doesn't have everything you need. We will be talking more about third-party integration in the module on integrating Azure with Jenkins. I'll see you there.
About the Author
As well being the owner and CTO of Sharp Solutions Group, a software development and IT staffing company based in the Philippines, Kelso is a Microsoft Certified professional and an avid knowledge seeker. His belief is that you need to learn something new each day to stay on top of the constantly changing IT world. He is an avid gamer (both video games and board games) and lives in the Philippines with his wife and soon-to-be-delivered son.