Cloud Computing II

8 minute read

Updated:

A Layered Cloud Architecture

  • image
  • Application - The cloud application running on a cloud – social computing, enterprise, scientific
  • This app is implemented thanks to cloud programming module – it is there and it provides environments and tools to build the application
    • HPC - MPI
    • Data analysis – programming models such as Hadoop or map reduce.
  • Once ive got a programming model – we go to middleware
    • Bringing a large number of resources to the user and dealing with one single coherent model
    • Μy app needs to be executed hence there will be execution management, monitoring and etc
  • you expect the app to run and have some sort of service attached to it
  • Virtualisation layer – very important layer 개강조 ㅋ – cloud data centers use and rely heavily on virtualisation - hence host to host
    • number of virtual machines
      • The layer would keep an eye on virtual machines that are running on the physical server – need an engine that know what engines are running here and there. → management is part of the layer
  • Steps of how to deploy an application using an architecture like this one

Taxonomy of Cloud Models

  • Nowadays we look at how services are exposed in the cloud – google, IBM, etc- you could distinguish 3 basic models
  • [17 pdf 5]
  • Layer 1 – Software as a Service
    • On the cloud, there’s a software out there and through interface you can access it. So it’s very much like running a software packet remotely. E.g. google apps
  • Layer 2 – Platform as a Service
    • Interesting bc it is possible to bring ur own application and deploy it on the cloud – therefore you need a platform to facilitate the deployment.
      • MS azure – to help you provide the platform that you need
  • Layer 3 – Infrastructure as a Service
    • you have access to infrastructure – aka access to servers which is dynamically managed and have access to service as a root user. And can run own business on Infra as service
    • Resource that you access is likely to be virtualized and you pay as you use
      • E.g. EC2 – amazon. Virtualised resource manager
  • * as service
    • Star could be anything – storage, network, db, hardware, etc

Cloud Architecture

  • image
  1. Hypervisor
    • Two datacentres site A and B, and with these two sides Id like to have virtual machines running on these physical servers – virtualization is key and you can run number of VMs in one single server
    • To do that, you rely on this hypervisor which creates instances of virtual machines on a physical host.
    • Hence maximizing the effective use of computing resources → key in this virtualisation layer
  2. Virtual infrastructure manager
    • Once uve created VMs, you realize you have thousands of VM running on thousands of servers.
    • Therefore you need management of VMs – virtual infrastructure manager.
  3. Virtual machine cluster
    • Its going up towards the application, and you can group some VMs together so that they could run on a cluster – hence you are moving towards a platform as a service
  4. Distributed application
    • Application but could run on one or number of VMs - Emphasis on role of hypervisor and role of VIM and potentially grouping these VMs as clusters

System level: Architecture of a Server Cluster

  • Layers of the cloud architectures
  • Bottom up approach – hardware to application
  • Cloud datacentres tend to rely on racks of servers – it comes into a final number of 48 to 64 servers in a rack
  • If you have a cluster of servers in one rack, you end up with server racks.
  • Server racks – every rack can talk to the rack next to it, through a cluster of switch with very high bandwidth.
    • 10 gigabit/ sec in a server rack
    • Expect internet to do an important job – still LAN!
  • These having a rack and number of racks will allow you to have 100s of racks in one place – what’s interesting is google amazon etc, they don’t buy one server at once. They buy a container of racks!!
    • Buy the container of racks and scalability is key and is IMP

Virtual Machine Managers

  • Which hypervisor do we use to partition the server?
    • VMware
    • ESXi – commercial VMM manager which provides full
    • Xen – amazon has been using it but now they use KVM
  • → they are hypervisors and support virtualisation as you want it

Virtual Infrastructure Manager

  • image
  • VIM – very very imp coz it’s a brain that decides where to instantiate the VM
    • Where does it go?? Which server would the VM be allocated → scheduling question
    • Q: VIM algorithms – where do you allocate VM on which server???
      • A - Load balancing and the number of virtual machines in the hypervisor
      • Energy aware scheduling algorithms – ensuring that the energy consumption is minimum
      • Network aware scheduling – a problem we will always be facing is :
        • Always to do with app and data that ur app will use. In DS, the data can be quite large (like vid) – if its likely to process large → then should I move the app or data closer?
        • Transfer the computing to data – so it always will think to move application to move closer to data
    • Can provision new cluster node - need IP and MAC address.
    • Provide uniform view of the resource pool
    • Life cycle management and monitoring of VM – can migrate VM from this server to another depending on the network
    • The VIM integrates image, network and virtualisation.

Virtual Infrastructure Manager – Open Nebula

  • image
  • Interesting architecture – its layered and it looks at tools, core and drivers
  • In Core - It doesn’t care which hypervisor you wanna work with – you will have the management of VMs through VIM, management of server through host manager, and network through virtual network manager
  • Request manager is through XML-RPC – communication of processors through XML
  • Flexible design as you can add modules.
  • One of the succession of European money funding. Reservoir – it reached a large user base and more development
  • VN manage- virtual network

Virtual Infrastructure Manager – Openstack

  • The Linux of cloud computing in 2010 – NASA and Rackspace were 2 big players
  • If they need cloud infrastructure you can download and to run a cloud → ubiquitous open source cloud computing platform
  • Management layer that adds automation and control of servers
  • 7 core projects – projects don’t use XML-RPC, but they use queue !! – communication lecture [4 pdf 23] –activeMQ
  • In federation system, you have actors and they trust each other and work together. If you have a cloud1 cloud 2, why can’t you build a federation cloud of heterogenous public/ private clouds for better resource allocation and dispersion of resources

## Virtual Machines versus Containers

  • Screenshot 2020-02-25 at 9 47 34 pm
  • He has mentioned VM – there’s more than that. If we use a VM, it may bring a guest operating system. The host OS can be Linux but you could create 3 VM with each own OS.
  • Recently, there’s been a concept of containers – you don’t need guest OS
    • you rely on core OS and create instances of applications
    • They run in completely isolated env
    • Containers are light weight!! And don’t rely host OS → Offers greater efficiency and performance

The case of containers

  • Concept of microservices – inside the container is a single executable microservice, which provides a simple function from a exe. Applications are made up of microservices
  • These microservices can run in many containers → need to be linked with message queuing or load balancing
  • Since microservices run on container, so you need a container engine.
  • Eg
    • Docker
    • Singularity
    • Robust application that needs fault tolerance. To ensure the container is restarted on time
  • Uni makes use of extensive containers and prefers singularity

## Cloud service life cycle

  • How we bring the construction of an application from constructing it to deploying and to run it.
  • Steps to do that!
  1. Cloud application
  2. Programming model/service construction
    • Programming model – to enable the development of an app. could be MPI, Hadoop
    • Application packager - need to create service manifest. so that you explicitly say that these are the resources that my app needs, but if they change, no need to recompile.
    • VM image constructor – generates images - can be google or domain and is a key characteristic of VM
  3. Service deployment
    • Application manager – to deploy service on a cloud infrastructure. Know where it runs
    • VM Contextualizer – contextualisation means automatically generate dependencies of applications. E.g. libraries need to be found on the fly. Dependencies need to be embedded on the VM image
    • Application monitor – to monitor the service at operation time
  4. Service operation
    • VM manager - Need to manage and allocate VMs to physical nodes
    • VM infrastructure manager to manage VM – open nebula and openstack

    • Infrastructure monitor – to monitor resources

Private, public and hybrid clouds

  • Public cloud – the cloud provider. E.g. MS azure, aws, etc. you can just go and use the resources you need
  • Hybrid cloud – when you have own resources, intranet, and private cloud. But then you might not have everything, and you reach out and combine resources
    • Multiple clouds working together, including public and private clouds
    • Can be delivered by a federated cloud provider that combines its own resources with those of other providers
    • Broker can also deliver a hybrid cloud
  • Private cloud – private internal network to selected users only. More private and secure

Use Cases

  • image
  • End user to Cloud
    • Applications running on the cloud and accessed by end users
  • Enterprise to cloud
    • An enterprise is using the cloud for its internal processes such as for db and storage services
  • Enterprise to cloud to end-user
    • An enterprise is using the cloud to deliver data and services to the end user
  • Enterprise to cloud to enterprise
    • Two enterprises use the same cloud.
    • The focus here is the hosing resources in the clouds so that apps from diff businesses can interoperate
    • E.g. a supply chain
    • → look image.

Summary

  • Several Computing Platforms/Paradigms are promising to deliver “Computing Utilities” vision
    • Cloud Computing is promising to turn vision into reality
    • Clouds built on: SOAs, Virtualisation, Web technologies
    • Many exciting business and consumer applications enabled.
  • The World Wide Web has become one vast, programmable machine.

Leave a comment