Software-as-a-Service (SaaS) is software developed, hosted by the vendor, and accessed by users over the Internet. The underlying infrastructure and code base are centrally maintained by the SaaS vendor and shared by all customers. Customers access the SaaS applications over the internet unlike traditional packaged applications that are instantiated specifically for and hosted within the enterprise.
While the primary benefits of SaaS are widely known, the key factors that have begun weighing against the service are:
• It is, strictly speaking, not a pay-per-use service. SaaS vendors expect multi-year contracts for a minimum user count and block to have predictable cash flow.
• Customers generally do not have free and unlimited access to their own raw data and logs. The data is often metered and can be purchased based on user counts or API purchases. Therefore, enterprises have to spend to be able to perform big data analysis on their own data.
• SaaS providers control all the security parameters, leaving little or no control to the customer.
• SaaS applications are not customizable beyond the business process workflow. Individual customers cannot tweak performance characteristics because they do not have access to code base, data architecture and underlying infrastructure.
This is possible where containers (post the invention of the dockers) provide an alternative.
What exactly is a container?
Sun Microsystems had developed containers in 2005, but these were limited to Solaris and Sun servers. The hype around containers has grown primarily with the advent of docker containers which have been widely acceptance and are simpler to learn.
Docker provides a layer of abstraction by using resource isolation features of Linux kernel and allows for multiple isolated virtual operating environments.
Unlike whole-system virtual computers (virtual machines) where a virtual machine monitor or a hypervisor creates and runs the entire machine, including the operating system, a docker container does not require a separate operating system. Instead, it virtualizes the environment within physical or virtual machines. The biggest advantage of a docker container is that once it is configured, it can be deployed and run on a variety of infrastructures.
Therefore conceptually, Container-as-a-Service (CaaS) can be thought of as a subset of IaaS. The container orchestrator manages configuration management, multi-container management and related service discovery and orchestration.
Can Caas actually be an alternative to SaaS?
Microservices architecture is generally accepted as a better way to build highly scalable and high performance applications as compared to the traditional approach to monolithic application building with large code base.
Microservices are essentially small code bases or a self-contained service with well-defined interfaces that communicate with each other via APIs.
A docker orchestration module that leverages TOSCA (topology orchestration specification for cloud applications) makes it relatively simple to manage complex microservices through a standard orchestration format.
Adrian Cockcroft, one of cloud’s well-recognized visionary called the combination of microservices and docker a disruptor because the inherent benefits of microservice architectures gets amplified when orchestrated via containers, which further abstracts software from the underlying hardware and results in agility and resilience.
The combination of microservice architecture and containerized delivery serves act as a powerful model for customers who wish to own their code base, have unlimited access to their data and have full control on the application availability, performance and security modeling. This makes it compelling for customers to own the instance of application software and run on a private cloud and virtual private cloud (offered by all major cloud providers like AWS, Microsoft Azure, IBM and Rackspace.
By doing so, they can get the advantage that SaaS providers bring where operating system and hardware licenses are managed by the cloud provider.
How does CaaS compare with SaaS?
• CaaS is a single-tenancy model as opposed to multi-tenancy model in SaaS
• CaaS offers full security control, direct data access, direct integration ability, complete data ownership, integrated single sign-on and complete cost transparency. SaaS limits every one of these business aspects, for example data is metered through API.
• Both CaaS and SaaS bring ease of scaling, automatic updates. Whereas SaaS is a public cloud delivery model, CaaS is essentially a private cloud solution.