Cloud Computing is a business model that enable on-demand network access to a shared pool of resources that can be rapidly provisioned and released with minimum manual effort. The shared pool of resources may include servers, platforms, storage, applications and services, and the technologies such as server virtualization may be used for provisioning.
In general, “cloud” or “on demand” refers to using a resource installed on some server over internet (or the server itself) when needed, rather than setting it up in your premises (called as on-premise). In cloud, instead of buying a resource paying a big price, you can use the resources paying only fraction of the price based on the actual usage. One limitation of cloud over ‘on premise’ is that you need to have internet connection to connect to cloud whereas you don’t require an internet connection to use software installed on your machine.
Important characteristics of cloud computing are that it is on demand, managed completely by the provider and user can use as much or as little as he want. Examples of cloud services include Amazon EC2, Google Compute Engine, Microsoft Azure VMs, Google App Engine, Salesforce, Google Drive, Amazon S3 and even Gmail.
NEED AND IMPORTANCE OF CLOUD COMPUTING
When I was working with a leading credit cards company as a software developer 9 years back, we had a huge monolithic system. We also had separate teams for QA, Operations etc. We were only concerned about writing code for the functionality. QA will test and finally operations team will deploy it and monitor it. Things have changed a lot since then.
Currently software architecture is changing from monolithic applications to microservices, where the applications are composed of many smaller focused services. Teams own these services (or products) rather than only a part of it (like development, testing, operations etc.). Taking care development and operations together through automating the process of software delivery and infrastructure changes is usually referred to as DevOps.
Microservices and DevOps models will be difficult to follow if you will need to spend lots of time in keeping network services online, secure and available to users. This is where cloud computing and providers such as AWS help you by taking away some of these responsibilities which are common; you can then focus on the business problem in hand rather than spend too much of time on infrastructure management.
Cloud computing also reduces the need for bigger initial infrastructure investments, as it mostly involves pay per use. This is a great help and need for many startup companies.
FUTURE OF CLOUD
Cloud computing and cloud integration are going to be two very important areas that most companies will focus on from now. Most popular companies like SAP, Oracle, Software AG etc. have already started moving their applications to cloud and even try to reach the cloud there faster by acquiring cloud companies, which shows the importance of cloud. The acquisition of Ariba by SAP for $4.3 was part of such a strategy and I was working with Ariba during that time. Cloud computing is becoming very popular in areas such as healthcare, energy systems, transportation systems, manufacturing industry and even within various government processes.
Book: Cloud Computing A Hands On Approach by Arshdeep Bahgya and Vijay Madisetti