Monday, October 19, 2015

Platform-as-a-Service (PaaS)

PaaS provides building blocks for you to develop and deploy your application without the complexity of licensing the software and buying infrastructure underneath it. PaaS also includes features that harden your application without having to write code for database backups, scalability, failover and disaster recovery, security patches, reliable messaging, networking, and much more.

An example of this sort of PaaS application can be found in the Microsoft Azure Cloud Platform. The solution includes your web application with a web front end and SQL Server for storage; this is integrated with CRM Online for customer data. It serves users on devices with various form factors connected via public Internet and through VPN. Figure 2-4 provides an example of a PaaS application built and deployed on Microsoft Azure platform.

The differentiating line between IaaS and PaaS is rapidly disappearing, with IaaS vendors providing more value-added services such as storage services, application host capabilities, and messaging systems in addition to a wide selection of OS versions. Similarly, predominantly PaaS solutions also leverage components of IaaS; as an example, in Figure 2-4, the solution includes SQL Server deployed as a virtual machine. PaaS services are subscription- or usage-based and billed on a monthly basis. For example, there may be a small monthly fee for the use of a load balancer or a database backup service.

Advantages of the PaaS are:
- Is a holistic or end-to-end platform with which to develop, deploy, and manage your application—no separate software licenses to procure or manage.
- Supports multitenant architecture where users from multiple organizations can use their partitioned space securely.
- Built-in scalability, including load balancing and failover, are significant benefits for you.
- Third-party solutions are available through the platform marketplaces to handle billing and subscription management via a library or RESTful API.
- Has ability to automate test and deployment services.
- Supports web-based user interface to manage the application.

And on the contrary, here are a few situations where PaaS may not be a good fit for your applications:
- If your application requires specialized hardware or software to perform its functions; PaaS platforms use commodity hardware.
- Where portability of the application is important—essentially your application will only run on the platform it was developed on. Essentially, you are locked in with a vendor.
- PaaS may also not be a good fit when customers have to migrate an existing application to the cloud, and when the effort to re-write the application does not offer any significant return on the investment. In this case, it's better to adopt a lift-and-shift approach and migrate the existing to IaaS virtual machines rather than create a PaaS solution.

PaaS is the most exciting and powerful cloud platform, and developers around the world view it as the go-to option for their new applications while existing applications continue on IaaS.

Taken from : Hardening Azure Applications

No comments: