September 26, 2021

Cloud Concepts

4 benefits of cloud computing

  1. High Availability (HA)
  2. Scalability, Elasticity, & Agility
  3. Fault Tolerance, and Disaster Recovery (DR)
  4. Economic benefits of the cloud

1 of 4 | High Availability (HA)

Most common loses of availability are:

  • Network outage
  • Application failure
  • Server outage
  • Power outage
  • External System outage

Cloud providers offer Service Level Agreements (SLA)

Network Outage

The cloud providers spend a lot of money in network infrastructure, so by moving to it, you get the benefit of added reliability.

Application Failure

Azure offers a service called Application Insights to give you performance and reliability information for your applications.

System Outage

A system outage occurs when shit happens to a VM or inside VM

Power Outage

Cloud providers invest in battery backups and other stuff like redundant power grid connections. If a geographic power outage happens, providers have the ability to run your application from a different region.

External System Outage

If your Azure cloud resources rely on resources external to Azure like from AWS, Google, or your on-prem systems, and those systems go down. It’s not gonna be happy days. So by keeping all you eggs in the Azure basket, you gain the benefit of t-shooting, alerting, and diagnostic tools that Azure provides.

2 of 4 | Scalability, Elasticity, and Agility (SEA)

Scaling is adding or removing resources or additional horsepower for your application. You can scale in 2 different directions:

  1. Horizontal (aka Scaling OUT) is adding more identical VMs
  2. Vertical (Scaling UP) is cranking up the power on the VMs that you have.

Elasticity is scaling, but doing it automatically (aka auto-scaling). Auto-scaling can be triggered based on:

  • usage patterns
  • resource utilization
  • time of day
  • other shit

Agility is the speed at which auto-scaling happens. Spinning up extra VMs is seconds. More info @ https://docs.microsoft.com/en-us/azure/architecture/best-practices/auto-scaling.

3 of 4 | Fault Tolerance (FT) & Disaster Recovery (DR)

Cloud providers implement systems that monitor health of their resources and take action (most of the time, it’s triggered automatically) when a resource is deemed unhealthy or at fault. Thus, it is considered to be tolerant to faults (aka Fault Tolerant).

Disaster Recovery goes beyond having good backups being Fault Tolerant. The cloud infrastructure can replicate the application and resources to into an healthy region so the application remains available or quickly returns in worse scenarios.

Business Continuity takes people and manual processes into account in the worst possible scenarios. Business Continuity and Disaster Recovery (BCDR) Plans are a common requirement for compliance. Most cloud providers have services to help you with the BCDR plan.

4 of 4 | Economic Benefits of the Cloud

Capital Expense (aka CapEx) vs Operational Expense (aka OpEx).

On-Prem Model

Some drawbacks to the On-Prem model are:

  • The hardware that is purchased with CapEx money must be kept in service until the return on that investment is realized, even though by then the hardware is old and slow as shit.
  • The time span between the idea and in production can be months:
    • The need for new hardware is identified
    • Management approval
    • Requisition
    • Receive the order
    • Unbox, rack and stack
    • Install OS
    • Install patches
    • Install and configure the applications
    • Maintenance window for Go Live!
  • You can’t temporarily buy on-prem servers for big events such as the Kentucky Derby, then return them the following week.
  • You have to pay full price for the gear, regardless if it’s sitting on a shelf.

Cloud Model

Some benefits of the cloud model are:

  • You can effectively rent hardware from the cloud provider.
  • It’s OpEx not CapEx
  • Reduced price for high powered gear because the cloud provider is buying in bulk at a reduced price. Arguably, they could past the savings on to you (aka principle of economy of scale)
  • Consumption-based model, you only pay for what you use.

Differences between IaaS, PaaS, & SaaS

Shared Responsibility Model

Infrastructure-as-a-Service (IaaS)

IaaS refers to the hardware that your shit runs on. The cloud provider can allocate Virtual Machines (so times with the operating system already on it) to you. You are responsible for installing any applications that you need. Then you become responsible for updating the OS and applications. But this provides the most control, since you can install and configure whatever you need.

Once the VM is running, you have access to other benefits such and Azure Security Center, backups, Azure Log Analytics to help you t-shoot bad things.

You can stop the VM at night when you aren’t using it to save money. For example you can spin up a buncha shit for a lab to test an exploit you are writing or study for an exam.

Scaling and elasticity come into play with IaaS.

Platform-as-a-Service (PaaS)

PaaS offerings from cloud providers include services and application frameworks for you to use. One of the main benefits is called Lift-and-Shift, where you just move your application from On-Prem to the cloud. Another is allowing users to login using their oauth accounts from Microsoft, Facebook, or Google accounts.

Azure PaaS Services

  • Azure CDN
  • Azure Cosmos DB
  • Azure SQL Database
  • Azure Database for MySQL
  • Azure Storage
  • Azure Synapse Analytics

PaaS Application Frameworks

  • ASP.Net
  • .Net Core
  • Java
  • Node.js
  • PHP
  • Python
  • etc.

Software-as-a-Service (SaaS)

These are fully built applications that you can use. You don’t have any control of the features and functionality, but you also don’t have to maintain them either. Examples include:

  • Microsoft 365
  • Xbox Live
  • OneDrive
  • gmail
  • Dropbox

Cloud Models

There are 3 basic types of clouds:

  • Public Cloud
  • Private Cloud
  • and a mixture of the two called, Hybrid Cloud

The Public Cloud

This is a multi-tenant environment, meaning that you are sharing the cloud provider hardware with others. A few drawbacks:

  • You may not be allowed to use the public cloud if you have tight compliance and regulatory issues regarding security such as the 3-letter government agencies and companies under government contract obligations.
  • Locked into specific configurations that the cloud provider is offering. An common example is the levels that they offer for things such as horsepower per VM. The lowest one called Bronze has 1 CPU with a single core. Silver is 4 CPUs with 8 cores each. What if you only need something between Bronze and Silver? You have to pay for Silver and waste money.

The Private Cloud

This is a single-tenant environment, because the resources are dedicated to a single organization. The cloud can be hosted On-Prem or at a 3rd-party hosting provider. Even though the infrastructure and data could reside at a 3rd-party datacenter, privacy is still locked down to a single company.

Hybrid Cloud

Simply a mixture of Public and Private clouds. In order to make this easier, Microsoft provides Azure Stack. Azure Stack allows you to run Azure services On-Prem, making it easier to transfer them to the cloud.