Let’s first discuss the term “aaS,” which is a Service. In simpler terms, it’s known as the “cloud.” This Cloud Computing Model enables on-demand access to a pool of computing resources such as storage, servers, applications, and services that can be managed with minimum effort. Azure offers three main cloud computing platform services:
- SaaS – Software as a Service
- IaaS – Infrastructure as a Service
- PaaS – Platform as a Service
All three services see tremendous demand due to businesses embracing technology-based services for rapid growth. These services are mostly dependent on each other to deliver cost-effective business solutions. SaaS, PaaS, and IaaS feature a multitenancy architecture where the infrastructure and the resources share virtualization technology and remote access to the businesses services.
Microsoft offers its geo-distributed data centers as an integrated service for Microsoft Azure. Based on the requirement of computing power and infrastructure, Azure grants the request immediately, and the data center’s resources allocate accordingly.
Figure 1 Source: Microsoft
Azure Platform-as-a-Service (PaaS)
Platform as a service (PaaS) is a deployment and development environment within the cloud that delivers simple cloud-based apps to complex, cloud-enabled applications. PaaS is designed to support the complete web application lifecycle of building, testing, deploying, managing, and updating.
PaaS includes a complete infrastructure of servers, storages, networking, and middleware development tools like business intelligence services (BI), database management systems, etc. A complete platform is offered in PaaS in which the client can host their applications without the need to worry about the maintenance of the servers and its operating systems. However, the user of the PaaS service should look after the implementation of the developed application to decide whether to scale it up or down depending on the traffic that the application receives.
Figure 2 Source: Microsoft
The PaaS backbone utilizes virtualization techniques, where the virtual machine is independent of the actual hardware that hosts it.
Azure Cloud Services has two main components; the application files such as the source code, DLL, etc. and the configuration file. Together these two will spin up a combination of Worker Roles and Web Roles. On the cloud services, Azure handles all the hard work of the operating systems on your behalf, so that the full focus is to build a quality application for the end users.
The Web Role is an Azure VM that is preconfigured as a web server running IIS (Internet Information Service) which automatically loads the developed application when the Virtual machine boots up. This results in the creation of the public endpoint for the application which is usually in the form of a website but could be an API or similar.
Figure 3 Source: www. robertgreiner.com
The Worker Role runs alongside with the Web Role and performs the computing functions needed for the smooth operation of your application. The Web Role will accept the user’s input and will queue up for an action to process later by the Work Role. Subsequently, this enables the Web Role to be more productive and responsive.
Azure PaaS services
Azure offers five main services of Platform as a Service in which multiple service types host a custom application or a business logic for specific use cases:
1. Web apps
These are an abstraction of a Web Server such as IIS and Tomcat that run applications written in mostly in Java, Python,.NET, PHP, Node.js, etc. These are simple to set up and provide a variety of benefits, available 99.9% of the time which is a key benefit.
2. Mobile apps
The back ends of mobile apps can be hosted on the Azure PaaS easily using the SDKs available for all major mobile operating systems of iOS, Android, Windows, etc. It enables the unique ability of offline sync so the user can use the app even if they are offline and sync the data back when they are back online. Another major benefit is the ability to push notifications allowing sending of custom notifications for all targeted application users.
3. Logic apps
No apps are hosted, but there is an orchestrated business logic app to automate a business process. These are initiated by a trigger when a predefined business condition is met.
Functional apps can perform multiple tasks within the same application. These functional apps host smaller applications such as microservices and background jobs that only run for short periods.
5. Web jobs
These are a part of a service that runs within an app service on web apps or mobile apps. They are similar to Functions but do not require any coding to set it up.
Where PaaS is used
PaaS is often seen in Business Organizations for the following scenarios:
PaaS offers application developers the ability to create applications using the in-build software components of PaaS such as scalability, multi-tenancy and high availability which highly reduces the amount of coding for the application that the developers must do, making the development life cycle significantly shorter.
Analytics/Business intelligence (BI)
Additional intelligence tools of PaaS allow organizations to mine and analyze both user behavioral data and application data, predict the outcomes to improve the product design decisions, business decisions, and increase the return on investment by analyzing insights and application usage patterns.
Along with the scenarios mentioned earlier, PaaS includes additional services that enable users to have a stable PaaS platform and enhance the applications hosted, like security and workflow scheduling. It allows new capabilities without the need to add additional staff with specific skills to implement these features.
Why use PaaS
Since PaaS builds on top of IaaS, PaaS offers more features of business tools, middleware and development tools while providing the advantages and value that come up with IaaS.
With the development tools offered by PaaS, developers can further reduce the time spent for coding the new app since they can integrate the pre-coded components of the platform such as security features, directory services, search options, etc. into the developing application.
You can manage Application Lifecycle efficiently because PaaS is designed to support the complete web application lifecycle of building, testing, deploying, managing, and updating.
The ability to develop applications for multiple platforms of computers mobile devices and browsers makes application development much easier and quicker.
Since the development environment is accessible via the internet, multiple development teams located in various locations can work together on application development.
The primary benefit of using PaaS is its utility billing model, i.e., it bills only for what is used. Because PaaS provides both the hardware and the software infrastructure eliminating the need to invest in hardware and software, it yields significant cost savings.
Who is Azure PaaS for?
In General, Azure PaaS is ideal for but not limited to:
- Development teams in businesses who want to significantly reduce the time it takes their applications time to get on the market.
- Organizations that have high operational costs that want to lessen the administration needs for a set of applications.
- Organizations that require critical support metrics for usage and chargeback.
- Organizations that want to slash costs spent on IT, and reduce database elements and operating systems complexity while increasing scalability.
- Businesses that want to improve the quality of service of their company can greatly benefit from PaaS.