Cloud Bond

CLOUD COMPUTING  –  what exactly is cloud computing

The first time i heard of this term i felt like its some thing relating to cloud seeding, managing aritificial rain with computing. But later i felt how bad i was at understanding the term.

Basically Cloud computing is a technology which provides you to manage and maintain your daily computing transactions accurately but in Cloud i.e., through Virtual Machines Technology. Yes, it means no physical infrastructure exists at your premises. Though my statement may be a not the exact definition, as in some cases we have  private cloud in which  Infrastructure is maintained @ your premises.

But for now, Cloud computing is a technology which allows you to create multiple instances virtually, set the memory, CPU cycles, install your desired software, set it as a web/file/database server. Cloud computing basically offers everything, end-to-end solutions for all your needs.

In Cloud computing the three common services we find are  IAAS, PAAS and SAAS.

IAAS stands for Infrastructure As A Service – which allows the users to create/reserver/use machines a.k.a instances in Cloud terminology. In Short, all the infrastructure required for running yours applications are maintained  by the Cloud Services Provider.

PAAS stands for Platform As A Service – which allows the users a platform to develop there applications without much hassle i.e, the Cloud provides you with different Platform i.e., (Java/.NET/PHP/Ruby Rails etc.,) to develop your desired application.

SAAS stands for Software As A Service – which allows the users to use the Softwares that are available as a Service in the Cloud.

AMAZON WEB SERVICES –  computing platform “in the cloud”

I have been working on Amazon Web services for a while on our project  General Sentiment. We use AWS services almost for everything, starting from Code repository to continuous integration + builds for production environments & launching the production environments. The various services offered by the AWS have made our work easier.  Let me give a short description on the various services we use for our project.

AWS  Beanstalk

Service that allows us to deploy our application as Environment( in cloud terminology) faster, reliable and Managed. We have moved our Beta, Staging & Live environments to Beanstalk, when AWS announced the Beanstalk (beta) in August 2011. Beanstalk is a awesome service to tell you guys frankly. It allows you to deploy Java/PHP/ Rails(with few tweaks) applications. You can set various parameters knows as configuration options to control you application, e.g. For Java webapplication we can set  JVM Heap/permgen size, GC(garbage collection) options, Emails alerts, no. of Machines(instances) for the Environment, and  a lot more. Also the most important feature in configuration options would be  CustomAMI i.e., Amazon Machine Image which allows us to customize our instance by allowing us to replace open JDK with sunJDK, install Memcached, change Timezone etc., and create a image of that and set it as default for the environment. This way every machine of that particular Environment will inherit all the settings that are set in the AMI & the configuration options. Doesn’t it sound kool. Lots more to describe about Beanstalk, as its a amazing service which completely reduces your Application deployment and maintenance time. Also it provides effective logs mechanism and monitoring tools to view the CPU utilization, Memory consumption etc., in the graphical representation. I’ll be writing more on Beanstalk services as i get used to it.

EC2

Elastic compute cloud allows you to create/launch new instances of  different type, different OS,  security groups, Multi-region or single region selection etc.,  Instances are classified as micro, small, medium, large & extra large based on the capacity i.e., CPU cores & Memory. Based on your requirements you can choose the appropriate instance.

  • A EC2 machine  when launched will be in Start state that is in running mode, if you want to shutdown the instance then we stop the instance, which will stop the instance and billing for that instance is halted until the instance is started again.  If a instance has to be removed completely then Terminate is the command to be issued.
  • A EC2 machine  disk can be either Instance Store Or EBS.  In short a instance store ec2 was the initial ec2 release type, and these instance cannot be stopped and then startedlater, it can only be terminated. These type instances are very hardly used these days. The preferred instance to be used is EBS backed EC2 instances, which can be stopped & started at any time and there disk size can be increased from 8Gb(initial size @ startup) to unlimited at any point of time.
  • An EC2 machine settings(software configuration) can be saved in the form of AMI(Amazon Machine Image) a template  to reuse for the instance. An AMI of instance doesnot include the data i.e., files & directories but just the software settings like  apache web services, Java JDK, Memcached etc.,
  • An EC2 volume data (directories & files) can be saved as backup for future use in the form of snapshot. If the volumes are corrupted then using the snapshot you can create a replica of the Instance volume and then replace the corrupted volume with the new volume.  Snapshots is an important service which allows you to backup your volume to save your precious data.
  • An EC2  machine @ startup is assigned a public ip, which is not permanent i.e.  it changes if we stop & start the instance. In order to provide a dedicated (Fixed) IP we use Elastic IP’s which allows you to assign provide a single IP no matter how many times it restarts or changes it states.
  • Every  EC2  machine is beyond the Amazon Firewall, therefore for every EC2 machine you can set your own security settings, i.e., the ports to enable/disabled both incoming & outgoing.

Will be writing more on EC2 instances as i get used to it.

AWS S3 (Simple Storage Service)

  • S3 allows you to store your huge volumes of data to S3 in the form of objects.
  • S3 allows you to store CDN files, reports,  media files etc.,
  • S3 provides a commandline API to put and get data.
  • S3 provides a Java SDK to fetch the data at the application level.

AWS Route53

A DNS service offered by Amazon AWS which helps you in managing your  Project’s  Aliases “A” records , MX records, CNames etc., within the Cloud. Your production environments, Your code base, Your monitoring tools, Your DB, Your DNS services  all with in the Cloud,  Doesn’t it sound kool!!!

AWS RDS

Relation Database Service, allows you to  configure you Application Database in a Relational Model. You can select Oracle DB or Mysql and then create instance and mange it via Php Myadmin.

If you application used non-Relational DB  then AWS offers  Dyanamo DB, which we’ll be discussing later.

There are many more services offered by AWS  like  SNS, CloudFront, Elastic cache, VPC, SQS, Dyanamo DB etc., which i will be posting shortly.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s