Deploying web applications should be easy, like ridiculously easy. Why do I need to become an NGINX/Apache expert and a Linux Admin just to deploy an application? This has been the pain point for many developers and has left people looking for solutions.
Deploying to the Cloud? Why so hard?
The simple reason why deploying to the cloud is still “blocked” is because it has been very infrastructure focused and less application focused. We focus more on resources such as CPUs, Memory, Data Storage, throughput, etc. We have focused on simplifying and obscuring infrastructure but haven’t focused heavily on the application experience.
Many application deployment strategies are held together with shoestring and gum. We still see a lot of shell scripts executing ssh commands to kickoff another shell script in order to deploy a piece of software.
A lot of this is because we are bringing an on-prem mindset to the cloud. The infrastructure evolved but application deployment is still stuck in the past.
There has to be a better way…
…is probably what you are saying. And you are right. In the past I have stated my belief that the promise of cloud computing is serverless. Nothing has changed since I made that statement. I fully believe that the next evolution of cloud computing is unblocking developers and making cloud applications easy to deploy.
However, in my original statement, I largely focused on the “compute” angle. That is to say, I focused on abstracting compute to make it easier to deploy an application (packaged as a container) into the cloud and have it run without requiring a lot of resources.
This focuses on the end, not anything else. Obviously, the starting line is the code that the developer is creating. The finish line is where the code lives and serves its purpose. But what about the journey that the code takes?
Let’s talk CloudSeed
Cloud Seed is a joint GitLab and Google Cloud open source project. The goal is to make deployments “ridiculously simple”. How does it do that? It helps with the journey!
GitLab has been a favorite tool of mine. Don’t let the name fool you, it’s not just another hosted git repository service. While it can serve as a source repository, its real differentiator is its DevOps tools.
Gitlab offers Runners on all tiers. Runners are essentially applications for Continuous Integration/Continuous Deployment (CI/CD). CI/CD is that “journey” talked about earlier. Turning code into a container that can then be deployed.
But what about Cloud Seed? Well this documentation provides some great information. The TL;DR is that this is meant to create a tool chain to simplify the creation of serverless container applications and deploying on Google Cloud Run.
Right now, contributors are wanted. If you are interested in trying this out and getting in on the ground floor of something awesome, check out the link here. Also, be sure to follow Cloud Seed on Twitter for updates. Happy Coding!
In a hurry? Well there is a YouTube video for you!