Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Development Tools For Cloud Computing - Two Paths

DZone's Guide to

Development Tools For Cloud Computing - Two Paths

· Cloud Zone
Free Resource

Deploy and scale data-rich applications in minutes and with ease. Mesosphere DC/OS includes everything you need to elastically run containerized apps and data services in production.

Development Tools For Cloud Computing - Two Paths

For cloud computing to take off, there need to be tools available that enable a developer to build and deploy an application without having to download anything to their desktop. This requires an on-demand development tool that sits on top of the cloud and provides a development Platform as a Service (PaaS).

There are two paths that a vendor can take to create a development platform for cloud computing: cloud-first or tool-first.
  • Cloud-first approach to PaaS: first build a cloud platform, then build a development tool that runs on top of it. This is the approach pioneered by Force.com and followed by Coghead and Bungee Labs.

  • Tool-first approach to PaaS: first build a development platform that is host-able tool (e.g., studio runs in a browser), then "push" that platform into the cloud. This is the approach taken by WaveMaker.
For Force.com, it made a great deal of sense to take the cloud-first approach. SalesForce.com already had a robust cloud platform and expertise in building proprietary development tools to create their CRM application. There was also no requirement to make Force.com work on any other cloud, because SalesForce is aiming to be the only cloud you will ever need for all your enterprise apps.

For most software vendors, however, the cloud-first development process has distinct disadvantages. First of all, it puts you in the data center operations business, which requires a very different DNA than software development. Next, it makes development itself difficult, because the cloud adds a level of indirection and complexity to all development tasks. Finally, you will be forced to do cloud port eventually to get to a SaaS cloud people want to deploy on, like Amazon EC2 or Google App Engine (assuming they ever exit the Python ghetto).

A tool-first approach to PaaS development is much more straightforward. You start by creating a host-able development studio (pretty much rules out Eclipse plugins) and do your build and test on standard hardware. After you have build a solid product, you add multi-tenancy to the studio and customize deployment for your cloud of choice (or use a partner like Elastra to do the deployment and administration for you).

A final oddity of the cloud-first vendors is that they have all delivered proprietary development platforms. This provides a "roach motel" level of lock-in - your logic and data can checkin, but just try moving them to another RIA or Ajax platform! Again, SalesForce can throw its 500-pound gorilla weight around and make the Apex language successful. It is hard to imagine, however, that 5 years from now people who have learned the Coghead language will be in more demand than, say, Java developers.

Discover new technologies simplifying running containers and data services in production with this free eBook by O'Reilly. Courtesy of Mesosphere.

Topics:

Published at DZone with permission of Chris Keene, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}