The idea of this blog is to demystify the word ‘cloud’. We will then go ahead and try to add more clarity. We will first scratch surface of the cloud and then we will go deep to see some of the technologies like Docker, Kubernetes, Cloud foundry (Pivotal), Azure PaaS. The idea is to give a strong fundamental knowledge and then dwell deeper into offering in the perspective of application migration.
Categorization of cloud based on offering
Based on what the cloud provider provides the cloud is classified as
IaaS – Infrastructure as service. In this offering the cloud provider provides the capability to create a VM, configure memory, processor requirement, disk space requirement and network requirements (whether it can be accessed only within the enterprise or outside to the open). There is also a possibility to choose from bouquet of operating services. Then like we are connecting to on-premise server we can login to the server and do the usual process. This offering just outsources the data center related concerns like physical security, power and other physical factors. The enterprise DevOps team works with some enhanced software and create VM and deploy them. Also, they may have to interact with cloud provider for hardware related issues.
PaaS – Platform of Services. In this offering the cloud provider all the related dependent software for running the software. They would also a set of service bouquet like emailing, push notification, analytics, reporting and more deeper facilities like in-app analytics for an immersive experience. It is like outsourcing most of the Non- function requirements and concentrate core business.
SaaS- Software as Service. In this offering the cloud provider provides the entire end to end services. Some good example of Office 365, WordPress etc:-. They can be compared to the COTS products of traditional computing.
This blog will not dwell deeper into IaaS or SaaS unless needed. If they are used then we would refer IaaS as compute or Metal. SaaS would be called as SaaS.
Categorization of PaaS
Now to get started quickly let us see the type of PaaS based on the offering
Private cloud :- In this case the cloud software (or more precisely the cloud blanket) is spread on the on premise hardware or on a VM on cloud provider that is internal facing, in the sense that it will be accessed only by enterprise network. Some of the example are Pivotal cloud foundry, Azure service stack. There are also one such offering from IBM blue mix. Private cloud can also be achieved by deploy containers (Docker and equivalent) on a container runtime like Kubernetes, docker swarm on your existing infrastructure. But they are still container run time targets and not a PaaS. We will see why and how when we see about those sections.
Hybrid cloud:- This is a terminology that needs to be understood context sensitive. It could be an application deployed in private cloud and also services from public cloud. It could also be a services deployed by PaaS from one.
Public cloud:- This is a case in which the we just write the application. The application is hosted in public cloud using all the platform provided services. Ideally today’s most of the application that are developed are targeted for public provider. Today some enterprises are having certain valid concerns in moving to public cloud. But eventually they would find their way here.
In the next installments of this blog we will be seeing the private and public cloud. We will also be seeing best design patterns for creating cloud native application. We will also see the application lift and shift secanrios to start with and also talk on a few ways of assessing application.