Cloud computing is a technology in which you can use the IT related capabilities (eg: servers, network, storage, database servers etc ) in a on demand basis, pay per use model. Lot of people mistake virtualization for cloud computing. Even without virtualization we can achieve cloud computing. Virtualization acts as backbone for cloud technology to use the physical resources in an efficient way. Now lets look at a example which explains “As A Service” concept of cloud computing , which you have been reading and hearing it from lot of people but don’t have a clue about it.
Learn: Cloud computing basics with Amazon Web Services
As a service:
Mike has a really good idea about a project . In-order to set up the servers for his project, it will cost him more 500 dollars.He needs the servers only for his project, so buying and setting up the servers for his 3 months project is very expensive. At the time his friend joe told him about the cloud service provider Amazon, where he can set up servers in less than 5 minutes and he just have to pay for the servers in hourly basis, and per hour the cost is very less, like 0.10 cents per hour. It seemed like a good idea to Mike to reduce his expense on his project. So mike opened a account with amazon cloud provider and launched the 5 servers and used the servers when he needs it and stopped the service when he is not working on it. So after success full completion of his project he had to spent only 150 dollars for three months. he was billed only for the hours he used servers from amazon cloud provider. He didn’t want to worry about the OS or licencing. Everything was taken care by amazon.
The service Mike used from Amazon is called infrastructure as a service. Unlike shared hosting , if you use cloud servers, you can have full control over the server and you don’t have to worry about anything else. You just sign up for a cloud provider and start using the infrastructure services, You will be billed on hourly basis. The cloud provider has different metrics to do the billing for your usage.
Like infrastructure you can use the platform and software from a service provider and you will be charged for what you use.
Cloud computing offers a variety of services to choose from. Getting educated with the cloud computing principles and concepts is more important before you take a dive in the cloud computing world. Basically cloud computing offers three types of services. Infrastructure services, software services and platform services. If you are interested in servers and you do not want to mess up your brain with all coding stuff, then you can start learning about infrastructure services. If you are a good coder and you want all your future applications to run in the cloud, then you have to start learning about Software services. If you want to kick start your career in cloud computing, I recommend you to start with Amazon AWS and Google App engine.
Infrastructure services:
1.Amazon Aws:
You can create a virtual machine (server) and it will be up and running in minutes. You can choose your virtual machines with windows and various Linux flavors. You can make use of Amazon’s one year free tier package for testing and learning purposes. All you have to do is, sign up for an amazon account with a credit card. They will charge you one dollar. After that you can use its services for free of cost for one year. Amazon AWS is a better option for getting yourself educated with public cloud services. You can check out few Amazon AWS tutorials here. Amazon Tutorials
2. Windows Azure:
Windows Azure is an infrastructure service provided by Microsoft. It offers users an one month trial to test and learn its services. You need to sign up with your credit card to use the one month trial. They offer good documentation for deploying servers. You can deploy your .net based websites so easily.
Apart from Amazon and azure there are lot more IaaS service providers. HP cloud, Rackspace etc,.
Platform Services:
1. Google App Engine:
Google app engine is a platform where you can deploy your Java and other language based applications. Using eclipse IDE you can develop and deploy applications to app engine. If you wish to code in cloud, then you can go for Exo- Cloud IDE, which is a cloud based IDE for application development. Using Exo-cloud IDE you can develop and deploy your web applications to various cloud platforms such as app engine, cloud bees, Amazon etc..You can check out a few tutorials on app engine and Exo-cloud here. App Engine And Exo-Cloud Tutorials
2. Cloudbees:
Cloudbees is an excellent platform as a service. You can deploy up to five web applications for free. Each application will have a subdomain of its own. You don’t need a credit card to sign up for this service. It supports Java , PHP , ruby on rails and various other applications. You can understand what PaaS is all about , using cloudbees services. It also offers free Mysql and mongoDb servers with 5 MB storage. You can check out cloudbees tutorials here. Cloudbees Tutorilas
3. Appfog:
Appfog is a platform as a service for deploying your web based applications. You can deploy up to eight applications for free on appfog. Your application will be hosted on amazon, azure and Rackspace cloud environments. You can choose your nearest server region even if you are a free user. You can check out app fog tutorials here. Appfog Tutorials.
Private Cloud Deployment:
There are few open source cloud computing tools for deploying private clouds. These tools come with good documentation, which will spoon feed you the instructions. You have to educate yourself with Virtualization concepts in order to build private clouds. You can start with VMware workstation. It is a better Virtualization software, available for both desktop and server. Get started with VMware workstation using this manual. VMware workstation tutorial. Following are the few open source cloud computing tools which you can use for learning and testing purposes.
1. Opennebula:
Opennebula is a toolkit used for developing IaaS clouds. It is a lightweight tool when compared to other private cloud tools. You can deploy a private cloud in one desktop for testing purposes but the desktop has to meet the minimum hardware requirements ( 4GB Ram, 100 GB hard disk, VT enabled processor).Check out the tutorial for deploying a private cloud using opennebula here. How To Deploy Private Cloud Using Opennebula On Ubuntu 12.04
2. Eucalyptus:
Using eucalyptus you can build private as well as hybrid clouds .It is compatible with the Amazon AWS API. It supports both windows and Linux virtual machines. How to Deploy private cloud using Eucalyptus
There are other open source cloud computing tools for cloud computing such as open stack and cloud stack.
Cloud Databases:
Data is growing day by day. Google, Facebook and lots of other internet giants deal with peta bytes of user data a month. So nowadays high end web applications need a scalable database. Here is where Nosql databases come into play. NoSql databases are highly scalable when compared to traditional SQL databases. There are many muscle databases, like Casandra, mongoDb, postgreSql etc. Facebook uses Casandra as their backend database. So getting educated with noSql databases is a must if you want to deal with cloud applications.
Hadoop Data Processing Framework:
Hadoop is a software framework for processing huge amounts of data in parallel, on large clusters of computing instances. To be precise, it is a technology to process big data. Social networking sites produce peta bytes of data which is processed by Hadoop framework. You can start learning Hadoop concepts here. Hadoop Tutorials