Achieving success with Platform as a Service is a challenge for many organizations. From language support to infrastructure flexibility, development managers have a lot to consider when it comes to choosing the right Platform as a Service for their cloud development needs. Recently, SearchSOA.com spoke with Geva Perry, former general manager of the cloud computing business unit at GigaSpaces Technologies, about how to achieve a state-of-the-art PaaS today.
The conversation with Perry took place as part of the TechTarget BAA Group's Java University. This series covers Java development issues, as well as important technologies that have come to affect Java in recent years.
Perry, an enterprise cloud advisor with more than 15 years of experience as a high tech industry executive, first clarified the relationship between cloud development and Platform as a Service (PaaS). "PaaS is not necessarily development in the cloud," he explained. "The development is usually still on the developer's local machine. PaaS' goal is to ease the deployment [of] runtimes of applications."
In order for a PaaS to accomplish those goals for an organization, there are a few key questions development teams need to ask of vendors: what languages are supported, how much scalability can be achieved and how easy it will be to move applications off the PaaS in the future.
Naturally, developers versed in Java look to work in Java. Java tools have appeared in cloud computing, but that wasn't always the case. Java used to be less conducive to PaaS, mainly due to its large number of technical components, according to Perry.
"When cloud first started, it was mostly focused on Infrastructure as a Service, so it didn't really matter what the programming language was," Perry said. Today, the situation is much different. "[Now] there are several PaaS offerings that specifically address Java."
Depending on the Java tools those offerings employ, developers can expect different levels of the familiar software fetter known as lock-in. People may expect the cloud to be different, but it can be a road to unintended lock-in. An application's code has to be written in a certain way in order to run on a particular PaaS, but some platforms are more restrictive than others. "That's something that developers should pay attention to," he advised. You should ask: What are the implications if you ever want to move your application off of that PaaS?
Before settling on a PaaS, companies also need to consider the issue of scalability. For many, the big selling point of PaaS is that it does much of the heavy lifting when it comes to creating scalable infrastructure. "The beauty of it is that you only focus on your unique business logic, or the unique code that makes your application special," explained Perry. "[The PaaS] will take care of scalability, high availability, performance issues, configuration and updates of all sorts of things -- maybe even certain elements of security."
Still, some developers might find that achieving a state-of-the-art PaaS is a balancing act. "You're trading off ease of use with control, and flexibility with control of the infrastructure," he said.