Create a Standard Environment for Release Management in Azure

Audience

Everyone

Next week I will be speaking at NDC London 2014 and I have been working on my demo. Since Connect() everything for a little bit easier and I need to create an environment for Release Management for Visual Studio 2013.

I have been working on a new end to end (soup to nuts) demo for Visual Studio ALM that [tells a story] and shows what it can do. My presentation at NDC London is aimed at those folks that have used older versions of TFS in the past and kinda think it sucks. I think they are wrong, and I want to prove it. So for the last week I have been creating a demo using:

  • Visual Studio Online (VSO) – TFS hosted by Microsoft so zero hassle.
  • Release Management for VSO – Hosted Release Management that connects to Visual Studio Online, again with the zero hassle.
  • Visual Studio 2015 Preview – coz, well, its out and it works.
  • Git – for source control there is no better platform
  • Application Insights – free way to gather swim data for your applications.

The idea is to show an end to end resolution of a bug from it being reported to is being fixed using all of the tools that come, out of the box, with Visual Studio ALM. I will be using the Fabrikam Fiber code, imported into a Git repo and linked to work items in TFS.

clip_image001[6]

I have already configured an automated deployment to one of my environments and every check-in is magically deployed to the server. This, while sitting in Azure, is just a Virtual Machine. I picked VM, or Standard Environment, so that I can emulate as closely as possible what you can do on premises.

clip_image002[6]

For this I need a Feedback 2 environment and for that I need to configure it in Azure. Many of the steps and capabilities are just the same as for an on-premises environment but for Azure I don’t need to configure a domain, TFS, or Release Management servers. Indeed I don’t even need any hardware. I just need a credit card :).

clip_image003[6]

For my currently existing Feedback 1 (nkd-FF-F1) environment I have spent only £3.34 of my £99 MSDN Ultimate allotment and the expected total cost is less than £2 per day for a VM with 2 cores and 3.5GB of RAM. Merger but adequate for this purpose.

clip_image004[6]

If you are like me and you like things to be in order I recommend that you first create the Resource Group (Cloud Service) in the old portal (http://manage.windowsazure.com). The new portal does not give you good control over naming and as you can’t rename stuff your resource group has a DNS name of the first resource added… poopy…

However if you create a Cloud Service in the old portal you get to name it and it becomes an empty container in the new portal. Simple, but effective. I actually find that I jump a lot between portals as the new one has a bunch of functionality that the old one does not. Its kinda fragmented just now and I know that Microsoft want just one, but the new portal is taking a while.

clip_image005[6]

Now that I have an empty Resource Group I want to add a server. Again the new portal is not going to cut it as you can’t select a template: you can only select from the bits there. So… back to the old portal.

clip_image006[6]

The first task is to create a storage location. I want to be able to isolate all of the data so I will have a “nkdfff2” storage account. I really wish that the Azure team was consistent with naming as you can’t use a “-” here. Might be a small issue but it peeves me off every time I hit it. It’s a stupid issue to have at all.

clip_image007[6]

Then comes the custom Virtual Network. If you want to have more than one server in your environment then you probably want to have a Virtual Network. Even though I only have one here, it’s a good exercise to create this. Ultimately you would want to script this out once you have a flow defined. I am only doing this twice, so scripting is a little bit of overkill at this point. But if I wanted many feedback environments I would want this scripted.

clip_image008[6]

We need somewhere to deploy out application. AS I am emulating Standard Environments I will be using a simple VM rather than a “Azure Website”. This will better reflect a local instance of RM and TFS for folks. Unfortunately in the new portal you can’t use the template gallery, or at least I could not figure out how. But on the old/current portal I can easily do this.

clip_image009[6]

You might ask why I would pick the Windows Server Technical Preview but I would say, why not :).

clip_image010[6]

Here I am using the same naming convention as for my other feedback environments and keeping to the A2 server size.

clip_image011[6]

We then get asked to select all of those little things that we just created. Pick the cloud service so that you have the right URL and address space. We have a network and storage account that we created earlier which, while overkill, emulates more accurately how you would actually create an environment. Due diligence recommends that you always run your environments, especially if they are multi server, in isolated vlans so that you can prevent any sort of cross access between them.

Large companies are really good at this but smaller ones usually just take the risks. If you are small however, Azure provides simple cheap isolation.

clip_image012[6]

Almost done; we have the VM running our favourite flavour of windows, or at least it will be once the provisioning has completed. Now to round out our Resource Group I want to bind some data collection for analytics.

clip_image013[6]

We should use the Application Insights for our application analytics even if we are building an on-premises application. Have you ever wondered what and how Microsoft gathers their “provide us feedback”, well AI is an attempt to commercialise that capability for the rest of us.

You can track feature usage within your application be it Web, Windows, or Java. For some it is easier than others but both server and client data can be gathered.

clip_image014[6]

Again we need to give the resource, in this case the Application Insights data collector, a name so that we can refer to it later. Under the covers it gets a GUID that we will be using later.

clip_image015[6]

I now have a Resource Group (Cloud Compute) that is a representation of my Standard Environment that I can use for my application. Using Azure this is easy to configure and fast. Indeed I can extend the capabilities with more servers at almost the drop of a hat.

This environment contains:

  • Domain Name (nkd-ff-f2) – remember we had to use the old portal otherwise the new portal gives it a domain name of the first resource that requires one.
  • Virtual Machine (nkd-ff-f2-svr01) – This is where we will be deploying our application and as it is IAAS (Infrastructure as a Service) it is identical to an on-premises instance.
  • Application Insights (nkd-ff-f2-AI) – Collects the application analytics that we will push into our application. If you are deploying multiple applications on the same hardware you may want to separate the data.

Next time I will be deploying an application to this environment that we created.

Upcoming Training Opportunities

These are the next five classes we have, and you can check out our full public schedule of classes.

Timezone:
Immersive Professional Scrum Product Owner with Russell Miller over 8 weeks starting 11th October 2023
Virtual Immersive
11 Oct-13 Oct, 2023
09:00-13:00 EDT
8 weekly half-days
Immersive Applying Professional Scrum with Simon Bourk over 10 weeks from18th October 2023
Virtual Immersive
18 Oct-20 Oct, 2023
09:00-13:00 EDT
10 weekly half-days
Immersive Professional Agile Leadership Essentials with Joanna Płaskonka Ph.D. over 7 weeks from 20th October 2023
Virtual Immersive
20 Oct-1 Oct, 2023
09:00-13:00 BST
7 weekly half-days
Live Virtual Product Backlog Management Skills with Joanna on 2nd November 2023
Virtual Traditional
2 Nov, 2023
09:00-17:00 GMT
1 full-days

We can deliver any of our courses as private in-house training over Microsoft Teams & Mural. We also recommend training based on your accountabilities or role, you can go directly to recommended courses for Scrum MastersProduct OwnersDevelopers and Agile Leaders.

Create a conversation around this article

Share on Facebook
Share on Twitter
Share on Linkdin

Related Courses

No items found

Read more

Martin Hinshelwood NKDAgility.com
Software Development is not just a systematic process but a dynamic interplay of critical work that shapes the progress of your product. A Scrum team’s work can be classified into Sprint work and Refinement. To steer your Scrum Team towards success, it’s essential to understand, manage, and balance these two …
Martin Hinshelwood NKDAgility.com
🚀 Navigating the intricacies of the Sprint Goal in Scrum? 🎯 Discover the essence of crafting a goal that drives real value! 📈 Dive deep into the tactical steps, avoid common pitfalls, and ensure your team is on the right track. 🛤️ Let’s demystify the Sprint Goal together! 🤝 #Scrum …
Daryn Basson NKDAgility.com
https://youtu.be/rPxverzgPz0 Would you recommend the APS course to a newbie scrum team, and Why? Why the APS Course is a Must for Newbie Scrum Teams In this article, I’d like to share some thoughts on the Agile Practitioner Series (APS) course and its relevance to newbie Scrum teams. But first, …
Martin Hinshelwood NKDAgility.com
🚀 Navigating the nuances between the Definition of Done and Acceptance Criteria? 🤔 Dive into our latest article that explores the sanctity of a working, usable product without compromising value. 💡 Let’s ensure quality and value go hand in hand! 🤝

OUR TEAM

We believe that every company deserves high quality software delivered on a regular cadence that meets its customers needs. Our goal is to help you reduce your cycle time, improve your time to market, and minimise any organisational friction in achieving your goals.

naked Agility Limited is a professional company that offers training, coaching, mentoring, and facilitation to help people and teams evolve, integrate, and continuously improve.

We recognise the positive impact that a happy AND motivated workforce, that has purpose, has on client experience. We help change mindsets towards a people-first culture where everyone encourages others to learn and grow. The resulting divergent thinking leads to many different ideas and opportunities for the success of the organisation.