AZ-305 – Microsoft Azure Solutions Architect Expert- Design a Compute Strategy
January 27, 2023

1. Overview of Compute

So in this section of the course, we’re going to be talking about Azure Compute. Now, once again, the Azed 300 exam covers the technical details of creating it. And we’re not going to go through the portal and how you create virtual machines and things like that, but we’re going to talk about the strategy behind choosing each of these compute elements. Now to remind you, what is compute? Compute generally is is tasks, applications and code that can be executed in the cloud. It’s a service that the cloud provides that will take your code and execute it to produce some result. Now that could be anything from a virtual machine, which is you install an executable into a server like Windows or Linux. But it also could be platform as a service like web apps. It could be batch jobs, it could be web jobs which run as a batch test.

I mean, anything a computer can do is basically a compute. Now there’s two ways to pay within Azure. That is there are functions and things that can pay for execution, pay for consumption, or another type of payment would basically be by the hour. So you rent a virtual machine, it’s so many cents per hour and then you pay just for that. If we look down the list of services that Azure considers compute, we should be familiar with them. From virtual machines and virtual machines scale sets to web apps, azure batch functions, including logic apps, which logic apps are not really code, they’re a workflow.

But logic apps enable tasks to get completed, service fabric and containers. And we’re going to talk about each of these one by one in a moment. Now, one way to provision these resources, obviously we can go into the Azure Portal and create a virtual machine. But when you’re talking about automation, you’re talking about ongoing maintenance of your environment. One of the things you have is templates. Now Azure has this templates directory in the portal that you can actually save your Arm templates. You can see that I’ve given them names, I’ve given them descriptions and the dates that they were created. And there’s a privacy setting. So I can basically create compute resources, store them in here as Arm templates and then execute them anytime that I want.

 Another way that impacts provisioning of compute is when you’ve got a VM scale set or an Azure app service and you need to scale up and scale down. So these things can be done manually. If you have an Azure app service, you can obviously go and just say, I want two of them, or I want three of them. When you have the right plan up into the P one and above plan, you can have an auto scale option. Virtual machine scale sets are designed for scaling. Service fabric also has scaling and containers. And Azure Kubernetes service can also be scaled. So a lot of these things, when you need to provision them. You can either set it as automated or just issue a command for them into.

2. Compute Options

Now let’s talk about the various Azure compute services and when you would potentially use them and for what purposes. Now the most obvious one is virtual machines. This is infrastructure as a service. These are basically Windows and Linux boxes that look, act and behave like actual physical machines. And most cases you have an existing application running in your own hosted environment, whether it’s in your office or in a hosting provider and you’re just going to lift and shift your applications into virtual machines. And so it makes a very good analogy from migrating from your own environment into Azure. Now certainly this is not a cloud first type technology.

So when we move into some of these other services, these services are more likely to have been designed from scratch to operate in the cloud. When you’re dealing with virtual machines, you’re typically dealing with legacy services, even databases that could be installed and running in a virtual machine. Azure has databases as a service and so these VMs are definitely not a cloud first thing. Now that being said certainly is an extremely popular thing that companies love having their own machines. They can pick the CPUs, they can pick the memory and things like that. So certainly you can’t go wrong choosing virtual machines.

But if your intention is to create a brand new application that hasn’t existed before, you might want to investigate some of the other compute options that can be cheaper, save you some money and leverage some of the existing technologies that Microsoft provide that you don’t have to reinvent. And so certainly that some of the cloud first model has to do with pulling together all of these services and even using functions and logic apps and things like that to get things done that you used to have to write code for. In the past. Extension of virtual machines is the virtual machine scale set.

So if you are in a position where you’ve got a cluster of virtual machines or a web farm and you want to be able to go up and down very easily from two to four to six to eight machines back down again, virtual machine scale sets can definitely be a thing, right? They’ve got built in load balancing. They’ve got the ability to go up to 1000 virtual machines under a scale set. And so if you’ve got this kind of need for performance, certainly it is an option to look into virtual machine scale sets. Now Azure App Services this is the platform as a service offering. Now it turns out it’s not actually that difficult to migrate most code from a VM. If it’s been developed in Net, for instance, into Azure App service. It’s certainly a repackaging of the code and a publishing of the code.

 Now you do lose some of the dependency of being able to install third party applications. Other things that need to be physically installed get into the Windows Registry for something et cetera. So you might want to check your dependencies. But you can certainly have app services that have MySQL databases. There’s also web service containers and things like that. So this is not a too far gone style of development from the virtual machine. But then you lose all of the downsides of having a virtual machine, including worrying about the virtual machine firewall settings, including worrying about the updating the operating system and things like that. App services have built in scaling with a virtual machine that’s not a scale set, you have to worry about deploying your code. There’s some automation aspects. You can scale up a virtual machine, but then how do you install all the apps that need to be there in order for it to be a functioning member of your virtual machine environment? So app services have all that deployment slots and some other benefit features. Now containers, I look at containers as being the modern way of deploying stuff in a very portable way. Now there’s definitely some pros and cons of containers. I saw a funny joke the other day that basically said that the containers were for somebody who always has a problem deploying and there’s files missing and there’s dependencies. Somebody made a meme that said, hey, have you got problems deploying? Why don’t we just copy your machine and put that on production? So it’s basically just taking your entire environment.

 Once it’s working, you make an image of that and deploy that into various places and there’s certainly some benefit to that and there’s certainly not a perfect solution in any way. But if you are concerned with having a complex solution that’s hard to deploy and you don’t want to get stuck into Azure and you want to be able to go to AWS or Google, getting a docker app and pushing that through, kubernetes is definitely something to look into. So more modern than virtual machines, more modern than even app services is the concept of containers. And you’ll see containers and everything. There’s containers in service fabric, there’s containers in web apps.

Now containers are taking over the world, really. Now functions are great for little pieces of code that have a very specific task. So although you probably could develop, there are nested functions and durable functions and you can have branching and functions, call it the functions and return back. I would say functions are best used for basically patching something together. If you’ve got small pieces of code that just execute very quickly, then there’s no sense doing a whole application for that. Put them into functions. Functions work great with logic apps and so you can have an event coming through, an event hub, then a Blob gets created and then a function runs and then something else gets called and sort of letting you have your own pieces of code sitting in between the logic app as well.

 Now, service fabric, first of all, it’s a very proprietary technology. You’re not getting service fabric apps running in AWS. You can use it on your local and yeah, service fabric is cross platform, technically. So you could run a service fabric app into AWS, but you’d still be running a service fabric app, if you know what I mean. So there’s a proprietary element, but they do have containers now and things like that. So definitely if it’s the most microservices sort of came and it became a very desirable way of doing deployments. Azure itself was run using microservices. And so we can definitely see it’s a resilient app. There’s benefits that the service fabric mesh provides.

So not something I typically recommend, and so I don’t want to sway you too much away from it, but for, let’s say for very, very specific needs, it might make some great sense. I have to mention Azure batch. Now, Azure Batch doesn’t follow the traditional model. It is really for big tasks that can be broken up into tens of thousands, hundreds of thousands, or millions of parallel tasks that aren’t dependent on each other. So this has always been good for modeling. If you’ve got a you want to run something 100,000 times and then average out the result, or rendering the frames of a movie isn’t always a common thing. Wherever every movie has several hundred thousand frames and they might take a minute to create. And so you can create several thousand VMs that can render the frames of the movie and then movies rendered in an hour instead of 36 hours, things like that.

3. High Performance Compute (HPC)

So we should take a moment to mention the concept of high performance compute as abbreviated as HPC. So high performance compute is generally a requirement that you have a really powerful computer because you’ve got a workload that is going to really push the boundaries of this. Now, whereas you could take Azure Batch job and break that up into hundreds or even thousands of parallel tasks, high performance compute really is about having one big super powerful computer. And it’s going to be expensive, but it’s got very specialized needs. This is not your web server, right? This is computation at a larger scale. I want to say right off the bat, I’ve had an obsession with Cray since I was a teenager. And so Cray was really one of the very first supercomputers that became popular, became entered into the mainstream, if you will.

So Crays were the type of computer actually, I think the joke was that you could actually go inside of it, right? It was built in a circular way, and anyways, it’s a supercomputer. Now, a couple of years ago, recently, Azure announced that they have a partnership with Cray. And actually the Cray supercomputing is available in Azure. Now, before you get too excited, you can’t just walk into the Azure Portal with your credit card out and say, I want to rent a Cray for a few minutes. When you look at the web page, the top right there, it says, Contact us. So you have to engage with them. And I’m sure there’s some effort for them to set up a crate. But if your company has needs for supercomputing, and if you were like me in your 16 to 18 years old, thinking about Craze and you have the money, I want to talk to you. If you’ve gotten a Cray, send me a message in one of these platforms, and I want to hear how what that was like. Now, for the mere mortals like us, if you do need a very fast, powerful computer, there’s the H series.

Hhbhc, there used to be some very big A series, like a eight and a ten. Those are now past generations. So all of the high performance computers are now concentrated among this HBHC type series. If we look at the web page, I just focused on the HB and HCs here, we can see that the HC series has a 44 CPU machine. That’s an Intel Xeon Platinum and comes with 350gb of memory. They’ve measured the bandwidth, the gigabytes per second bandwidth of the memory. We can know the frequency of the cores. Like, if performance is an issue, you want to know these things. For most other of the Azure series, you don’t really care. The D series, how the frequency of all the cores are. Now there’s also the RDMA performance. You see, that’s a high speed network.

 These H series, some of the H series, they’re living on a special superfast network called RDMA. And you can see here the two HB and HCs live on 100 gigabits per second network. And that means if you got two of them or three of them or four of them on the same network, they can communicate to each other at this speed. Obviously, they’re not communicating outside of the Hrdma network on that speed. So there’s really a lot of these computers are built with the fastest available CPUs and the fastest available memory and they’re put onto fast networks. And basically the performance has the number one concern for these. And there’s a price for that.

Now, I mentioned in the last video about Azure Batch where you end up uploading frames of a movie as individual tasks and then they can spin up hundreds of VMs to go off and create this work. So that’s still I would still consider that high performance compute, even though it is more of a batch process. But you can get hundreds of hours of single computers work done in only a couple of hours.

4. *NEW* Windows Virtual Desktop

So one of the requirements of this exam is to understand the Windows Virtual Desktop. Now this is a pretty cool product. I remember seeing a demo of it a couple of years at Microsoft Ignite and unfortunately I can’t show to you because it’s fairly complicated to set up, but basically it is a version of Windows Ten running in the cloud. So instead of having having your office workstation in your office or at your home logging into the local machine, you basically have that machine set up, installed and ready for you to use in the cloud. Now, the advantage of this is that if you’re not at your desktop and you need to access your computer in the traditional sense, you used to have to VPN into your office and then using remote desktop software to get onto your computer, the experience was less than ideal. But here it’s basically cloud first deployment of Windows.

All of your applications are installed in this remote computer. Your Office applications, your email, your documents, anything that you need to use are basically in this computer that are virtualized in the cloud. And so you’re able to access that machine from anywhere. So it’s a pretty cool thing. It’s basically the Windows Ten desktops from any device. And like I said, I’ve seen this demo on an Azure phone. I’m sure it’s available for others, fairly secure. Once you’ve got it set up, you can deploy new ones pretty quickly and you’re basically reusing your Windows licenses in the cloud so it’s not costing you anything additional if you already have the license. Okay, so it’s basically a now this is not a new concept in the world of computing. Maybe go back so many years ago to 30, 40 years ago when we had mainframe computers, you really were just using a terminal terminal or terminal emulator to remote into the mainframe computer running in the cloud and that was your workstation. So getting everything onto your local machine was one of the evolutions that as we moved away from mainframe computing and mini computing into PC computing, everything got pushed down. Well, now we’re living in a world where you want those files and applications. Anywhere you particularly are, you want it to come with you in your pocket. And if you can’t install Windows on your phone and have all your applications because it’s not a powerful enough device, you can have that powerful device in the cloud and you can access it in a remote manner again from any of your Surface, your phone, your desktop, whether you’re at home or at the office.

 And it’s all basically accessed remotely. So that is what you get with Windows ten virtual desktop or MVD. You can see that the Citrix and VMware have been doing virtual desktop applications for years and even decades. And so Microsoft is sort of working into the mix. So even if you are running those environments, those can be integrated into your existing environment, so you don’t have to necessarily replace it. Microsoft wants it to be complementary, not supplementary. That’s pretty much it. So if you want to get the benefits of this, you can obviously look at using a virtual desktop environment in your environment, instead of everyone having their own copy of Windows and doesn’t travel with them everywhere that they go.

Leave a Reply

How It Works

img
Step 1. Choose Exam
on ExamLabs
Download IT Exams Questions & Answers
img
Step 2. Open Exam with
Avanset Exam Simulator
Press here to download VCE Exam Simulator that simulates real exam environment
img
Step 3. Study
& Pass
IT Exams Anywhere, Anytime!