Cloud computing is using remote servers on the internet to manage, store, and process data instead of using your personal computer or a local server.This article will discuss about Microsoft Azure DevOps Pipeline build process and implementation mechanisms.
DevOps is an agile approach or culture where both development and operational teamwork continuously together with each other while building a quality product. In a DevOps environment, both development and functional teams interact with each other and can discuss the product.
What are the Features of Cloud Computing?
On-Demand Self-Service - Consumers can be made available computing capabilities as needed without requiring human interaction with each service provider.
Broad network access - Cloud provides its user the ease of accessing the network and services broadly form any part of the World.
Resource pooling - Cloud is a vast swimming pool of resources. It offers a wide range of products and services.
Rapid Elasticity - Elasticity is the ability to scale on demand up or down as needed so that the user doesn’t experience any interruptions.
Measured Services - Measured services means pay only for what you have used. Cloud does not charge its users unnecessarily, and it provides its users the advantage of paying only for the resources that have been used.
Multi-tenacity - Cloud provides its user the feature of multi-tenant. Multi-tenacity is a software architecture that allows software in multiple servers, which can be used to serve multiple tenants.
The user doesn’t need to install software on his pc.
Platform with the help of independent.
Computing resources managed by the vendor.
It is accessible with the help of any web browser or any client application.
Popular SaaS providers are- Microsoft office 365, Salesforce, HR HelpDesk, Google’s product like Gmail, Google Docs, and Google Drive.
PaaS helps one focus on developing the application as it provides the rest of the requirements needed for the development, including middleware, servers, and storage. Click to explore about, What is PaaS?
Platform as a Services (PaaS)
PaaS services include APPLICATION as well as CUSTOMIZATION.
Mostly used by developers.
Popular PaaS providers are – Heroku, AmazonWebService(AWS), Microsoft Windows Azure,force.com, Google app engine.
Platform as a Services (PaaS) Advantages
Cost-effective Rapid Development
The faster market for developers
Easy deployment of web services
Public or private deployment s possible
Infrastructure as a Services (IaaS)
IaaS services include PLATFORM, APPLICATION as well as CUSTOMIZATION to their users.
IaaS is providing the whole infrastructure that is needed for computing.It contains virtual hardware, Virtual Machines, Networks, Storage, Servers, Operating systems, etc., to the user.
Benefits include -
Secure and automated backup
Cost for infrastructure is reduced
What is Azure and Microsoft Azure DevOps?
Azure is a cloud computing platform and an online portal to access and manage resources and services provided by Microsoft. All you need is a working Internet connection and an Azure portal.Learn more about Azure -
Launched on February 1 st, 2010.
Free to start and also provides a pay-per-use model.
All fortune 500 companies use Azure Cloud; to be specific, it’s around 80%.
Support multiple programming languages like Node, JS, java, c#, etc.
Data centers in 42 regions around the World. It is expected to have 12 more in the coming period, so the total number increases to 54.
Azure Pipeline is a cloud-based service provided by Microsoft Azure, which allows its user to Automatically build and test code and make the code available to the other users. Azure Pipelines is a straightforward and quick and also secure way for automation and building the projects. The projects that you create can also be made available to other users.
An azure pipeline is the heart of the DevOps process. It is the CI/CD system, i.e., continuous integration and continuous deployment system. It keeps the quality of your application to make sure that every change you make is taking you forward instead of backward. It allows you to ship whenever you want to keep your code quality high , you can also use it as a Launchpad to get your code up into the cloud whether its Azure cloud, Google, AWS, or any other because azure pipelines is a system that works for any language, any platform, and any cloud. Azure has hosted pool of machines Linux, windows, mac that azure manage for its user so that they don’t have to because of everything.
Azure is trying to do with this is to make its user's life more comfortable as a developer, and as your pipelines don’t stop with what Azure has shipped. It is highly extensible that Azure has an ecosystem of over 500 extensions that have been contributed both the community and form its partners from slack to Sonar cloud. You can use it for any application in any deployment mechanism, but containers are increasingly becoming that unit of application deployment, so Azure pipelines work great with containers you can use it to build your containers to test and validate your containers to publish it to whatever register you want and deploy it to whatever service you want, including Kubernetes.
Integrated with GitHub
Now almost all the developments that happen at Microsoft happens in Git, including windows. Windows team uses the source control system that line is built to build windows. Microsoft has open-sourced more and more products that it offers, i.e., vs. code and typescript are examples. Azure pipelines have core parts of its infrastructure open soured Azure has added free CI / CD with Azure pipelines for any open source project that wants it.
That means any open source project can use Azure Pipeline for unlimited minutes up to 10 concurrent jobs running at the same time. The quality that Microsoft gives to open source is the same quality that it provides to everyone, i.e., no decrease in quality.
Continuous Integration (CI) for Microsoft Azure DevOps
Continuous Integration is primarily there to keep everyone who’s working on a team, or anyone who is building a piece of software is in sync, so it is all about having a collaborative event between all of the people who are involved in making something and keeping then in sync, and the way that happens is through automated testing and validation and feedback.
For instance developers are working on a project, each of them works and implements a few classes, so they code them up and write all sorts of unit tests, so their classes work correctly and at they feel that their program will so without any problem as their classes are so well tested. And then integrate their classes, they combine them to create the more extensive program the team is developing and then everything breaks, code fails to compile, all sorts of bugs arise, and this situation is known as integration error.
So to resolve this problem, the developer comes out with the solution, i.e., Continuous Integration. Features of Integration Testing -
Originated from extreme Programming(XP)
Mitigates risks associated with integrating software
Avoids integration Errors
Integrate early and often combine- i.e., on every change
The conveyance of processing administrations—including capacity, servers, databases, examination, systems administration, programming, and insight on the Internet. Click to explore about, CaaS vs PaaS - Which is a better Solution?
Continuous Deployment (CD) for Microsoft Azure DevOps
Continuous Deployment (CD) picks up where CI leaves off. CI is responsible for doing all these tests and creating all of the things that are associated with that package that is necessary for the continuous deployment tool to pick that package up and then deploy that out of the environment that needs to be right. We only built it once and implemented it as many times as we need to whatever environments are associated with that’s the core concept of it.
Now continuous deployment is going to pick up that package that the CI tool created as the final result of all the tests compiling everything running well and deploy that out in an automated fashion to the environments that are associated with that specific project, so we have a staging environment or a testing environment or an acceptance environment and then a production environment, the continuous deployment tool is responsible for picking up that package, deploying that down, handling all things like connection draining load, load balancers associated, application installs, validation all that sort of kinds of stuff that comes into right, so that’s the versions of CI and CD.
Microsoft Azure DevOps Pipeline
Either YAML or Visual Designer can define azure Pipeline. When YAML is used, then the most pipeline is defined in code along with the rest of the system for the app. When Visual Designer is used, a build pipeline is limited to build and run the code and then publish artifacts. A release pipeline is also defined to consume and deploy those artifacts to deployment targets. Using Azure Pipeline with YAML -
Step 1 - Go to dev.azure.com and add a project. Put the visibility of your project to public or private as per your requirements.
Step 2 - Then Click on New Pipeline.
Step 3 - Configure the Azure pipeline to use your Git Repository or Git Hub (where code is present). Suppose the code is in Git Hub, fill your GitHub details.
Step 4 - Select the code you want to send for continuous integration and continues deployment.
Step 5 - Configure the code and then create the pipeline.
Step 6 - Click on the run.Then the code will automatically start configuring, and the CI pipeline will be created or built. Now it spinoff a build agent. You can see that an agent is ready for the job. You can see the name of the agent and the work carried out and the succeeded job.
The agent will restore the packages from GitHub, it will compile the code from visual studio, and it will run the unit test. You can check the summary by clicking on the summary. There you can find the time of everything that happened during the build, including all the tests that were run.
There, in summary, you will find different options -
Then you have to create or release the deployments as earlier you might not have created. To release or crate the deployments, click on the release button. As you click on the release button, it will take you to Visual editor for release pipeline. You can choose a different template from there.
Step 8 - Suppose you choose Azure App Service deployment template, click apply. Now when you in, create a pipeline, for your releases first thing you have to is define your stages. There you have to put a stage name, and then you have to assign the tasks that are going to run at that particular stage. As we are using a template so, everything is already define, but you have to your account with your subscription. Just connect your azure pipeline with your Azure subscription. And when this is done, select the app service you are deploying to. One thing more you have to do is, as this is your staging environment; therefore, you have to deploy this in your staging slot. So first, you have to choose a resource group and choose the staging slot.
Step 9 - If you want more than to deploy and opt for azure app service, so to customize these release pipelines, you can add/ remove tasks. Other than that, Azure Pipeline gives you a hundred functions that you can download and use.
Now, after you have created your stage and you have created the task that will run on your scene, you can add approvers before and after each phase. This is how you can build a CI /CD pipeline in any language.