Microsoft Cloud on a Shoestring Budget: Common Cloud Tasks as Cost-effectively

I know this isn’t on the subject of the Microsoft Cloud platform, but what is the best way to present Microsoft as a replacement for our Windows based operating system for our offices and support teams.

We are a software programming company, so I don’t want to change what those teams use, but for all the office and support teams, I think Microsoft makes so much sense.

I have used as many of the Microsoft products as I can for my work and spreadsheets and I use it entirely for my personal use outside of work. I can’t share as much and communicate as well with our current system as I would with Microsoft.

If you are co-located on a server that some other booming business is on, your users might actually suffer if your web host has oversold itself. And so in fact, this is one of those situations where you get what you pay for.

If you’re googling around and finding various cloud providers, or web hosting companies more specifically, you might be able to find a deal, like $10 per month or $50 per month, as opposed to $100 or $200 or more per month.

And you do get what you pay for, because those fly-by-night operations that are selling you space and capacity super cheaply probably are overselling and over-committing. So these are the trade-offs, too– how much money do you want to save versus how much risk do you actually want to take on?

Generally, it’s safer to go with some of the bigger fish these days, certainly when building a business, as you might on a company like Amazon or Google or Microsoft or derivatives thereof. So just to paint a more concrete technical picture of what virtualization is, here’s a picture, as you might think of it. So you have your physical infrastructure here. So that’s the actual server from Dell or IBM or whoever.

Then you have the host operating system, which might be Windows, but is often Linux or some variant of Unix instead. And then you have the hypervisor. This is the piece of software that you install on your server that allows you to run multiple virtual machines on top of it.

And those virtual machines can each run any number of different operating systems themselves, or even different versions of operating systems. And so depicted here up top are the disparate guest OS operating systems that might be on there.

Maybe this is Linux and Solaris, and this is Windows itself, or any number of other combinations. Whatever your customers want or whatever you want to provide or essentially rent to customers, you can install. But you do pay a price.

So as beautiful as this situation is, and as clever as it is that we’re leveraging these excess resources by slicing up one server into the illusion of, in this case, three, or more generally more, there is some overhead.

Because this hypervisor has to be a middleman between your guest operating systems and your host operating system, the one actually physically installed on the server. And any layers of indirection like this, so to speak, have got to cost you some amount of time.

If there’s some work being done here and you only have a finite number of resources, the hypervisor itself is surely consuming some of your resources. And gosh, this just seems really inefficient, especially if all of your customers are using the same operating system. My god, why do you have to have copies of the same OS multiply installed?

This just doesn’t feel like it’s leveraging much economy of scale. And so it turns out there’s a newer technology that’s gaining steam, and this is known not as virtualization, per se, but containerization, the most popular instance of which is perhaps a company called Docker. And the world of Docker is a little shorter.

It’s a little smarter about how resources are shared. You still have your infrastructure, your physical server, and you still have your host operating system, whether it’s Linux or Unix or something like that.

But then instead of a hypervisor, you have the Docker engine, which is really just an equivalent of that base layer of software. But notice what’s different. In this case here, we’ve collapsed the previous picture.

In fact, thanks to our friends at Docker who put this together here, the guest OS has disappeared. And you instead have your different applications and your different binaries and libraries, as this abbreviation means, all running on the Docker engine.

Now, what does this mean? This means when running Docker, you typically choose your operating system– for instance, Ubuntu Linux or Debian Linux or something else altogether– and then you essentially share that one operating system across multiple containers. Instead of virtual machines, we now have containers.

So in other words, you ensure that your different slices all share some common software– the kernel, so to speak, the base core of the operating system. But then you uniquely layer on top of that base system, that base set of default files, whatever customizations your customers or you yourself want, but you share some of the resources.

And long story short, what this means is that containers tend to be a little lighter weight. There’s less waste of resources because there’s less overhead of running them, which is to say that you can generally start them even more quickly.

And better yet, you can still isolate your different products and your different services– database and web server and email server and any number of other features– all within the illusion of their own installation, their own operating system, even though there are some shared resources here.

So this, too, has been made possible by the capabilities of modern hardware and the cleverness, frankly, of humans in actually finding solutions or creative uses for those available resources.

But what other features or topics come into play in this world of Microsoft Cloud? We’ve talked about availability and caching and costing, really figuring out where we’re going to actually spend our money by throwing hardware at problems and scaling more generally.

But there’s also issues of replication, which actually do relate to high availability, so to speak. But replication refers to duplication of data, and really backups more generally as a topic. And then there’s also some other funky acronyms that are very much in vogue these days.