Previous Episode: Hyperscale Datacenters

Today on the show: Infrastructure as a Service, Platform as a Service, Software as a Service. What are these cloud service models and how do they compare? Nice of you to join us!


Prologue##

The famous cloud advocate David Chappell has defined three most important events of post-dotcom boom IT world. The first event was the IPO of Salesforce Dot Com in 2004. It proved that the Software-as-a-Service is a serious business model.


The second event was the launch of Amazon Web Services in 2006, which was the first public cloud platform.


And the third event was the release of the original Apple iPhone in 2007. It started the mobile-first era with the phones eventually becoming tiny computers in our pockets.


The common enabler behind all these 3 important events was the cloud. So, the cloud in all its forms has been instrumental in major developments in the IT world.


So, it's important to understand what exactly the cloud is and what are its different variations.


##SaaS, PaaS or IaaS

We will start the episode by defining the terms and needed concepts an then we will move onto how they have shaped the world. Software-as-a-Service or SaaS is a business model where software companies sell their products for a monthly subscription instead of a one-time purchase. Examples of Software-as-a-Service cloud services are Salesforce Dot Com, Google Gmail, Dropbox and Microsoft Office 365.


But why is it called Software as a Service? It means that we don't install the software ourselves. We don't have to worry about the servers, we don't have to worry about updating the software. We just use the service. We can add our own files and account details, and even change the background color to our liking. The amount of customization that we can do or administration that we have to do is limited. Software-as-a-Service cloud model is about getting ready-made software that we can start using right away. If we want to change how the software behaves, we are limited to what the cloud service provider allows us to customize.


So how does Platform-as-a-Service model differ from Software-as-a-Service? In Platform-as-a-Service cloud model the cloud service provider gives us a set of so-called "building blocks" and we can build virtually any software with those building blocks. For example, a Platform-as-a-Service cloud provider can let us host websites on their platform. We just have to write the code that puts the building blocks together. This is the key difference: in the Platform-as-a-Service model we have to build the software ourselves, whereas in the Software-as-a-Service model we just use the existing application as it is.


In Infrastructure-as-a-Service model we have even more control. This means that the cloud provider is taking care of the datacenter: physical venue, servers, network capacity, electricity, heating, ventilation and cooling. The Infrastructure-as-a-Service cloud provider takes care of the physical hosting for us. We just get remote access to the virtual machines, and storage. We can do essentially anything with the servers: we can install any operating system or any software in them. We can build our own software on top of them.


As a developer, I like Platform-as-a-Service, because that makes me most productive and I don’t have to worry about the virtual machines as in Infrastructure-as-a-Service. I only have to take care of the coding.


Challenges

So why did people start moving to Software-as-a-Service in growing numbers since 2004 & Salesforce? One of the reasons arises from comparing the on-premises and cloud worlds -- the speed of change. Previously, if a company wanted to use email, they had to install the email systems to their own data center. Even if they outsourced the data center to a hosting provider, the steps would still be numerous: plugging in a new server, installing the operating system and finally installing and configuring the email software.


This clearly will take up quite a bit of time. And that's not all! Getting the software in place is not enough. With any software that we are responsible of, there comes the need to update. We would need security updates at least once a month. If there is a new version of the email software, an upgrade or "migration" would have to be made, for example every 5 years. All of these tasks take a lot of time and expertise.


On the cloud world, the cloud provider is doing the difficult work of installing and validating updates and keeping the services running. With that, the IT organization can have more time on their hands. So, they can actually start thinking on how to use these tools better. Regardless of who is responsible of the software maintenance, it's actually all about change management. When you perform any number of updates in an existing software, you essentially change things.


And as long as there are changes, there are always some people who don't like the changes: perhaps their favorite button moved to a different part of the screen, or they cannot perform their jobs in a same way they used to. To combat these change management challenges, both the users and administrators require a lot of training to know what is coming.


Benefits

In the beginning of this episode we talked about how the world has changed due to these technologies. So, what are the concrete effects to the business world? For example, the way we work, how companies are born, and how does a typical workday look for the average Joe? The cloud and particularly Software-as-a-Service has enabled companies to offer the same tools for remote workers as they would in their office.


A good example would be video conferencing. Previously, video conferencing required expensive hardware to be installed to a dedicated conferencing room. Due to the cost, video conferencing was available only for the select few, usually the top management. Nowadays, even the simplest and cheapest smartphones and computers are capable of video calls with a range of services i.e. Software-as-a-Service solutions, such as Skype.


Another big change from the popularity of cloud services is lowering the starting costs for new business. This means that starting a company requires less capital and the cost of entering to new markets has dramatically decreased. Entering and leaving new markets has become both easier and faster. Previously, just setting up email to a new branch office required building a new datacenter, buying and installing servers, and configuring the software. This took a lot of time and capital and was only possible for large and established companies that could afford the investment.


Nowadays, new companies can be started by just swiping a credit card and paying a monthly fee for a SaaS email service. Particularly the cost of starting has lowered for technology companies. There is no longer a need to build costly data centers and install web servers to host web apps. Companies can just easily swipe their credit cards, and fire up virtual servers anywhere they want in the world and set up shop. These changes have made the current tech and startup boom possible. We live a world where a 20-year-old college student can start a company from their dorm room, and scale it up to be a global giant in 5 years.


This has all been enabled by advances in cloud technology.