Introduction to Cloud Computing

Cloud computing can be considered as a business model that delivers resources such as computing and storage, on demand, using technologies such as server virtualization. On demand simply means using only when needed. In simple terms, cloud or on demand means using a resource installed on some server over internet when needed, rather than installing and using the software from your machine. Instead of buying a resource paying the complete price, you can now use the resources on cloud, paying only fraction of the price; and the price is based the actual usage. Google drive, Amazon S3 for storage and even gmail are all examples of cloud services.

Resources shared over the cloud include software, platform and infrastructure. Server virtualization means that the actual physical server on which the software is installed is not shared with the end user, but he is given a virtual address. There may be more than one server and might be scaled to include more servers based on requirement. However user sees only his virtual address and hence doesn’t even know about any of these changes. Opposite of cloud is ‘on premise’. On premise means installing the resource on your machine within your premises. 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.

Cloud services are services offered on demand through cloud. 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. Cloud storage is a model of networked enterprise storage where data is stored in virtualized pools of storage and people who require their data to be hosted buy or lease storage capacity. Physically, the resource may span across multiple servers and multiple locations, but user will see only a static virtual address. Data stored over the cloud is often replicated across multiple servers and hence even if any issue happens with one of the server, the data will still be available on the other servers. Cloud storage services are usually accessed through a web service API or by applications that utilize the API, such as cloud desktop storage, a cloud storage gateway or Web-based content management systems.

When a cloud service is available to everyone over the internet it is called a public cloud. A private cloud is available only to a single client or a limited number of users and can be setup on-premises within the company firewall or off-premises. A Virtual Private Cloud (VPC) is a private cloud built using shared computing resources allocated within a public cloud environment. Managed Private Cloud refers to a principle where a private cloud serving a single client organization (tenant), and managed by a third-party. This is in contrast to multi-tenancy where multiple client organizations are on a single server  

 

SaaS, PaaS, iPaaS and IaaS

As we have seen, type of resources shared over the cloud, include, software, platform and infrastructure. Based on these types, cloud services can be broadly divided into three:

  • SaaS (stands for Software as a Service)
  • PaaS (stands for Platform as a Service)
  • IaaS (stands for Infrastructure as a Service)

The type of resources shared in IaaS mainly includes physical servers, virtual machines, load balancers, IP addresses and virtual local area networks (VLANs); but often also includes other resources such as a virtual-machine disk image library, raw (block) and file-based storage, firewalls and even software bundles. Cloud providers typically bill IaaS services on a utility computing basis; cost reflects the amount of resources allocated and consumed. Examples includes Amazon Web Services (AWS) such Amazon EC2 for computing capacity and Amazon S3 for cloud storage, and Dropbox etc.

The type of resource shared in PaaS is usually a computing platform, typically including operating system, programming language execution environment, database, and web server. Application developers can develop and run their software solutions on the cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers. With some PaaS offers, the underlying computer and storage resources scale automatically to match application demand so that the cloud user does not have to allocate resources manually. Examples include Windows Azure, force.com from salesforce and Google App Engine. The iPaaS, which stands for integration Platform as a Service, is a sub type of PaaS and deals with integrating various cloud technologies. Examples include Dell Boomi AtomSphere from Dell and CloudStreams from Software AG. I have worked with Dell Boomi AtomSphere previously.

The type of resource shared in SaaS includes application software and databases. Cloud providers manage the infrastructure and platforms that run the applications. SaaS is sometimes referred to as "on-demand software" and is usually priced on a pay-per-use basis. SaaS providers generally price applications using a subscription fee. Examples includes Salesforce CRM, SuccessFactors, Office 365 from Microsoft, Ariba Buyer On Demand and most Google services such as Gmail, Google Apps etc. I have worked as a product developer for ‘Ariba Buyer On Demand’ product when I was working with Ariba, an SAP Company.

 

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.

 

Reference

http://en.wikipedia.org/wiki/Cloud_computing

http://en.wikipedia.org/wiki/Virtualization

http://en.wikipedia.org/wiki/Cloud_storage

http://en.wikipedia.org/wiki/Virtual_private_cloud

http://en.wikipedia.org/wiki/Managed_private_cloud

http://en.wikipedia.org/wiki/Windows_Azure

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)