| By Dustin Amrhein | Article Rating: |
|
| May 15, 2009 10:00 PM EDT | Reads: |
3,507 |
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,507
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.
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Journal Opens "Readers' Choice Awards" Nominations
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Industry Experts Discuss the State of Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- It's the Java vs. C++ Shootout Revisited!
- The End of IT 1.0 As We Know It Has Begun
- An Introduction to Abbot
- Java Kicks Ruby on Rails in the Butt
- Interviewing Java Developers With Tears in My Eyes
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- 1st Annual Government IT Expo: Call for Papers Deadline July 15
- How to Diagnose Java Resource Starvation
- REA Is Where RIA Becomes the Norm
- Kindle 2 vs Nook
- Anatomy of a Java Finalizer
- Why IBM’s Server Chief Got Busted
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?




























