Only one or two of the articles I read per year are real eye-openers. My favorite one in 2019 was Cusomano’s “The cloud as an Innovation Platform for Software Development” [Cus19].
I realized: The cloud unlocks a gigantic innovation potential for the business if used effectively by developers.
Cloud computing builds on three main pillars:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Best known are IaaS and SaaS.
Everyone has already been using SaaS for years: Google Docs, Salesforce, Hotmail etc. They are convenient for users – and for the IT department. SaaS takes away the burden of installing, maintaining, and upgrading software.
IaaS is thriving as well. Many IT departments have migrated some or all their servers to the cloud. They rent computing and storage capacity from a cloud vendor in the cloud provider’s data center. Thus, IT departments do not have to buy, install, and run servers anymore – or care about data center buildings and electrical installations.
Companies and IT departments benefit from IaaS and SaaS in many ways. Costs shrink. There are no big upfront investments anymore. They get immediate and unlimited scalability, high reliability, or any combination of that. This is convenient for developers, engineers, and IT managers.
However, PaaS – platform as a service – and not IaaS and SaaS are the drivers for business innovations.
IaaS and SaaS revolutionize the IT service delivery. You save time because you do not have to wait for hardware. You save money because you do not have to install software updates.
If your CIO is a fast mover, he or she has some competitive advantages for one, two, or three years before all your competitors are on the same cost level. However, IaaS and SaaS does not enable developers to build revolutionary new features, services, and products for their customers.
Only PaaS (Platform as a Service), provides this opportunity.
With PaaS, software developers can assemble and run applications and application landscape, using fundamental services such as databases, data pipes, or tools for development, integration, and deployment.
The real game changer is the massive investment of big cloud service providers into Artificial Intelligence (AI) services – from computer vision to text extraction and into making such AI technology usable by developers without an AI background.
Furthermore, they have an exotic-obscure offering such as a ground station for satellite data or for building augmented reality applications.
This is the real power of PaaS.
Sadly, I do not see how I can get involved in a project using satellite data and augmented reality at the same time (or at least one of these technologies). However, at the same time, a broad variety of niche features enable developers to build innovate products and services for their customers which were unthinkable a few years in the past. The cloud providers foster this even further by allowing 3rd party providers to make their software available hoping for a network effect – as seen earlier in the form of the iStore or the PlayStore.
Certainly, 3rd party services require a second look. Many are easy to integrate and do not need maintenance afterwards – and there is, what I call Potemkin integration. There is a façade on the marketplace with easy installation (e.g., using images). Afterwards, however, you have the same amount of work as for any on-premise open source or standard software installation. You need a dedicated operations team and detailed technical understanding how things work etc. Obviously, this is lesser of an issue for services developed and offered by the cloud vendors themselves.
The beauty of the (niche) cloud services and PaaS offerings is that developers and companies can integrate the newest research and technology in their products without needing research labs or dozens of Ph.D.s in A.I. and computer vision.
For example, using AWS’s Rekognition service, developers need as much time for writing a printf command as for programming a service call to determine whether a person smiles on a picture and whether there are cars on the same image.
I want to illustrate this power of PaaS with a short example.
Assume your company wants to build a revolutionary app for photographers. The app identifies whether there are celebrities on the picture and generates an automatic description and pushes these pictures to readers interested in a specific celebrity.
As a developer, you have four work packages:
1. User interface for journalists, photographers, and readers
2. Integration with photo feeds and for push messages to the readers
3. AI solution to detect celebrities, how their mood is, and other objects on the photos
4. Annotation feature that generates a one sentence description to the photo based on what the AI detected (e.g., A stressed Prince Harry and a stoic Queen with a dog)
So, how do developers benefit from IaaS, PaaS, and SaaS in such a project?
IaaS can speed up the time you need to get a virtual machine. That is nice at the beginning of the project, but not a game changer for development.
SaaS does also not help much. If there is a suitable solution in the market, there is no need for your project. Nobody invests money to get on a level everyone else in the industry already is.
PaaS, however, has a big influence on the development project. It solves work package #3 for you.
You do not have to train neural networks for object and person detection. Especially, you do not have to collect and annotate thousands of pictures of celebrities for your training data set. You just use AWS Rekognition. You can focus developing your real innovation (work package #4) including the overall idea of the app (work package #1 and #2). PaaS does not always provide such perfect services as in this illustrative example, but the more AI your application contains, the more development time PaaS saves you.
Editorial Note: Similar to AWS Rekognition, Microsoft provides Cognitive Services using which you can extract information from images to categorize visual data, process it, detect and analyze faces, and recognize emotions in photos. There’s a also a new ML.NET offering that can be explored in this tutorial.
Certainly, when looking at the cloud vendors’ strategies, IT departments should not be too naïve. They need a basic PaaS strategy to avoid bad surprises.
First, cloud services are not free. Business cases are still needed, especially if you are in a low-margin market and need to call many expensive cloud services.
Second, the market power changes. Some companies pressed their smaller IT suppliers for discounts every year. Cloud vendors play in a different league.
Third, using specific niche services – the exotic ones which really help you to design unique products and services to beat your competitors – result in a cloud vendor lock-in.
The cloud-vendor lock-in for platform as a service cannot be avoided. However, a simple architectural measure reduces potential negative impacts: separating solutions and components based on their expected lifetime.
“Boring” backend components often run for decades. It is important that they can be moved to a different cloud vendor with limited effort. In contrast, companies develop new mobile and web-front-ends every 2-3 years – plus every time the head of marketing changes. Highly innovative services and products are reworked and extended frequently.
In the area of shorter-lived components, applications, and solutions, the vendor lock-in is of no concern. You change the technology platform every few years. Thus, you just switch the cloud vendor next time if someone else offers more innovative solutions. It becomes even of a lesser threat if you consider the alternative: being attacked by more innovative competitors using the power of PaaS.
My rule of thumb is: You might be able to miss out on the cost-savings the cloud can bring with IaaS and SaaS, but your business will be hit hard if the IT department cannot co-innovate with the business delivering innovations using a PaaS with its many ready-to-use and highly innovative services.
[Cus19] M. Cusomano: The Cloud as an Innovation Platform for Software Development, Communications of the ACM, Oct 2019
This article was technically reviewed by Subodh Sohoni.
This article has been editorially reviewed by Suprotim Agarwal.
C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.
We at DotNetCurry are very excited to announce The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).
Organized around concepts, this Book aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on the latest .NET Core 3.0, .NET Standard and C# 8.0 (final release) too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.
Click here to Explore the Table of Contents or Download Sample Chapters!