Cloud Programming Described
(c) 2013 kevin languedoc (klanguedoc)
The Internet (World Wide Web) has been a non stop revolution on all our lives since its inception during the 1990s. In the last decade we have all seen an explosion of information through web logs (blogs) and social networking (Facebook, MySpace, Google+, Twitter to name but a few). We have also seen to proliferation of web business applications like Google Apps, Google Maps, GMail, Salesforce.com, Taleo and Amazon’s Web Services. These new business applications and public web services are part cloud computing because they exist on computers located on some distant data center and are accessible only through a browser.
Why is it called the Cloud
Someone once asked, “How do I get the Cloud” and “What is the Cloud”. The Cloud is basically software delivered as a service and delivered or offered through the Internet. Back in the day geeks like me used a cloud symbol to represent a public network, specifically the Internet. This term and symbol was adopted to represent a specialized use of the Internet. This specialization offers services to users, usually for a fee.
Cloud Computing services or applications comes in many forms, some are better known than others like GMail, or Hotmail and DropBox, while others are somewhat less own to the general public but are widely used like Amazon’s Web Services or EC2 (Elastic Computing 2). Every aspect of IT today can be offered as a Cloud computing service as the following depicts.
This is software as a service
PaaS means platform as a service like Heroku or Force
Network as a service
Infrastructure as a service
Storage as a service
Security as a service
Desktop or Data as a service
Database as a service. This can be SQL Server Azure, Amazon EC2, Database.com or Feebase
Test as a service
API as a service. Check our the programmable web, mashable or APIfy web sites. These are APIs that are offered as a service.
Backend as a service
IDE as a service. This allows a developer to create apps completely in the cloud
Integrated Platform as a service.
Do you use Cloud based applications
Programming in the cloud is still in its infancy but is growing rapidly. Cloud programming comes in two popular forms: developing apps completely in the cloud or using a desktop application like Eclipse to develop the app and then upload this code to the cloud.
Salesforce.com has been a pioneer in offering developers the tools and platform to develop apps that can be integrated in their popular CRM software. Their app development platform is called Force.com and you can use the Eclipse IDE with the Salesforce.com plugin to develop apps that will then be uploaded to the Salesforce.com servers. Salesforce also offers develop an online IDE for developing VisualForce and Apex code. This IDE is accessible directly through Force.com. You can create a free developer account to develop apps, however you will need a license to make them accessible to the community.
Salesforce also offers the Heroku application development platform. Using this service, you can create apps using python, Clojure, Java, node.js, Ruby and Scala. You rent space on their servers for application hosting.
There are also a slew of other offerings for cloud (web) based application development. But to support this Cloud based development and to be fully Cloud based, you also need to be able to develop applications using a Cloud based IDE like Cloud9.
eXo is another platform that offers an Cloud IDE. This full feature development platform also developers to deploy their apps to the Google App Engine (Google Apps) or Heroku. The developer has seemly access to most of of the top top PaaS vendors like Amazon, AppFrog, Google, Cloud Bees, Cloud Foundry and OpenShift. Like the others, eXo supports web based programming languages and technologies and integrates with GitHub. Another interesting feature is eXo’s ability to VM (Virtual Machines) and integrate with Spring or build with Maven.
Application development in Cloud will and is the next quantum leap in this evolution that started with with centralized development so long ago. Cloud will surpass Mobile as everything will get blended together. Meaning you will access your apps in Cloud from any device.