As a developer, I always had this dream of working on cutting edge technologies. I wanted to learn new languages like Crystal and Rust. Get my hands full with Apache Spark.
Don’t get me wrong. I’m not as selfish as I sound. All this was for the company I worked at.
We had tons of data waiting to generate insights. Our cloud bills were overwhelming, and we needed significant optimisations throughout our stack. Introducing Redis as a cache and storing pre-aggregated metrics in Cassandra was on high priority.
In short, all my aspirations were for my company.
But I could not do anything about it. No one could get anything moving.
I always ended up finding myself stuck the in the rat race of writing dumb boilerplate restful services for our rapidly growing API surface. My partners were struggling to keep everything live on EC2.
It was nothing short of madness.
Our engineering choices keeps most of our talent stuck doing toil
. There seemed to be no way out of this rabbit hole.
Does this sound like the situation your in? Or maybe someone you know is struggling with something similar?
In today’s age of startups, hyper-growth often gets us in such a frustrating place. And let’s be honest, all of us aren’t blessed with sweet VC cash to throw at such problems. We need to be sustainable.
What if I tell you there is a way out of this? What if I tell you there still is hope?
A Glimmer of Hope
Let me start with a confession, the story I narrated isn’t mine. Hear me out before you abandon this article and put me on your blocklist. This isn’t a problem we face at SpaceUpTech. But we know the problem is real.
We realised this early on as a bootstrapped app development startup. We had to remove the monotonicity from development and operations. That’s when we started working on Space Cloud as an internal tool.
It was more of a visual programming tool back then. The idea was simple. We don’t have to maintain any code if we stopped writing it. Here’s a video we made back then for remembrance.
Jumping back to Feb 2020, we have launched the most awaited Space Cloud version - v0.16.0
🥳🥳🎉🎉!!
Things have changed drastically from what we once were.
A quick intro on what Space Cloud has become today:
Space Cloud is an Open Source Firebase + Heroku which lets you develop, scale and secure serverless applications.
Sold already? Check out our step-by-step guide to experience the power of open source.
This is the hope I have been talking about all along.
Your development tooling should work hard to automate the boring bits out of your life.
And that’s precisely what Space Cloud helps you achieve.
Let’s see how!
Why Firebase is so Awesome?
Google Firebase has a similar premise to ours. To those who are new, Firebase advocates the notion of building backendless apps. The entire database is exposed to the frontend via realtime APIs. All logic moves to the frontend.
For the more sensitive parts of your applications, you can use Cloud Functions for Firebase.
The idea is to secure your application by implementing fine-tuned request authorisation using security rules.
This might sound counter-intuitive at first. But it effectively decouples security from code. Trust me, you want that!
But there are some major shortcoming in Firebase which adds a lot of friction to its adoption.
- It only works with a proprietary NoSQL database on Google Cloud.
- The API based pricing model tends to get super expensive real quick.
The fact that you cannot reuse your existing database means that incremental migrations become really hard.
But the idea of not having to write the monotonous CRUD APIs over and over is so compelling, that we often give in to our cravings and indulge in the sweetness of Firebase.
The Tale of Heroku
Let’s face it. We all love Heroku. If you weren’t the one concerned with paying the bills, Heroku is an absolute delight to work with. It really lets you focus on your code and does the heavy lifting of scaling it up.
Heroku’s tooling is known to start the revolution of developer experience. Okay okay, they might not be the one who started it, but they did get it to the limelight.
I know Heroku can be a little restrictive sometimes. And let’s not even start talking about how expensive it can get.
One thing is for sure. Heroku does make life a hell lot easier.
What does all of this really mean?
If we take the learnings and developer experience of Firebase + Heroku, we’ll end up with development teams with superhuman capabilities.
That’s what we believe in. And that is what we tried to do and even exceed with Space Cloud v0.16.0
.
Learning from Firebase
Similar to Firebase, Space Cloud creates realtime APIs on your database along with security rules for authorization. But keeping the community in mind, it does not force you to any particular database. You can use Space Cloud with SQL databases like Postgres, MySQL and SQL Server.
You heard it right. We support SQL Server!! I don’t know why, but we do. And we are proud of it.
We also support NoSQL databases like MongoDB with plans to add Elasicsearch to the mix as well.
Also, taking inspiration from the current trends in the API economy, it offers GraphQL APIs as a first-class citizen. This means you can join your databases together and build kick-ass ETL pipelines using the API we all love.
It’s a simple fact that not everything can be built using basic CRUD APIs. We do need to write code for integrations with 3rd party APIs like Stripe and Twillo or for securing sensitive business logic.
We understand and respect it.
That’s why we added a fully-featured eventing module to help you build highly scalable, event-driven microservices. This might sound fancy at first, but taking a page from Heroku’s playbook, we have tried our best to make the onboarding as easy as possible.
Learning from Heroku
In v0.16.0
, we added integrations with Kubernetes and Istio. You can now deploy docker images inside a production-ready service mesh to peacefully sleep at night.
As a bootstrapped startup, we know that every saved penny counts. That’s why we added first-class support for autoscaling including scaling down to zero so you can save up on your infra costs during the quiet times.
All thanks to Istio, all traffic between services deployed using Space Cloud is encrypted at all times. You can also describe authentication policies to restrict communications between services.
Concerned about reliability? Don’t forget that we rely on Kubernetes under the hood. Quick reminder, Kubernetes is trusted by the most prominent players out there.
To make things even better, Space Cloud lets you create a GraphQL API on top of your restful microservices as well!
What does this mean for me?
To keep things short, you now have the capability of using the industry-leading cloud practises, followed by the likes of Google & Heroku, in a developer friendly open-source tool.
Wanna see things in action for yourself? Check out our step-by-step guide to experience the power of open source.
Remember the fictional developer I started with? Imagine the good Space Cloud could do to him.
He could now generate GraphQL APIs on the click of a button. It doesn’t matter if data is being sourced from a database or some service. GraphQL would abstract it all away. His partners could slowly start migrating to Kubernetes without having to learn anything about it.
They don’t even need to do it all at once. Its completely normal to move one API at a time.
One by one, each service can be moved to Kubernetes. And before you know it, the developers are learning Crystal and Rust, playing around with Apache Spark and finally putting all that data to work!
I really hope and pray, that Space Cloud becomes the thread to pull you into the world of rapid growth and innovation.
After all, we all are on a mission to do great stuff for our people and teams!
You can also support us in our mission by giving us a star on Github and sharing this post on Twitter.