Academic Year: 2023_24
Experiment No. 10
Team Members:
Prayag Mitaliya - 60004220259
Harsh Ghosalkar - 60004229261
Deep Prajapati - 60004220262
Aim: Study of Azure Devops.
Theory:
Azure DevOps provides developer services for allowing teams to plan work, collaborate on
code development, and build and deploy applications. Azure DevOps supports a collaborative
culture and set of processes that bring together developers, project managers, and contributors
to develop software. It allows organizations to create and improve products at a faster pace
than they can with traditional software development approaches.
Azure DevOps provides integrated features that you can access through your web browser or
IDE client.
Azure Repos:
Azure Repos is a set of version control tools that you can use to manage your code. Version
control systems are software that help you track changes you make in your code over time. As
you edit your code, you tell the version control system to take a snapshot of your files. The
version control system saves that snapshot permanently so you can recall it later if you need it.
Use version control to save your work and coordinate code changes across your team.
Azure Repos provides two types of version control:
1. Git repositories: Git is the most commonly used version control system today and is
quickly becoming the standard for version control. Git is a distributed version control
system, meaning that your local copy of code is a complete version control repository.
These fully functional local repositories make it is easy to work offline or remotely.
You commit your work locally, and then sync your copy of the repository with the copy
on the server.
2. Team Foundation Version Control (TFVC): Azure Repos also supports Team
Foundation Version Control (TFVC). TFVC is a centralized version control system.
Typically, team members have only one version of each file on their dev machines.
Academic Year: 2023_24
Historical data is maintained only on the server. Branches are path-based and created
on the server.
Azure Pipelines:
Azure Pipelines automatically builds and tests code projects to make them available to others.
It works with just about any language or project type. Azure Pipelines combines continuous
integration (CI) and continuous delivery (CD) to test and build your code and ship it to any
target.
Continuous Integration (CI) is the practice used by development teams of automating merging
and testing code. Implementing CI helps to catch bugs early in the development cycle, which
makes them less expensive to fix. Automated tests execute as part of the CI process to ensure
quality. Artifacts are produced from CI systems and fed to release processes to drive frequent
deployments. The Build service in Azure DevOps Server helps you set up and manage CI for
your applications.
Continuous Delivery (CD) is a process by which code is built, tested, and deployed to one or
more test and production environments. Deploying and testing in multiple environments
increases quality. CI systems produce deployable artifacts, including infrastructure and apps.
Automated release processes consume these artifacts to release new versions and fixes to
existing systems. Monitoring and alerting systems run continually to drive visibility into the
entire CD process.
Azure Boards:
Delivers a suite of Agile tools to support planning and tracking work, code defects, and issues
using Kanban and Scrum methods. Azure Boards provides software development teams with
the interactive and customizable tools they need to manage their software projects. It provides
a rich set of capabilities including native support for Agile, Scrum, and Kanban processes,
calendar views, configurable dashboards, and integrated reporting. These tools scale as your
business grows.
Academic Year: 2023_24
Quickly and easily track work, issues, and code defects associated with your project. The
Kanban board, shown in the following image, is just one of several tools that allows you to
add, update, and filter user stories, bugs, features, and epics.
Azure Test Plans:
Azure Test Plans provides rich and powerful tools everyone in the team can use to drive quality
and collaboration throughout the development process. The easy-to-use, browser-based test
management solution provides all the capabilities required for planned manual testing, user
acceptance testing, exploratory testing, and gathering feedback from stakeholders.
Azure Artifacts:
Azure Artifacts enable developers to consume and publish different types of packages to
Artifacts feeds and public registries such as NuGet.org and npmjs.com. You can use Azure
Artifacts in conjunction with Azure Pipelines to deploy packages, publish build artifacts, or
integrate files between your pipeline stages to build, test, or deploy your application.
Azure Architecture Solutions:
1. Azure Architecture for Content based Recommendation System:
This example scenario covers the training, evaluation, and deployment of a machine learning
model for content-based personalization on Apache Spark using Azure Databricks. In this case,
a model is trained with a supervised classification algorithm on a dataset containing user and
item features. The label for each example is a binary value indicating that the user engaged
Academic Year: 2023_24
with (for example, clicked) an item. This scenario covers a subset of the steps required for a
full end-to-end recommendation system workload. The broader context of this scenario is based
on a generic e-commerce website with a front end that serves rapidly changing content to its
users. This website uses cookies and user profiles to personalize the content for that user. Along
with user profiles, the website may have information about every item it serves to each user.
2. Azure Architecture for Distributed Training Deep learning models:
This reference architecture shows how to conduct distributed training of deep learning models
across clusters of GPU-enabled VMs. The scenario is image classification, but the solution can
be generalized to other deep learning scenarios such as segmentation or object detection.
Workflow
This architecture consists of the following services:
Azure Machine Learning Compute plays the central role in this architecture by scaling
resources up and down according to need. Azure ML Compute is a service that helps provision
and manage clusters of VMs, schedule jobs, gather results, scale resources, and handle failures.
It supports GPU-enabled VMs for deep learning workloads.
Academic Year: 2023_24
Standard Blob storage is used to store the logs and results. Premium Blob storage is used to
store the training data and is mounted in the nodes of the training cluster using blobfuse. The
Premium tier of Blob storage offers better performance than the Standard tier and is
recommended for distributed training scenarios. When mounted using blobfuse, during first the
epoch, the training data is downloaded to the local disks of the training cluster and cached. For
every subsequent epoch, the data is read from the local disks, which is the most performant
option.
Container Registry is used to store the Docker image that Azure Machine Learning Compute
uses to run the training.
3. Azure Architecture for CI/CD:
Azure Web Apps is a fast and simple way to create web apps using ASP.NET, Java, Node.js,
or PHP. Deliver value faster to your customers with a continuous integration and continuous
deployment (CI/CD) pipeline that pushes each of your changes automatically to Web Apps.
Conclusion: In conclusion, our exploration of Azure DevOps has illuminated its integral role
in modern software engineering practices, showcasing its robust suite of tools for seamless
integration, delivery, and collaboration throughout the software development lifecycle. As
organizations continue to prioritize agility, automation, and efficiency, Azure DevOps emerges
as a pivotal platform empowering teams to innovate and deliver high-quality software at scale.