+40 256 706 057 [email protected]
Running Your Dev/Test Environments in Microsoft Azure

Running Your Dev/Test Environments in Microsoft Azure

Companies face an increasing pressure to develop, test and deliver software faster, better and cheaper. These expectations make companies to actively seek ways to shorten the time to market/production.

You heard about Dev/Test environments in Azure, but you’re still not sure how it would work in your case? Or how can you simplify and speed up the process of running dev/test environments? By all means setting up development/QA/staging environments has never been easier. With Azure Resource Manager, once you set it up it is very simple to create identical environments in a repeatable way, as it is needed for multiple deployments throughout the development process.

If you’re new to Dev/Test with Azure or you’d like to easily understand the difference between the classical on-premises approach and Dev/Test in Microsoft’s cloud, you can check out this Dev/Test infographic. It gives you a quick glance at the key differences between the on-premises vs. the cloud approach of doing Dev/Test.

So we thought of helping you get a quick jump start with Dev/Test in Azure with the most relevant information on the big whys and hows of Dev/Test. We recorded a 4-episode video series. In total, they sum up to around 35 minutes, but at the end you will be able to better understand the role and importance of Dev/Test, as well as the benefits it brings to your team and company.

Now you know how to enhance your software development processes and optimize your business with Azure.

We hope you enjoyed the series and come back for more!

Build your cloud strategy

Whether you’re an ISV or application builder, the cloud holds many opportunities for your success. And we have the skills to help get you there.
Find out more

Video: Why use PowerShell DSC in Dev/Test scenarios with Azure

Video: Why use PowerShell DSC in Dev/Test scenarios with Azure

Mihai Tataran
General Manager & Partner | Azure MVP

Desired State Configuration (DSC) is a new management platform in Windows PowerShell that enables deploying and managing configuration data for software services and managing the environment in which these services run. During this video, we’ll see why Powershell DSC is a great feature that helps us a lot Dev/Testing with Microsoft Azure.

When trying to setup an environment, things like:

  • a local account
  • a special service
  • a process
  • a configuration in IIS
  • etc.

take time and may be the source of many mistakes.

With PowerShell Desired State Configuration (DSC), creating dev / test / staging environments has never been easier. You can now specify how the VMs should “look like”, and establish their desired state (state that the VMs will be able to reach automatically).


“PowerShell DSC is a great mechanism to specify prerequisites on VMs, and also to make sure VMs are created in an identical manner, every time we need to deploy into the same type of environment.”


This is the forth video in the Dev/Test series. We recommend you also watch the previous videos:

In the previous videos we’ve seen how we can create environments for Dev, QA or Staging purposes in Azure. Most of the time, in order to deploy a solution in such environments, we need specific prerequisites to be installed on the Virtual Machines.

Why use PowerShell DSC in Dev/Test scenarios with Azure

A continuous integration process may look like this —

You have your source code (say in Visual Studio), source code that is maybe checked into TFS or VSO. And you want to deploy a new version into a specific environment (dev/test/staging etc.). The steps you need to follow are the classical continuous integration steps from VSTS: build, release and so on.

After the environment has been created in Azure, which is actually an Azure resource group, you have to deploy your solution on that environment.

Let’s zoom in a bit to see how Powershell DSC can help us a lot in these scenarios.

When you deploy your solution, you already have created and configured the Virtual Machines, load balancers, storage accounts – whatever the solution needs. All these should already be created as components in Microsoft Azure. The actual solution deployment (before you actually deploy the bits and the resources that compose your solution), you need to install and configure some pre-requisites on the VMs which are running the solutions. Such as a Web server, a local account, a Windows service, load other components and other required configurations.

Those prerequisites can become a challenge sometimes. Because you have to make sure that those prerequisites must be installed every time identically you make a new deployment in test / staging / production environments. This is the challenge: how do you make sure all those prerequisites are reused every time, in between environments or in between versions of the solution into the same environment.

I would say, a particular case, would be to make sure when you move from staging to production, when you have concluded that – Yes, this version has been tested and can be moved to Production – why not here be able to reuse the same pre-requisites.

Powershell DSC is a set of technologies which have been designed exactly for that. You are able to specify how the VM should look like, the desired state of those VMs. There are 2 mechanisms to make sure the VMs have the desired state:
VM PUSH – you simply push the specification (the DSC) on to the VM and all the differences will be applied;
VM PULL – the VM will check its’ state against a desired state specified somewhere from time to time and will be able to refresh its state.

The most important thing here is that using Powershell DSC you’re able to specify how it should look like. It’s not a procedural language where you say – install this, configure that and so on and so forth – it’s a state that you define which makes us be certain of the fact that this state will be exactly how it’s described (we’re not going to miss anything, we’re not going to install something by mistake etc). Having the DSC we will be able to use the DSC configuration throughout deployments or different mediums.

If you want the dev environment to be identical with the test environment, you simply reuse the same DSC. If you want the staging environment to be identical with the production environment, again, you reuse that specific DSC. By the way, this is a big challenge – whenever you want to promote your solution to production, which let’s say, it’s on a client’s environment, it’s always a very hard thing to do. Because you don’t have access to your customer’s infrastructure all the time, probably you’re not allowed to play with it, and what we end up doing as software developers or software companies before actually launching into production a new version of the solution, we try to replicate the production environment into a staging environment in our own infrastructure / own Azure account for example. And trying to replicate an existing production environment is not always the best case, because you might miss something. There are a lot of configurations. So testing in a replicated environment will not be perfect, because of the differences of the two environments.

With the help of Powershell DSC you’re able to easily switch tables: you’re able to actually say this is how the environment should look like, this is my staging environment where we tested the solution and, dear customer, together with the solution that we’re providing you here is a set of DSC files which will bring your environment into the desired state. Thus allowing the customer to be able to create a production environment which is supported, which has been tested on and so on.

This is how it looks like. This is part of a DSC file, specifying things like I want this Windows feature to be installed. Once you compile this file will be able to further used (with an existing or a when you create a new VM).

View the entire Dev/Test in Microsoft Azure series

Build your cloud strategy

Whether you’re an ISV or application builder, the cloud holds many opportunities for your success. And we have the skills to help get you there.
Find out more

About the author

Mihai Tataran

Mihai Tătăran is the General Manager of Avaelgo, and a Microsoft MVP on Microsoft Azure, Microsoft Azure Insider, and Microsoft Certified Professional. Mihai has been teaching Microsoft technologies courses to software companies in Romania and abroad, being invited by Microsoft Romania to deliver many such trainings for their customers.

Enhance Your Software Development Processes & Optimize Your Business with Azure

Enhance Your Software Development Processes & Optimize Your Business with Azure

Avaelgo, Brinel and Microsoft Romania invite you to attend the free half-day seminar:

Enhance Your Software Development Processes & Optimize Your Business with Azure

Save the date – November 23rd 2016 @ Hampton by Hilton, Cluj Napoca

Registration is closed

The event aims to help managers, decision makers, and technical persons increase their team productivity and optimize their development processes.

To get the most from the event, and for a better understanding of the value Microsoft’s modern Cloud Platform can offer your company, we split it into 2 parts:

    • a morning seminar for decision-managers;
    • a afternoon seminar for technical persons.

We invite you to register for the one that’s more relevant for your role within the company.

Agenda

For Decision Makers

09:30 – 10:15 Optimizing processes and reducing the cost of software development projects with Microsoft AZURE
10:15 – 10:30 Coffee Break
10:30 – 11:15 Optimizing processes and reducing the cost of software development projects with Microsoft AZURE (cont.)
11:15 – 12:00 Q&A and Open Discussions

For Technical Persons

14:00 – 15:15 Microsoft AZURE in the Cloud context, and details of Dev/Test implementation processes using Microsoft AZURE
15:15 – 15:30 Coffee Break
15:30 – 16:15 Microsoft AZURE in the Cloud context, and details of Dev/Test implementation processes using Microsoft AZURE (cont.)
16:15 – 17:00 Q&A and Open Discussions

Enhance Your Software Development Processes & Optimize Your Business with Azure

November 23rd 2016 @ Hampton by Hilton, Cluj Napoca

Select the seminar you want to attend and secure your seat now!

Registration is closed

Event registration is open until November 21st at 12:00 PM. Participation is free of charge.

Video: Dev/Test with Azure Resource Manager

Video: Dev/Test with Azure Resource Manager

Mihai Tataran
General Manager & Partner | Azure MVP

In this video, we talk about Azure Resource Manager and its role in Dev/Test scenarios.

One of the biggest challenges development teams face is to be able to create Dev or Staging or QA environments, over and over again, in an identical manner. They usually spend a lot of time doing this, but with ARM everything becomes much easier, because of the JSON template we are able to specify, and based on which Resource Groups will be created.


“Azure Resource Manager (ARM) is a fundamental technology which is going to be used more and more in a variety of places across the Azure platform, and its main advantage in Dev/Test is the ability to create environments, no matter how complex they are, in a repeated way.”


Before starting, check out the first videos in the series for a short introduction.

In a nutshell, we see two major advantages in using Dev/Test with Microsoft Azure:

  1. Optimizing the development process – you have a more optimized development process
  2. Cost efficiency – you’ll be more efficient in terms of costs.

First, developers won’t have to wait for the infrastructure team to create the development / test / staging environments. They will be able to create them themselves, in a self-service manner.

Secondly, most of the environments aren’t needed all the time, 24/7 year round – they are needed only hours per day, or a few days per week etc. There are mechanisms which allow us to minimize the costs.

Dev/Test with Azure Resource Manager

Going into further details, we’ll try to explain how Azure can help when dealing with more complex solutions. The following image shows how a (short) continuous integration process looks like.

continuous_integration_process_devtest_azure

Say you’ve got the source code in VSTS from which you proceed in the next 2 phases: the Build and the Release phase (both explained in the intro video of the series). After you have build your solution and start deploying, first of all you need to create the environment in Azure.

Imagine you’re in the process of developing a solution and you’re using Dev/Test in Azure. At the end of every iteration you need to deploy the solution you’re working on intro a staging environment, for testing purposes. And that staging environment needs to be created before the actual deployment of the solution. Once you have it up and running, you then may proceed and do the solution deployment with all VMs prerequisites.

Next, we’re going to focus on environment creation. Creating an Azure environment is created from Visual Studio Team Services (VSTS). The smart thing about Azure is of being able to create complex environments (load balancers, virtual networks, storage accounts, IPs, VMs, etc).

No matter the complexity you will be able to create the environment, in an automated fashion, repeatedly and identically.

There’s a concept called Azure Resource Groups (Azure Resource Manager). They are nothing else but containers of resources that should and must belong together. Resources should belong together from many perspectives, but the most important one is the development life-cycle.

For example, if some particular resources (a database and a website) are created together, and later, should be stopped / deleted together, they definitely belong into a resource group. Usually, you deploy a solution in an environment which is actually a resource group.

The smart thing about resource groups is that they are based on JSON templates. JSON is a manner to describe how those environments should look like. This mechanism actually allows us to avoid the big complexity around creating big environments with many components.

Build your cloud strategy

Whether you’re an ISV or application builder, the cloud holds many opportunities for your success. And we have the skills to help get you there.
Find out more

About the author

Mihai Tataran

Mihai Tătăran is the General Manager of Avaelgo, and a Microsoft MVP on Microsoft Azure, Microsoft Azure Insider, and Microsoft Certified Professional. Mihai has been teaching Microsoft technologies courses to software companies in Romania and abroad, being invited by Microsoft Romania to deliver many such trainings for their customers.

Video: How VSTS Integrates with  Azure in Dev/Test Scenarios

Video: How VSTS Integrates with Azure in Dev/Test Scenarios

Mihai Tataran
General Manager & Partner | Azure MVP

Many of our clients ask how Visual Studio Team Services (the SaaS equivalent of Team Foundation Server) integrates with Azure in order to deploy solutions into the Microsoft Cloud.

If you’re new to Azure and Dev/Test with Azure, you probably need an introduction on why it’s worth developing and testing with Microsoft Azure. Make sure you check out the first video of this series – we covered the core benefits of Dev/Test with Azure. And we also talked about how Microsoft Azure responds to the most common challenges companies face in their day by day activities:

  • the need of optimizing the development process using Azure through things like allowing the development team creating their own environments and not depending on an infrastructure team to create those environments.
  • a cost-efficient self-service at your finger tips – you can make sure that the Dev/Test environments are created and/or are live for the exact time-frame they are needed.

“The purpose of using VSTS and Azure is to stop using local / on premises infrastructure in order to build and release the solution.”


Next, in the second video of the Dev/Test series we’re showing how Visual Studio Team Services (the SaaS equivalent of Team Foundation Services) integrates with Azure in order to provision environments and to deploy solutions into the Microsoft Cloud.

How VSTS Integrates with  Azure in Dev/Test Scenarios

View the entire Dev/Test in Microsoft Azure series

Build your cloud strategy

Whether you’re an ISV or application builder, the cloud holds many opportunities for your success. And we have the skills to help get you there.
Find out more

About the author

Mihai Tataran

Mihai Tătăran is the General Manager of Avaelgo, and a Microsoft MVP on Microsoft Azure, Microsoft Azure Insider, and Microsoft Certified Professional. Mihai has been teaching Microsoft technologies courses to software companies in Romania and abroad, being invited by Microsoft Romania to deliver many such trainings for their customers.

Pin It on Pinterest

Share This