How many of you had the painful need to navigate into the depths of hell ( called legacy solutions)?
You know, those solutions where you say “if it works, don’t mess with it“, but then again, you actually need to go there and add some new features demanded by your costumer.
A few months ago, I had the pleasure to lead an engineering team with the purpose of doing pretty much that: messing up with a legacy cloud solution, which by the way serves around 2 million users on a daily-basis. This was not our first time messing up with a behemoth particularly like this one, as this is something that we as software engineers need to do occasionally, and let’s face it: It comes with the job. Only this time, it was quite different, it was sort of fun. Why? Because serverless.
Your legacy solution is some sort of puzzle, all taped up, some missing pieces here and there (your dog/cat/iguana/Roomba ate some of them), but to your wonder, you can actually see that beautiful image of a swiss alps landscape, because you sort of finished the puzzle… only now, let’s say you want to turn that landscape into something even bigger, more shiny, with some clouds above those beautiful mountains.
What do you do? Do you tear the puzzle apart and start all over again? Or do you build around it? (this one was clearly rhetorical)
The fact is, we had a PaaS (Platform-as-a-Service) cloud solution composed by several monoliths, Web APIs and some SQL databases. But we did not want to touch those, as they served as the complex core solution. Our approach consisted on adding new features to the core solution by creating new FaaS (Function-as-a-Service) components on the side, and around it. Why FaaS? Because its faster, cheaper, and very easy to maintain. No infrastructure headaches, no networking complexities around it, out-of-the-box IP whitelisting, as well as things advanced features such as easy CORS (Cross-Origin resource sharing) configuration, among many other cool features.
At the end of the day, we did not have those cold-sweat nightmares when needing to mess with the legacy solution, because that’s what FaaS offers to you: A quick way to create solutions, or to build around them, very oriented to small features that can be taken care off by these tiny components made for you to play with. Its freedom. It’s beautiful. And it’s here to stay.
Every single one of us IT professionals should start including their cloud computing strategy, considering FaaS/Serverless whenever possible. The advantages are tremendous.
Finally, it is important to not make the usual mistake of using something nice as this for every single problem you may find: FaaS makes sense a lot of times, but it won’t make sense or fit the bill for every challenge out there. Be wise, and above all, have fun (and thank the cloud providers who made this a reality for us!)
A more in-depth analysis about Serverless can be found in the following article by Gartner: https://www.gartner.com/smarterwithgartner/the-cios-guide-to-serverless-computing/
By Gabriele Freitas, Innovation Technology Manager at InnoWave