Archive
Cloud’s impact on programming models: Delivery and languages
February 20, 2014 | Written by: Rene D. Svendsen
Categorized: Archive
Share this post:
In the previous blog posts in this series on cloud computing’s impact on programming models, I covered hosting in the cloud, cloud orienting your application and leveraging cloud provided services.
While the cloud itself does not necessarily require new programming models and languages, several new and simplified ones have emerged. In this blog post, I will take a closer look at the application development platform, approaches to development and programming languages.
Delivery models
Cloud computing technologies have predominantly focused on hardware optimization using the infrastructure as a service (IaaS) model or delivery of entire applications using the software as a service (SaaS) model. But with the support of industry leading companies, such as IBM, Intel, NTT, SAP and Verizon in building an open platform as a service (PaaS) ecosystem (Cloud Foundry) there is a chance that adoption of PaaS will finally take off.
Interest in cloud is providing an opportunity to rethink the application platform, review vendor messages and determine how application development and application architecture should change to support cloud benefits and characteristics.
This interest is driving a new type of developer: one who is “born on the web” and who sees how applications are built in a different light. They have access to many new tools from across the whole web that they can draw upon. They are starting to adopt new products and approaches to development such as rapid application development (RAD), agile software development, DevOps and fourth generation languages.
Languages
The autonomy from IT provided by the cloud has freed developers from being told which programming models and frameworks they are allowed to use. Java is often viewed by the developer community as being more IT configuration-oriented and not as dynamic (which is seen as a must have by many cloud developers). It is also heavy, requiring and consuming large allocations of memory resources that are typically over-committed in cloud environments.
This has caused a significant increase in the use of programming models and frameworks which provide an enhanced developer user experience and more dynamic conventions, such as Ruby on Rails, Python, hypertext preprocessor (PHP) and others. It is estimated that over 70 percent of “born on the web” applications are not Java.
While the cloud itself does not necessarily require new programming models and languages, by coincidence several new and simplified ones have become popular.
Simplifying cloud development means simplifying the purely development aspects as well as the run-time and operational ones. A simple cloud programming model would ideally shield the developers from the details of these types of tasks, while not limiting the capabilities available to the developers. Additionally, a great cloud programming model would also include other cloud-specific attributes such as:
- Portability across clouds
- Portability across frameworks
- Ease of scaling
- Resiliency options
- Allowance for gradual adoption of features
Using domain specific languages (DSL), a program can be written with the terms and language of a particular domain so that the program reads like an “essay” about that domain. DSLs can be used in cloud programming to relieve the developer from having to worry about the physical resources needed to develop, test and deploy their application workloads.
Most of these DevOps can be automated and easily executed for various workloads. DevOps automation (also runbook automation) is its own system subfield that requires intricate knowledge of various systems components, how to install them, how to patch them and how to debug them when errors in the workload occur.
To facilitate the tasks of DevOps teams, various open source tools and companies have made use of DSLs, essentially a domain language that facilitates these operations and their automations.
Examples include the Chef automation tool/language as well as the Capistrano. In both these DSLs, developers capture their automation as an instance of the DSL (often called a recipe) which can easily be shared and executed to replicate an entire environments (virtual machines, storage, images and so on) in the cloud.
In my next blog post in this series on cloud computing’s impact on programming models, I will focus on developers whose primary focus is on integrating applications and their evolving role in cloud computing.
Cloud computing’s impact on programming models
Part 1: Hosting on the cloud Part 2: Orienting your application for cloud Part 3: Leveraging cloud-provided services Part 4: Delivery models and languages Part 5: Integrating applications Part 6: The business unit developer |
Why we added new map tools to Netcool
I had the opportunity to visit a number of telecommunications clients using IBM Netcool over the last year. We frequently discussed the benefits of have a geographically mapped view of topology. Not just because it was nice “eye candy” in the Network Operations Center (NOC), but because it gives an important geographically-based view of network […]
How to streamline continuous delivery through better auditing
IT managers, does this sound familiar? Just when everything is running smoothly, you encounter the release management process in place for upgrading business applications in the production environment. You get an error notification in one of the workflows running the release management process. It can be especially frustrating when the error is coming from the […]
Want to see the latest from WebSphere Liberty? Join our webcast
We just released the latest release of WebSphere Liberty, 16.0.0.4. It includes many new enhancements to its security, database management and overall performance. Interested in what’s new? Join our webcast on January 11, 2017. Why? Read on. I used to take time to reflect on the year behind me as the calendar year closed out, […]