Cloud Computing II
Updated:
- A Layered Cloud Architecture
- Taxonomy of Cloud Models
- Cloud Architecture
- Virtual Infrastructure Manager
- Virtual Machines versus Containers
- Cloud service life cycle
- Private, public and hybrid clouds
- Summary
A Layered Cloud Architecture
- 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
- number of virtual machines
- 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
- 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.
- 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
- 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
- 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.
- 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
- 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
- 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
- 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
- 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!
- Cloud application
- 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
- 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
- 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
- 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