1- Cloud Concepts

Cloud Concepts

There are many reasons for moving to the cloud, but one of the primary benefits is removing some of the IT burden from your company.

  • The cloud allows you to take advantage of a cloud provider’s infrastructure and investments, and it makes it easier to maintain consistent access to your applications and data.
  • You’ll also gain the benefit of turnkey solutions for backing up data and ensuring your applications can survive disasters and other availability problems.
  • Hosting your data and applications in the cloud is often more cost-effective than investing in infrastructure and on-premises IT resources.

Once you decide to take advantage of the cloud, you need to understand the different cloud offerings available to you. Some cloud services provide an almost hands-off experience, while others require you to manage some of the systems yourself. Finding the right balance for your needs requires that you fully understand each type of service.

Identify the benefits and considerations of using cloud services

Today’s companies rely heavily on software solutions and access to data. In fact, in many cases, a company’s most valuable assets are directly tied to data and applications.

When making decisions about what to move to the cloud, evaluate your decisions against the benefits that cloud computing can provide.

Scalability, Elasticity, and Agility

Consider a situation where you are hosting an application in the cloud that tracks sales data for your company. If your sales staff regularly enters information on daily sales calls at the end of the day, you might need additional computing resources to handle that load. Those same resources aren’t needed during the day when the sales staff is making sales calls and not using the application.

You might also host a web application in the cloud that is used by external customers. Depending on the usage pattern, you might want to add additional computing resources on certain days or during certain times. You might also need to quickly adapt to more users if your company receives unexpected publicity from the media or some other means.

Two additional benefits of cloud computing are scalability and elasticity.

Scaling is the process of adding additional resources or additional power for your application. There are two variations of scaling: horizontal scaling (often referred to as scaling out) and vertical scaling (often referred to as scaling up).

  • When you scale out, you add additional VMs for your application. Each VM you add is identical to other VMs servicing your application. Scaling out provides additional resources to handle additional load.
  • When you scale up, you move to a new VM with additional resources. For example, you might determine that you need a more powerful CPU and more memory for your application. In that case, scaling up will allow you to move your application to a more powerful VM.

In addition to scaling out and scaling up, you can also scale in and scale down to decrease resource usage. In a real-world situation, you would want to increase computing resources when needed and reduce them when demand goes down.

Vertical and horizontal scaling can be manual processes, requiring you to take specific action to scale resources. Although it’s relatively easy to scale resources in Azure, automatic scaling is often desirable. For example, assume you advertise a product during a television show that airs at 11:00 p.m. This drives consumers to your site, where demand starts to increase around midnight. Your IT staff is all sound asleep. Who is going to notice the demand and take steps to scale accordingly?

The concept of automatically scaling is referred to as elasticity. Enables Azure to scale resources for you without interaction. Resources can be scaled automatically based on CPU usage, memory usage, storage usage, and so on. Autoscale is the Azure service that enables you to configure automatic scaling. You configure the parameters with Autoscale through rules that you create. When the thresholds defined in the rules are reached, Autoscale handles the process of scaling as defined in the rule.

Azure makes it very easy to scale resources to meet demand requirements, and Autoscale—once configured—can make it almost effortless to scale resources. The capability to rapidly adjust resources to meet demand is one aspect of cloud agility.

High Availability

High availability (HA) describes a system that is available for use without significant outages and that is generally backed by a service level agreement (SLA).

For example, if a service has an SLA of 99.9 percent, the service is guaranteed to be available 99.9 percent of the time. Translated to the real world, that means the service can be unavailable no more than 43.2 minutes in a 30‐day period to meet the 99.9 percent SLA for that month. A financially backed SLA provides a credit for the time in which the service was unavailable.

There are many reasons why you might lose availability, but the most common issues are:

  • A network outage
  • An application failure
  • A system outage (such as a virtual machine outage)
  • A power outage
  • A problem with a reliant system, such as an external database

All applications require some level of network connectivity. Users of an application require network connectivity to the computers that run the application. The application requires network connectivity to required back-end systems such as database servers. Applications might also call into other applications using a network. If any of these network connections fail, they can cause a lack of availability.

Cloud providers invest a lot of money in network infrastructure, and by moving to the cloud you gain the benefit of that infrastructure and the additional reliability that comes with it.

An application failure is often the result of a software bug, but it can also be caused by application design.

In some cloud scenarios, you are still responsible for application failures, but your cloud provider likely provides you with tools that you can use to diagnose these failures more easily.

Cloud providers offer other features that can reduce availability problems caused by application failure. You can often test new versions of an application in a protected environment without affecting real users. When you’re ready to move actual users to a new version, you can often move a small number of users first to ensure things are working correctly. If you discover problems, the cloud often makes it easy to roll things back to the prior version.

A system outage occurs when the computer running a particular system becomes unavailable. In the on-premises world, that computer might be a server running a database or another part of the application. In the cloud, these systems run inside of virtual machines, or VMs.

VMs are software-based computers that run on a physical computer. A single computer can run multiple VMs, and each VM has its own isolated operating system and applications. All VMs running on a computer share the CPU, memory, and storage of the host computer they run on.

Depending on the cloud service you choose, you might or might not be responsible for maintaining VMs. However, whether you or your cloud provider maintains them, the cloud provider will constantly monitor the health of VMs and will have systems in place to recover an unhealthy VM.

Reliable electricity is critical to availability. Even a quick power flicker can cause computers to reboot and systems to restart. When that happens, your application is unavailable until all systems are restored.

Cloud providers invest heavily in battery-operated power backups and other redundant systems in order to prevent availability problems caused by power outages. In a situation where a large geographic area is affected by a power outage, cloud providers offer you the ability to run your application from another region that isn’t affected.

Fault Tolerance and Disaster Recovery

The term fault tolerance describes a characteristic of a system that enables it to continue functioning when one or more components of the system fails.

Tip: Don’t confuse fault tolerance with scaling. Scaling allows you to react to additional load or resource needs, but it’s always assumed that all the VMs you are using are healthy. Fault tolerance happens without any interaction from you, and it’s designed to automatically move you from an unhealthy system to a healthy system if things go wrong.

Fault tolerance is designed to deal with failure at a small scale; for example, fault tolerance can move you from an unhealthy VM to a healthy VM. However, there are times when much larger failures can occur. For example, natural disasters in a region can affect all resources in that particular region. Not only can something like that impact availability, but without a plan in place, disasters can also mean the loss of valuable data.

Disaster recovery not only means having reliable backups of important data, but it also means that the cloud infrastructure can replicate your application’s resources in an unaffected region so that your data is safe and your application availability isn’t affected. Disaster recovery plans are commonly referred to as Business Continuity and Disaster Recovery (BCDR) plans, and most cloud providers have services that can help you develop and implement a plan that works for your particular needs.

Many organizations are turning to Azure to not only provide a higher level of fault tolerance than they could otherwise implement on‐premises, but to implement a disaster recovery environment in Azure for their on‐premises systems. Other organizations are turning to Microsoft 365 and Azure to host all of their IT services, with no on‐premises IT infrastructure at all, to attain a high level of flexibility, elasticity, fault tolerance, and disaster recovery.

Capital and Operational Expenditures

On-premises Model

In the on-premises model, a business purchases physical computer hardware to be used for its IT needs. Because these computers are physical assets that are intended to be used for more than one year, they are usually purchased as capital expenses.

There are several drawbacks to this model.

  • When a business purchases computer hardware, it will typically keep that hardware in service until the return on that investment is realized. In the fast-evolving environment of computers, this can mean that hardware is outdated long before it makes financial sense to replace it.
  • Another major drawback to this method is that it is not an agile approach. It might take months to requisition and configure new hardware, and in the era of modern IT, that approach often makes no sense.

Note: Businesses need money for day-to-day operations, and when you have large amounts of money tied up in capital expenses, it can dramatically reduce the amount of money you can put toward your daily operations.

Cloud Model

When you move to the cloud, you no longer rely on your on-premises computing hardware. Instead, you essentially rent hardware from the cloud provider. Because you aren’t purchasing physical assets, you move your IT costs from capital expenses to operating expenses or day-to-day expenses for your business. Unlike capital expenses, operating expenses are tracked on a month-by-month basis, so it’s much easier to adjust them based on need.

Describe the differences between categories of cloud services

One of the benefits of moving to the cloud is that you offload some of the responsibility of your infrastructure to the cloud provider. Moving to the cloud, however, is not an all-or-nothing kind of thing. When you’re evaluating your use of the cloud, you need to balance your need for controlling resources against the convenience of allowing the cloud provider to handle things for you.

Each type of service comes with a different level of responsibility on your part, and this concept is often referred to as the shared responsibility model.

  • The bottom of the cloud pyramid represents the greatest amount of control over your resources, but it also represents the greatest amount of responsibility on your part.
  • The top of the pyramid represents the least amount of control, but it also represents the least amount of responsibility on your part.

Infrastructure-as-a-Service (IaaS)

Infrastructure refers to the hardware that your application uses, and IaaS refers to the virtualized infrastructure offered by a cloud provider. When you create an IaaS resource, the cloud provider allocates a VM for your use. In some cases, the cloud provider might do the basic operating system install for you. In other situations, you might need to install the operating system yourself. In either case, you are responsible for installing other necessary services and your application.

Because you control the operating system install and installation of other services, IaaS gives you plenty of control over your cloud resources. However, it also means that you are responsible for making sure your operating system is patched with security updates, and if something goes wrong in the operating system, you’re responsible for troubleshooting it. The cloud provider is only responsible for providing the VM. You do, however, benefit from the underlying infrastructure in the area of fault tolerance and disaster recovery that we discussed earlier.

Note: You will have remote access to your IaaS VMs so that you can interact with them just as if you were using them in your on-premises environment. When you move to PaaS and SaaS services, you typically lose that capability because the infrastructure is managed by the cloud provider.

Once you have an IaaS VM running in the cloud, you gain access to many services the cloud provider offers.

  • IaaS services allow you to control costs effectively because you only pay for them when you are using them. If you stop your IaaS VM, your billing stops for the resource.
  • Another popular use of IaaS is when you need one or more powerful VMs for a temporary period. For example, you might need to analyze a large amount of data for a project.
  • IaaS services benefit from scaling and elasticity. If you need more VMs, you can scale out to accommodate that and then scale in when those resources are no longer needed. If you need more CPU power, more memory, or more disk space, you can quickly scale up to gain those benefits and then scale down when they’re no longer needed.

In a nutshell, IaaS services are a great choice if you want to let someone else manage the hardware infrastructure (which can include both the computers and the network) related to your application, but you want to maintain control of what’s installed in the operating system.

Platform-as-a-Service (PaaS)

Conceptually, platform‐as‐a‐service (PaaS) is a combination of IaaS and SaaS in that it incorporates both infrastructure and software. Microsoft provides and manages the virtualized infrastructure (virtual machines, networking, and so forth) and provides additional software and resources to facilitate application development. So, think of PaaS as providing the capability to quickly develop and deploy web‐based applications without the need to manage the underlying servers, operating systems, and other resources that are part of the developed application.

A PaaS service also benefits from all of the other enhancements offered by the cloud; you get fault tolerance, elasticity, easy and quick scaling, backup and disaster recovery features, and more.

As you can see, there are real benefits to allowing the cloud provider to control what’s installed on the VMs running your application, but there can also be drawbacks. For example, the cloud provider controls when patches and updates are applied to both the operating system and to other components installed on the VMs. You’ll usually be given advance notice of major changes so that you can test your application on-premises first and avoid any downtime, but you do lose the flexibility and control of deciding when to update the VM.

For example, assume that your organization needs to develop and deploy a web application that uses a database to store data used by the application, and you want to use ASP.NET for the application. You could deploy some virtual machines, a SQL server to host the database (or use Azure SQL Database to host it), and other required software to provide for ASP.NET integration, and then develop and deploy the web application to those servers. However, you want to streamline your development effort and don’t want to have to manage the virtual machines or other resources. Instead, you want to focus specifically on the web application.

One more interesting thing is the option to publish either your code or a Docker image. Docker is a technology that makes it easy to package your application and the components that it requires into an image that you can then deploy and run on another computer in another environment, as long as that computer has Docker installed on it. In Azure App Service, you don’t have to worry about Docker installation or configuration. It’s automatically included on all App Service VMs as part of Microsoft’s PaaS offering, and it’s completely managed and maintained by Microsoft.

In a PaaS offering, cloud providers offer numerous application frameworks such as PHP, Node.js, ASP.NET, .NET Core, Java, Python, and more. The cloud provider usually provides multiple versions of each framework, so you can choose a version that you know is compatible with your application. The cloud provider will also ensure that common components necessary for data connectivity from your application to other systems are installed and configured. That usually means that your application code works without you having to do any kind of complex configuration. In fact, this is one of the main benefits of using a PaaS service; you can often move your application from on-premises to a cloud environment by simply deploying it to the cloud. This concept is often referred to as lift-and-shift.

Software-as-a-Service (SaaS)

SaaS is a licensing model in which an organization licenses software on a subscription basis from a provider that centrally manages and distributes the software. A perfect example of SaaS is Microsoft 365, where Microsoft provides Office applications (Word, Excel, and others) on a subscription basis.

With an SaaS subscription, the user often uses the software through a web interface. With a Microsoft 365 subscription, for example, the user can use Word, Excel, and the other Office applications through a web browser. A Microsoft 365 subscription gives the user the capability to install the applications on a device and use it locally as well.

SaaS offers a number of benefits:

  • Deployment and manageability: You do not need to deploy or manage software with an SaaS offering.
  • Updates: With most perpetual licensing models, you must purchase upgrade licenses or even another full license when you want to move to the next version of an application. With an SaaS offering, the provider generally updates the application periodically as a part of the service offering, giving your users access to new features as part of their existing subscription.

Describe the differences between types of cloud computing

In the simplest sense, the cloud usually represents infrastructure and applications that are accessible over the Internet.

The traditional cloud model is referred to as the public cloud. In addition to a public cloud model, businesses can also use a private cloud where the infrastructure is dedicated to them. Finally, a hybrid cloud model represents a mixture of public and private cloud models.

You might see references to a fourth cloud model called the community cloud. A community cloud is similar to a private cloud, but instead of resources being dedicated to a single company, they are dedicated to a community of companies or individuals who manage it together.

Public Cloud

In a public cloud model, you use shared infrastructure that is accessible on a public network. The network, storage, and VMs that your application uses are provided by a cloud provider and shared between all consumers of the public cloud. Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform are examples of public clouds.

The public cloud model is beneficial in that it makes it easy and fast to move to the cloud. Because the cloud provider already has the infrastructure in place and configured for you, all you have to do is decide on the type of cloud service you want and you’re off and running.

Another advantage to the public cloud model is that you can control costs more efficiently because you only pay for the resources you are using.

Private Cloud

The private cloud model provides many of the attractive benefits of the cloud (things like easy scaling and elasticity) in a private environment that is dedicated to a single company. A private cloud can be hosted in an on-premises environment, but it can also be hosted on a third-party hosting provider.

Two of the main reasons why companies choose a private cloud are privacy and regulatory concerns.

  • Unlike the public cloud, private clouds operate on a private network that is only accessible by a single organization. Businesses like banks and medical providers might have regulations in place that require certain data be inaccessible from the Internet, and in those situations, a private cloud might be a good choice.

Note: You’ll often hear that a private cloud consists of infrastructure that is owned by an individual company, but that’s not actually always true. If a company runs a private cloud on-premises, they will usually own the hardware and infrastructure used for the private cloud, but it’s also possible to host a private cloud in a third-party data center. In that situation, the infrastructure is owned by the hosting provider, but it’s still completely dedicated to the single company paying for the private cloud. The bottom line is that the difference between a public and a private cloud is the privacy of infrastructure and data. It doesn’t really matter who owns the infrastructure.

There are some disadvantages to a private cloud.

  • If you are hosting your private cloud on-premises, you will likely spend as much on IT as you would in a non-cloud environment. You will have to pay for hardware and virtualized systems for your cloud, and you’ll need IT staff who are capable of managing the software and infrastructure for your cloud.
  • Avoiding IT costs is one of the primary reasons that companies choose to use a third-party hosting provider for private clouds. but that choice also has some drawbacks. For example, once you offload management of your private cloud to a third party, you lose control of important considerations such as the security of your data.

Hybrid Cloud

As you might expect, hybrid clouds are a mixture of public and private clouds. In a hybrid cloud environment, you might have an application that is running within the public cloud, yet it accesses data that is securely stored on-premises. You might also have a scenario where your application and most of its resources are located on a private cloud, but you want to use services or infrastructure that are located in a public cloud. Indeed, the various scenarios that are suitable for a hybrid model are almost endless.

Hybrid cloud models are often a company’s first foray into the cloud. Many companies have legacy on-premises systems that are expensive to move to the cloud, yet they might want to take advantage of some of the benefits of the cloud. In such a scenario, a company might move only part of a particular system to the cloud, leaving the legacy system on-premises until a later time.

Important: Remember, a private cloud is a cloud dedicated to a single organization. It doesn’t have to be located on-premises. It can also be hosted at a third-party data center, so a hybrid cloud model might be the combination of a third-party data center and a public cloud.

Thought Experiment

The development team has been updating the application frequently, but due to a lack of knowledge in deployment methods, they only have the option of directly copying files, and this is causing problems with tracking changes that are being made. At the same time, the development team has no data to show whether the application is running correctly.

The problem became critical two days ago when a deadline was approaching for updating medical records. The application experienced way more usage than normal, and the system was quickly overloaded and became unresponsive. The IT team determined the problem was the server running low on resources, but it took them two hours to build a second server to handle the load.

Your manager has come to you asking for a solution that addresses all of these issues. Whatever solution you offer must take into account that the medical data in this application is covered under HIPAA, and your manager wants CMG to retain all control of the data. Your manager also wants to carefully control costs.

What type of cloud service would you recommend?

  • A PaaS service makes the most sense in this situation. An IaaS environment would require your IT department to manage the VMs, and that would not meet your requirements. A SaaS service provides the software to you, and in this case, you need to run your company’s custom application in the cloud.

How would you justify your choice related to the problems being encountered by the IT team?

  • The IT department is short on resources and is challenged in keeping the application available. In a PaaS service, the management of the VMs running the application is offloaded to the cloud provider. The cloud provider also offers an SLA so that your application is always available. The IT team will also benefit from easy scaling offered in a cloud environment, and instead of two hours, they can add more servers almost instantly.

How would you justify your choice related to the problems being encountered by the development team?

  • In a PaaS service, the cloud provider offers flexible deployment options that make it easy to deploy an application using the method you prefer. They also provide logging so that the development team can track changes made to the application. Diagnostic features in a PaaS service (such as Azure’s Application Insights) provide detailed data on how an application is performing and can alert you to code problems in an application.

What other benefits will please your manager if your advice is followed?

  • Your manager wants to lower costs and moving to the cloud should meet that need. Your IT department has already built a second server, so that when additional need is required, you can meet it. However, the increased usage was temporary. Even so, it was related to a deadline for filing records, and the next time that deadline occurs, you’ll need that second server. By moving to the cloud, you benefit from easy scaling and elasticity so that you can scale out when you need the second server to handle load, and then you can easily scale back in to reduce your costs.

How can you meet the requirements related to the medical records and the need to control them?

  • By adopting a hybrid cloud model, you can keep your sensitive medical data on-premises, while benefiting from the application itself running in the cloud.

Summary

  • Cloud providers offer service-level agreements (SLAs) that guarantee a certain level of availability, but only for those systems that are controlled by them.
  • Moving to the cloud can help avoid downtime caused by network outages, system outages, and power outages. It can also help you if you need to diagnose problems with an application or problems with an external system that your application uses.
  • You can scale up (or vertically) when you want to add additional CPUs or more memory using a more powerful VM.
  • You can scale out (or horizontally) if you want to add more VMs to handle additional load.
  • Cloud providers give you ways to automatically scale based on usage patterns, resource utilization, and times of day. This is referred to as elasticity.
  • Cloud providers monitor the health of the infrastructure. When a VM becomes unhealthy, the cloud provider can automatically move you to a healthy VM without you having to do anything. This is called fault tolerance.
  • Cloud providers also operate across multiple data centers that are in different regions of the world. If a natural disaster (or any other disaster) happens in one region, you can switch over to another region, assuming you have replicated your environment in multiple regions. This kind of planning is called Business Continuity and Disaster Recovery planning, and cloud providers often have features in place to make implementing a plan easy. This is often referred to as disaster recovery.
  • Because you are using infrastructure owned by the cloud provider, moving to the cloud reduces your capital expenses, the major expenses that are incurred for infrastructure and other major purchases. Cloud providers take advantage of the principle of economies of scale by purchasing large amounts of infrastructure to be used by cloud consumers.
  • Day-to-day expenses (operational expenses) can also be reduced in the cloud because you pay only for those resources you are using at any particular time. This consumption-based model is a key benefit of the cloud.
  • The cloud pyramid outlines the idea that increased control over your resources means a larger responsibility on your part. Decreased control results in more responsibility on the cloud provider’s part. This concept is called the shared responsibility model.
  • Infrastructure-as-a-Service (IaaS) offers infrastructure running in the cloud, but you have to maintain the operating system and what’s installed on that infrastructure. IaaS services offer you the most control in the cloud, but they also carry the largest management burden.
  • Platform-as-a-Service (PaaS) offloads the management of the infrastructure, and it also offloads the operating system and components installed on the VMs to the cloud provider. You are responsible for your application. PaaS services also offer many additional features that make it easy to add functionality to an application without having to write complex code. Development teams also have a wide variety of deployment methods available, and the cloud provider often automates much of that process.
  • Software-as-a-Service (SaaS) provides a hosted application in the cloud that is most commonly accessed using a web browser. In a SaaS service, the cloud provider manages everything for you. You are essentially renting the use of the software from the cloud provider. A big benefit of SaaS is that it makes applications easily accessible by employees in the field on any device.
  • The public cloud model is sometimes referred to as a multitenant environment. Multiple companies and users share the same infrastructure. VMs and other infrastructure are allocated to users as they need them, and when they no longer need them, they are returned to the pool to be used by other users. The network is available publicly over the Internet, but you do have the ability to put security methods in place to control access to your resources.
  • The private cloud model is sometimes referred to as a single-tenant environment. All infrastructure is private to an individual or a company, and the network is only available within the private cloud itself. It is not exposed to the Internet. In many cases, the infrastructure used in a private cloud is owned by the company, but not always. It’s possible to host a private cloud in a third-party data center.
  • A hybrid cloud model is a mixture of the public and private cloud models. Hybrid clouds are often used when a company needs to use on-premises resources in a cloud application.

Leave a Reply

Related Post

Azure SolutionsAzure Solutions

Core Solutions Available in Azure Serverless Computing Azure Functions Logic Apps AI Azure Machine Learning Cognitive Services Azure Bot Service IOT Azure IoT Hub IoT Central Azure Sphere Big Data