# Azure Devops- Overview




Cloud & Devops is the most emerging technologies in IT industries. It's really helpful to improve the  software application qualities and development process  in very short period of time. 

**Microsoft Azure** is the one of the most  leading cloud platform for building, testing, deploying, and managing applications and services through Microsoft-managed data centers.

In this blog, we can learn about Azure Devops fundamentals, working principles, features and usecases of each services


## What is Azure Devops ?

- It's Devops platform

- It's a Software as a service platform from microsoft

- it is a Platform to implement all your devops process


![devops-2.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1661343107657/Vj0Urb-tL.jpg align="left")


## What are the core services of Azure Devops ? 

- Azure Boards

- Azure Repos

- Azure Pipelines

- Azure Artifacts

- Azure Test Plans


![devops-azuredevopsservices.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661346282377/P-Sy2qQKI.png align="left")

## Azure Boards

- Planning is the first step in software development lifecycle

- We can Plan about What we are going to develope (Features, bugfixes), Serveral Processes and workflows, who is going to work on particular task, How to divide and split tasks in various sprints

- It's similar to Agile and scrums board


![Screenshot from 2022-08-24 15-48-54.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661344348318/0NKx8iC07.png align="left")




## Azure Repos

- It's Source control management

- We can host your code in private git repositories

- It's similar to Gitlab, GitHub and Bitbucket

- We can collaborate on the code (Code Reviews, PR, Branch Policies) with many developers


![Screenshot from 2022-08-24 15-50-41.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661343237909/CGJhynmP7.png align="left")


## Azure Pipelines 

- It's really helpful and easy to make CI/CD automation for our project

- We can write our own pipeline in YAML  file or import already existing templates

- Basically our source code has to be crossed many stages in while this pipeline is running such as build stage, test stage and deploy stage


![pipeline-1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661349085729/NvzJJkJLe.png align="left")


![pipeline2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661349120320/tYXOeDD7R.png align="left")



![pipeline-3.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661349130411/dSElHjIw_.png align="left")


### Basic Pipeline Syntax

It's very simple to understand and write our own pipeline

### Components of YAML file pipeline

Stages

- A stage is a logical boundery in the pipeline

- Each stage contains 1 or more jobs

- By default, they run one after the other

Agent 

 - An agent is computing infrastructure with agent software installed on it

-  we can define on which os and version to run your tasks

Jobs 

- A job is a set of tasks and steps

1. Step
  -   Main and smallest building block of pipeline
  -   A step can either be a script or a task

2. Task 
 -  Task is a pre-created script offered as a convenience
 -  You can use the task with a set of inputs


### Example pipeline


```
# Node.js Express Web App to Linux on Azure
# Build a Node.js Express app and deploy it to Azure as a Linux web app.
# Add steps that analyze code, save build artifacts, deploy

trigger:
- {{ branch }}

stages:
- stage: Build
  displayName: Build stage
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

    steps:
    - task: NodeTool@0
      inputs:
        versionSpec: '10.x'
      displayName: 'Install Node.js'

    - script: |
        npm install
        npm run build --if-present
        npm run test --if-present
      displayName: 'npm install, build and test'

    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true

    - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: $(environmentName)
    pool:
      vmImage: $(vmImageName)
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            displayName: 'Azure Web App Deploy: {{ webAppName }}'
            inputs:
              azureSubscription: $(azureSubscription)
              appType: webAppLinux
              appName: $(webAppName)
              runtimeStack: 'NODE|10.10'
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
              startUpCommand: 'npm run start'
``` 



## Azure artifacts

- Artifacts differ based on the programming language used for writing the application

- Here you can store and share different packages from public and private sources

- You can store your artifacts produced by the CI pipeline by easily connecting and pushing to Azure Artifacts


![artifacts.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661349960200/SaHvtYr5J.png align="left")


## Azure Test plans

- Testing your application is very important

- A browser based test management tool

### Manual Tests

- Specifying the test steps

- And expected outcomes

### Automated Tests

- By running tests within Azure pipelines

- Test reports can be viewed in Azure Test plans



![Screenshot from 2022-08-24 20-05-39.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661351762081/xNY1AF9Dx.png align="left")



## Service connection

- In the Devops process we often need to connect and interact with other platforms

- For that , Azure Devops needs to connect and authenticate to other platforms


![Screenshot from 2022-08-24 21-24-51.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1661356581317/T_6NDzQn9.png align="left")



Further more details. Please check official documentation of azure

- Azure portal : [Click Here](https://azure.microsoft.com/)

- Azure documentation : [Click Here](https://docs.microsoft.com/en-us/azure/?product=popular)

- Azure devops : [Click Here](https://azure.microsoft.com/en-us/services/devops/)

- Azure devops Official Docs : [Click Here](https://docs.microsoft.com/en-us/azure/devops/?view=azure-devops)



** Keep Learning , Keep Growing**


## Community and Social Footprints :
- [Veerasolaiyappan](https://www.linkedin.com/in/veera26/)
- [GitHub](https://github.com/cloudnloud)
- [Twitter](https://twitter.com/cloudnloud)
- [YouTube Cloud DevOps Free Trainings](https://www.youtube.com/c/CloudnLoud)
- [Linkedin Page](https://www.linkedin.com/company/cloudnloud/)
- [Linkedin Group](https://www.linkedin.com/groups/9124202/)
- [Discord Channel](https://discord.com/invite/vbjRQGVhuF)
- [Dev](https://dev.to/cloudnloud)


































































