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
What are the core services of Azure Devops ?
Azure Boards
Azure Repos
Azure Pipelines
Azure Artifacts
Azure Test Plans
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
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
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
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
Step
- Main and smallest building block of pipeline
- A step can either be a script or a task
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
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
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
Further more details. Please check official documentation of azure
Azure portal : Click Here
Azure documentation : Click Here
Azure devops : Click Here
Azure devops Official Docs : Click Here
Keep Learning , Keep Growing