You hear much about cloud, and cloud computing? In recent years, it becomes a trend for every tech-based company. In practice, many startups are beginning right from cloud, instead of renting a server and open it to public. Cloud Computing provides a simple way to access servers, storage, databases and a broad set of application services over the Internet. Cloud Computing providers own and maintain the network-connected hardware required for these application services, while you provision and use what you need via a web application.
Whether you are running applications that share photos to millions of mobile users or you’re supporting the critical operations of your business, the “cloud” provides rapid access to flexible and low cost IT resources. With cloud computing, you don’t need to make large upfront investments in hardware and spend a lot of time on the heavy lifting of managing that hardware. Instead, you can provision exactly the right type and size of computing resources you need to power your newest bright idea or operate your IT department. You can access as many resources as you need, almost instantly, and only pay for what you use.
Based on what you want to use from cloud, services which cloud provide can be separate into three layers: SaaS, PaaS and IaaS like the following diagram:
To understand what is SaaS, PaaS and IaaS, we can assume that you have a web app, and you want to allow public access to it. This is what you will do:
Setup server and network resource – Or you use IaaS
Infrastructure as a Service, related to any hardware which build into your server. It includes: network devices like routers, switches, storage devices like hard disk, SAN or NAS, load balancer, CPU or GPU.
In cloud environment, IaaS provides low-level resource including but not limited to computers – physical or (more often) virtual machines – and other resources. Pools of hypervisors within the cloud operational system can support large numbers of virtual machines and the ability to scale services up and down according to customers’ varying requirements. Other resources can be virtual-machine disk-image library, raw block storage, file or object storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles. IaaS-cloud providers supply these resources on-demand from their large pools of equipment installed in data centers.
To deploy their applications, cloud users install operating-system images and their application software on the cloud infrastructure. In this model, the cloud user patches and maintains the operating systems and the application software. Just like you have to manually install and update your own operating systems and software with your own hardware devices. Of course, using IaaS gives you the most flexible solution to deploy and maintain any application.
Operating System and Environment – Or you use PaaS
In the PaaS models, cloud providers deliver a computing platform, typically including operating system, programming-language execution environment, database, and web server. Then you, application developers can develop and run software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers.
For example, you want a Java environment to deploy your own application, you should use a PaaS provider, which give you pre-installed JVM inside a Ubuntu machine, and do not care about RAM or CPU architecture or network topology inside it. It just works, and just like you install Windows and Java to your own hardware. Then application can be ready to run on.
Too lazy to develop app – Or you use SaaS
Software as a Service – as its name, it provides end-user application for you, ready-to-use. You don’t have to take care about underlying hardware or platform which software is running. The benefit of SaaS is scability, which the application can scale itself to match user demand, also, load balancers will deliver traffic to application automatically and it’s totally transparent to end-user. Yeah you can realize that Gmail or any application like Box or DropBox are SaaS. It just like you don’t have to develop your own Java application and use an open-source software, install it and it will be ready from your own server.
When cloud computing is on its own way, there are many as a service, including Monitoring as a Service. MaaS is at present still an emerging piece of the Cloud jigsaw but an integral one for the future. In the same way that businesses realised that their infrastructure and key applications required monitoring tools that would ensure the proactive elimination of any downtime risks. Or Communication as a Service (CaaS), enables the consumer to utilize Enterprise level VoIP, VPNs, PBX and Unified Communications without the costly investment of purchasing, hosting and managing the infrastructure.
When it comes to deployment, there are many model, based on your own solution for cloud computing. Two popular models are public cloud and private cloud. Each has its own pros and cons.
A cloud is called a “public cloud” when the services are rendered over a network that is open for public use. Public cloud services may be free. Technically there may be little or no difference between public and private cloud architecture, however, security consideration may be substantially different for services (applications, storage, and other resources) that are made available by a service provider for a public audience and when communication is effected over a non-trusted network. Public cloud service providers like Amazon AWS, Microsoft and Google own and operate the infrastructure at their data center and access is generally via the Internet.
Private cloud is cloud infrastructure operated solely for a single organization, whether managed internally or by a third-party, and hosted either internally or externally. Undertaking a private cloud project requires a significant level and degree of engagement to virtualize the business environment, and requires the organization to reevaluate decisions about existing resources. When done right, it can improve business, but every step in the project raises security issues that must be addressed to prevent serious vulnerabilities. Self-run data centers are generally capital intensive. They have a significant physical footprint, requiring allocations of space, hardware, and environmental controls. These assets have to be refreshed periodically, resulting in additional capital expenditures.
Other Cloud and Hybrid
It is not just public and private cloud, there are much more cloud deployment models, including: Hybrid Cloud, Community cloud, Distributed cloud, Intercloud and Multicloud. They are almost related to payment and resource management options. But while private and public cloud are most popular models, hybrid cloud is rising because it give more options for organization, while maintaining security and keep resource as most flexible as possible.