Introduction to Azure DevOps

What is Azure?

Azure is Microsoft's Cloud computing platform. It hosts hundreds of Services in over 58 regions (e.g. North Europe,West US, UK South) and available in over 140 countries.

As you can see, lots of Azure services have already been consumed throughout these blogs. Azure SQL Databases, Azure Data Lake gen2, Azure Blob Storage, Azure Data Factory, Azure Logic Apps, Cognitive Services etc.

Business Processes are split into Infrastructure as a Service Iaas (VMs etc) , Platform as a Service PaaS (See the services above) and Software as a Servie SaaS (Office 365, DropBox, etc)

You can save money by moving to this OpEx model (Operational Expenditure) from the CapEx model (Capital Expenditure) because you pay for what you need as you go, rather that having to spend money on your hardware, software, data centers etc

Cloud Services use Economies of Scale, in that Azure can do everything at a lower cost because its operating at such a large scale and these savings are passed to customers.

 

On Demand Provisioning

When there are suddenly more demands on your service you don't have to buy in more hardware etc. You can simply provision extra resources very quickly

 

Scalability in Minutes

Once demand goes down you can easily scale down and reduce your costs. Unlike on Premises when you have to have maximum hardware requirements just in case.

 

Pay as you Consume

You only pay for what you use

 

Abstract Resources

You can focus on your business needs and not on the hardware specs (Networking, physical servers, patching etc)

 

Measurable

Every unit of usage is managed and measurable.

 

What is DevOps?

A set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, also ensuring high quality

Testing, Reviews, Moving to production. This is the place where developers and the Operations team meet and work together

 

Pre DevOps

If we don't work within a DevOps Framework. What do we do?

Developers will build their apps, etc and finally add it into Source Control

Source Control or Version Control allows you to track and manage code changes. Source Control Management Systems provide a history of development. They can help resolve conflicts when merging code from different sources

Once in Source Code the Testing team can take the source code and create their own builds to do testing

This will then be pushed back to the development team and will go back and forwards until everyone is happy. Here we can see that the environments we are using are Dev and Test

Once Complete, it is released into Production.

This is a very siloed approach. Everyone is working separately and things can take time and you will get bottlenecks

 

The DevOpsApproach

Everyone works together. You become a team and time to market becomes faster. Developers and Operations are working as a single team

 

DevOps Tools

Each stage uses specific tools from a variety of providers and here are a few examples

  • Code

    • Eclipse, Visual Studio, Team Foundation Services, Jira, Git

  • Build

    • Maven, Gradle, Apache Ant

  • Test

    • JUnit, Selenium

  • Release

    • Jenkins, Bamboo

  • Deploy

    • Puppet, Chef, Ansible, SaltStack

  • Monitor

    • New Relic, SENSU, Splunk, Nagios

We need all these tools to work together so we don't need to do any manual intervention. This means that you can choose the ones that you have experience in.

 

Components of Azure DevOps

 

Azure Boards

People with a Scrum and Project Management background will know how to create the features within the Boards. Epics, Stories, Tasks etc

Developers create and work on tasks. Bugs can be logged here by the testers

 

Azure Repos

Push the development into Source Control to store your information. Check in your code within Azure Repos.

There are lots of repositories to choose from in Repos to suit your needs like GIT or TFS

 

Azure Pipelines

Developers build code and that code need to get to the Repos via a Pipeline. The code is built within the Pipeline.

The code is then released into Dev, Test, Prod, Q&A etc, And from, say the test or Dev environments we can........

 

Azure Test Plans

Test, using Azure Test plans. For example, if you have deployed a web service, you want to make sure its behaving correctly. Once tested the code will go back to the pipeline to be built and pushed to another environment

 

Azure Artifacts

Collect dependencies and put them into Azure Artifacts

What are dependencies?

Dependencies are logical relationships between activities or tasks that means that the completion of one task is reliant on another.

 

Azure Boards

 

Work Items

The artifact that is used to track work on the Azure board.

  • Bug

  • Epic

  • Feature

  • Issue

  • Task

  • Test Case

  • User Story

So you create work items here and interact with them on the board

 

Boards

Work with Epics, Features, Tasks, Bugs etc.

Includes support for Scrum (agile process framework for managing complex work with an emphasis on software development) and Kanban (a method for managing and improving work across human systems. Balances demands with capacity)

 

Backlogs

How do you prioritise your work items?

 

Sprints

Say your Sprint is 20 days (2 weeks) What work can be accomplished within this sprint?

 

Dashboards

Overall picture of the particular sprint or release

 

Repos

We can use GIT or Team Foundation Server TFS. The example uses GIT

  • Files

  • Commits

  • Pushes

  • Branches

  • Tags

  • Pull Requests

You create your own branch from the master branch. Do your testing and changes and push back from your branch to the master branch.

 

Pipelines

Where is your Code? Its in GiT

Select the GiT source like Azure Repos GIT or GiTHub etc

Get the code from the master branch

How do you want to build the project?

Choose from lots of templates, Azure Web App, ASP.net , Mavern, Ant, ASP.NET, ASP.NET with containers, C# function, Python package, Andriod etc

Next provide the Solution path and the Azure Subscription that you want to deploy to

This takes the source code from the GiT repository and builds the source code.

The build will then give you logs to show you how the build of the project happened

Next time when you check in code, it will automatically trigger the pipeline to build the code

Then the build needs to be Released via a Release Pipeline

This is where you release to the correct Azure Subscription and the code will be deployed. You can also add in approvals to ensure you get the pre approval required to release the code.

 

Conclusion

This is just a whistle stop tour of Dev Ops. Test Plans and Artifacts haven't been discussed in much detail but it gives you the basics of what is included in DevOps and how you can start to think about using it.

What do you create in Azure and can it be handled within DevOps?

Can we start using the Boards?

How do we can started with Azure Devops?

Which teams members have the right interests in the specific DevOps areas?

 

If you would like more information or to discuss Azure with one of our team get in touch! call us on 01246389000 or email us on enquires@peakindicators.com 


Subscribe to our Newsletter

If you enjoyed this article why not get great insights straight to your inbox

Leave a comment