Enterprise IT viewpoint article contributed by Abraham Sultan
Cloud computing seems to be everywhere we look these days, from successful SaaS companies to infrastructure as a service providers like Amazon. In particular, there’s been a lot of activity around Platform as a Service (PaaS) and private PaaS.
As activity starts to increase and more options are available in the market, it becomes harder to evaluate the choices. To help provide a framework for evaluation, here’s my list of five top qualities to keep in mind when implementing an enterprise private PaaS solution.
Use these key points to help you make a decision on which technologies to use:
1) Infrastructure Independence
Lock-in is a real cloud concern, so being able to choose where to deploy and operate your own PaaS should be no different – and it might be more important than you think.
Changes in regulations and market conditions might require that you change where you run your PaaS. This is an area where concerns like cost savings, government regulations, performance and service availability might push you in one direction one day but another direction the next. So make sure that you will be able to stay independent and setup your PaaS wherever you want or need!
2) Developer Productivity Gains
Developer productivity improvements are best measured in two ways: cycles a developer no longer wastes in auxiliary tasks such as application deployment, and cycles a developer saves with respect to writing code to accomplish a specific outcome.
Make sure your PaaS provides value in both of these categories. Platform services such as a rich execution runtime, distributed caching, & message brokering are some key systems to look for. Additionally, ensure that your PaaS provides a robust model for deploying and managing your applications. Focusing on these two tiers of value will ensure tremendous productivity gains.
Last, make sure that your existing investments in libraries and tools won’t go to waste. Cloud paradigms require new development approaches but core building blocks should be reusable and you should be able to leverage most if not all of them with your PaaS.
3) Increased Resource Utilization
Thanks to the introduction of virtualization technology we’ve been able to squeeze more cycles out of our physical infrastructure by taking advantage of idle capacity.
Interestingly, we still have yet to hit physical limits on extracting even more efficiency: the next step is to run multiple workloads within an OS instance. Running more than a single workload in 1 OS instance has been frowned upon with good reason; there hasn’t really been a sure way to guarantee cohabitation of applications in an OS instance and still meet proper SLA requirements around available resources.
So instead, IT shops have relied on virtualization to carve-out a full VM for each application workload and let the OS handle the rest.
This, my friends, is a thing of the past! Many of today’s PaaS options offer true intra-OS resource isolation to make sure that application workloads can safely coexist in a single OS instance without interfering with each other. Further, you will also get utilization metrics at the application level that are unavailable to the hypervisor so you can really start getting next-gen utilization on the metal. You can make new informed decisions that you’ve never been able to make before!
4) Workflow Extensibility and Customization
Leveraging services and components for your application can be a huge developer productivity gain, but you also need to make sure that you are leveraging the right services for your organization.
For example your PaaS runtime might offer authentication services but if you can’t plug in the required authentication provider that your organization uses then this is pretty useless.
Similarly you should be able to customize the different workflows of your PaaS runtime, like where to deploy certain application workloads, specialized application needs, application compliance verification rules, etc.
The bottom line is that you don’t want to change how you do everything just because you’ve got a new fancy tool; you want to make sure that the tool can accommodate your fancy needs and boost your processes for increased ROI.
5) Deep Stack Support
Last but not least there is deep stack support. There certainly is no lack of opinion on this topic. Some subscribe to the idea that a PaaS offering should support more breadth and less depth, while others, such as me, believe in rich depth value but fewer languages.
My opinion is that in order to properly meet the other four PaaS criteria with the highest possible value, a best of breed approach is the only way to go. History has shown that people tend to pick the best tool for the job instead of one tool that fits all – particularly in enterprise IT.
Also, most software development in enterprise IT will be done in one or two languages, with a small percentage of development being done in a myriad of other languages. So when choosing your PaaS runtime make sure you are not leaving any value on the table, and that you’re implementing the solution that gets you the most bang for your buck, even if that means that you’ll implement two or three different PaaS options for the various runtime stacks in your IT organization.
Abraham Sultan is Co-Founder & VP of Engineering at Apprenda. Previously, he held positions at the State University of New York (SUNY), Informz and Eden Communications. He holds a Bachelor of Science in Computer Science from Rensselaer Polytechnic Institute, where he graduated Cum Laude. Sultan is a frequent speaker and panelist at industry events.