Cloud computing was initially coined to serve as Infrastructure as a Service (IaaS) purposes where you will have access to virtual machines running on in offsite cloud providers data center. This gave the advantage to organizations of not taking the pain of managing hardware and Infrastructre like routers, switches, servers, storage boxes etc. Clouds then evolved to include Platform as a Service where you would get containers and kubernetes services. This would essentially be a lighter platform more lightweight than virtual machines and henceforth cheaper. Clouds then further evolved to add on FaaS – function as a Service where very light instructions could be sent and processed and results could be served. This would further minimize cost by having an even lighter ‘booked-reserved’ infrastructure from the pool and being even lighter.
In all cases – IaaS, PaaS or FaaS one thing is common and that is the fact that you will still need to develop an ‘Application Software’. If you want to develop and deploy your application on VMs like Windows Server or Centos/Redhat you can go for Infrastructure as a Service. If you want to develop and deploy on containers you can go for Platform as a Service – PaaS. If you want to use a public clouds Functions as a Service offering then develop and deploy custom code using the APIs exposed by the cloud and make an application. In any case you need to develop a software stack which will be the Application.
The benefit of SaaS is that you will get an end product already developed software ‘Application’ all ready to use.
This is the best the cloud can get to. Click and start running a software application as per your need. Work and pay as you grow on the application. A software which is online and managed by a vendor which is simply hosted on a cloud somewhere and you are using it. What else could be easier. Your main business aim is to have an Application. That is why you buy IaaS, PaaS or FaaS. You will still need to develop and deploy an application on these three. But if you opt for SaaS then you get a service immediately.
To that end it is important to get the Cost model right with your SaaS vendor and make sure you pay them a reasonable profit and get a reasonable cost service. The SaaS vendor should have deployed their service preferably on a FaaS or PaaS from one of the main clouds. Or they should have a stable infrastructure of their own. But their Power Usage Efficiency – PUE should be cost optimised so that their infrastructures power bill is low not high. Their ops costs should be optimised and their Total Cost of Ownership should be cost optimized.
SaaS is the best the cloud can offer and an organization must select a good SaaS provider. I am not aware of a SaaS inter-vendor protocol where you could migrate from on SaaS to another SaaS easily. This would be a strange thing in any case if it existed.
Lets imagine your SaaS providers Costs –
Data Center Power cost (Electricity), UPSs etc, Routers, Servers (CPUs, RAM, HD), Real Estate cost, Network Engineers, Systems Administrators, Operating System (Linux/Redhat etc), Virtualization (VMware/KVM etc), Fibre Optics SFPs, Fibre Optic Cables, CPUs, Data Center Operations Staff, Software Stack Operations Staff, Platform Operations Staff, Network and OS Operations Staff.
List of sample SaaS cost factors above.
On top of all this they are offering you a service online for a cost. At the back-end they are supposedly managing this all for you. Now imagine that this SaaS offering is being offered from a location where the power bill is high, where the operations staff bill is high. Imagine they are using say a costly virtualization platform or imagine they are using costly routers and switches or costly servers. Or imagine even that they are using costly SFPs and cables or even costly UPS battery backups and costly generator backups or costly other things. This would all add to the CoSaaS – Cost of Software as a Service offering. To minimize CoSaaS – Cost of Software as a Service the SaaS vendor needs to be using a highly optimized structure for all of the above list of sample SaaS cost factors. If they arent it’ll all boil down to a costlier SaaS offering for you.
Therefore it is important to weigh your options. Do you have time to develop application software ? do you want to buy an IaaS, PaaS, FaaS offering and have the time to make a software application on top of these ? Do you instead want to just get a service and pay for it via Saas model ? Do you have the resouces to build a date center and house the OS, virtualisation etc on it ?
If you want to just get a service and pay for it via SaaS then it is important to ask pointed questions from your SaaS vendor as to what their Power Bill is like ? What vendor Switches/Routers are they using and where are they sourced from ? What vendor servers are they using and where are they sourced from ? Are their routers and servers cheap or costly ? Where are their operations teams located and is their Ops teams bill costly ? Ask them clearly where are your Data Centers located and are they somewhere where power is very expensive ? Because these things run on power you know. Which virtualisation platform are the SaaS provider using and does it have a costly license ?
Now it is simply a time to compare TCO – Total Cost of Ownership. Simply make a list of your own Cost and Time factor. Do you have the Time and Cost and resources to Make and Build the equivalent of this Software as a Service in-house. Integration is also an engineering effort and so do you want to buy the above list of items from multiple different vendors and integrate them yourself in an in-house fashion and then run an application on it ? How much would all the above list cost you ? How much is the Power Bill in your area, Real estate bill in your area, License cost and routers and servers cost which you would pay for. In the end you can do a cost comparison. If you were to build, make, integrate, source and deploy whatever you want to do in-house then roughly how much would it cost. In comparison how much is the SaaS vendor asking for.
An organization may simply do a project planning cost finding exercise and find out how much engineering and resource costs are needed to do something in house and how much in comparison the SaaS vendor is charging.
I feel slowly organizations small and large will slowly move to SaaS offerings from major providers. Major providers source cheaper equipment, they get better deals from their vendors, they get better power bill locations and power deals, they do 24/7 operations globally from various locations to get cheaper operations staff costs. In the end they will offer a SaaS stack for a cheaper price.
To that end I think privacy dies here and you are out of luck if privacy is a concern. The SaaS vendors data center may be far off in another country where the power is cheaper and your data is therefore at that location. The SaaS vendors teams may be located across the globe they run your application and well your privacy is dead.
If indeed privacy is a concern and you want to seriously do things in house than one good option is to try to use Nextcloud. It is an open source SaaS stack which is a good service and can help in privacy and locality requirements.
I feel SaaS is important as in the end you need a software application and want to use that.
I hope you find this blog post helpful.