We haven’t talked as much in recent years about what it takes to run Codename One. Our infrastructure and backend are pretty complex with multiple pieces working in cohort to make everything feel like a single product. As part of that we work with 5-10 different backend SaaS providers that sell us various services, this might seem like an "odd" statement since the number should be fixed but it isn’t…
We change provider and some backend providers like intercom/cloudflare or AWS you might not think of as proper backend (like digital ocean or linode) so the number will fluctuate based on our moving servers from one provider to another and based on what you would consider a provider.
A couple of years ago we moved all our Linux based infrastructure from AWS reserved instances to digital ocean. The price was better (even after factoring reserved instance discount) and simplicity/service were superior so there was really no question. As an added bonus digital ocean accepts payments via PayPal making it much cheaper for us as we get paid thru paypal too, this saves on currency conversion and PayPal fees.
We’ve recently become aware of linode and were very skeptical. The pricing was literally half the price of the already cheap digital ocean. Digital ocean hasn’t made any price cuts in over 2 years which is odd in the competitive cloud server landscape. Since we don’t use any of the value added features of digital ocean we decided to give linode a chance.
They start by billing with credit card but they accept paypal once they have a card on record. Setting up the servers was as easy as doing it in digital ocean and once they were up we could literally move traffic to the new servers. Thanks to cloudflare we switched servers while people were working with no downtime and no one was the wiser…
Once we validated everything worked we deleted the old digital ocean servers. The whole process took a couple of days and cut our Linux server expenses by half (we still pay a lot for App engine, Mac hosting & Windows hosting though). The real cool thing is that the servers seem much faster than the old digital ocean ones. This might be because we are on a shared machine that isn’t filled yet so it might change.
The web interface for linode doesn’t seem as polished as the one on digital ocean but it works well and we are very happy with the result as this literally maps to thousands of dollars saved over a couple of days work!
IaaS vs. PaaS
Our biggest expense is still App Engine, we planned to dump it as soon as we can but it’s hard to remove it from our infrastructure as it is embedded so deep. The story above pretty much proves to me the value of IaaS over PaaS when building major apps, it allowed us to cut expenses with almost no effort!
I used to be a big PaaS fan as I can see the value of binding an entire infrastructure seamlessly but with the trouble with had with App Engine over the years I’m now convinced that I was wrong.
We want to move additional resources from app engine to linode and probably AWS webservices for some of the features. The timeline for this is flexible though as it’s really hard for us to allocate developers to rewrite stuff that already works even if it does save some money. That’s part of the difficulty in running a SaaS company you sometimes need to compromise on these sort of things to keep moving ahead.
We’ll try to find better hosts for our Windows/Mac servers which will allow us to add more servers there and shorten the iOS build times for everyone. So far these fields aren’t as competitive as the Linux hosting fields so we’re not as optimistic about that.
Another thing on our todo list for the past couple of years is packaging everything into containers. We started Codename One before Docker was "a thing" so by the time it got on our radar we had too much invested. Had we used it this move might have been even simpler than it already was.