Azure Devops- Overview

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

What are the core services of Azure Devops ?

  • Azure Boards

  • Azure Repos

  • Azure Pipelines

  • Azure Artifacts

  • Azure Test Plans

devops-azuredevopsservices.png

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

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

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

pipeline2.png

pipeline-3.png

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

artifacts.png

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

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

Further more details. Please check official documentation of azure

Keep Learning , Keep Growing

Community and Social Footprints :

Did you find this article valuable?

Support Cloudnloud Tech Community by becoming a sponsor. Any amount is appreciated!