11. Advanced Design Topics Module Introduction
In this module, we wanna take a look at some advanced design topics. For example, what kind of considerations should we factor in when we’re planning on capacity issues in the cloud. And shouldn’t the cloud be able to be elastic, scaling up and scaling down as we need? In this section, we’re also gonna talk about one of the reasons the cloud is so huge today and that is because we love to be able to test architectures and solutions and the cloud makes this testing very easy to accomplish.
12. Factors that Contribute to Capacity Planning
Now we’ve established, and it really is true, there is no ‘one-size-fits’-all when it comes to cloud. But something else we should keep in mind is that capacity planning, planning how much resources that we’re going to need, how much budget we should be willing to spend, these things are still going to be concerns of ours. You see, I think some organizations get complacent here. They think, ‘Well, since the cloud will give us rapid elasticity and it can shrink as we need it to and grow as we need it to that means we don’t need to worry about capacity planning. After all, it’ll just take care of itself. Our virtual machine auto scaling groups inside of Azure or just the auto scaling services that we have in AWS, they’ll take care of everything.’ And sure enough, that’s not true.
We want to consider first and foremost, what a surprise, the business goals of the organization. I remember being in meeting after meeting after meeting with very successful C-suite type executives and we, IT folks, would be all excited to sell the organization on some new gee-whizz technology that’s going to be all the rage and it will solve all the world’s problems, only to see these very learned C-suite executives say, ‘Well, how does this help us achieve our business goals in any way, shape, or form?’ And of course, if you can’t back up the business reasons why something must be done, it’s going to be very, very difficult to sell that. We do a business needs analysis if we do this right. So, maybe we discover that there’s been incredible numbers of customer complaints, and even folks canceling their subscription to some media service, to some online training that we are delivering. And sure, enough we realize that if we call upon public cloud and a globally dispersed video distribution and the automatic encoding and things that cloud services can give us, we can increase the customer satisfaction and we’ll stop losing customers. So this might be where the business needs analysis is conducted and cloud can address it head on. Think about licensing. Is it going to cost us more in a cloud move because of the way licensing is structured in the cloud? We’ll talk lots more about different types of licenses we might encounter in cloud as we go through the material in specific areas.
Let’s not forget just thinking about things like user density. I mean, we might have an architectural solution that starts out servicing 10 users of our organization. And then once it’s a smash hit we may suddenly be asked to support a density of 200 users. How about the overall load that we are willing to impose on various systems? And a big part of capacity planning is to do trend analysis to come up with baselines, and patterns, and anomalies that might be encountered. Of those three terms, let’s make sure we’re very familiar with the concept of a baseline. That is so critical in any IT discussion, really, not just a cloud discussion. A baseline is so important because, think about it, if you have users, they’re phoning up and they’re saying their cloud based storage seems slow. Well, what is slow? Like what is it on a normal day? The baseline is so critical for this. Yeah, we wanna figure out what is the performance like when things are quote unquote normal? And that way we have a baseline to compare against when we think things are not normal. Yeah, things like this are absolutely critical, again, in any IT environment, not just one that is going to be primarily cloud-based. And let’s not forget, just because we’re moving to the cloud, we’ll still be engaging in performance and capacity planning measures as if we were building this on-prem in many regards. Remember, we are not going to be let out of this process by any kind of magic pill thanks to a cloud move. Well, thank you so much for watching and I hope this stimulated your imagination when it comes to really key factors that we should consider when we’re thinking about just how big our cloud implementation is going to be.
13. HA and Scaling in Cloud Environment
I really hate to sound like I’m repeating myself, but you’re going to hear me again and again in this class, say things to you like, ‘This is one of the reasons that cloud is so popular.’ And we’re gonna say that again and again. Guess what? High availability and scaling most definitely one of the big reasons that cloud is so popular. Let’s break it down in this video.
And high availability (HA) and scaling is another one of those topics that we were concerned with well before the cloud. I’ve been teaching about high availability for decades. High availability, by the way, is often confused with the components that make it up. You see, HA is an umbrella term. And how we get to a point of high availability is, when we successfully implement typically a whole bunch of technologies, like redundancy, monitoring, failover, and many more types of technologies, especially with new tech that we’re seeing in the cloud. Now, we apply high availability mechanisms to all aspects of the cloud today. It’s applied to the systems that are making up our solution. The actual VM instances themselves, network connectivity, storage, you guessed it. It’s going to have high availability mechanisms applied to it, if it is mission critical. Now, one of the nice things when we move to public cloud is the fact that we are taking advantage of the huge budgets and huge success and huge scale of the parent organization. For example, AWS has data centers spread across what are called availability zones, and those are grouped into what are called regions all over the globe.
And guess what? Microsoft does the same thing with Azure. Notice, Microsoft, a very successful company, right along with Amazon, and therefore, they have the budgets to organize these data centers strategically all over the globe. Remember, multiple data centers relatively close to each other in what are called an availability zone. And then, you have multiple availability zones inside, what’s called a region. Both AWS and Microsoft’s Azure use this concept, and so does Google Cloud platform for that reason. Now, let’s talk about how you would measure high availability. It’s not okay to just say, ‘Guess what everyone, I’ve achieved high availability.’ Well, what does that mean? How often are your systems down? And this has been classically measured and reported in what is called the nines system. And that is like our cloud is 99.999999% HA. So, this is referring to the percentage of uptime. And you can google, if you like, how many seconds of downtime is five nines? Five nines would be 99.999%. And it’s really fascinating, because when I first started teaching high availability many decades ago, we would consider five nines of high availability to be just, you know, award-winning. Right? Epic! And now, that would be considered a disaster. There is no cloud service I’ve ever seen that is only saying it can achieve five nines. They’re all well beyond that.
Now, one of the things that we do that’s central to this whole concept of HA is very simple. And that’s, let’s avoid single points of failure. When I’m teaching live classes for Splunk on the Internet, I have a backup Internet connection. I have a backup WebEx machine dialed in, I’ve got a backup pretty-much-everything. The only thing is my solo voice box. You heard my voice going moments ago. Gotta watch out for that, right? That is my single point of failure. If my voice goes, I’m gonna have a challenge. Now, scalability certainly comes into play here, because think about it, if we are getting hammered with demand, and we can’t keep up for some reason, maybe, there’s bottlenecks of network congestion, then, we are having a problem with high availability. Our services are not available. So, scalability is a big part of this, and that’s why we love the cloud with its rapid elasticity.
Now, there’s lots of decisions that go into planning for your HA. For example, one that you should be aware of is with your hypervisors. Are you gonna take what’s called an affinity approach or an anti-affinity approach to placing those in your data center? What the heck does this mean? Oh, here’s what it means. If you are placing your hypervisors with an affinity strategy, then you are placing those that you’re gonna manage together, close together. Yeah. So, the closeness of their locations in the data center, this is the affinity. Now, notice you might take an opposite approach called anti-affinity. You may say, I don’t want them all clustered together. For high availability reasons, I want them spread out, in fact, as spread out as possible. So, different approaches for different data centers and different business needs.
Now, one of the greatest features that has come along and cloud makes it so simple is clustering. You’re seeing more and more products that can be clustered together to act like one big product. And I mentioned Splunk earlier in this video. Splunk can certainly do this. So, we can take our Splunk servers and cluster them together with ease. When you have a bunch of systems acting like one system, it sounds kinda like the Borg from Star Trek, doesn’t it? But one of the nice things that can happen is you can have these real precise, real frequent heartbeats where you are testing more frequently than normal the health of the surrounding nodes. And that’s a great-great feature.
Another thing to keep in mind is that containers, those little kind of oh, sub-virtual machines, if you will. It’s just the application and those components of the OS that are needed instead of the bloatware that you have with the VM with the entire OS and an app installed. We’ll talk more about containers in great depth later on, but just understand that these containers, these precise little, tiny, tiny virtualized applications, they are gonna get along great with high availability, because systems like Kubernetes are designed to make those containers highly available. And that stuff runs beautifully in the cloud. Well, I hope you found this as interesting as I do. This really is a very-very interesting and broad deep topic, but I hope, we’ve given you a great head start in it here in Cloud+.
14. Cloud Environments
Now, you need to resist the temptation to get overwhelmed when you really get deep into Cloud+. Yes, we need to know about the different public cloud vendors. And yes, I’m gonna help you with that right now, and I’ve got great news for you, they are really so similar. Once you learn the public cloud of one of the major public cloud vendors, learning the others is easy, I promise you. And I’m gonna really prove that, I hope, in this video.
Here, you can see, I’m in the AWS console, and it’s really neat that we’re in the AWS console right now. That’s because the console just changed. So, this may look very different from your own AWS console; and this is one of the things that we need to be prepared for with these cloud environments. It doesn’t matter if you’re working with Google, or Microsoft, or Amazon, you’re gonna find that things like the management console, the graphical user, web interface for managing your public cloud is gonna constantly be changing its look and feel. So, I really like what they’ve done here. It’s a much cleaner look. Notice, they have things I’ve recently visited. They give me cost information right at a glance – what this infrastructure is costing me, I love it. And some links to build quick solutions. So, it’s a much cleaner interface.
Now understand, this is just one way you would interact with AWS. There is a command line interface that you can install and use, so that you can send commands right from something like a command prompt. So you’d be able to bring up a command prompt on your Windows machine, for example, and you’d be able to type in AWS commands that will do certain things to the AWS environment. So, this is obviously a very, very cool capability. So, lots of different ways to manage AWS.
Now, AWS has a virtual machine service, and that virtual machine service is called EC2. And notice, you can go into the EC2 service and say, launch instance, and you can start building a new virtual machine.
Notice, the first step is to go ahead and select the operating system, that this virtual machine is going to be running.
And you can see, which of these virtual machines are free tier eligible, meaning that you can spin up these VMs inside of AWS, and you won’t be charged, if you’re still within that free tier of access. So, notice that’s a little quick intro into what AWS is going to look like and feel like. Let’s slide over now to Microsoft Azure.
So, look at this management interface. Doesn’t it seem a lot similar to what we were just looking at? Yeah, of course. Notice that, I’ve got my Azure services up here, and I’ve got a nice look at my recent resources. And then, of course, there’s ideas for solutions down below. Now, in AWS, there was a virtual machine service, and that was called EC2 which stands for Elastic Compute Cloud. And that’s all fine and good. And guess what? Here in Azure, there’s a virtual machine service, and it’s called beautifully – Virtual machines.
So, sure enough, would it be easy to create a new Azure virtual machine? Well, of course, it would be. I click on the create button, and then just like in AWS, we start walking through what we are going to be building in this virtual machine, including of course, as you can see here, the choice of an operating system.
So wow, all these different options. And we can easily start spinning up virtual machines here in Azure. And notice, in Azure, just like in AWS, we’re gonna have different options for managing the cloud. Sure, we have a graphical user, web-based interface in Azure, but there’s also going to be a command line interface that we can use in order to interact with our Azure environment, just like we have in AWS.
So, one of the things that you see here is a recurring theme, and it is very true. When we go in and we learn the ins and outs of one of our public clouds, it’s going to be very easy, then turn around and learn the ins and outs of a competing public cloud. Notice here, we have the virtual machine service in Azure. We have the EC2 service in AWS, and they’re gonna be almost identical in how we approach them, how we work with them, how we operate them. So, it’s gonna be a very shallow learning curve, as we move from cloud tech to cloud tech. Thanks so much for watching.
15. Cloud Testing Techniques
Yet another reason that so many organizations are looking to move to the cloud is because of the rich, and flexible, and agile testing capabilities that are going to be made possible. Let’s talk about some of those in this video.
I can’t think of too many organizations that wouldn’t want to be able to have separate environments when they are rolling out some new IT solution. Think about it, how great it is to have a development environment where developers can access the solution and test new aspects of the solution. Think about a staging area where the organization can slowly roll out new features from the staging area. And maybe this is completely separate from a production area, of course. So yes, all organizations wanna take advantage of these separate environments, it’s just that many organizations today are unfortunately tied to something called a budget, and maybe it’s not in the budget to build these separate environments. Cloud, with its on-demand flexible access and provisioning, makes separate environments like this a reality for many organizations that couldn’t have done it on their own.
And this especially applies to things like disaster recovery testing. You see, a lot of organizations can’t even afford an alternate site that will be used in the case of a disaster. And not only can they not afford that, but they would never be able to afford the testing of that redundant disaster site, and once again, the cloud can make that very easy.
The cloud can also accommodate blue-green release models. What this means is, there is a blue version of your solution and a green version of your solution, and one might be the older version and one is the newer version. And you can move users to these two versions as you stage the deployment.
Another approach that the cloud makes easy is a canary deployment model where you will only give a new solution to a small subset of your users. And then when you feel the solution is ready, you can go ahead and deploy the solution out to everyone.
Don’t forget that security tests are gonna need to be performed, and the cloud can make it very simple to test your system for vulnerabilities. And you can also pretend to be an attacker and see how great your system works with penetration testing.
Now, penetration testing is one of those real interesting ones when it comes to public cloud. For the longest time, AWS did not allow you to penetration test against your solution, and then they soften that position, and they said “You could do so with written permission from Amazon.” And now they’ve evolved to the point where you can penetration test your own solution at any point without asking for permission. But notice the key here is you cannot penetration test against their services, only your solutions running against their services.
But of course, that’s not all when it comes to cloud testing that you may be engaging in. How about just basic use tests? Sure! How is the solution performing? How is it working with legacy environments, right? What does this solution do as far as maybe breaking things when it comes to connecting to earlier software that you were using? How about functional testing? Does your solution actually work and is it usable? Can your end users work with the solution with ease? So notice, lots of potential testing that we wanna do and the cloud makes it very easy to perform these tests. Yet another reason that we might be moving to cloud to begin with. Thank you so much for watching.