To start deploying to the cloud, you must know what you are deploying and what you are deploying to. Learn about analyzing and executing the requirements for a successful test cloud deployment.

Moving to the Cloud

How about the process of what it means to move to the cloud? To use cloud based infrastructure as your paradigm for business. Now on the benefit side, thinking about the pros.

Of course, for any new projects, you’re going to reduce your initial infrastructure expenses. You don’t have to buy hardware. The cloud provider has done that for you. And that can certainly mean that in terms of initial asset requirements, you can leverage moving into the cloud with very little front end investment. Though of course the investment goes up as you want to have scalability. But that’s the next step.

Again, we aren’t pinned into a particular level or penned into a particular level. We have the ability to expand that. We can change our subscriptions over time and get more or better hardware running for us in the cloud.

Then we have an overall reduced total cost of ownership, because we’re working with virtual resources in the cloud that can be moved about more easily. Where a lot of the lower level jobs are being taken over by the cloud provider, I’m handling, as the IT administrator, the upper level jobs. So we’re dealing with development, we’re dealing with best practices, association security. Not driver replacements, not things like having to add new hardware down the road.

And the very nature of the cloud is going to increase our scope of access and redundancy. Meaning content’s going to be replicated to multiple locations around the globe, where our data centers, that the cloud provider has available replication options. So that’s great. That means that my data can be accessed more quickly, regionalized. And if a region should fail, my data is not offline entirely. We can be directed toward the regions that are still online. Now it’s not all cake and ice cream here. There are some costs to moving to the cloud as well.

We’ve got to think about standardization and the fact that you are going to be limited in terms of what your cloud provider provides. And so that may mean making some changes. We’re going to have to focus on what is the architecture that we’re going to want to work with.

Now, for most companies, this is going to be a cost on the front end, if we have lived a non-standardized life, that ends up giving us payoffs in the end. We’d reduce total cost of ownership, as we have a standardized approach.

Now, integration can be an issue. We have different applications doing different things. And honestly, your network may already be well advanced in cloud adoption, but in 12 different ways with 12 different providers. And you may be trying to integrate on-premises solutions into cloud solutions. So again, these tie together. These are concerns and costs that are going to be a part of the process of moving.

If you have already started with a provider and you need to then move to another provider, they may not accept the form of data, or virtual machine, or application that you are currently working with. And you may have to rewrite it, or downgrade it, export it, do something to make it palatable to bring it into another provider.

And remember that moving to the cloud does not mean that you are forgiven or simply excused from any responsibilities for privacy and security. This is incredibly important, no matter what. Cloud is where and it is how your data and applications are being provided, where resources are being controlled.

But it doesn’t change the extreme nature that you have in front of you to protect your data. Have you heard of a hacked S3 bucket? Again, the S3, it’s referring to a storage type. And improper security around it has made several companies notorious. You don’t want to be one of those.

Now when you’re thinking about moving to the cloud, you’re going to be thinking about taking certain jobs that you might do in house and reassigning them as cloud-based jobs. Now depending on which cloud model you’re embracing for certain jobs, you’re going to be doing different things. So when we think about software as a service, we’re talking about simply prepackaged software available using this cloud based format.

So that means the infrastructure, the platform and even the application itself is already built for you. You just got to log in with your subscription and start using it.

Platform as a service is dealing with the idea of your ability to develop new software, but the infrastructure is already taken care of. The platform has already been built. Think of it as the virtualized operating system has already been rolled out. You simply need a program to it.

Infrastructure as a service takes this one level further. And so with infrastructure as a service, you might have something where, essentially you’re building virtual machines in the cloud, that have the ability to be relocated, managing all the networking communications yourself. So is it better to build a virtual machine that is a domain controller, or use platform as a service, for example, where a domain controller might already be built for you?

Again, it depends on your goals and some of those questions we looked at about it, in terms of integration and migration options. So we’re always thinking about the same components, regardless of on-premises or cloud, right? I have needs for network connectivity. If it’s not networked, it’s pretty much pointless in most cases. Storage, high speed, redundant, compressed, right? All those different types of storage.

Compute resources, memory, CPU, the need to provide security and the need for applications to manage the data and manage managing the data. You’re going to need, in order to make this work effectively, some different components. You’re going to need to know your structure. You’re going to need to know the SLA that you’re working with. So what are the requirements that you have?

You’re definitely going to need to know your tools and commands that are germane to the tool you’re working with. Can I do things command line? Am I doing this through a web-based graphical interface? And you’re always looking for options to automate and orchestrate this process.

You definitely want, especially as you’re dealing with things like, okay. I need a particular approach where if resources are needed we automatically are able to grab resources from the cloud to supplement those that are in on-premises location. On demand base.

That’s amazing. But that has to be orchestrated, right, in order for that to happen. We need to have a workflow in place for that to occur. So gang, those are some of the top things to really be thinking about as you are considering this process of moving to the cloud.

Choosing Cloud Deployment Models

All right, folks, let’s talk for a moment about cloud deployment models, or in the words of Monty Python, it’s just a model.

Now, remember, the Internet is not the cloud. The cloud is not the Internet. The Internet is a resource that you can subscribe to that makes services that are ubiquitous and supporting multi-tenancy framework available to you. But it’s just the connected tissue that gets you to the service. There are many clouds in the sky. The Internet is a tool to get you to the cloud.

Now, when we’re talking about the public cloud, we’re talking about the idea that there is a service provider out there who is renting resources, right? You get a subscription, and you’re able to say, all right, out of all those resources that you potentially have available, I want this little corner for me, Enterprise A here.

Reserve those for me, and the cloud service provider will do that. But it is multi-tenancy, so Enterprise B and Enterprise C all have the ability to also rent out resources that the cloud services provider is going to make available and they will get their little corner of the lot.

So when we’re using the public cloud, that means we are focused on this idea of getting our piece of what is available for public tenancies.

It’s a subscription-based process where you pay as you go for what you use. And that means that if you’re using the public cloud you’re not thinking about capital expenses, you’re not thinking about assets in that sense. You’re focusing on the operating expenses of doing your business in the cloud, right? So that’s public cloud. What about private cloud?

Well, private cloud is talking about creating a provision of resources that typically is available also through the Internet, as a means of access.

So it can be ubiquitous, it could be replicated amongst data centers. But I’m Enterprise A and I’m the cloud provider, it’s my cloud.

So who’s using this and what makes it a cloud then? Again, is it available with redundancy and ubiquity throughout all forms of access? And is it set up in such a way where maybe multiple tenants are maybe different remote offices or different branches of your company that are able to use this service that you provide in-house?

Now there’s some other hybrids that are out there. Now one is the community cloud. And that just means that there’s a group that’s going to use a cloud where they’ll be able to see each other’s stuff. So a group rents out a corner of a service provider and

then, for example, University A and University B in this example, can see each other’s resources so that allows for collaboration.

So this is done often when we want a cloud-based infrastructure, for all the benefits that provides, but we do want to be able to have some common investment, all right? So we can share the load of paying for this cloud responsibility, and shared access, potentially, to the data within it. Now you can still secure it as you’d like to isolate it from one university to the other, but the potential is now there.

So a hybrid, you’re making the best of both worlds, right, public and private. But now you have to have all of the management assets in front of you. You need to be able to manage on-premises public cloud and the data center needs of a private cloud environment.

But you have the ultimate availability of options when it comes to picking a service and figuring out how you’re going to deploy it most effectively, right? To do the job that you need it to do. So that’s the goal, right, of all these things, is to figure out what’s the most efficient way to deploy our data and to deploy our applications.

So as we’re thinking about deployment models, what are you going to be thinking about before you deploy? How are my components and services going to need to interact with each other?

So on-premises relative to cloud-based environments. It might be that it needs to be private to allow for the secure access you need or in order to be managed in a way that is able to keep data consistent. You’re going to have to be very consistent with your base lines. So what are going to be the performance levels that we’re focusing on? Figuring out how you’re going to target individual hosts to participate in certain resources or to extend the needs of one cloud into another and how we integrate this with existing systems.

So again, really a lot of the same kinds of things we were thinking about just in terms of should we go to the cloud or not. But now we need to get even more detailed as we focus on the type of cloud deployment that we’re actually going to be employing in order to get our resources cloud hosted.

You don’t want this to just be shot from the hip. Let’s move to the cloud, right? That’s not going to be effective.

So part of that is keeping everything documented, right? You don’t want to do it. Nobody likes doing documentation, right? That’s not the fun stuff, but incrementing, right, with change request forms, the process of moving to the cloud and moving a certain application to the cloud. Other documentation that ensures that we are meeting with the guidelines, compliance, and regulations that might effect our industry. That’s huge, right there on the front end.

We want to have a change request log. And make sure that changes are going through an approval process. Because once we have a cloud provider, once you have a subscription with AWS, does everything get moved there? Do we just start rolling out new projects willy nilly to our AWS or whatever other cloud environment we’re hosted with?

No, we need to make sure that we’re doing this systematically so that we’re not overtaxing our account, paying more than we should be. That we are going through a process that may be very agile and nimble. You can have that process not have to go through 12 links in the chain of command, but you do need to make sure that it is logged, identified and approved by someone.

Need to be ensuring that we are looking at the aspects of impact to change, right? So are we going to be using resources at the same time? A lot of cloud content ends up piping through the network. What’s that going to look like? And then making sure that the stakeholders that are associated with the different applications or services that you’re focused on, are really able to understand what the nature of the change is as you move to a cloud-based hosted environment.

And that you’re bringing in this idea of a change control board. That there are individuals who are responsible for ensuring that the before and after picture looks the way you want it to, right? We want to make sure that that after picture of having moved to the cloud looks sharp and really respects the changes that were desired in the first place. Whether that’s better performance, better security, lower total cost of ownership, whatever it might have been. We’re not done though.

We also want to be ensuring that we have a workflow of change. One of the things that we’re going to get a chance to do in this is, in many cases, move data from one place to another, move applications. That might be just changing which plug-in we’re using in the browser or in Outlook or in whatever software we’re using in order to coordinate that. It might involve a big dump of data on a particular zero day in order to execute the change.

So we need to be focussed on using the tools, using the graphical interfaces available to us. And command line tools that might be available to script this process in order to ensure that step by step we’re bringing ourselves forward. And with any workflow, there’s an implication that there should be an option for a rollback. Because sometimes your change does not work despite all of your planning and preparations.

It doesn’t work the way that you thought it would so you need to be able to roll it back. And that’s part of a workflow is anticipating that so that you can have that, whether that’s simply backups of what you have on premises, or alternate solutions. Maybe it’s a different provider to go to. There’s some sort of rollback option available to you.

And we notice it’s really a documentation sandwich. We document what we’re wanting to do on the front end and we’re documenting how it worked on the back end. So that we can identify, yes, it did work, right, when we first started.

Maybe there were more changes that slipped in that made things not work later on, or caused security vulnerabilities. Again, the more you document, A, the more you cover yourself in case of disaster later on to identify, yes, I have proof that I didn’t just roll it into the cloud and hope for the best.

And it means that when you are troubleshooting you will have a better baseline on which to build future planning. So please document the results. So none of this is rocket science, gang. But these are five important steps that are associated with this idea of change management, which needs to be a integral part of your cloud deployments.

Choosing What to Test in a Pilot Cloud Deployment

Blowing your services and resources into the cloud, you’re often going to do so with a pilot project, you’re going to essentially attempt to put something out there and you wanna verify that it’s working correctly. You might not even make it available initially for everyone in the company, but only for a subset of the company users who are going to be able to access this cloud based deployment of that service.

So whether it’s a new application, a way to do data entry, whatever it might be, right, we limit it and we test it. So what are we testing when we are deploying this pilot? How do we test it to make sure that it’s actually working so that we can move things forward and continue to invest in the cloud and feel comfortable with it and have all of our stakeholders be behind us? Well, I’m glad you asked. Oh my.

Again, what we’re looking for is, does the application really work? And so kicking the tires of an application involves a lot of different aspects of managing it. So, I mean, those are the big bullet points. That’s kind of the areas to check.

Testing a Pilot Cloud Deployment

Now, a little more specifically, one of the key things you’re going to want to do is test for vulnerabilities. A test for security holes in the cloud infrastructure. So what could you find out using a packet sniffer, using Wireshark, something like that? What happens if I try and send bad code into the application to hijack a session or a connection? Does it allow me to do that or not? Again, this really isn’t different than any other application deployment.

It’s just the nature of where we’re doing that and, in some cases, which tools we might be using to try and access it via that network. So another way to think about this is looking for vulnerabilities in the infrastructure versus penetration testing. Where we’re actually attempting to break into the system to access data outside of a security context, to actually break into the system. So again, you have a cloud based system. It’s potentially available to anyone who has access to the Internet, let say. So that means many people are potential hackers to your network, right?

And so ensuring that you have the correct security systems in place, firewalls, intrusion detection, things like that, that are a part of a cloud network just like they are in a non-premises network is part of this. And ensuring that the local servers are not running code that is vulnerable to different types of hacking techniques. So there’s a lot of security testing to be done. Vulnerability and penetration is both important.

And then the vast majority of things that we want to test really are going to deal with responding to different types of load. What happens when we have this many users? What happens when a user sends this much data? What happens when a 100 users send this much data? What happens when we need to do a bulk operation job? So we’re just dealing with different types of responses. So again, looking for, this is just a for example, right?

This is a potential goal that we might have for an application. It needs to respond back to user transactions, to add a record, remove a record from a database, let’s say, in 500 milliseconds.

We’re trying to make sure that CPU utilization and memory utilization consistently stays below 70%. You want to make sure that there’s no disk swapping going on,

because that’s pretty disastrous when it comes to memory management.

And that, in general, disk latency is less than 100 milliseconds per drive. Now, that is not your load testing baseline that you want to ensure that you are managing or ensure that you have. And, I’m sorry, baseline is what you actually have. That’s what normal looks like. I should use the word benchmark here.

These are going to be the potential benchmarks that you want to ensure. And you may have this by virtue of a vendor or your own internal testing internally, to know what good response times look like, what good CPU levels look like for an application server of a certain type. And so, again, you’re just wanting to ensure that things are working in a way that is going to create an acceptable user environment. And you just have to dig in and test it and start monitoring that.

Typically, in a cloud based environment, you can use the cloud management environment tools to gauge that. Often, using internal tools within virtual machines is not a great way to test those particular aspect, because they are limited in the scope of what they can see with regard to hardware utilization.

Validating Pilot Cloud Testing

If you’re deploying to the cloud, it’s going to be really important to you to ensure that the cloud is giving you the results that you expect. So, typically, you will test a pilot cloud deployment and ensure that it’s working correctly.

So, you need to validate that. And so, really that just means going back over the different tests that you’ve run using internal and external tools. Manually trying to break things, manually trying to hack things, manually adjusting different values, and variables. Maybe a testing automation to request additional resources from the cloud when you reach a particular threshold.

All of those kinds of things are going to be aspects that you’re going to test during the pilot process. So testing to make sure sizing, performance, availability, connectivity, data integrity, functionality, right? The results, the data results we’re correctly comparing baselines of maybe an on-premises versus a cloud. Ensuring that the service provider is actually giving you what they said would,

and looking at variables in terms of fluctuations. So again, at different times of day, different tenants might be in use. You might have more resources in use. How much does it vary when you run the same test with different modifiers? And of course, ensuring that those aspects of security are in place. Can you hack it? Can you start intercepting insecure packets? Is your personally identifiable information held in a way that is thoroughly hashed and unable to be deciphered directly?

All of those are aspects that you want to ensure that your pilot proves work correctly. If they don’t, you go back and you figure out, okay, was this the wrong provider? Was I trying to use infrastructure as a service? I really should just go up to a platform as a service because it will be better if the cloud provider took care of providing the platform. I’m really reinventing the wheel here for example by installing my own Microsoft SQL Server instead of using maybe Azure SQL, right? I mean, those are different aspects of what you need to figure out in order to get the level of performance that you’re looking for from the cloud. And to really leverage the cloud in a way to give you the kind of results that you’d like.

Deploying a Cloud Project

Folks, let’s take a moment and look at this idea of deploying to the Cloud. Now, in front of us we’ve got actually three, count them, three Cloud providers. We’re looking at AWS, we’ve got Google Cloud, and we have Microsoft Azure.

So, if we take a look first at our Amazon Web Services as a Cloud services provider, just as an example.

I want you to notice that right here on the front end we have this list of services.

And part of being able to deploy to the Cloud is simply to know what services are available for you. You’ll see they come in a lot of different flavors, some of them are pretty low level. Here’s some infrastructure as a service, such as an EC2, a virtual server in the Cloud, right. So you could use that to deploy a virtual machine.

We have S3, scalable storage, a common storage mechanism to store data

that might be accessible from things that we define here in the compute engine. Or directly acessable through other services that we might having here as well.

Data base services, we go straight to RDS store various different data base flavors, we’ve got networking tools here.

Directs developer tools that we can use to a build out code that is going to be Cloud hosted.

So again, in order to deploy to the Cloud, you need to know what’s available and what you are trying to be able to build out. And here’s part of the challenge, we’ve hopped over now to the Google Cloud Platform, and

as we look here, we can see again, things like there’s an App Engine.

Compute Engine for VM instances, okay we see some things like that, some familiar looking aspects. We’ve got Storage tools, some networking tools so, in general, we see a lot of things that are similar, but some differences. They have different names, there are different options that are available in one cloud provider versus another, here’s Google BigQuery. This is a totally different resource than what we see available in the AWS environment. And of course, if we hop over to Azure,

we once again kind of start over looking at this process.

So again, are we trying to create an infrastructure such as a virtual machine over Windows and Linux, an application function, a database? So again, they’re trying to present these services as easily as possible. But again, over here on the left hand side, you could see the process of actually getting to those Is a little different. The names are a little different, the hierarchies are different. We can create a resource and again,

this gives us our various different groups of different types of resources. We’re focusing on AI, data, analytics, web, storage, networking, compute, and so on and so forth.

In all of these, if you’re looking at infrastructure as a service, and really just trying to build out a Cloud-hosted compute environment to be able to have your virtual machines be hosted in the Cloud. If that’s your goal, that’s going to actually be probably the most consistent thing. Though you will find even there the underlying technology used to provide virtualization will typically be different from one Cloud provider to another.

So this is why I said you want to figure out your standardization for which services that you’re going to use, you don’t have to have only one Cloud services provider. But in general, like most things, you will find it easier, to some degree, if you can find the Cloud provider that most easily supports your business needs, right? Supports the type of infrastructure platform or provides the actual software that you need.

That allows you to integrate with your own environment as much as possible, and gives you the tools that you want. Now, once you’ve done that, then the specifics of course are going to vary with each Cloud provider. Let’s say here we needed to create a virtual machine. Again, we can come over here and we see, let’s say we want to create a Windows 2016 Datacenter.

Again, it tells me we’ll need to, for this context we can just switch directories, that’s fine, here.

We’ll switch back over to AWS, we’ll build an EC2.

All right so in this environment, a virtual server, known as an Amazon EC2 instance, launch an instance and

then we’re asked about okay, what aspect of the subscription would we like? And what would we like to have running on it, so a lot of the templates are already in place for various different virtual machines. So there’s that Windows Server 2016, equivalent of what we were looking at over there in Azure, so we could select that.

And then we choose the engine behind it right. So various different levels of CPU and memory and network performance and storage mechanisms that are available to us depending on the instance type that we choose. Again, the details of this are going to be different depending on which provider we’re going with, but the overall goals you’ll find are very consistent.

So once we have deployed all of this, then we start observing the environment and figuring out, okay, now that I’ve got my environment. I’m running my software on that environment. Then we can start testing that project and really seeing, does it support the levels of application stress that we give it. Is it able to respond appropriately to those benchmark levels that we need?

Exercise: Choosing Cloud Deployment Options

Okay folks, in this exercise you’re going to determine the appropriate deployment configuration based upon a scenario. Figuring out the service and deployment models, and any requirements that you can think of that must also be met in order for this to work. So the scenario is this. Your company would like to deploy a new order-entry web service in the cloud.

The project requires cloud-accessible storage and a programming platform, but does not require a specific internal infrastructure. It must scale over time with minimal disruption. So what I would like for you to do is think about those three questions and write down your answer. What would meet those needs? Look at the details of that scenario. Review what we’ve gone over in this course, and you’re going to come up with a good answer. Pause the video while you do that and then unpause when you’re ready to go over it together.

All right, folks, let’s take a look at how we would handle this scenario. So we’ve got this new order-entry web service in the cloud. And we need cloud-accessible storage and a programming platform without a specific infrastructure, and it must be scalable over time with minimal disruption. So thats sounds like we want, again, platform as a service or software as a service, right. We’re not needing to deploy the underlying infrastructure. We don’t really care about that in particular. We just needed a web hosted application environment.

So great, we can roll that out. Where are we rolling that out? Is it going to be a public cloud, private cloud? Is it going to be a hybrid or a community cloud? Well again, we’re not collaborating with anyone in the government or anything like that. No community needs. We’re not trying to do something that would require both a private and public cloud for compliance reasons, for example. Neither do I want to have to have a drastic internal disruption if there is a need for scalability. Which, remember, if there’s a private cloud, you’re going to have to buy new hardware because you’re running the data center that supports that cloud.

So really, a public cloud model really checks all those boxes. Any other things to remember about this? Well, of course, going to need to focus on our security always, right? We’ve got a web application in the cloud. People are doing data, entering in potentially important information. Could be credit card numbers, if its all right? We said we’re order entry, so dealing with the payment card industries can be very important. You need to make sure that it can handle those workloads.

Maybe we’ve got some seasonal needs that change when people buy more stuff online. We’ve got to make sure we have the extensibility to expand our capacity if necessary. So performance can handle the expected loads at different times with scalability options as necessary. Some orchestration to help make sure that happens automatically.

And, of course, if we’re going to be rolling this out and we haven’t been doing cloud based deployments before, then that means we’ve got to make sure that our stakeholders understand why we’re using the cloud. What are the benefits, and how this is going to work. And again, that means that we’re showing them how the change in model is going to be overwhelmingly improved by the change in return on investment, the lack of having to define initial capital or cost of ownership, right? All those things that are improved by going to a cloud deployment model.

All right gang, way to work through that process with me. Good job.

Test: Questions and Answers

Question 1 of 7Question:

Which of the following tests of a pilot cloud help to determine if your environment is secure?

-Penetration Testing

-Vulnerability Testing

Question 2 of 7Question:

Which of the following is an example of proper change management process?

-Using a change request log to ensure approval before deployment

-Documenting the process from initial planning through results

Question 3 of 7Question:

Which of the following is a challenge when choosing a cloud service provider?

-Not all cloud service providers provide the same breadth or type of services

-Similar services may use different names when hosted by a different provider

Question 4 of 7Question:

Organizations which need to have exclusive access to cloud resources but wish to have zero capital investment in infrastructure should use which cloud model?

– Public

Question 5 of 7Question:

Which of the following is an example of Infrastructure as a Service (IaaS)?

– Virtual Machines deployed onto a cloud hosted environment

Question 6 of 7Question:

Which cloud success factors are specifically tied to the nature of cloud computing?

-Cloud performance fluctuation variables

-SLA Comparisons

Question 7 of 7Question:

Which of the following is an cloud environmental condition to be tested that relates to performance?

-Sizing

-Computing