A couple months ago Microsoft announced the availability of the new Azure IoT Developer Kit Board. This is a board that has integrated sensors, buttons, LCD screen and a few other features. This board makes it even easier to get started developing Azure IoT based solutions without the need to solder, connect wires, or even really have any low level electronics knowledge. Recently, Microsoft started shipping out the first set of Azure IoT Developer Kit Preview version boards for application requests that were submitted over the last couple months. While it’s been stated there’s limited quantity, it’s unclear how many of these Preview version boards will be made available. Read More
There have been a few approaches to make sharing and consuming Web Services easier over the years. Many developers have worked with WSDL and SOAP services, as they were extremely popular in the early 2000’s and the beginnings of the .NET Framework. However, everything has moved on to being REST based and using JSON these days. This is a huge difference, and web service discoverability and sharing has needed to change in big ways as well. Swagger.io is a project that helps make RESTful APIs more easily sharable, discoverable, and self-documenting. Plus, Swagger is cross-platform and supports every popular programming language/framework.
Swagger is a powerful open source framework backed by a large ecosystem of tools that helps you design, build, document, and consume your RESTful APIs.
The other day I hosted a FREE Webinar with Opsgility that provides an Introduction to Azure for Developers. In this webinar I went over an introduction to what IaaS, PaaS, and SaaS are. Then I dove into the Azure Portal and showed how to create IaaS (Infrastructure as a Service) VMs with Windows and Linux, as well as how to remote into those VMs with Remote Desktop and SSH; respectively. I also went into deploying a Web Application into an Azure Web App PaaS (Platform as a Service) service directly from within the Visual Studio IDE, and I even showed how you can easily deploy a website directly from Github into an Azure Web App as well! I also discussed Azure SQL Database (“Database as a Service”), as well as a few additional services and features.
I encourage you to watch the entire webinar recording to see the whole demo of everything. There are very little slides, and the webinar was almost entirely demos of real features, real functionality, and real Azure usage! Go watch! Read More
The Microsoft Professional Program (MPP) is the most recent program from Microsoft to provide training and an educational platform in an effort to help fill the growing skills gap. According to Microsoft there are 1.5 million jobs going unfilled as a result. The program was initially launched with a Data Science track and has been a big success.
In the Data Science track of the Microsoft Professional Program (MPP) there have been nearly 4,000 learners enrolled in the program since July 2016. There has also been over 700 graduates of the program develop their skills and earn the Data Science certification.
There has also been over 700 graduates of the program develop their skills and earn the Data Science certification.
As was announced in October 2016, Microsoft is following through with a planned expansion of the Microsoft Professional Program. This expansion is brining with it the addition of 2 new tracks to the program. The 2 new tracks are:
- Big Data – The track will teach the skills required to design systems for capturing, processing and analyzing big data.
New Big Data and Front-end Web Development tracks are being added to the program.
Enrollees in the Microsoft Professional Program are getting a new benefit added to the program. The new benefit is the addition of a free 12 month Pro membership to Gooroo.io. Gooroo is a resource for learners interested in careers in technology that will give them access to employment opportunities from some of the world’s leading tech startups and corporations.
The overall price for the completion certificates for each of the courses in the Microsoft Professional Program is also increasing. Previously, the majority of the courses for the program would cost $49 to receive a certificate of completion for each course. While enrollees are also able to audit each course for free. The free course auditing is remaining, but the fee for the certificate of completion of each course will be increasing to $99. This will result in an increase of the full program from costing approximately $500 USD for the Data Science track to the new cost of nearly $1,000 USD. This is somewhat of a significant cost increase but still far cheaper than a technical college or university degree. Additionally, the reason for the cost increase is to help pay for the cost that Microsoft has been putting into the development of the program tracks and courses.
In addition to the above, there are a few other smaller changes and updates being made to the program. Overall it’s been a fairly good success so far, and will undoubtedly keep growing with the expansion of the 2 new tracks in Big Data and Front-end Web Development.
Alongside the Visual Studio 2017 launch event, Microsoft and Opsgility have announced a partnerships offering all members of the Microsoft Dev Essentials program free access to Opsgility on-demand, video training service. This benefits brings a 3-month subscription to that grants access to the Opsgility industry leading Microsoft Azure cloud training courses.
Opsgility is the global leader in Microsoft Azure cloud technology training for Developers, IT Professionals, and Architects. They are built around an esteemed network of industry experts and technical authors that includes Microsoft MVPs and Microsoft Insiders from all around the globe.
Opsgility provides Live, Instructor-led (both onsite and virtual) training courses as well as self-paced, online courses that go above and beyond simple videos or blog posts. Each course is designed to comprehensively guide the student through the subject by providing expert instructors, step-by-step hands-on labs, and knowledge measures to assess and ensure new skills are mastered.
Microsoft Dev Essentials offers developers many great benefits. Now those benefits include the best Azure training available! You join Microsoft Dev Essentials, as well as see the full benefits list, at: https://www.visualstudio.com/dev-essentials
In the past the only option for writing code and building software using Visual Studio was to install it on your local machine. With technologies like Windows Hyper-V and VMWare things became less invasive by allowing you to develop software inside of a Virtual Machine (VM). With the cloud, things have become even easier. You can now easily, spin up a Virtual Machine in Microsoft Azure, use it for what ever you need, then shut it down or delete it when it’s no longer needed. This can be an extremely valuable tool for any software developer; especially when you might need multiple development environment configurations on a regular basis. This article helps you navigate the benefits as well as the process of utilizing Microsoft Azure to host multiple development machines running Visual Studio 2017 in the cloud.
Developing in the Cloud
It can sound a little mysterious to develop for the cloud, in the cloud. But using a VM as a development machine is pretty much just that. By using Virtual Machines as your development machines and environments it allows you to scale your local PC much further than it’s local hardware could ever scale. You can add more CPU power, more memory, more storage space. VM’s are a simple extension to the local constraints of your local PC. Plus, your local PC can be running any OS (Windows 10, macOS, Linux, or even iOS!)
The trick to using a Virtual Machine (VM) running Visual Studio for development, is to have a Remote Desktop Client application installed. Microsoft Remote Desktop (RDP) is a set of functionality and protocol that let’s you “remote in” to any Windows machine (either physical or virtual) and use it just like you were sitting at the machine directly. This let’s you use pretty much any computer remotely, and grants tons of power to any developer especially within the Microsoft Azure Cloud.
The steps to developing in the clouds are essentially as follows:
- Have a Microsoft Remote Desktop client application installed on your local computer; no matter the operating system.
- Setup 1 or more Virtual Machines (VMs) in the Cloud.
- Use the Microsoft Remote Desktop client to connect to and use those VMs just like they are your local computer.
Of course there are a few more things to know about using a VM to host Visual Studio and build software for the cloud, in the cloud. The rest of this article will walk through everything you need to know to setup Visual Studio VMs in Microsoft Azure, and get building software not just for the cloud, but also in the cloud today!
Benefits of Development VMs
Most developers focus mostly on the Platform as a Service (PaaS) services in Microsoft Azure, such as: Web Apps, Blob Storage, SQL Database and Service Bus. However, many Developers may not be very familiar with the Virtual Machine (VM) capabilities of Azure that includes the ability to easily spin up a Windows VM with Visual Studio already installed.
There are a few VM images available in the Azure Marketplace that have Visual Studio pre-installed. These are great way to get started with creating a temporary, or even longer term use, Development VM much quicker than installing the Operating System and Tooling yourself. (hint: It takes awhile to install Visual Studio)
Before we get into the different Visual Studio VMs available in the Azure Marketplace, let’s first cover some of the biggest benefits of spinning up a pre-built, pre-configured Windows VM with Visual Studio pre-installed.
- Zero Install Required – You can spin up a new Visual Studio development VM in a matter of minutes, and the best part is that you don’t have to install Windows or Visual Studio yourself.
- Protected from Hardware Failure – Using an Azure VM for development, or any other work use, provides isolation against hardware failures locally that involve your laptop, desktop, or external storage.
- Easily “Add” CPU / Memory Resources – Not only does an Azure VM allow you to essentially extend the capabilities of your laptop or desktop into the Cloud, but you can also resize the VM anytime to add or remove CPU Cores and Memory as needed.
- Device Agnostic – Azure VM’s can be connected to with Remote Desktop from any Computer, such as Windows, Linux, macOS, or even tablets! This allows you to easily interchange which physical “computer” you use for your development.
As you can imagine there are many benefits and advantages to using a VM for development, and putting that VM in the Cloud, in Microsoft Azure, further enhances those benefits to new levels. The previous mentioned benefits are only a few of the most obvious benefits. I’m sure once you start embracing Azure VMs for development that you’ll realize additional benefits as well.
Available Visual Studio 2017 VMs
For the IT Pro folks it’s known that the Microsoft Azure Marketplace offers many different Windows Server and Linux VMs that can be easily provisioned in minutes. However, many IT Pros and Developer alike may not be aware that the Microsoft Azure Marketplace also contains pre-build images for both Windows Server and Windows 10 with Visual Studio pre-installed.
Here’s the list of the different Visual Studio 2017 Virtual Machine images available in the Azure Marketplace:
- Visual Studio Community 2017 on Windows Server 2016
- Visual Studio Community 2017 on Windows 10 Enterprise N
- Visual Studio Enterprise 2017 on Windows Server 2016
- Visual Studio Enterprise 2017 on Windows 10 Enterprise N
As you can see there are Visual Studio VM images for both the Free Community edition, as well as the Enterprise edition, as well as Windows Server 2016 and Windows 10 Enterprise. However, the specific VM images you will see available within your Azure Subscription will depend on what type of Azure Subscription you have. If you have an MSDN Azure Subscription you will see the list as shown above. If you have a different type of Azure Subscription you will not see the Windows 10 based Visual Studio VMs as Windows 10 desktop operating system is not available through the Azure Marketplace without an MSDN Subscription.
Can you Bring Your Own VM (BYOVM)?
An interesting question that comes up, especially with the fact that Windows 10 VMs aren’t generally available to all Azure Subscriptions, is: Can you bring you own custom VM to Azure?
The short answer: YES!!
The long answer: You can build a VM locally using either Hyper-V or VMWare. Then you can upload that VMs .vhd operating system disk image into Azure Blob Storage. For VMWare, you’ll need to first convert it to a .vhd. Also, the newer Hyper-V .vhdx format isn’t supported in Microsoft Azure at this time, so those need to be converted to .vhd as well. After uploading the VM image, you can then setup an Azure VM to use your custom uploaded .vhd disk to boot from, and then you’ll have a custom built VM running in Azure.
With this method you can setup and install anything you need / want, so long as you provide all the necessary licensing required to run the software and it’ll host just fine in Microsoft Azure. It’s worth noting that this method takes far longer to get setup and you generally want to use a pre-built, pre-defined VM image from the Azure Marketplace if you can.
Provision a Visual Studio VM
The most obvious requirement to provisioning a Visual Studio Virtual Machine in Azure is that you’ll need to have an Azure Subscription. Also, as previously described, the available Visual Studio VM images in the Azure Marketplace will vary depending on the type of Azure Subscription that you have.
To help guide you through the process of provisioning a new Visual Studio VM in Azure, you can follow these simple steps:
- Navigate to the Azure Portal (http://portal.azure.com) and login
- Click on the green +New button in the left hand navigation of the Azure Portal, then type Visual Studio 2017 into the Search the marketplace textbook, and press Enter.
- On the Everything search results, click on the desired Visual Studio VM image you would like to provision.
- On the VM information blade, click the Create button to get started provisioning. Be sure to leave the Deployment Model dropdown to the default of Resource Manager.
Note: in these screenshots I chose to use the Visual studio Community 2017 on Windows Server 2016 marketplace image.
- On the Create virtual machine – Basics blade, fill out the necessary fields to define the basic settings for the VM, then click OK.
- Name: the name of your VM
- User name and Password: the Admin login credentials for the VM
- Resource group: the Azure Resource Group to place the VM and all it’s resources into. This is just a way for you to more easily organize resources within the Azure cloud.
- Location: this specifies the Azure Region to host your VM in. Generally you want to set this to the nearest region to where you are located geographically to help reduce internet latency when connecting to the VM.
- On the Create virtual machine – Choose a size blade, choose the VM Instance Size to use for the VM, then click Select. This is what defines the CPU Core count and amount of Memory that will be available to the server. I would recommend you normally use the DS2_V2 size which will give you 2 CPU Cores and 7 GB Memory. A smaller size will generally be too small and have poor performance. Alternatively, you can click on the View all link to list our ALL the available VM sizes so you can choose a different one if desired.
- On the Create virtual machine – Settings blade you can configure more advanced networking configurations for the VM is necessary. If you’re unsure what to do, then just leave the default values as they are, and click OK.
- On the the Create virtual machine – Summary blade, once the Validation passed message is displayed click OK to begin provisioning your new, awesome Visual Studio VM!!
- It’ll take a few minutes to complete the provisioning of the VM. Go take a break, or post on Twitter how awesome Visual Studio + Azure is, then come back and get ready to “develop for the cloud, in the cloud”.
Congratulations! After following the previous steps, you will now have a Windows VM with Visual Studio pre-installed all ready for you to use to “develop for the cloud, in the cloud.”
Connect with Remote Desktop
Once you have a Visual Studio VM provisioned in Microsoft Azure, the next step is to connect to it with Microsoft Remote Desktop so you can start using it and writing code. Microsoft Remote Desktop provides an easy way to remotely connect to a Windows computer (physical or VM) and use it just as if you were sitting down at the machine. It includes full display, keyboard and mouse support along with MANY other useful features.
To connect to an Azure VM with Remote Desktop, you first need to get the IP Address of the VM to connect to, then you’ll be able to connect using a Remote Desktop Client and the Admin username and password that was configured for the VM at creation.
The Azure Portal actually goes a step further and provides you an easy to use .rdp file for download. This enables you to click a button in the Azure Portal, then download and open the .rdp file that contains the necessary connection information for VM. When opening this file in the Remote Desktop Client, the only thing you need to fill in is the Admin username and password to connect.
To help you locate the IP Address of the VM, as well as download the .rdp file, you can follow the below steps:
- Navigate to and login to the Azure Portal (http://portal.azure.com)
- Once logged into the Azure Portal, you’ll need to locate the Virtual Machine you want to connect to. To do this, you can navigate to your VM by first finding the Resource Group its in by clicking on Resource groups in the left hand navigation, then click on the specific Resource Group.
- On the Resource group blade, click on the Virtual Machine resource type in the list of resources within the Resource Group.
- On the Virtual machine blade for your VM, you will find the Public IP address of the VM within the Essentials pane. Also, clicking on the Connect button will download a .rdp file that can be opened within the Microsoft Remote Desktop client.
- Once downloaded, you can open the .rdp file in the Microsoft Remote Desktop, then connect to your new Visual Studio VM running in Azure!
- On Windows you can use the Microsoft Remote Desktop Connection client.
- On macOS the best option is to use the Microsoft Remote Desktop application that can be installed through the macOS App Store.
- On Windows you can use the Microsoft Remote Desktop Connection client.
- Once connected to the VM with Remote Desktop, if you provisioned the Visual Studio image from the Azure Marketplace that’s running Windows Server 2016, you’ll need to change the IE Enhanced Security Configuration setting. To do this, you’ll need to wait for the Server Manager window to pop up, then click on Local Server.
- Locate and click on the On text for IE Enhanced Security Configuration.
- In the Internet Explorer Enhanced Security Configuration window, select Off under Administrators, then click OK.
- Now you can open up Visual Studio 2017 in the VM and get coding!
Cost Saving Tips
If you’re not familiar with Azure billing and the difference resources involved when creating and hosting a Virtual Machine in Azure, then you may be a little worried about how much it’ll cost. So, I felt if was only natural to include some cost explanations and cost saving tips in this article. After you’ve provisioned a great Visual Studio development VM in Azure, it’s also important to keep the costs contained and as minimum as possible!
Below are some explanations on how Azure VM billing works along with a couple tips on how to save money and reduce hosting costs.
Azure VM Billing Explained
When provisioning an Azure Virtual Machine (VM) there are a number of resources provisioned that include things like the Public IP Address, Network interface, Networks security group, storage, and Virtual machine (the compute instance itself).
Here’s a screen capture of all the resources created for the previously provisioned Visual Studio VM. These resources are all created within the same Resource Group, in this case the Resource Group that was created for the VM as described in the previous steps.
Here’s the same list of resources along with a short description of what they are used for:
- Storage account – storage the VM’s disk image, other words the .vhd file
- Virtual network – a software defined network (SDN) where the VM will reside
- Virtual machine – the compute instance for the running VM; this is where the CPU/Memory are defined and reserved
- Network interface – the software defined Network Interface Card (NIC) that connects the VM to the Virtual Network
- Public IP address – the piece of the software defined networking stack that defines the Public IP address connectivity for the VM to have access to the Internet and to be connected to with Remote Desktop
- Network security group – a configurable set of rules that essentially defines the Inbound and Outbound Firewall rules to secure the Virtual Network and VM
As you can see, the Azure VM is really more than just a virtual machine under the covers. Conceptually it’s just a single machine, but really it’s made up of a bunch of different Infrastructure as a Service (IaaS) parts that combine to make up the desired VM configuration. Each of these parts have their own pricing, and some don’t have any cost associated with them.
To start talking about Azure VM cost, let’s first start with the major pieces that will affect the majority of the cost of your VM. These are the Storage account and Virtual machine.
The Virtual machine resource in Azure is what defines the Compute resources (CPU Cores and Memory). This is was maps directly to the underlying hardware within the Microsoft Azure data center that actually runs the VM. This is what costs the most out of all the necessary resources for an Azure Virtual Machine. The cost of the Virtual machine resource will depend on the specific Instance Size (defining CPU Cores, Memory, and other features) you choose to run your VM, but will only be incurred when the VM is provisioned and running (we’ll cover what this means in further detail down further).
The Storage account resource in Azure is where the VM’s .vhd disk image file is stored. The VM may be running in the Virtual Machine resource, but the .vhd disk image is persisted in the Storage account resource.
Thirdly, not really a specific resource, but an important aspect that affects cost is the Bandwidth Egress. This is the transfer of outbound data from Azure out to other servers / endpoints across the Internet. The Ingress, or inbound bandwidth into Azure, is Free. Even though the Egress cost is rather low, it will affect the VM cost some, so it’s important to be aware of.
Lastly, the other resources that make up the VM will incur very little or no cost at all. The Public IP address may incur a very small cost, which depends on your configuration. The remaining resources (Network interface, Network security group, and Virtual network) alone don’t incur any cost and make up underlying Infrastructure that the VM requires to run on top of.
To assess and gain visibility into the cost of an Azure VM and actually all the resources within a Resource Group, you can access a Resource costs summary at the Resource Group level. To access this summary, you can follow these steps:
- Within the Azure Portal, navigate to the Resource Group blade for the desired Resource Group.
- In the list of links on the Resource Group blade, click on Resource costs.
- On the Resource costs pane you will find a summary of the cost (or spend) of your resources in the Resource Group for the current billing period of your Azure Subscription.
As you can see from the screenshot, the majority of the cost of the shown VM is from the Virtual machine resource and some cost from the Storage account, with very little from the Public IP address, and nothing from the remaining resources.
Another place to view much further cost analysis and information on resources within your Azure Subscription is to view the Subscription Center within the Azure Portal. You can access this by clicking on the More services > link in the left-side Azure Portal navigation, then navigating to your Subscription.
How to Properly Shutdown a VM
There are 2 ways to shutdown an Azure VM, and they are certainly not equal! One way you will still get charged for the compute resources, and the other will free you from paying for the compute resources and help you reduce overall cost.
The first method to shutdown an Azure VM, that sounds logical in the context of connecting with Remote Desktop, is to Shutdown the Operating System. In this scenario you would be connected with Remote Desktop, and when done with your work you go to the Power options within Windows and select Shutdown. This will essentially “turn off” the VM and stop it from running. However, even though the VM won’t be running you WILL still be paying for the Virtual machine hardware allocation. Doing this will cause the Azure Portal to report the status of the VM to be “Stopped”.
The second method, and the one to remember, is to go into the Azure Portal (or use Azure PowerShell or Azure CLI) and Stop the VM. Instead of just shutting down the Operating System, Azure will also deallocate the hardware (CPU and Memory) allocation; thus releasing it to be used for another workload in Microsoft Azure. Doing this will cause the Azure Portal to report the status of the VM to be “Stopped (Deallocated)”.
While in the “Stopped (Deallocated” status, you will not be paying for the VM resources.
It’s a good idea that when ever you don’t actually need the VM to be running that you Stop it using the Azure Portal, PowerShell, or Azure CLI so that the resources are released. While in the “Stopped (Deallocated” status, you will not be paying for the VM resources. This will really help you save money!
To “properly” Stop a VM in the Azure Portal to release the resources and save money, you can follow these steps:
- Within the Azure Portal, navigate to the Virtual Machine blade for the desired VM.
- On the Overview pane, click the Stop button.
There is one caveat to be aware of when shutting down an Azure VM so it gets placed into the Stopped (Deallocated) status. Since this causes Azure to release the server resources associated with the Virtual Machine, it not only releases the CPU and Memory resources but also the Dynamic IP Address allocation. Due to this, when you Start the VM back up again, the IP Address will likely change. If you require the IP Address to never change for your VM, then you’ll need to configure a Static IP Address for the VM.
To start up a Stopped VM, you can follow these steps:
- Within the Azure Portal, navigate to the Virtual Machine blade for the desired VM.
- On the Overview pane, click the Start button.
Another point that’s important to remember when stopping Azure VM’s and placing them into the “Stopped (Deallocated)” state is that you do still pay for the Azure Storage account usage. Remember, the Storage account is where the VM’s .vhd disk image file is stored. Stopping the VM retains all the VM’s settings / configurations, as well as the .vhd image stored in Azure Storage. As a result, you will still incur some cost for the storage, but at least you will save on the VM resources. After all, the Storage will only cost a small amount of money compared to the much higher cost of the Virtual Machine resource allocation if it were left running constantly.
Schedule Auto Shutdown
Manually shutting down a VM to put it in the Stopped (Deallocated) status is a great way to save cost on Azure VM’s. Although, you do need to remember to Stop the VM. This introduces a certain level of human error in the process of saving you hosting costs on your Azure VMs. As a result, Microsoft has added a scheduled auto-shutdown feature into the platform to assist you in this effort.
With the Auto-shutdown feature, you are able to configure a specific Time (with Time Zone) when Azure is to automatically shutdown the VM. When configured, the VM will automatically be stopped if it is still running at that time of day.
To configure Auto-shutdown of an Azure VM, you can follow these steps:
- Within the Azure Portal, navigate to the Virtual Machine blade for the desired Virtual Machine.
- In the list of links on the Virtual Machine blade, click on Auto-shutdown.
- On the Auto-shutdown pane, configure the specific Time, Time Zone, and desired notification Webhook URL settings, then click Save.
If you forget to Stop your VM at the end of the day, or whenever the Auto-shutdown time is configured it will get Shutdown automatically. When using a Visual Studio development VM, this can become a good thing on Friday afternoons (or any other day when you might be in a hurry) when you’re most likely to forget to shutdown the VM.
As you may, or may not, be aware, my day job is working as a Senior Cloud Solution Architect at Opsgility. My job duties are generally the normal duties of a Senior Solution Architect, but I focus entirely on Microsoft Azure. It’s also my job to build out training content (courses, slides, demos, hands-on labs, etc) and as an instructor to deliver that content (on-demand video recordings and instructor led classes online and in-person). The primary goal of Opsgility is to enable businesses and teams in the Cloud.
On-Demand Azure Training
I know I haven’t posted much here on my day job with Opsgility, but I thought I’d share a list of some of the on-demand courses available from Opsgility that I’ve created, recorded, and published to the Opsgility video streaming service recently.
Here’s a list of my recently published Azure training and Microsoft Certification prep courses at Opsgility:
- Architecting Azure App Services
- Architecting Global Solutions
- Choosing the Right Storage
- Building Solutions with Azure Logic Apps
- Implementing and Managing Web APIs in Azure
- Managing Azure Web Apps
- Real-Time Ingestion and Processing in Azure
- Hands-On Lab: Getting Started with ASP.NET Web Apps in Azure
When signing up for an Opsgility.com subscription, you’ll get a free trial initially to try out the service, before billing begins. I recommend you check out the service! I don’t only recommend because I work at Opsgility, but because we have the most up-to-date Azure training, and certification content in the industry. As a testament to our content, many large corporations, including Microsoft, hire us to train their Developers, IT Pros, and Database Engineers in Microsoft Azure.
Instructor-Led Azure Training
Opsgility offers MANY different Instructor led classes online as well as in-person. We train Microsoft as many other large corporations in Microsoft Azure all over the world! Personally, I’ve taught classes in many cities across the United States, as well as classes in Canada and Germany.
Here’s a short list of just a few of the Instructor Led classes that I’ve either built, taught, or both:
- Azure Fundamentals – This course introduces key concepts for cloud computing and how Microsoft Azure aligns with those scenarios. Students are introduced to several key Azure services and solutions that align with the following technical disciplines including Infrastructure as a Service, Hybrid Cloud, Application Development, and Big Data and Analytics.
- Designing and Implementing IoT Solutions – This course provides a comprehensive introduction to designing and implement Internet of Things (IoT) solutions on Microsoft Azure. The course covers both directions of message flow from device-to-cloud and cloud-to device, building analytics solutions atop the real-time telemetry, managing devices and securing the solution.
- Architecting Azure Solutions – Exam 70-534 – This course is designed to help students gain valuable and in-depth architecture skills on Microsoft Azure along with gaining the essential skills to pass Microsoft Exam 70-534. This course will put the students through several interactive architecture sessions where as one or more teams they will design the appropriate solution to address an architecture scenario based on several services in Microsoft Azure.
- Developing Cloud Solutions with Azure .NET – Exam 70-532 – This course is designed to introduce students to developing cloud based applications using Microsoft Azure and the Azure .NET SDK. This course covers key compute technologies such as virtual machines, cloud services, and App Services, as well as teaches how to build a developer environment and compose new applications using platform-as-a-service (PaaS) components.
- Developing Cloud Solutions with Azure using Java – Exam 70-532 – This course is designed to introduce students to developing cloud based applications using Microsoft Azure and the Azure Java SDK. This course covers key compute technologies such as virtual machines, service fabric, and App Services, as well as teaches how to build a developer environment and compose new applications using platform-as-a-service (PaaS) components.
I know many of you reading this may already have a Pluralsight subscription, but you should know Opsgility training content on Azure is more up-to-date and is updated more frequently! That’s one of the big differences with Opsgility having expertise on staff, rather than solely relying on contractors like Pluralsight.
Disclaimer: The opinions express in this blog post and throughout my blog are my own. They do not reflect that of my employer, Opsgility. I also don’t mean any offense towards Pluralsight or Pluralsight Authors. Pluralsight has many great courses to learn all sorts of things, it’s just in my strong opinion that the way Opsgility does Azure Training courses is superior. Thanks!
February 1, 2017 marks the 7th anniversary of when Microsoft turned on billing for the new Microsoft Azure service. Happy birthday Azure! Initially the service had a fraction of the features and services it has today. There’s been a tremendous growth on the platform over the years as a result of incredible investment by Microsoft.
Here’s a little timeline information about Microsoft Azure that you may or may not know:
- October 2008 – At the Microsoft Professional Developers Conference (PDC), Microsoft Chief Software Architect Ray Ozzie announces a new cloud computing platform from Microsoft called Windows Azure. The initial announcement includes the Azure services of: Cloud Services, and Blob Storage.
- March 2009 – Azure SQL Database service was announced.
- November 2009 – An updated Windows Azure CTP is released enabling Full Trust, PHP, Java, including a CDN CTP and more
- January 2010 – Windows Azure become Generally Available, currently free of cost
- February 1, 2010 – Microsoft turns on billing and includes full SLA support making Windows Azure commercially available.
- June 2010 – Windows Azure is updated with .NET Framework 4, OS Versioning, CDN, and SQL Azure update
- October 2010 – At PDC conference Microsoft released platform enhancements, Windows Azure Connect, and an improved Dev / IT Pro experience
- December 2011 – New services added: Traffic Manager, SQL Azure reporting, HPC scheduler
- June 2012 – New services added: Azure Websites, Virtual Machines for both Windows and Linux, Python SDK, Locally redundant storage, and a new portal.
- April 2014 – Microsoft renames Windows Azure to Microsoft Azure
- 2014 to Present – MANY, MANY features and services are released!
Something not mentioned in the above timeline is the HUGE growth of Microsoft building out the data centers and backbone infrastructure that makes up the Microsoft Azure platform. From the initial launch of Microsoft Azure back in 2010, until now, Microsoft has grown the platform out to 32 regions today. They even have announced an additional 6 regions that are currently being planned or built.
Since 2010, Microsoft Azure has grown to be available in 32 regions around the world.
The overal size of Microsoft Azure has grown to be the biggest cloud platform on the planet. Microsoft may have been late to the game as Amazon got started 4 years earlier, but Microsoft has grown the platform to include more data centers and regions around the globe than both Amazon and Google combined!
You can view an interactive map of the Azure Regions here: http://map.buildazure.com
The Microsoft Azure platform has more data centers and global regions than both Amazon and Google combined!
The cloud brings with it some tremendous capabilities and capacity that most enterprises or even individuals could have only dreamed of having access to only a few short years ago. Microsoft is right there at the front of the stage rapidly releasing innovation after innovation in the Microsoft Azure cloud platform. Microsoft has been and still is betting the future of their enterprise business on the cloud, and Microsoft Azure is the way they are doing it.
Happy birthday Azure!
Happy birthday Azure! I can’t wait to see how you grow and advance cloud computing over the next 7 years and beyond!
Microsoft has announces a bunch of updates to Azure Logic Apps. If you’re note familiar with Azure Logic Apps, they provide a “no-code” solution for using a WYSIWYG (or visual) designer that allows you to build and configure business process workflow automation via drag-n-drop actions. You can also drop down to edit the JSON definition directly, but you don’t need to be a programmer to use the “no-code”, visual designer. There are many amazing features in Azure Logic Apps, and with this latest update release Azure Logic Apps is getting even better and more powerful!
Here’s a simple list of the updates in this January 2017 update:
- New connector search experience to search by service and then view all triggers and actions
- Use the new Switch Condition to implement branch logic using switch and cases
- New authentication options have been added to HTTP actions
- Many actions have newly updated Icons and brand colors
- New Dynamic outputs in dynamic fields support in the Designer.
Here are some bug fixes released:
- OAuth fixes for IE11
- Fix occasional errors when switching to code-view before finishing configuring actions
- Correctly surface XML errors / exceptions from use of @xml()
- zoom fixes in IE11
- Correctly reload Compose card when inputs and outputs are empty
There are also a few new Azure Logic App Connectors. Here’s the list of connectors that have been added:
- OneNote (Business)
- Power BI Steaming Dataset
- Outlook Tasks
It’s really nice to see some more recent updates to Azure Logic Apps. It’s a really great service, and as with most software it can always be improved and made more powerful. However, it’s really pretty great as it already stands today. Great job Azure Logic Apps team!
This article is based off a recent 2017-01-10 release update announcement from Microsoft.
The serverless computing realm of cloud computing has been growing in interest and functionality lately. Recently, Azure Functions reached General Availability and an eagerly anticipated v1.0 release. Microsoft has not stopped there, in fact they just recently released a Preview of the new Visual Studio Tools for Azure Functions. These tools bring Azure Functions support into the Visual Studio IDE!
Visual Studio Tools for Azure Functions Preview
The new Visual Studio Tools for Azure Functions is currently in a Preview release state. As a result, the tools aren’t fully complete yet, and as with any Preview release it can be expected that things may / will change a bit before the final release. All preview releases can be expected to have some rough spots, bugs, and limitations. That being stated…
The requirements to install the Visual Studio Tools for Azure Functions are:
- You must be running Visual Studio 2015 Update 3 with the “Microsoft Web Developer Tools” extension installed.
- You must have Azure 2.9.6 .NET SDK installed.
Once you have the following prerequisites installed, you can go ahead to download and install the Visual Studio Tools for Azure Functions Preview.
Create New Azure Functions Project
Once the Visual Studio Tools for Azure Functions Preview is installed, you can easily create a new Azure Functions project within Visual Studio 2015 from the New Project dialog. It is located under the Cloud section under Visual C#.
Even though the Azure Function (Preview) project template is located underneath the Visual C# -> Cloud section, you are able to create / author Azure Functions in non-C# languages within the project after creation.
- Right-click on the Project within the Solution Explorer window.
- Click on Add, then New Azure Function…
- Within the New Azure Function dialog, select the Azure Function template in your choice language from the list.
The Azure Functions languages supported include:
Here’s a list of the different types of Azure Functions currently available within the Preview release. Remember, the options do vary depending on the programming language selected.
- Generic WebHook
- GitHub Commenter
- GitHub WebHook
- Http GET (CRUD)
- Http POST (CRUD)
- Http PUT (CRUD)
- Image Resizer
- SAS Token Generator
Once you choose the Azure Functions template to start from for a new Function, there are some Bindings fields that need to be filled in. These Bindings fields will vary depending on the Azure Functions template chosen to create a new Function from.
Azure Functions Project Files
At the root of the project are the appsettings.json and host.json files. These are files that can be used to describe some things for the projects, but at initial creation they are pretty much empty.
The appsettings.json file can be used to configure any necessary App Settings values that are needed by the Azure Functions within the project.
Then there is a folder created for each Function that gets created within the Azure Function. in this screenshot is an example of a new Azure Function that was created using the Manual Trigger C# template.
The functions.json file contains configuration data for the Function. This is the JSON file that is used to specify / configure the Function Bindings for Inputs and Outputs of the Function.
The project.json for a C# Azure Function is where any NuGet dependencies for the Function get defined. It’s useful to know that in addition to using the project.json file, Azure Functions to automatically have access to some standard namespace imports that just be referenced with a using keyword. There is also a shorthand syntax for adding references to external assemblies from within the C# script file.
Here’s a sample of a project.json file that adds a NuGet reference:
Azure Functions projects can be run on the local development machine. Currently, in the Visual Studio Tools for Azure Functions Preview release only supports remote debugging with C#, but that is expected to be expanded out in the future.
One prerequisite for running and debugging Azure Functions locally is that the Azure Functions CLI needs to be installed. The first time an Azure Functions project is run locally, it will prompt to download and install the Azure Functions CLI, so this is an easy requirement to manage / obtain.
Publishing to Azure
Azure Functions project can be published to Azure In the same manner as publishing Web Apps into an Azure Subscription. An Azure Web App is created within an Azure Subscription, then the credentials and other information for the Web App is configured within the Publish dialog for the project. Then the Azure Functions project can easily be published into Azure directly from within Visual Studio.
In line with other functionality of Azure Web Apps, the Azure Functions project can also be Debugged Remotely from the local development machine while running in Azure. Currently, this is only supported with C# based Azure Functions.
The Visual Studio Tools for Azure Functions Preview announcement post lists a few known limitations for this new Preview release. The are as follows:
- Adding New files is not available using “Add New Item”.
- There is currently a bug that causes Functions published from Visual Studio to be improperly registered in Azure.
- The C# Image Resizer function template incorrectly generates the function Bindings. These need to be manually edited to fix.
The Azure Functions team is eager to get feedback from anyone using the new Visual Studio Tools for Azure Functions Preview release. Any issues can be reported using the GitHub repository (please include “Visual Studio” in the issue title), plus additional comments and questions are welcome on their Twitter accounts as well.