Welcome!

@CloudExpo Authors: Yeshim Deniz, Pat Romanski, Elizabeth White, Zakia Bouachraoui, Liz McMillan

Related Topics: @CloudExpo, Java IoT, IBM Cloud, Linux Containers

@CloudExpo: Blog Post

Should Developers Care About Cloud Computing?

An introduction to cloud computing for developers

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.

Beyond the movement of development tools toward a SaaS model, the proliferation of consumable services in the cloud has and will continue to have an impact on the way developers and architects design IT systems. Services in the cloud, both private and public varieties, become part of the overall SOA for an organization. This means considerations of securing services, mediating service requests, and otherwise governing services applies across multiple domains now. Cloud services can provide a powerful boost to the SOA capabilities of an organization, but the ramifications of extending that SOA across multiple domains and into clouds should be considered by enterprise developers and architects as early as possible.

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 [email protected].

More Stories By Dustin Amrhein

Dustin Amrhein joined IBM as a member of the development team for WebSphere Application Server. While in that position, he worked on the development of Web services infrastructure and Web services programming models. In his current role, Dustin is a technical specialist for cloud, mobile, and data grid technology in IBM's WebSphere portfolio. He blogs at http://dustinamrhein.ulitzer.com. You can follow him on Twitter at http://twitter.com/damrhein.

CloudEXPO Stories
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the competition, or worse, just keep up. Each new opportunity, whether embracing machine learning, IoT, or a cloud migration, seems to bring new development, deployment, and management models. The results are more diverse and federated computing models than any time in our history.
On-premise or off, you have powerful tools available to maximize the value of your infrastructure and you demand more visibility and operational control. Fortunately, data center management tools keep a vigil on memory contestation, power, thermal consumption, server health, and utilization, allowing better control no matter your cloud's shape. In this session, learn how Intel software tools enable real-time monitoring and precise management to lower operational costs and optimize infrastructure for today even as you're forecasting for tomorrow.
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical Infrastructure as a Service cloud provider but it's been designed around data privacy," explained Julian Box, CEO and co-founder of Calligo, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Isomorphic Software is the global leader in high-end, web-based business applications. We develop, market, and support the SmartClient & Smart GWT HTML5/Ajax platform, combining the productivity and performance of traditional desktop software with the simplicity and reach of the open web. With staff in 10 timezones, Isomorphic provides a global network of services related to our technology, with offerings ranging from turnkey application development to SLA-backed enterprise support. Leading global enterprises use Isomorphic technology to reduce costs and improve productivity, developing & deploying sophisticated business applications with unprecedented ease and simplicity.
While a hybrid cloud can ease that transition, designing and deploy that hybrid cloud still offers challenges for organizations concerned about lack of available cloud skillsets within their organization. Managed service providers offer a unique opportunity to fill those gaps and get organizations of all sizes on a hybrid cloud that meets their comfort level, while delivering enhanced benefits for cost, efficiency, agility, mobility, and elasticity.