This content is part of the Essential Guide: ALM best practices for advanced DevOps organizations

How to choose between PaaS development and in-house app dev

This tip compares the important factors when choosing between PaaS development and in-house app development.

The advent of the cloud brought platform as a service build-and-deploy environment options to application developers....

Even though moving from in-house development labs to virtual PaaS labs seems like a no-brainer, in-house development still has benefits, the greatest one being control. Also, choosing a PaaS offering can be difficult because there are so many flavors of it, ranging from tailored vertical packages to integrated development suites from Microsoft, Google, Amazon AWS and others. In this article, I'll cover some of the important factors to consider when deciding between in-house or PaaS development.

Initial and ongoing costs

The initial costs to purchase and set up an in-house development environment are definitely higher than using a PaaS deployment. First, there are the capital expenditures required for high powered development and test hardware as well as hardware required to test and deploy your application. Even if you're running in a substantially virtualized environment, you still need to ensure that you have the physical servers required to develop, test and deploy your solution, and that they have the capacity to do so. That often requires additional hardware and infrastructure costs. Plus, whether you are running in a virtualized environment or not, there are still licensing costs for the development and server operating systems; development software; and all the required server applications, like SQL Server or SharePoint, that you may require to run your solution.

There is no doubt that the costs for a PaaS development environment are initially much lower than the costs for in-house development. There are no required capital expense outlays because you are taking advantage of the cloud vendor's existing PaaS environment. In addition to the capital saving on direct hardware costs, there is saving for software licenses. Plus, developing in the cloud requires less on-premises infrastructure. There are fewer electrical costs as well as lower cooling and networking requirements. PaaS typically uses a subscription model with a monthly billing cycle that's based on the computing resources that you consume.

Ongoing costs are also a consideration. Many businesses are on a five-year-replacement cycle for their desktop and server systems. This means that even over the long term a PaaS development solution with its monthly costs may be less expensive than the recurring replacement and upgrade costs for the hardware and licensing needed to support in-house development.

Ownership and operations

In-house development requires servers, IT infrastructure hardware and software licenses that are typically physically located on the organization's property. The procurement, setup, operations and ongoing maintenance is entirely the organization's responsibility. This means that there are higher operational efforts and costs required. However, this means that the organization also has full control over all aspects of the environment.

PaaS development solutions in cloud offer lower operating costs than in-house development. The PaaS development model eliminates the need for organizations to manage the underlying infrastructure. There is no need to maintain hardware or operating systems. This results in lower operating costs and less effort required to maintain the environment. This can enable you to be more efficient as you don't need to worry about hardware maintenance, capacity planning, software maintenance, patching, troubleshooting or any of the other ongoing concerns that are required to maintain an effective on-premises computing environment.

Performance and control

While in-house deployments tend to be more costly and more time consuming to manage, they offer advantages in control and sometimes can have performance advantages as well. With in-house development you have full control over the resources involved.

You can configure them the way you want and are in full command of all of the compute resources, network access and storage policies that are used. This also means that with in-house development you have the ability to dedicate all of the resources you need, or can afford, to your development environment and application. This can result in the ability to provide higher levels of performance than a shared cloud solution.

With PaaS environments you have control and the ability to configure your development tools and the applications that you run, but you cannot control the underlying hardware or operating environment. PaaS has built-in scalability, and you can buy more computing resources, but it will always be a shared environment where resources are pooled across multiple customers and multiple workloads will be serviced simultaneously. This can limit the ability to match the performance you can get from an in-house deployment.

Flexibility and scalability

PaaS cloud options offer advantages in flexibility and scalability. If you create a development environment or deploy an application in-house and then find that you have underestimated the resource requirements for that application, then you need to undertake time-consuming and possibly expensive upgrades to the infrastructure. This might even entail buying new servers. This is not a quick or flexible solution because you typically would need to would wait for approvals and deployment. PaaS development offers much more flexibility for changing and upgrading your environment. You can simply purchase additional compute or I/O capacity to scale up and cope with demand peaks. These upgrades can happen very rapidly -- sometimes in minutes.

Time to market

If you can utilize existing virtualized development, test and staging environments, then the time to market an in-house development effort and a PaaS effort are about the same. However, if you need to implement a new development environment, then a PaaS solution can accelerate the software development process. PaaS applications can be built more rapidly because of the time it takes to provision the development, testing and staging environments. This can give the organization more time to focus on the development and quality of the software itself rather than needing to spend time and effort to set up and configure the infrastructure.

Weighing cost versus control versus …

When you compare the suitability of in-house vs. PaaS development options, the best answer is the one you often hear in IT: It depends. For some businesses, the cost and operational savings provided by PaaS will make it the better choice. Other organizations with more resources at their disposal may find the control and customization provided by in-house environments makes them the better choice.

Next Steps

Learning about PaaS development options

Private PaaS offerings

Blurring the lines of PaaS and IaaS

Dig Deeper on PaaS and other cloud development platforms