| By Dustin Amrhein | Article Rating: |
|
| May 15, 2009 10:00 PM EDT | Reads: |
3,494 |
It seems like just about every cloud computing discussion with a development audience results in the same question being asked: “Why does this matter to me?” As cloud computing first appears to be primarily an operational-centric paradigm, it is easy to understand the reason this is asked. This question can be answered in a variety of ways. Some may say that cloud computing doesn’t affect the developer in any way, while others will say developers need to totally revamp their skill set to cope with the new landscape proffered by cloud computing. The truth, as always, is somewhere in the middle.
Though the industry is still in a bit of disagreement on exactly how to define cloud computing, it doesn’t seem there is a lot of disagreement with the idea of a three-layer cloud. At the top is the Application Services layer, followed by the Platform Services layer, and then the Infrastructure Services layer. For a rough summary, the application services layer constitutes SaaS offerings, the platform services layer encompasses platforms in the cloud like the Google App Engine, Force.com, etc., and infrastructure services provide underlying compute resources like processing and networking in the cloud, think Amazon’s EC2. There are numerous posts discussing what makes up each of these three layers, so instead of turning our focus there, let’s discuss the impact to the enterprise developer in each of these three cloud layers.
On first look at the application services, or SaaS layer, we may not immediately think of developers. More often than not, CRM software, email, collaboration solutions, and other similar offerings come to mind. However, there are at least two ways in which the services in this layer impact the enterprise developer. For one, there is the possibility of more and more development tooling environments moving into the clouds. By extending development tooling in the software as a service model, these often compute intensive offerings could get their resources from a capable cloud instead of the comparably weak personal machines developers often have. In addition, as in all SaaS offerings, the provider is charged with monitoring and maintaining the software, and this means developers put more of their focus and time toward software development.
The effects of cloud computing on developers are probably most palpable in the platform services layer. This is where we find platforms like the Google App Engine, Force.com, etc. hosted in the cloud. If an organization chooses to go the route of a cloud-hosted platform, developers need to get up to speed on the layout of that platform including the APIs offered and the application deployment and packaging strategy. Across the different platforms there will likely be support for a common set of languages like Java, PHP, Python, and more, however, there will also be services and APIs unique to each of the platforms. For instance, the Google App Engine offers the Google Accounts service to applications running on its platform. This service allows developers to authenticate a user of their application using the user's Google account credentials. In addition, different platforms offer different connectivity and integration services. These capabilities are important when connecting applications running on the cloud-hosted platform to components running elsewhere. When leveraging platform services in the cloud, enterprise developers need to go beyond their current skill set and educate themselves in the services and APIs offered by the platform in order to utilize its full potential.
The infrastructure services layer likely impacts the enterprise developer the least. These services are typically consumed by the higher level services in order to either provide a platform or software as a service. This is not to say though that developers can be blissfully ignorant of an infrastructure cloud service being utilized within their organization. In some cases, such as the case with Amazon’s EC2, the infrastructure comes with a complimentary set of capabilities such as storage and message queuing. At the least, developers should be aware of the characteristics of the infrastructure. For instance, when developing an application it would be good for a developer to know if an infrastructure can dynamically scale based on request volume. If so, the developer is likely in the best position to convey information about the metrics used to decide when to scale the infrastructure. If the infrastructure doesn’t dynamically scale, developers and architects need to be aware of this when originally designing the system. This allows them to architect and implement solutions that mitigate this limitation.
Cloud computing is here and developers need to be ready. If you are an enterprise developer whose organization is looking to cloud computing solutions be proactive. Research the different layers of the cloud your company is interested in, understand the impacts to you and your job, and voice your opinion about the direction that should be taken. If you have any thoughts on development in the cloud, let me know below or send me a note at wscloud@us.ibm.com.
Published May 15, 2009 Reads 3,494
Copyright © 2009 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Dustin Amrhein
Dustin has held various jobs in software design and development including web-based application development, distributed system infrastructure development, and Web 2.0 runtime architecture design. In his current role, Dustin is a technical evangelist for IBM emerging technologies in the WebSphere portfolio. Follow him on Twitter @WebSphereClouds and visit the IBM WebSphere emerging technologies page.
- Oracle To Keynote Cloud Computing Expo
- The Economics of Cloud Computing Analyzed
- The Difference Between Web Hosting and Cloud Computing
- GovIT Expo Highlights Cloud Computing
- Cloud Computing Best Practices
- Gang of Four Creates Cloud BI Stack
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Citrix Aims To Cripple VMware’s Cloud Designs
- Product Evaluation: JBoss TCO Calculator
- Platform as a Service Journal Launched on Ulitzer
- An Introduction to Abbot
- Oracle To Keynote Cloud Computing Expo
- Will Ulitzer Dominate News Content on The Web? -Gartner
- REA Is Where RIA Becomes the Norm
- The Economics of Cloud Computing Analyzed
- Software AG Named "Gold Sponsor" of SOA World Conference & Expo 2009 East
- The Difference Between Web Hosting and Cloud Computing
- GovIT Expo Highlights Cloud Computing
- Cloud Computing Best Practices
- Gang of Four Creates Cloud BI Stack
- Java vs C++ "Shootout" Revisited
- Where Are RIA Technologies Headed in 2008?
- Configuring Eclipse for Remote Debugging a WebLogic Java Application
- Migrating a JBoss EJB Application to WebLogic
- XA Transactions
- An Introduction to Abbot
- WebLogic Tutorial: "Integrating Apache Poi in WebLogic Server"
- Eclipse "Pollinate" Project to Integrate with Apache Beehive
- Failover and Recovery of Enterprise Applications - Part 1
- Cover Story: A Practical Solution to Internationalization of a J2EE Web App


































