Role and benefits of PaaS and aPaaS in DevOps
We saw in the earlier section that PaaS provides flexibility to deploy an application without an overhead of management of resources. As users, we can deploy an application and control its configuration to some extent. Resource management is the responsibility of cloud service providers. Cloud service providers manage servers, operating systems, networks, or storage. They also manage load balancing, scalability, and monitoring of resources. Users only need to configure them properly.
Cloud has a shared responsibility model and that changes based on the cloud service model we use. PaaS is just a perfect mix of flexibility and less overhead.
Now let's understand the difference between using DevOps with IaaS and DevOps with PaaS.
One of the main factor is the speed with which resources are available in PaaS compared with IaaS. Within minutes, we have the environment ready to deploy an application. The reason is simple, we need not to install and configure a runtime environment. It is already available. As a user, we only need to configure it based on the suitability of our application. Consider these examples:
- Programming language
- Web or application server
- Stateless or stateful application
- Application settings as environment variables
- Connection strings as environment variables that can be utilized to facilitate backup
- Virtual directories
Because the deployment environment is available in minutes and we can automate the creation of that environment using commands or scripts, it is very flexible to integrate it in the automation process. Even if the resource provisioning process is not automated, it becomes very easy to integrate the platform into automated deployment scenarios.
The recent trend in the market is Application Platform as a Service (aPaaS). This is a service offering that provides development and deployment environments for application life cycle management.
The aPaaS service model offerings generally provide the following services:
- Agile scrum user stories management
- Code editors in a browser
- Repository as a Service
- Build as a Service
- Testing as a Service
- Release Management as a Service
- Cloud platforms to deploy an application
- Monitoring as a Service
- Security as a Service
- Identity Management as a Service
The question is, how are PaaS and aPaaS different from each other?
The following are the important points that bring out the difference and make aPaaS more suitable to manage the application life cycle:
- Agile scrum user stories management
- Code editors in a browser
- Repository as a Service
- Build as a Service
- Testing as a Service
In today's age, aPaaS is driving toward continuous improvements and continuous innovations. It drives for rapid application development and rapid application delivery. The Microsoft Azure application platform services provide application development, repository services, application deployment services, performance testing, security, and governance. The Microsoft Azure App Service is a PaaS used to rapidly build an application that may be web- or mobile-based that can be highly available, scalable, and flexible. Microsoft Azure provides other PaaS offerings—DBMS, App Insights (preview), and so on.
In the next section, we will cover all Microsoft Azure PaaS offerings that we will discuss in this book.