Thursday 22 May 2014

IaaS based Private Cloud Features Compatible with AWS Public Cloud - Part 3

Now, we will take look at most important part of Cloud Computing called Orchestration.


10. Orchestration

Before going technical terminology, let's see its simple meaning. In general, it is very rare that one would say I've never heard of word Orchestra. What does it mean? It's a group of instrumentalists, especially one combining string, woodwind, brass and percussion sections. 
What makes it important is their combination and coordination. Without it, neither there will be fine tuned music nor they can play any song.

Similar, in cloud computing, Orchestration is the component and service which helps to manage and scale all the components external and internal to the Cloud system so that they can co-ordinate and communicate with each other effectively ensuring smooth running of operations.

For me, that's all about what cloud components are ! I would go for table in brief which will compare the cloud components in context with AWS Public Cloud:


Cloud Services AWS Eucalyptus Openstack Cloudstack*
Identity & Access Management IAM CLC keystone CloudStack management server
Compute Internally NC Nova CloudStack agent
Object Storage S3 Walrus Swift --
Block Storage EBS SC Cinder --
Networking VPC, Direct Connect CC (works with other Components) Neutron,Nova --
Image Internally CLC Glance --
Database RDS, Dynamo DB, SimpleDB None Trove --
Billing/Logging CloudWatch CloudWatch Ceilometer CloudStack usage monitor
Load Balancing ELB ELB Neutron CloudStack management server
Autoscaling Autoscaling Autoscaling Heat CloudStack management server
Orchestration Internally CLC Heat CloudStack management server



























*This section is under construction. Suggestions are welcome !


References:
1. http://zenodo.org/record/7571/files/CERN_openlab_report_Michelino.pdf

IaaS based Private Cloud Features Competing/Compatible with AWS Public Cloud - Part 2

Here is the second part:


5. Database:
Raghav's business is expanding day by day and he finds it hard to get skilled DBA on such a short notice where customer demand is on-fire. He himself good at MySQL but developer oriented aronly. What could be the another alternative for scaling and managing data at enterprise level? Cloud computing provides web service which manages database product. It is used for operating various types of databases without manual intervention so that it will be easier to manage customer data along with above discussed services.


6. Billing and Logging
Govinda is a sysadmin who has setup cloud platform for his company. Despite everything goes as planned, he is still facing issues regarding troubleshooting from users. Boss is asking Govinda that why is he unable to launch more than one instance. Developers asking him why they're not able to launch higher configuration of instances. Govinda is thinking hard over this problem. The issue is with the with metrics gathering: Billing and Logging. Using this cloud based service, one who manages the cloud services will be able to see the resource usage. Based on budget and other constraints, he can setup rules and parameters for management of future instances. Now, Govinda can analyze and gather data for this week. Also, he can use policies and alarms so that other users can use only they need, not they want.

8. LB (Load Balancing):
Keshav is managing the servers which are under heavy traffic during the afternoon period of the day. If somehow it fails, it also affects on performance of Keshav to manage the infrastructure responsibly. One can't predict nor deny any chances of failures in infrastructures especially based on traffic and requests per second to web servers. What should he do now? Here, the LB comes into picture. This service is used whenever load on the system will increase beyond specific capacity, the another copy of the same machine will automatically start to handle that load without affecting the original server. It helps to :
  1. Reroutes traffic from failed to running instances.
  2. Restores traffic from running to restored instance (failed instance running again) and first line of defense in network 
Check for more details: Load Balancing in AWS


9. Auto Scaling:
Madhav is big data analyst at 123 Company. He always has to play with 1TB or more data in his daily life. What if suddenly one day, the load increases on the machine and he is not able to provide analytics? How to manage load automatically? In such cases, Autoscaling comes handy. It is designed to manage load on the machines in such a way that whenever such scenario will occur, there will new instances start running to handle the load and as soon as the load decreased, the instances will be automatically terminated.


I know your next question will be "hey, you are mixing Autoscaling & ELB, aren't you?" I will say no. From what I understand, the main difference is only comes with word SCALING. Here is how:

Difference:
1. Type of Scaling:

In ELB,
You can only route & reroute traffic from one instance to other instance checking its state of health. It does not deal with number [horizontal scale] of instance or size [vertical scale] of instance. Just add running instance, irrespective of its resources.

In Auto Scaling,
You can do the both scaling types; either one or both. 

2.  Modes
In simple words, Auto Scaling provides which resources should be used to manage the load while ELB provides how to handle the load in well-designed and engineered manner.

Here is link for next article:  Part 3


References:
  1. http://searchcloudapplications.techtarget.com/definition/cloud-orchestrator
  2. http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/WhatIsAutoScaling.html
  3. http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/SvcIntro.html
  4. http://stackoverflow.com/questions/8426266/aws-autoscaling-and-elastic-load-balancing

Wednesday 21 May 2014

IaaS based Private Cloud Features Competing/Compatible with AWS Public Cloud - Part 1

About this article series:

Welcome to tutorial series on Infrastructure as a Service (IaaS) Cloud Services with respect to Amazon Web Services (AWS). It'll help you to understand and map features of AWS cloud services with other IaaS based cloud platforms. I'd like to quote this line from 'The Matrix' movie: 

"You've to let it all go, Neo. Fear, doubt and disbelief!" (Ref: The Matrix:1999)


Cloud is like The Matrix; unless you enter you will not understand what it is.

Let's take a quick overview of most popular core components and at last, we'll see its codename in respective cloud platforms:

1. IAM (Identity and Access Management):
Imagine if an user has access rights of admin account and still maintaining their original role. Also what if total number of users are more than one million? It's a nightmare for any administrator. In case of cloud platforms, it's easily manageable through cloud services. Such a service exists in AWS to manage known as Identity and Access Management (IAM). It is the policy based service with which admin can give specific permissions to users so that they'll have restricted access to resources of their account and can't interfere with operations of others users or admin. For ex, user can see and run only his instances; not the other users accessing instances of same cloud platforms.

2. Compute (Computation Related Resources):

Rama has 1 GB RAM, 1 vCPU machine with size of 50 GB Total HDD. Now, if he wants to test Windows 8, he needs to buy new workstation compatible with Windows 8. On the other hand, using a cloud service, it is as simple as turning your system on. Here the power intromittent is Compute service. More powerful your machine in cloud, more faster and efficient your operations are. It provides you memory, CPU cores and size of Hard Disk you need for the tasks.

3. Storage (Object & Block):
Hari, is savvy Big data developer, who wants to store & retrieve his data from Cloud on frequent basis for his work. Which storage type should he use? There are two main services available: Object Storage and Block Storage. Object storage is helpful for storing and retrieving the storage data. The data is stored in the form of objects so that it can easily call over SOAP or REST API requests. The main advantage of this storage service is write once, read anywhere. He should use Block Storage when there is need of frequent update for large size data. In this case, data is stored as bytes/records as a bunch i.e. Block. The advantage of block storage is contents get updated at faster rate.

4. VPC (Networking):
Gopal wants to create his own network similar to that of a large organizational structure. It seems to be difficult at first but with help of cloud services, it is not. In cloud computing , networking service brings the power to create and architect your own networks. Along with it, you can also work with subnets, routers, firewalls, load balancers and many more. 

Monday 19 May 2014

Eucalyptus Architecture : From My Point of View

About this article

This article focuses on understanding the architecture of Eucalyptus private cloud platform, community edition from the author point of view.

Introduction

Eucalyptus is an AWS (Amazon Web Services) API compatible private cloud platform. Its architecture is quite simple yet effective. To understand it, let's see it in detail.

As per the official website of Eucalyptus, the architecture has categorized into three levels:
  1. User Level
  2. Cloud Level
  3. Cluster Level
  4. Node Level
The architecture has explained in great detail from technical point of view, so there is no point in reinventing the wheel. For me, I will place components and architecture as follows:
  • Controller Level
  • Storage Level
  • Node Level
The Controller level consists of Cloud Controller, Cluster Controller.
The Storage level consists of Walrus, Storage Controller.
The Node level consists Node Controller.

Note: VMWare Broker is not the part of this discussion as it is only available for Eucalyptus Enterprise edition.

In Controller level, you will see the controlling and management components:

1. Cloud Controller [CLC]: It is heart of Eucalyptus. It performs all REST and SOAP based communication with other Eucalyptus as well as external components.
In short, it is main authority without which nothing can be orchestrate between Eucalyptus Cloud Components.

2. Cluster Controller [CC]: It is one which manages networking operations. The instance management between NC and CLC get managed by CC.


In storage level, you will see the Storage related components:

3. Walrus [W] : Amazon Simple Storage Service (S3) based storage which is used to simply put data into it. No rigorous database operations are performed on it.
Simple, create,store and fetch data from Eucalyptus that's all what Walrus is !

4. Storage Controller [SC] : It is similar to EBS (Elastic Block Storage). What am I telling new? We will go in detail by breaking it:

Elastic =  One can be expandable
Block   =  Certain Amount of Storage (in GB,TB, PB & so on)
Storage = The same concept as explained above.

So, the SC is used to:
    • Create, delete volume as well as attach & detach to and from instance. 
    • Create Snapshots from Volume and reverse. 
In Node Level, it only deals with Compute Part:

5. Node Controller [NC] :  It is known to be compute part. Compute means it provides all things need to run a virtual machine like CPU Cores, Memory, Hard Disk. Same things that we require to run an Operating System under Hypervisors like VMWare, Virtualbox.

That's all about Eucalyptus Architecture !

So basics for Newbs in cloud as follows:


Instance: It is a short form of Virtual Machine Instance similar that we see while running operating system in Virtualbox or VMWare Workstation.

EC2 Instance: Instance which is for temporary purpose i.e.  testing only. On this instance, data will get vanished after its termination i.e. destruction. We can attach volume to this to make new images.[How? We will see later in detail.]

EBS-Based Instance: This instance itself generated the volume when it starts running. So, after shutdown volume state remains attached until we terminate it.
Benefit of this is we can attach extra volume to increase the storage.

Start: To boot up the instance

Stop: To shutdown the instance

Terminate : To destroy the instance along with its data.

Volume: Detachable Storage which we attach to instance same as that External USB Hard Disk or Pen drive which we attach to our computer.

Snapshot: Same as like we take in Virtualbox to save the state of running VM.