PaaS for Dummies: What is Platform-as-a-Service?

Platform-as-a-Service AKA PaaS

It's a term that has been thrown around more and more lately, yet the more I interact with people the more I realize many don't know what this "PaaS" means.

Getting very generic and basic wikipedia has a very "wikipedia" answer:

Platform as a service (PaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.

So I know too many people who will read this and say, "Oh yeah, I know exactly what that means!" They don't, trust me. If you keep talking to them they still have questions. So let me explain this the best way that my mentors have explained it to me and how I understand it. (I'm not going to get super technical folks.)

Cloud computing has "layers" or different types of services. The traditional "cloud" is just a bigger computer with more storage capabilities in another location so you don't have a big beast in your office. The big computers are the "servers" or the "infrastructure." Companies that provide this service are conveniently called "Infrastructure-as-a-Service" or IaaS companies.

SaaS is another acronym you have seen. This one you all have used; "Software-as-a-Service." This is where a software company makes their software available over the internet.

If you think of the infrastructure as your storage space and your software as your tools, then PaaS is combining both. If you are a developer you know that before you can even start building your applications you have to setup your environment (infrastructure) and bring in your tools that are compatible. With a PaaS everything you need to build your application is already there.

Now not all platforms support all frameworks, architectures, or coding languages. So before you start using a PaaS you want to check on those things.

Digital Garage is a PaaS that has many templates for numerous languages, frameworks, etc. If you are an experienced coder, you can use any technology you would like. The thing that is stressed at DG is that the platform is built on Docker, Kubernetes, and open source.

Docker uses linux containers to wrap up your code in easy to move packages. This method is containerized development and it makes it easy to move your application from your building environments, to your testing environments, and later to your final production environments. This also makes it easy to work in a team.

Kubernetes is the container orchestration which does exactly how it sounds. It moves the containers around. For 15 years google has trusted Kubernetes with billions of containers and environments. It's pretty rock solid to say the least.

The tasks that can be most time consuming and annoying become automated when you combine Docker and Kubernetes in your development environment. For example, when you spend time working on your application in your production environment you don't need to spend additional countless hours reconfiguring for a different production infrastructure. It just works.

The final piece of the pie is open source which is open shared software development. Community development if you will. When people share their skills and knowledge and build off of each other this beautiful thing called collaboration happens.

Combining these three technologies allows developers to easily focus on their code. They will not get locked in to an expensive infrastructure. If and when you decided to try another platform or use a different production infrastructure, the containerized development makes the move very easy.

So there you have it. Platform-as-a-Service in a nutshell. Hope this is helpful!