PaaS vs. IaaS
PaaS vs. IaaS
Different cloud infrastructure services for different folks.
Join the DZone community and get the full member experience.Join For Free
Learn how to migrate and modernize stateless applications and run them in a Kubernetes cluster.
It has been quite some time that I've been working in cloud infrastructures and I thought it would be better if I can put down a few differences between various types of cloud services.
As technology evolves, so does the business driven by technology. Cloud computing allows consumers and businesses to use applications without installation and access their files anywhere with internet access.
Cloud Ready vs. Cloud-Native
What are Cloud Ready Applications?
Essentially, an application is cloud-ready if it can be effectively deployed into either a public or private cloud. That is, the application must be designed so that it can take advantage of the capabilities that are provided by the Platform-as-a-Service (PaaS) layer on which it runs.
Can your application run anywhere on any platform?
Is your application highly scalable?
Is your application loosely coupled?
Can your application be automated for deployment?
What are Cloud-Native Applications?
An application which is designed specifically for cloud architecture is a cloud-native application. When I say "designed for cloud architectures," I mean that they take full advantage of the cloud platform, from the development to deployment of applications. Being cloud-native is not just moving your infrastructure from on-premises to cloud; it involves more than development to deployment workloads on cloud. Being cloud-native is much more advantageous and the best fit for a microservice architecture. Apps are being built as a distributed collection of services, which pairs up perfectly with the distributed nature of the cloud.
A Word on Hybrid/On-Premises Infrastructures
On-prem infrastructures have their own pros and cons. They have their own security implementations but they lack the distributed nature of applications. A hybrid environment, on the other hand, is semi-dependent on the cloud. As with most monoliths in traditional architectures, they are suitable to deploy on-premises with a single tenant hardware but the world is moving from monoliths to microservices.
Platform-as-a-Service gives users with the platform and the environment for them to develop, manage, and run applications over the Internet. PaaS takes away or lessens the complexities of building, maintaining, and enhancing the cloud infrastructure that developers need in order to develop and launch an app. In other words, PaaS provides platforms and operating systems which are managed by provider systems.
Role of Containerization in PaaS
Application containerization is an OS-level virtualization method used to deploy and run distributed applications without launching an entire virtual machine (VM) for each app. Containerization is best suitable in microservices architecture, which caused the rise of Docker and Kubernetes and many others. Managing your app as distinct services has implications for infrastructure.
Every service in a microservices app needs to be a self-contained unit. Services need their own allotment of resources for computing, memory, and networking. However, both from a cost and management standpoint, it’s not feasible to multiply the number of VMs to host each service of your app as you move to the cloud. This is where containers come in. They are extremely lightweight, and provide the right amount of isolation to make a great alternative to VMs for packaging microservices, enabling the benefits above.
Some PaaS Cloud Providers
There are different kinds of PaaS providers. While they offer app hosting services or a built-in infrastructure, and deployment environment, they differ in the kind of integrations, as well as in the levels of maintenance and scalability they offer
Below are few I have listed for example which I worked on or have knowledge of:
- Cloud Foundry (Pivotal Cloud Foundry)
- AWS BeanStalk
- IBM Bluemix
- Google App Engine
- Microsoft Azure
- Oracle Cloud
Types of PaaS
There are several types of PaaS, including public, private, and hybrid. PaaS was originally intended for applications on public cloud services, before expanding to include private and hybrid options
A private PaaS can typically be downloaded and installed either in a company's on-premises data center, or in a public cloud.
(For example: Pivotal Cloud Foundry can be installed on-premises as Private PaaS or can be hosted on public cloud as Pivotal Application Service.)
Once the software is installed on one or more machines, the private PaaS arranges the application and database components into a single hosting platform
Hybrid PaaS is typically a deployment consisting of a mix of public and private deployments.
Open PaaS does not include hosting, but rather it provides open source software allowing a PaaS provider to run applications in an open source environment, such as Google App Engine. Some open platforms let the developer use any programming language, database, operating system or server to deploy their applications.
Pros and Cons of PaaS
- PaaS allows high-level programming with reduced complexity of managing and maintaining the application.
- Overall development of application can be more effective as it has self-healing, autoscaling features of its own.
- The overall price of application may increase as your application may largely be scaled.
- Depending on the offerings of the company providing your PaaS, you could be locked into a specific software environment, language or interface.
Infrastructure-as-a-service (IaaS) is one of the layers in the cloud computing model. Hardware infrastructure is provided by an external provider and is managed by them.
All the traditional present on-premise data center is hosted by cloud providers including servers, storage, networking layer and the hypervisor layer as well. The providers also provide a lot of services like monitoring, billing, logging, clustering, autoscaling, backup, recovery, replications. These services are increasingly policy-driven, enabling IaaS users to implement greater levels of automation and orchestration for important infrastructure tasks. For example, a user can implement policies to drive load balancing to maintain application availability and performance.
Some IaaS Cloud Providers
- Microsoft Azure
- Google Cloud Platform
Pros and Cons of IaaS
- Easier, faster and more cost-efficient to operate a workload without having to buy, manage and support the underlying infrastructure.
- With IaaS, a business can simply rent or lease that infrastructure from another business IaaS is an effective model for workloads that are temporary, experimental or that change unexpectedly.
- Pay as you Go or on-demand features
- Cloud billing is extremely granular, and it is broken out to reflect the precise usage of services and sometimes may drastically go high.
- The details of the infrastructure configuration and performance are rarely transparent to IaaS users.
- The resilience is totally dependent on the Service providers and the security can be a compromise
Gartner's Magic Quadrant
Below is the magic quadrant from Gartner's report for Cloud IaaS 2018. AWS tops the list followed by Azure:
Opinions expressed by DZone contributors are their own.