Cloud - barialim/architecture GitHub Wiki

What is Cloud?

Years ago, all component of a system sat within a room or two, often within the company's headquarters in a room called data center.

Now some of those servers may sit off site. When they do, they're considered part of a cloud.

The main type of cloud Computing or models:

cloud-models

IaaS

Is an instant computing infrastructure, provisioned (created), and managed over the internet by a cloud provider such as AWS, Azure etc.

Benefits of IaaS

  • Eliminates capital expense and reduces ongoing cost - It helps you avoid having to purchase your own physical hardware (servers) and other data center infrastructure upfront.
  • Speed time to market - As soon as you’ve decided to launch a new product or initiative, the necessary computing infrastructure can be ready in minutes or hours, rather than the days or weeks (and sometimes months) it could take to set up internally.
  • Instant scalability - IaaS enables you to quickly scale up resources to accommodate spikes in demand for your application – during the holidays, for example – then scale resources back down again when activity decreases to save money.
  • Focus on your core business - IaaS frees up your team to focus on your organisation’s core business rather than on IT infrastructure.

PaaS

Benefits of Cloud

Here are some of the common drivers for moving applications and workloads to the cloud:

  1. Saving in operating costs — the cloud reduces the need for hardware support and in-house IT management.
  2. Faster time to market — cloud platforms make development and deployment cycles easier and more automated, helping you get new features to market faster.
  3. Scalability and utilization — on-premise systems were traditionally built for peak loads, and most of the time were utilizing less than 20% of their capacity. In the cloud, you can consume the hardware resources you actually need in each period.
  4. Reducing upfront costs for new projects — the cloud is priced in a pay-as-you-go model, so there is no need for upfront investment in hardware and license costs.
  5. Application modernization — the cloud can help you modernize development and operations processes, become more agile and efficient and provide more value to customers.
  6. Offers High Availability — most cloud providers guarantee an uptime of 99.95%. In real-time hours, that means you can expect about 4.5 hours of downtime over the course of an entire year.
  7. Better Redundancy — services provided through cloud offers multiple redundancies (both zonal or cross-region) to maintain data access if one data center is taken down due to maintenance, you're still good as you can access alternative data center.

ℹ️ Info: see Azure Migration to find more on migration stages, strategies and checklist.

Drawbacks of Cloud

Here are some of the common drivers for why you should avoid moving applications and workloads to the cloud:

  1. Still self managed to make it effective - although you'll be reducing your capital expenses for IT hardware and maintenance locally, you're still going to need someone to manage your data effectively. For example, Microsoft Azure does not help you manage your cloud-based data center.
  2. Putting all your eggs into one basket - single cloud provider means single point of failure. Although working with one vendor does increase convenience, it also increases your risk.
  3. Risk Data Confidentiality - There is always a risk that user data can be accessed by other people.
  4. The level of security - Secrecy and security are among the most doubtful things in cloud computing. By using a cloud computing system means we are fully entrusted with the security and confidentiality of data to companies that provide cloud computing servers. When you experience a problem, you cannot sue the server for errors in the data. When you experience a problem, you cannot sue the server for errors in the data.
  5. Vulnerable in the event of an attack - There are lots of arguments against cloud computing one of which is computing because the Cloud Computing work system is online, each component that is on Cloud Computing can be exposed to a wide range, this is a wide open opportunity for attacks on data or activities stored on the server. When an attack is carried out by hackers, the problems that occur are data security, and data privacy.

Why is Cloud Secure

  • Cloud providers operate cloud infrastructure as their main business. It is in their best interest to ensure the highest level of security, data protection, integrity and availability.

  • Cloud providers patch vulnerabilities and deploy fixes and upgrades immediately as they become available. No potential delay as previously resulting from internal release procedures.

  • Cloud providers are regularly audited and certified by external auditors on the compliance against industry standard good practices, including detailed information security and cloud data protection controls.

  • Complete segregation of duties: the cloud provider is responsible and only has the capabilities to operate and maintain the base infrastructure and platform services. Organization concentrates on developing, maintaining and operating applications and data. With this, UBS focus is on protecting what is most important: our data.

  • All Organization data in the cloud is technically protected from being read in clear-text by Microsoft or any other third party, at any point in time (i.e. at rest, in transit and while in use). Application owners are accountable to ensure data encryption requirements are adhered to before they migrate applications to a control compliant environment. This particularly includes encryption in transit, and the implementation of UBS controlled encryption at rest, depending on the data classification of the application.

Private Cloud

Public Cloud

Why is Private Cloud not good?

Why should org consider moving to Public Cloud?

See Benefits of Cloud

Single Cloud Model

azure-single-cloud

Multi-cloud Model

"Multi-cloud" means multiple public clouds. A company that uses a multi-cloud deployment incorporates multiple public clouds from more than one cloud provider. Instead of a business using one vendor for cloud hosting, storage, and the full application stack, in a multi-cloud configuration they use several.

azure-multi-cloud

https://www.cloudflare.com/en-gb/learning/cloud/what-is-multicloud/ https://www.juniper.net/us/en/research-topics/what-is-multicloud.html

Hybrid Cloud Model

Hybrid cloud solution is when your application parts are running on both private (on-premise) and public cloud infrastructure.

Why would you consider Hybrid?

  • Reduce costs
  • Downtime
  • Security risk

hybrid cloud can be the perfect solution. You'll achieve all 3 goals with little hassle.

But What hybrid cloud architecture approach should you take?

Flexibility is key benefit of hybrid clouds. Companies can configure them in almost any manner, depending on their budget and goals.

Terminology

  • Azure Tenant: A Tenant, as it relates to Azure, refers to a single instance of Azure Active Directory, or, as it is often called “Azure AD”. Azure AD is a key piece of Microsoft’s cloud platform as it provides a single place to manage users, groups and the permissions they hold in relation to applications published in Azure AD.

    • As an application developer you can register your own applications in Azure AD for the purpose of allowing users access.
    • Azure AD Tenants can be associated with multiple Subscriptions (typically in larger organisations), but a Subscription can only ever be associated with a single Azure AD Tenant at any time. ⭐
  • Environment:

  • Regions and Geography: A Region is a grouping of data centres that together form a deployment location for workloads. Apart from geo-deployed services like Azure AD or Azure Traffic Manager you will always be asked what Region you wish to deploy a workload to.

    • Geography: A Geography, as it relates to Azure, can be used to describe a specific market – typically a country (Australia), though sometimes a geographic region (Asia, Europe). Normally within a Geography you will find two Regions which will be paired to provide customers with high availability options. For more
  • Virtualization: we use virtualization everyday when we access the cloud & cloud services.

    • Today computers have tons of processing power; super fast CPU speed, fast RAM that's inexpensive, and tons of storage capacity. But is that computing power being used efficiently? Unfortunately, the answer is NO! when the hardware and processing power is under-utilized, and the electricity is wasted.
    • Virtualization solve this problem of under-utilized resources, by creating a virtualization layer between the hardware components and the users.
    • This enables the creation of Virtual Machines, which are virtual computers that can run in-multiples on a single-set of hardware.
    • The virtualization layer creates virtual hardware components for the VM. As you can see that almost all VMs needs the same components/resources (CPU, RAM, NICs, Graphic card, Storage drive etc.). Virtualization takes those physically resources and turns them into virtual resources for the virtual machine.
    • Many VMs can be created on single host computer: VM1 running Windows, and VM2 running Linux Ubuntu Distribution virtualization architecture

    These VMs are on top of Virtualization Layer, which is being managed by VMWare Workstation.

    • Benefits
      • Increase efficiency and multi-tasking, because you can run multiple VMs on a single host to maximize host resources.
  • Stock Keeping Unit (SKU): is a product code use to search and identify stock on-hand within inventory lists, stock level, invoices or order forms. It's a term commonly used when talking about inventory management.

  • Azure Compute Units (ACU): is used to help with compute performance between different Azure series and size VMs e.g. a SKU A0 (extra small) having a value of ACU/CPU 50.

  • Scaling Up/Vertically vs Scaling Out/Horizontally scale-up-out

    • Scaling Vertically/Up: essentially means, increasing the size of instance (RAM, CPU etc.)
    • Scaling Horizontally/Out: essentially means, adding more instances.