Onward to Page 3

We managed to get our web site “Created” but not deployed. This means we moved to the end of page 2 in our training guide. We talked about the training guide here.

Here’s the web site we’ve “Created.” What they call “Deploying” the web site is actually putting files out there that support your audience’s use case. They make the appropriate analogy to IIS where you right click and select “New” to create the web site and then add and edit the files in the site’s virtual root folder to support the target application.

The problem is that there doesn’t seem to be a simple file structure you can use to just put files out there. We have to use an FTP utility or, inside Visual Studio, we can just deploy our project out there.

We’ll get to that in a bit but first, the authors take us in a slightly different direction. Next, they want us to do the same thing in PowerShell. No prob, we’re PowerShell experts, which is good because the authors presume you’re a PowerShell expert and provide virtually no context for making PowerShell work in Azure other than to point us to a link at MSDN here. And, while that is a pretty good references for the Azure PoSh commandlets, the real Azure PoSh setup is covered here.

The steps are:

  • Download the Installer – Mine was called WindowsAzurePowerShell.3f.3f.3fnew.exe.
  • Run the Installer – Mine ran the Windows Web Platform Installer 5.0 and allowed me to install Microsoft Azure PowerShell 0.9.
  • Accept the license terms.
  • Watch the progress bars.
  • Click Finish.
  • Add all the options and click Install.
  • Get a gun and shoot yourself

The install wizard will try to install the Visual Studio tools to make your life easier and they are encumbered by a number of prerequisites so you get this:


So this will all be different based on your Visual Studio install but I went into Control Panel | Programs and Features when I right clicked on Visual Studio and selected Change, then Modify. I added the data tools and let it run. And then my anti-virus started to object so I clicked through a bunch of warnings and the install timed out so I started it again and it said it was already installed so I rebooted and tried a third time and got a similar error about some other VS feature and on and on.

I can only say that I read through and executed the tasks lists on the Azure.Microsoft site here. And they get into the weeds pretty deep when it comes to version 0.9.x and version 1.3.0 and the Resource Manager modules and the Service Manager modules and on and on. Plus there’s this PowerShell Gallery which they don’t tell you is here and, apparently, it’s another install unless you’re on Win10.

The main objective here is to be able to run PowerShell and, in PowerShell run:

 get-module -ListAvailable

and get back something that includes these:

C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager

 C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement

C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\Storage

And, of course, the folders where these module reside may differ.

That’s all there is to it. And we can move on to page 3.

The Azure Web Site Platform

To demonstrate Platform as a Service delivery model, we’ll build a new web application and then go about putting files in it to deliver it to our audience.

Like with the WordPress app we built, we do a New | Web + Mobile | Web App:160531_01

We’re going to give it a name and put it in a new resource group and click Create:


Now we can look at the new resource group and see our new web application:


When we click on it, we can get the URL:


And we can browse to the URL and see the web site:


Not much of a web site but at lease it’s there. Now we just have to figure out how to get our web site content out there. Note also we haven’t actually been charged for anything.

So while Azure will let you have the MyUniqueSiteName.azurewebsites.net URL and you can browse to it, if you want have a real web site out there, you’ll have buy something and those somethings are detailed pretty clearly here.

Lucky for us, we don’t currently have any requirements that would trigger actual charges so we can simply push forward with the Free option. But we should note that certain things trigger certain charges. As we can see, some of the things that would cost us money are:

  • DNS entries that would let us hide the azurewebsites.net URL.
  • SSL and certificates so we can secure our UX.
  • Storage in excess of very little.
  • CPU overhead in excess of very little.
  • Service levels stronger that “take your chances.”

Also, it’s interesting to note that we could spend upwards of $1700 per month on our web site. But we’re not.




Azure is a Tripod

Now that we know how to figure out how much this is going to cost, we encounter the three “Delivery Models” Azure supports. Think of a delivery model as the way you’re going to move from “Problem” to “Solution.”

Azure supports three delivery models:

  1. Software as a Service or SaaS.
  2. Platform as a Service or PaaS.
  3. Infrastructure as a Service or IaaS.

We have working models of numbers 1 and 3 and we going to get to number 2 today.

As we’ve discussed, currently, at StratusFactory.com, we have:

  • The StratusFactory.Com blog, this blog, for which we use WordPress.
  • VM running IIS on a virtual machine running Windows Server 2012R2.

This blog is an example of that first delivery model, “Software as a Service” or SaaS. Wikipedia defines SaaS for us here.  Note that they call it a “delivery model.” In our case, we just told Azure we wanted WordPress and it went and did it’s magic and gave us a link that we clicked on and there it was, WordPress asking us to log in.

Thinking back on it, my personal Yahoo email is one of my earliest encounters with SaaS since I just logged in and filled out the form and there it was, a perfectly functional email account. Think of SaaS as only the user-facing application.

Our VM with its resident web server is an example of the third Azure delivery model. They call it “Infrastructure as a Service,” or IaaS. In this model, you actually have access to the VM as well as the networking and other components you use to expose this VM to its audience. Think of IaaS as the physical layer, although it’s only virtually physical, and then you get to build everything else on top of that, including the data and application layers.

The delivery model we have missed is the second on in our list above, “Platform as a Service,” or PaaS. It may be the most confusing but it’s actually the first model our training book addresses.

Think of a platform as a suitable application host that excludes the physical layer. For example, if you want a .NET web site, you don’t really need Windows, you just need IIS which needs Windows. Azure lets you have the web site host “platform” and eliminates the overhead of managing the physical layer under it. In this respect, the Azure portal replaces IIS allowing you to deploy your web site just as you would if you’d logged into you Windows Server.

And, it’s pretty easy. We’ll do that now.



So Many Things…

So “busy” and “blogs a lot” are sometimes mutually exclusive. But when the business lands on point for the blog, things get a little easier.

For example, we were talking about co$t. Well Azure is not free. And as we’ve seen we’re running at several dollars a day and actually have very little going on.

Sure, I like the web site and who doesn’t love WordPress?

But, sure, a lot of you need a lot more. And Microsoft understands, sort of, so they’ve given us this cost estimator.

Oddly, the way my head works, this is as good as any in terms of figuring out how all this stuff works because you build your pod in the price and it asks you for all the specs that impact the ultimate cost which is really most of what you need to build out the various components.

So now that we’re experts at figuring our what Azure costs, we can get on with defining the solutions we can build in Azure and set about learning how to use the tools that build those solutions.

The Azure VM as a Web Server

So some of this is Azure and some of this is Windows. Since we need to know it all, we’ll try to detail both sets of requirements. So let’s see if we can get that IISStart.htm page exposed to the internet.

To start, we have a Win2k12R2 server and it’s got a public IP address. We detailed this build in a previous post. We can RDP to it and see the desktop. That’s about all we have so that’s pretty much both the start and then end of it. But let’s move on.

On second thought, we have Google and we search for Azure IIS Endpoint. And we make friends easy so we find our new friend, Peter, here.

Peter tells us to

1. Provision the VM
2. Add IIS
3. Create a Public Endpoint for IIS

So we’ve done number 1.

In Server 2012, step 2 start with Server Manager | Dashboard. We select Add Roles and Features and get the Add Roles and Features wizard where we select an installation type of Role-based or feature-based installation, then select the local server.

When we select the Web Server role, the wizard will insist you install the IIS console feature so we click through all of that:


As we click through the wizard, it adds a Web Server Role page where it lets of select specific IIS components and we’ll take the default options, click through to Install  and let her rip.

We get a reward page:


Now, we can browse to our new web site but it would be good to disable IE’s Enhanced Security Configuration for the time being. That’s back at Server Manager | Local Server where we can change On to Off:


Now, we can open a browser and point it to


Now we also know that his page is C:\inetpub\wwwroot\iisstart.htm. Just for fun, I usually adulterate it so I know I’m landing on the right page and server and so it says something silly:


So that’s the Windows part. Now for the Azure networking part.

By default, our VM had a single “Endpoint” and that was at the end of port 3389 and supported RDP access. We need to add another endpoint so that IIS can answer on port 80.

So, by now, you may realize there’s two flavors of Azure, the Classic Portal and the Resource Manager portal. The RM portal is sometime called the “New” portal and the rules are approximately “Stuff in the RM portal are not accessible in the Classic Portal.” It’s really more complicated than it ought to be and we may get a chance to dive into the distinctions but for now, let’s just say that since we’re just getting started, we went ahead and started with new RM portal. That makes GoogleHelp hard because all the existing documents are written for the classic portal. But, if we dig, we find what we need and if we really need it we put it here.

So, In the Resource Manager portal, we set endpoints like this:

When we created our VM, one thing Azure did was create a Network Security Group with the same name. I’m guesings we let Azure do that by default when we chose not to change the default settings when we did the create.160517_NSG

The network security group blade has a setting called Inbound Security Rules:


Where you click on Add and fill in to allow traffic from any source using any protocol to Port 80 and Allow and Click OK.

Azure creates your security rule and there you have it. Browse to the VM’s public IP address and take the rest of the day off:


We’ll see what this does to our checkbook in the morning.

Good New$ Bad New$

First the good news, my MSDN subscription kicked in on the 15th of the month just hoped. And, as we suspected, the bad news is that we lost all of our unused minutes from the previous month.

Still we have a teachable moment since the subscription billing process has a day or two latency, we have exactly one day of charges showing on our subscription pages. Actually, I think they call those page like things in the new portal “blades.”

So, to learn all we can, we need to understsand that we have a well defined set of resources:


We’ve noted that the WordPress blog is an “App Service” in my #1 resource group and my new server is a VM in my #2 resource group. We separate resources into resource groups so we can manage them as groups. For example, I can delete one or the other along with all the other items Azure uses to round out that service without impacting the other.

So if we look at the Subscription blade, we can see  what all these resources cost us for a single day:


And you can see we’re up to about $4/day. So that’s about $120 a month so still below our $150 monthly credit. We can also open a blade to the right for details and get expense line items:


Here, we see we’re actually talking about about a day and a half since we’re paying for some of this by the hour. And we’re mostly paying for the Azure app, WordPress, for 38 hours and $1.67. Then we’re paying for 37 “Compute” hours for our VM and that’s $1.63. Finally, in addition to those big-ticket items, we pay peanuts for a public IP address, some IO and storage transactions. In total they come to about a quarter. Of cource, we’re really doing very little because we haven’t done anything with any of these services except for this blog.

We’re going to change all of that soon.


But What’s It Really Cost?

So we’ve got our little blog running here full time for just over $1 a day. And, just to let you in on a little inside info, we’ve generated exactly $0 in revenue with it do our ROI is currently also $0.

Obviously, there’s more to making mad bank on this interweb thing than just a blog. And we’re open to suggestions but one might be “get a real server to do real work.”

Obviously that’s going to cost a little more so let’s have a look.

First a “real server” is not a real server at all but a virtual machine. To build a VM in Azure, you click on the Virtual Machine link and drill down from there:


Select Windows Server and then Windows Server 2012 R2 Datacenter from your list of options and click Create.

Now you get to configure the Basics by giving it a name and an initial user name and password, assign it to a subscription and resource group and then you get to select a “Size.” This means you’ll select from a number of machine configurations loosely grouped into A, D and G models. At first the interface will show you Recommended models offering DS1, DS11 and DS2 opions citing cores, RAM, number of disks, any availalbe SSD and then some other features like load balancing, Auto scaling and support for “Premium” disks:


Note the configuration names and the prices.

When you click View All you see there’s a number of other configurations available in groups D, A and G plus divisions into Standard and Basic configurations. The prices I’m getting today range from A0 Basic at less than $14/mo to an A9 Standard at over $1400/mo:


I also get some dimmed out options that range in to the the stratosphere but they are not available in my data center or, I selected Standard storage instead of SSD.

Before you complete your configuration you get the opportunity to add what they call “Extensions” such as anti-malware and a place to upload a PowerShell script that will configure the machine the way you want. We can look into these later.

Once we complete our configurations, we get to build the machine and it takes several minutes.

Once the machine is complete we see a few new items in our resource list such as the VM, a virtual newtwork to suport the VM in the resource group in which it resides as well as the public IP address and the network security group we created to support the VM:


Still we need storage. So on our VM we select Disks:


And here, we use the Attach New option to add two disks, one at 80 Gb and one at 200 Gb:


Now we can RDP to our machine IF we remember the user ID and password we created earlier:


Now we’re in Windows. We see that the machine has a 126Gb C:\ drive and a 40 Gb D:\ drive labeled “Temporary Storage.” That temporary storage is a complicated topic we’ll tackle later. Also note that the two drive we added are available in Server Manager | .. | Disks:


At this point user server manager to bring our new volumes online and assign them drive letters so we can see all the storage we’ve allocated to the machine:




What’s All This Going to Cost Me?

So, if you’re like me, you’re wondering what all of this costs. So let’s take a look and see what we can figure out.

What we have is WordPress, which is free. WordPress uses a MySQL database which is also free when usage is light. But these guys live in an “Application Service Plan,” which for now, since it only has these two lightweight apps in it and I selected the next-to-lowest service level, costs about $1.15 a day.


I also get that little App Insight thing which is a monitoring system they give you for nothing.

That’s the bad news. The good news is that, as an MSDN subscriber, they give me $150 a month in credits to do this kind of stuff. I think the credit hits on the 15th of the month so we’ll watch for that. And since I spent the first half of the month not knowing what I was doing with some fat city service plan, it ate up about 2/3 of my monthly limit. I also had to give it a credit card number in case my expenses exceed my allowance, so we’ll have to keep our eyes on that as well.

And I’m pretty sure you don’t get rollover credit. So the expectation is that on the 15, I’ll be back up to $150 credit and my AmEx will be safe for another month.

There Will Be a Test

So this is where we’re headed: Implementing Microsoft Azure Infrastructure Solutions.

And this is how we’re going to get there: Exam Ref 70-533 Implementing Microsoft Azure Infrastructure Solutions 1st Edition
by Michael Washam (Author), Rick Rainey (Author).

And we’re now going to demonstrate two things. First, it may be any one of:

  • Early onset geriatric dementia.
  • Lingering latent adolescent ADHD\OCD.
  • Long term effects of various chemical indulgences interlaced with real life stuff.

…but there’s really no other way for me to learn this stuff. You’re entitled to your own approach but I’m doing this for me and if it helps you, great.

Second, we’re masters of the love\hate relationship and we’re getting ready to initiate two of those with the guys that were bold enough to put their names on the book. I paid for the book. It’s got their name on it and they are free just like you and me, but they got what I want and that’s Azure skills.

The first, Michael Washam is on Twitter: @mwashamtx and LinkedIn. He claims to be “The Best” but he also makes a living doing it and we know what $0 buys.

The second, Rick Rainey, is on Twitter: @rickraineytx  and LinkedIn. He’s from Texas so we’ll have to find a big hat.

As an expression of love, we’re going to reach out and say “hi!” The StatusFactory has followed both and I’ve initiated the LinkedIn connect process. I wonder if LinkedIn cares that when I said “I’ve worked with..” what I really meant is that I bought his book.

Now I know me and I know learning new things can be frustrating and… well, I didn’t make them write that book. In the Introduction, they even say “We want to hear from you” in a format that’s either a poorly capitalized heading title or a poorly punctuated sentence. And while they blanket themselves behind a “Microsoft Press” moniker, they add “your satisfaction is our top priority.”

We’ll see, guys. Love, JK.


And, FYI, you can get the StratusFactory on Twitter here.

So Now What? Azure NOT for Sale.

We’ve got a blog and it works on the internet. So now what?

Let’s presume you’re sold on “The Cloud? You may not be. If you really like running your own data center then more power to you. Data centers are cool. I mean really cool and who doesn’t like getting into a cool room, especially in the summer time coming back from lunch, badge in and check a few logs locally. Awesome.

And they’re usually not very dusty and a lot of us have allergy-like problems with dust. Don’t get me started on exactly what that gunk is and what it does to everything, especially your eyes and nose.

But there you go. That’s exactly why everybody is moving to the cloud. Data centers are expensive (cooling) and fraught with physical security concerns (badging) and hardware life-cycle support (dusting) issues. Moving your operations to the cloud takes all of that away.

So, yeah, you’re sold on the cloud. But, why Azure?

Well, let’s look at this from two directions. First, we want to pick a winner, a platform that’s worthy of the investment of our time. Second we want to pick a platform that makes life easier.

So there’s dozens of relatively large cloud platform providers but, for sure, there’s a consolidation and aggregation process in play. And there’s Amazon’s AWS, the market leader by a big chunk.

But here’s the deal, Azure will do for cloud computing what Office did to Word Perfect, Lotus 123 and Paradox. Any business that’s heavy in geographically diverse knowledge worker activity, heavy in Office documents, and heavy in knowledge management will always find advantages in the Windows\Office\SharePoint\Azure integration.

So at the StratusFactory, we’re not selling Azure. What we want to do is give you the best, single point of support the process of first browsing to portal.azure.com and subsequently making it work to feed your business’s appetite for data, information, knowledge and wisdom management. Maybe you’re already an Azure guru. We are not. But read along and keep up, because it won’t be long now.