How computing came into the picture?
“Cloud computing” was originated for what happens when applications and services are moved into the internet “cloud.” Cloud computing is not something that suddenly appeared overnight; in some form, it may trace back to a time when you want to host a website, the following were the things that you would need to do:
- Buy a stack of servers
- Every website faces peak time, to resolve that you need to buy more servers
- Monitoring and Maintaining your servers so that the application does not experience any downtime. If encountered one, have to maintain it.
- Serving only one client on any given server.
However, these things led to the following problems:
- Expensive setup of servers.
- Troubleshooting problems became a tedious job which conflicted Business goals
- With varying traffic on the website, servers may be idle most of the time.
- Serving only one client on any given server provided rigidity with limited on-demand services options.
To overcome these problems we came up with “CLOUD COMPUTING”
- Why pay when you can rent: low upfront investments in hardware.
- On-demand provisioning/scalability: Scale server capacity according to the traffic
- Zero maintenance headaches: your cloud provider will take care of all the updation, security patches, application downtime.
- Multiple clients are housed on the same server, thereby providing flexibility and on-demand services for individual clients, so that providers can scale up or scale down delivery easily.
Simply put, cloud computing is the use of remote servers to store, manage, process data. So, you do three things; you
- store (storing a file on a file system on the cloud,
- manage (data using databases there on the cloud) and
- process data (using computing power on the cloud to process data)
Businesses are running all kinds of applications in the cloud-like CRM (Customer Relationship Management, HR, Accounting and many more). Even at home, we use cloud technologies for various daily activities. From Google Docs to OneDrive to Skype and Spotify, these services are provided to us through virtual networks.
With cloud computing, you don’t need to invest heavily in hardware and spend a lot of time in managing that hardware. Instead, you can provide exactly the right type and size of computing resources you need. There is no limitation on resources. You can access as many resources as you need, almost instantly, and only pay for what you use.
“Just like water from the tap in your kitchen, Cloud Computing services can be turned on or off quickly as needed. Like at the water company, there is a team of dedicated professionals making sure the service provided is safe, secure and available on a 24/7 basis. When the tap isn’t on, not only are you saving water, but you aren’t paying for resources you don’t currently need”.
False Cloud Alarm:
Thousands of companies are rebranding their non-cloud products and services as “Cloud Computing”. Always dig deep down when it comes to cloud offerings and make sure if you have to buy and manage hardware and software then what you are looking isn’t a really cloud computing but a false cloud.
Now that we know why cloud computing is used let’s focus on who uses it. Basically there are three types of cloud stakeholders namely,
Cloud providers: Companies providing cloud services are called cloud providers. These cloud providers provide services to cloud users.
Cloud users: Cloud users develop their products using these services and deliver the product to the end-users.
End-users: End-users (Customers) uses the product.
Top Benefits of Using Cloud Computing:
- On-Demand Service: You use it, when you need it
- Network Access: Uses internet as a medium
- Shared Resources: Resources are pooled together and used by multiple clients
- Scalability: Allow elasticity of resources as and when required
- Cost-effective: You pay as you go
- Going Global: Delivering the right amount of IT resources when its needed and from the right geographic location.
- Reliability: With data mirrored at multiple redundant sites. Data backup, disaster recovery and business continuity comes at easy hand and less expensive.
- Speed: With just a few mouse clicks, resources can be provisioned in minutes.
The cloud providers have their on-premises data centers to provide resources to their users through Internet.
The cloud providers often provide separation between application and data. This scenario is shown in Figure 2.
The underlying physical machines are generally organized in grids and they are usually geographically distributed.
The concept of Virtualization plays an important role in the cloud scenario.
The data center hosts provide the physical hardware on which virtual machines reside.
User potentially can use any OS supported by the virtual machines used.
How it actually solves?
It acts as an interface between the hardware and the operating system called system VMS. Another category of a virtual machine is called a process virtual machine which acts as an abstract layer between the operating system and applications. Virtualization can be very roughly said to be software translating the hardware instructions generated by the software to the understandable format for the physical hardware. Virtualization also includes the mapping of virtual resources like registers and memory to real hardware resources.
Basics of virtualization:
The underlying platform in virtualization is generally referred to as host and the software that runs in the VM environment is called the guest. Here the virtualization layer covers the physical hardware. Operating System accesses physical hardware through virtualization layer. Applications can issue instruction by using the OS interface as well as directly using virtualizing layer interface. This design enables users to use applications not compatible with the operating system.
Types of cloud computing services:
The computing services are broadly divided into three categories – Software as a Service, Platform as a Service and Infrastructure as a Service. Based on the requirement users can opt for any of the services.
SaaS (Software as a service) –
- Uses multi-tenant architecture to deliver a single application through the web browser to thousands of customers. This service is platform-independent with no installation of software.
- On the customer side, it means no heavy investment in servers or software licensing; on the provider side, with just one application to maintain, the cost is low compared to conventional hosting.
- All the computing resources responsible for delivering SaaS are entirely managed by the vendor. So under SaaS, the software publisher (seller) runs and maintains all necessary hardware and software while the customer accesses the applications through the Internet.
– Google docs are also a very nice example of SaaS where the users can create, edit, delete and share their documents, spreadsheets or presentations whereas Google has the responsibility to maintain both software and hardware.
- This service is accessible via a Web browser or Lightweight client applications.
More precisely– This is like borrowing a reference book from a library. You go, read the book, return it and come back i.e, you use the software available online, and that’s it.
Common examples: Google Apps, Zoho Office.
PaaS (Platform as a service) –
- Delivers a development environment as a service.
- It surrounds the environment where users can build, compile and run their programs without worrying about the underlying infrastructure that supports transactions, uniform authentication, robust scalability and availability.
- In this model, users manage data and application resources. All other resources are managed by the vendor.
More precisely, This is like ordering in a fast food joint like a subway. You have your choice of toppings, but they’re only a few bases for the toppings – a bowl, or bread i.e, the computers that you get in a PaaS offering, have a fixed OS and software stack. You can run your software on top of this. For example, you can deploy any code on top of the Google app engine.
Common examples: AWS Elastic Beanstalk, Windows Azure, Heroku, Google App Engine, Apache Stratos.
IaaS (Infrastructure as a Service) –
- Infrastructure as service or IaaS is the basic layer in the cloud computing model. With Iaas, you rent IT infrastructure like servers and virtual machines (VMS), storage, networks, operating systems—from a cloud provider on a pay-as-you-go basis.
- In this model, users manage data, application, run time, middleware. All other resources such as data storage, virtualization, servers, and networking are managed by the vendor.
More precisely, IaaS is analogous to buying furniture from Amazon. You are given all the materials, you need to build it yourself i.e, you are given a computer without even an OS on it, and you can install the OS and all the software on top of it as you wish.
Common examples: Amazon Web Services (AWS), Cisco Metapod, Microsoft Azure, Google Compute Engine (GCE) are some popular examples of Iaas.
Deployment Models in Cloud Computing:
Private Cloud –
As the name suggests, a Private cloud is dedicated to a particular institution, organization or enterprise and is used for their internal purpose only. Being hosted either internally or externally, services provided by private cloud offer better security, especially for companies that need excellent data management services and uptime requirements. It is also the best choice for organizations that need to manage their host applications and other applications used by their customers. Security, network bandwidth are not critical issues for private cloud.
In this type, an organization rents cloud services from cloud providers on-demand basis. The provider handles all responsibilities associated with managing and maintaining cloud services because they own the hardware. For organizations using the public cloud, this means saving time and resources to manage their cloud. The Infrastructure will be on the premises of the service provider, but it will be operated by whoever is making use of it, be it government organization, business centers or academic institutions. The user, however, does not have any control over the location of the infrastructure. However, you need not go for this option if security is of utmost importance.
Hybrid Cloud –
As the name suggests, a hybrid combines the best of private and the public that balances both environments but remains connected, based on the unique needs of your organization. Here, some data is on-premises (or in your own data center) and some data is in the cloud. It can definitely leverage the cost benefits to a great extent and even manage the vulnerabilities found in critical data applications as they provide clear visibility into current costs and uptime.