Applications on Network Services

By Darryl K. Taft  |  Posted 2011-03-28

Will PAAS Solve All Developer Ills?

When it comes to the alphabet soup of cloud computing, at least one vendor is staying above the fray. Amazon Web Services, whose offerings include IAAS, PAAS and SAAS (infrastructure, platform and software as a service), is intent on not being grouped under any particular label.

"We don't spend any time talking about the acronyms," Andy Jassy, senior vice president of AWS, told eWEEK. "All those lines will get blurred over time. It's a construct to box people in and it fits some stack paradigm. We started with raw storage, raw compute, and raw database in SimpleDB. And we've added load balancing, a relational database, Hadoop and Elastic Map reduce, a management GUI... All those lines start to get blurred, and you can expect to see additional abstraction from us."

Amazon Web Services' objections aside, the January release of the company's Elastic Beanstalk service offers an excellent example of PAAS, versus IAAS: Developers upload their Java applications into the Elastic Beanstalk service, and Amazon handles all the capacity provisioning, load balancing, auto-scaling and application-health-monitoring details. The PAAS service taps lower-level AWS services to do the work, with compute power provided by Amazon's Elastic Compute Cloud, an archetypal IAAS offering.

If you mapped an existing IT organization to the new world of the cloud, your IT operations team would be the IAAS layer, the standard applications (email, social, office, ERP, CRM, etc.) would be available as SAAS, and the custom applications would run on a PAAS, Sacha Labourey, CEO and founder of Java PAAS player CloudBees, told eWEEK. So all three of them are really important as companies move toward the cloud, he said.

Ross Mason, CTO and founder of MuleSoft, which offers an iPAAS (integration platform as a service) solution, said, "SAAS changes the way we acquire applications, IAAS changes the way we deploy and consume infrastructure and PAAS changes the way we build applications. Platform is the magic word; it creates a development platform for building software in the cloud. It's important to understand that, like enterprise software platforms, the PAAS universe is evolving to serve various development communities, e.g., languages, as well as serve different functions."

Bob Bickel, an advisor at CloudBees and chairman at eXo, said, "PAAS is for developers what virtualization was for system administrators. Virtualization let sys admins forget about the underlying servers and to really share resources a lot more effectively. PAAS will be the same, and in a long-term vision really supplants lower layers like OS and virtualization as being the key platform custom apps and SAAS are deployed on."

Patrick Kerpan, president, CTO and co-founder of CohesiveFT, a maker of onboarding solutions for cloud computing, told eWEEK: "The significance of PAAS will be the transition from OS-based features to network-based features, that take advantage of growing customer acceptance of the idea and the fact that their information assets (their -stuff') is -out there somewhere' and the increasing ability of PAAS (and applications built on top of it) to seem more local, controlled and secure."

Applications on Network Services

Applications will be built on network services. This is already happening.

"The longest pole in the tent is the evolution of the mindset of enterprise IT and of ISVs," Kerpan said. " This is a generational thing and can't be hurried."

And users appear to be buying in. Charles Teague, CEO of Lose It!, maker of a top-selling iPhone weight-loss application, said, "The CloudBees PAAS makes it straightforward for Lose It! to run a high-volume, data-intense Website handling 15,000 reads per minute with very little operational overhead. Their technology and service has allowed us to focus on creating the best product we can."

And Microsoft, whose Windows Azure cloud-computing platform offers elements of IAAS, SAAS and PAAS, also has its appeal to users.

"For a very small investment, we can try a new project and see if it works, close it down tomorrow or ramp it up immediately," said Eugene Shustef, chief engineer of Global Document Outsources at Xerox. "The Windows Azure platform enables us to do that; cloud computing lowers the barrier to innovation."

Using Microsoft technology, Xerox built Xerox Cloud Print, a cloud-based printing service that allows users to route a printing job to any available public printer directly from their mobile devices. Now, when employees are traveling on business, they can do things like quickly printing a presentation for tomorrow's client meeting. By running Windows Azure and SQL Azure, developers were able to build Xerox Cloud Print in just four months, Xerox officials said.

"This is the big advantage to developers," MuleSoft's Mason said. "With PAAS, they can now spin up their newest applications in minutes without going through the usual rigmarole of installing database, application runtime and other third-party software, before writing a line of code. A PAAS also means that patches and upgrades are managed by the PAAS provider, freeing the developer to just think about one thing-their app."

Robin Purohit, vice president and general manager for software products at HP, explained: On one hand, it's the Holy Grail of application development-"just code away and the platform will automatically handle scalability, availability, provisioning, upgrades, monitoring, etc. Conversely, there is no free lunch, so developers who think they can just forget about the --ilities' in their design may be creating an even tougher-to-manage application than previously possible."

Hewlett-Packard CEO Leo Apotheker recently cited PAAS as a direction HP will soon take. Initially, HP will offer tools supporting PAAS development.

However, think of the developer building code in a specific language and packaging it for deployment to a specific platform-for instance, an EAR (enterprise archive) or WAR (Web application archive) file for a J2EE (Java 2 Platform, Enterprise Edition) container. The platform (i.e., the J2EE container) provides a "contract" about how applications can use the facilities of the platforms (e.g., security, transactional integrity or management), and these facilities are made available at the time of deployment when the application "binds" to them, Purohit said. For PAAS, the same type of contract is going to be required even if PAAS vendors offer language-agnostic platforms. That way, applications can bind to facilities in the platforms that are common to the applications (even if configured differently for the application).

However, with all the benefits of PAAS, are there any drawbacks? For instance, is lock-in a concern?

"There is a strong danger of lock-in with most PAAS offerings," Che said. "To avoid lock-in, you must be able to write your app in the framework/language of your choice and deploy on the cloud of your choice. If you can only write to a proprietary API that is only available in one PAAS, you can never move your app somewhere else since those APIs don't exist elsewhere. Furthermore, you can't bring existing apps into that PAAS since they weren't written for those proprietary APIs."

"Microsoft provides partners and customers the choice and flexibility to leverage the infrastructure they already have in place so they can utilize their existing skills and extend their investments to the cloud," Ketkar said. "As part of this, we've embraced support for open standards and other development environments as a platform principle. This includes support for Java, PHP, Ruby and Python, as well as the same standard protocols that advanced the Web, including HTTP, XML, REST and SOAP."

"The level of lock-in will depend on the language/environment being run, the database hosting the data, etc.," Labourey said. "When leveraging a Java PAAS storing its state in a well-known database, the lock-in is typically very weak as it is relatively easy to replicate a compatible environment in-house. However, a PAAS using its own language and storage mechanism (such as Salesforce.com's own proprietary language and database) will generate a pretty extensive lock-in. But this is similar to a company using something like PowerBuilder for its developments."

And eXo's Mestrallet added, "The vendor locking risk is at the IAAS and SAAS layers. With PAAS, vendors try to attract developers.  Whatever the language they use to code, those developers work with open frameworks that PAAS vendors support. If we look at the Java PAAS market, all vendors offer a standard way to deploy Java applications (WARs), and unless the developer is using a dedicated API for storage or caching (which they do not have to in existing PAAS), the applications are portable from one PAAS to another."

What's important to keep in mind when developing for PAAS?

Kerpan offered a checklist or set of rules that every budding developer contemplating an application-development career or an entrenched one refreshing an existing application development career in the face of the cloud should adhere to:

  • There is no metal.
  • Nothing is where you are.
  • Asynchronous and event-oriented behavior are everything for your application. API's are everywhere.
  • Long-running transactions will be part of everything, not an exception.
  • Features and functions that appear across a range of devices (including desktops, kiosks, tablets and smartphones) are collectively THE user interface to your application, not different user interfaces.
  • Frameworks that abstract multiple PAAS platforms (which would be things like Spring will do and Rails will do) might be the place to focus effort.
  • Don't give up your day job; it will take longer than you think.



Rocket Fuel