Azure DevOps Tutorial
Azure DevOps is implemented both on the off-premises as Azure DevOps Server and an online premises called as Azure DevOps services. This online and offline premises service helps the developers and the team in creating and deploying applications. The enterprises require efficient quality applications and DevOps has become increasingly critical to a team’s success, and cloud integration is the best possible way to increase that success rate.
In this tutorial, you will learn all the fundamental concepts that are used in Azure DevOps. We have covered the concepts on terminologies used in Azure DevOps, its advantages, life cycle, pricing, services, etc.
Now, let go through the concepts of Azure DevOps.
1. Understanding Azure DevOps
Azure DevOps is a methodology that is designed to reduce the development time to produce the continuous delivery of high-quality applications. It is the union of Software Development (Dev) and IT Operations (Ops). Let us discuss the most vital and fundamental terms used in Azure DevOps projects. Agile is also another development methodology that is implemented for software production. Agile and DevOps sometimes are used interchangeably, but both the methodologies are not the same. The technique which continuously merges the source code updates into one main line to prevent conflicts is known as continuous integration. The automated builds allow us to compile all the source files and package the resulting files and producers’ installers.
DevOps is an amalgam of practices, tools, and philosophies that enable rapid development and deployment of business and customer applications. DevOps started with cloud computing, which made it possible to allocate resources quickly and inexpensively. Cloud exaggerates the innovations under DevOps by incorporating development, testing, and deployment tools in the cloud. Traditionally, it doesn't offer the flexibility that the cloud has to offer while delivering apps that need to be deployed faster and monitored through the development life cycle.
DevOps integrates and unites the development team and IT Ops team to closely work together in the application lifecycle. Quality Assurance and Security teams are also tightly coupled and work with the DevOps team. Azure DevOps team automates the processes of all development and operations. In Azure DevOps, the technology stack and tools are reliable, evolve quickly, and help the team to accomplish tasks quickly. For example, continuous deployment of code from GitHub of Visual Studio Team Services or provisioning cloud infrastructure for application deployment. Usually, these would have required help from other teams but as Azure DevOps integrate these into a single unit this increases the development speed.
2. Terminologies used in Azure DevOps
Four terms are commonly used in Azure DevOps.
Continuous Integration (CI)
It is the process of automating the build and testing of code, each time a team member commits changes to version control. The master branch is kept clean and the development branch is created. Once the testing is finished and the pull request is accepted then changes are committed to the master branch.
It is the process of building, testing, configuring, and deploying from a build to a production environment.
Infrastructure as Code (IaC)
It is the management of infrastructure comprising networks, virtual machines, load balancers, and connection topologies in a descriptive model that uses the same versioning as the DevOps team uses for source code. IaC enables DevOps teams to test applications in environments similar to the production in the development cycle.
These are architectural patterns in which applications are split into smaller modules and deployed to implement specific business logic. Microservices communicate over the web using Azure DevOps REST API.
3. Azure DevOps Skill requirements
Azure provides end to end solutions which enable the software development teams to implement the DevOps practices in all phases of development. To learn DevOps, the aspirants require certain skills and knowledge as explained below.
Comprehending major development apps
Azure DevOps is a collection of products and services that help the aspirants to implement the methodologies of DevOps. The aspirants are recommended to learn all the major DevOps tools such as Jenkins, Docker which are required for mastering Azure DevOps.
There is an equal prominence to ensure the security of the application, if not more than that of working on the application. Hackers may affect the entire network if they could get access to any system. Developers are responsible to write code for securing the applications.
Technology and Tools of Automation
The automation makes the process of development and deployment perform faster. Good knowledge of automation technologies and tools is very crucial for DevOps.
Coding and Scripting
Coding and scripting skills languages such as Ruby, Python, Perl, and others are very significant for Azure DevOps developers as they are responsible for writing manual codes or replacing a manual process.
The cloud provides a better place to locate the backup of all the data and also helps in orchestration for a better and systematic process of automation. It helps in developing and deploying applications faster.
Azure DevOps offers powerful services that help in testing the applications. For proper usage, the aspirants must possess sound knowledge of testing and various approaches within it as all reputed organizations use various methods to test.
4. Advantages of Azure DevOps
The primary cause that Azure DevOps has become very significant in learning is that it unifies the greatness of the cloud and DevOps process. Azure DevOps can be used to build efficient applications for self-learning or for the benefit of an organization that seeks proficient developers for a great role!
- Speed: In DevOps, microservices and continuous delivery allowed teams to take ownership of services and then release updates to them faster.
- Rapid Delivery: DevOps unifies tools and all processes in the cloud, so beginning from developing the apps and testing them in the cloud by using automated tools and then is deploying as soon as code is committed. This ensures rapid delivery.
- Reliability: Monitoring and logging practices help to stay informed about performance in real-time.
- Scaling: Infrastructure as code helps in managing the development, testing, and production environments in a repeatable and more efficient manner.
- Improved Collaboration: The team collaborates easily with DevOps and a single unified platform Developer and Operation shares the responsibilities and feedback without getting isolated.
- Security: Automated compliance policies, fine-grained controls, and configuration management techniques can define and then track compliance at scale.
5. Introduction to Azure DevOps
The Azure platform is full of flexible DevOps workflows. Microsoft provides the following services for DevOps in their Azure cloud platform.
- Visual Studio Team Services: Services for teams to share code, track work, and ship software.
- Visual Studio Mobile Center: Mission control for your mobile apps.
- Visual Studio: Integrated development environment (IDE) from Microsoft.
- HockeyApp: Deploy mobile apps, collect feedback and crash reports, and monitor usage.
- Xamarin in Azure: Xamarin a framework that enables rapid development and testing of mobile apps in the cloud, xamarin is deployed to multiple platforms from a single codebase and xamarin test cloud can test your application in real devices in the cloud.
Moreover, the Microsoft Azure cloud platform supports third-party tools such as Jenkins, Redhat, Chef, Spinnaker, and Terraform.
6. Azure DevOps Lifecycle
The life cycle of Azure DevOps mainly constitutes three phases.
- Write code, Test, and Debug: In the application development stage, the code for Azure applications is often built locally on a developer’s machine. Microsoft has recently appended more services to Azure Apps known as Azure Functions. The azure function is a serverless computing feature that enables the developer to build enterprise applications without writing codes and maintain infrastructure.
- Visual Studio Team Services and Git are two popular code collaboration tools for Deploying and Monitoring.
- Azure App Service for DevOps offers the following deployment slots for Continuous integration and deployment for codebase:
- Local git repository
- Visual Studio Team Services
If the code is open source and hosted in public Github, then use the Continuous Integration tools such as Travis CI or CircleCI for code testing and deployment
7. Comparing Azure DevOps Service and Server
The primary difference is about where the entity operates. The Azure DevOps Services are operated on the cloud while the Axure DevOps server is operated on-premise. As per the scaling and scoping of data, Azure DevOps services provide only two options such as organizations and projects while Azure DevOps server provides three options such as projects, project collections, and deployment. Azure DevOps Services can connect over the public network while Azure DevOps Server connects to the intranet server. In Azure DevOps Services, the access level must be assigned to each user while in Azure DevOps Server the access levels must be set based on the license.
8. Azure DevOps Pricing
There are two general kinds of pricing in Azure which are Individual services and opting for a user license. For individual services, the pricing options are as follows:
You can have 1 free Microsoft-hosted CI/CD with 1,800 minutes and 1 free self-hosted CI/CD with unlimited minutes. After the free parallel jobs, Rs.2643.85/extra Microsoft-hosted jobs and Rs.991.444/extra self-hosted ones.
You can use up azure artifacts of 2 GB free storage and after the free storage, it charges Rs.132.193/GB.
If you are willing to take a user license, the pricing is as follows:
- Free for the first five users.
- Includes all basic features.
Basic Plan and Testing:
- Chargeable from the beginning
- Includes all basic features, along with testing services.
9. Azure DevOps Services
Microsoft Azure DevOps offers many services for the development of software in all the phases of its lifecycle. This includes planning the work, collaborating during development, and also while building the applications. The infrastructure explains how it does this. Azure DevOps infrastructure comes with plenty of modules that do specific jobs. Let us discuss each of them in detail.
9.1 Azure Boards
Azure boards track the tasks, bugs, and features easily. It consists of three types of work items such as epic work item, issue work item, and task work item. The epic work item tracks features or any requirements. The issue work item tracks bugs or any small changes and the task work item tracks the works which are smaller than that tracked by issue. It is easy to add or update the status of your work done and by using a drag-and-drop feature, you can prioritize your works.
9.2 Azure Repos
The Version control systems are software that helps you track changes that you have made in your code, by taking snapshots of your files. One popular example is Git. Azure DevOps Repo or Repos is a collection of many version control tools that could be used to manage your code. It provides mainly two types of version control software as GIT repo and TFVC (Team foundation version control). Git is a distributed version control system which means that the local copy is a complete repository that allows it to work offline as well. In TFVC, the historical data is kept only on the server since it is a centralized version control system.
9.3 Azure Pipelines
The Azure DevOps pipeline is used in creating and testing the code automatically and also provides access to other users. As Continuous Integration and continuous delivery are unified, it delivers consistent and good quality code by using both of them. For public projects, Azure pipelines are completely free while for private projects, you can get 30 hours of it free for every month. You can work with programming languages like Python, Ruby, Java, PHP, C#, and Go. To use Azure Pipelines, your source code must be stored in a version control system such as Git. Coming to the pricing, private projects can work up to 30 hours for free, every month, and for public projects it is free.
9.4 Azure Test Plans
The Azure Test plan enables testing an application manually and runs exploratory tests as well. The unit and function tests are also performed and have continuous testing enabled. You can request, provide, and track feedback using Azure test plans.
9.5 Azure Artifacts
The artifacts are executable files that contain only machine instructions despite having human-readable higher-level code. A Feed is like a container of packages that helps in consumption and publishing. The Azure artifacts is a store that contains all your artifacts that are produced during development and deployment. They provide a fast and secure feed of binary packages that are also easy to use. You can also use multiple feeds for an organization and control of access to your packages. Azure Artifacts ensure that your pipelines are fully integrated package management. You can also create packages like Maven, npm, and NuGet. It includes a free usage tier of 2 GB.
10. Azure DevOps Hands-on
In this section, you will be creating a DevOps Organization and using the services provided by Azure DevOps. This requires Git as a prerequisite.
Step 1: Go to Azure Portal and search for Azure DevOps. Click on the link as shown on the below screen.
Step 2: Click on “Create new organization” and then click on “Continue”.
Step 3: Add a name for your organization and select the region of your server. Then, click on “Continue”.
Step 4: Apply the following details.
- Name your project.
- Select Public for Visibility.
- Click on “Create project”.
Step 5: Now, you will be able to see the organization that is created successfully.
Step 6: Select “Project Settings” and then “Security” to add new members.
Step 7: Apply the following steps.
- Click on your organization team. Here it is named as “newproject”
- On the top right, you can see “Members”. Click on it.
- Click on “Add” to add new members to the team.
Step 8: Search for users you want to add with their mail IDs or names. Click on “Save changes”.
Step 9: You can see the team members once you have added the users.
Step 10: Go to the Git bash and create a new directory. Clone the repository URL into your system. Create a notepad, write your code, and then push it to the Azure server.
Step 11: Here is the file on Azure Repos after pushing the repository that was created on the system.
Step 12: Here are all the commits that have been made. Click on “Commits” under Repos to see yours.
Step 13: To add new work, go to “Boards”, and then click on “New Work Item”.
Step 14: Add a new task and assign the state. Click on “Save”, and your task has been created.
Step 15: When you click on “Work Items”, you can see the work that you created on the center screen.
Step 16: If you want to assign the task to a user, go to “Boards”. You can see the work items. Assign the task to the user.
Step 17: Let us now create a pipeline. Go to “Pipelines” and click on “New pipeline”.
Step 18: Specify the resource where your code is. Here, let’s go with the first option, that is, “Azure Repos Git”.
Step 19: Once you select “Azure Repos Git” you have to choose your repository.
Step 20: You can now see the default pipeline which is created. You can write down the tasks that you want to perform and click on Run.
Step 21: Here, nothing would be written explicitly in the “.yml” file. Let’s simply execute it. Here is the output.
Step 22: You have successfully created a pipeline!
Step 23: Let us test the project, now. There are different ways in which you can do it. For testing via URL, go to “Load Test” and select “New”. Click on “URL based testing” and do the following:
- Name the test
- Enter the URL that you want to test
- Save the test
- Run the test
Step 24: Once you are done, you can see the following:
Step 25: Here are the results of the test run:
As the practical applications of DevOps are increasing day by day, many changes are also being adopted for improving the DevOps Services. One of the major aspects is that there is a lot of containerization of software that applications would run from the cloud itself. This brings a dramatic shift in the world of DevOps! Hence choosing the Azure DevOps Organization plays a vital role.