Benefits and Considerations of using Cloud Services (High availability…
Benefits and Considerations of using Cloud Services
. 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 may also call into other applications using a network.
By moving to the cloud you gain the benefit of heavily invested infrastructure and the additional reliability that comes with it.
If something within that infrastructure fails, the cloud provider diagnoses and fixes it, often before you realise there’s a problem.
An application failure is often the result of a software bug, but it can also be caused by application design.
Cloud providers can provide you with tools to diagnose failures more easily. E.g. Application Insights by Azure.
You can often test new versions of an application in a protected environment without impact to 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 and roll back the version if necessary.
A system outage occurs when the computer running a 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.
If your cloud provider maintains your VMs, 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 backup and other redundant systems in order to prevent availability problems caused by power outages.
In a situation where a large geographic area is impacted by a power outage, cloud providers offer you the ability to run your application from another region that isn’t impacted.
Problems with a reliant system
Your application may use systems that aren’t in the cloud or that are hosted by a different cloud provider. If those systems fail, you may lose availability.
Scalability, elasticity and agility
The best way to minimize cost is to use only the resources necessary for your purposes. The challenge is that resource needs can change often and quickly.
Depending on the usage pattern, you might want to add additional computing resources on certain days or during certain times.
There are two variations of scaling: horizonal 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 may determine that you need a more powerful CPU and more memory for your application.
You can scale automatically based on things like CPU usage and memory usage. The concept of automatically scaling is referred to as elasticity. In Azure, you can scale automatically by configuring Auto-Scale.
One of major benefits of the cloud is that it allows you to quickly scale. For example, if you are running a web application in Azure and you determine that you need two more VMs for your application, you can scale out to three VMs in seconds.
Fault tolerance and disaster recovery
Cloud providers implement systems that monitor the health of cloud resources and take action when a resource is determined to be unhealthy.
Cloud providers design their infrastructure to be fault tolerant. For example, if you have an application running on two VMs in Azure, Microsoft ensures that those two VMs are allocated within the infrastructure so that they are unlikely to be impacted by system failures.
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 impacted.
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 needs.
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.
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, that 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 may take months to requisition and configure new hardware, and in the era of modern IT, that approach often makes no sense.
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.
Because you aren’t purchasing physical assets, you move your IT costs from capital expenses to operating expenses, or day-today 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.
Cloud offer the ability to use only those computing resources you require at any time. This is typically referred to as a consumption-based model, and it’s often applied at many levels in cloud computing.
Economies of Scale
When you use cloud resources, you are using resources made available from a large pool of resources owned by the cloud provider. The cloud provider pays for these resources up-front, but because of the large scale of resources they purchase, the cost to the cloud provider is greatly reduced.
The reduction in cost that is realised when purchasing large numbers of a resource is referred to as the principle of economies of scale, and those savings are passed on to consumers of the cloud.