Convincing the Business to Go Serverless with an Agile Lighthouse Project
It almost sounds too good to be true:
Enable your team to launch applications at record speed and low cost?
With such a simple sales pitch, shouldn’t it be easy to convince the business to go serverless?
In February 2019, me and my Contino colleague Dawshiek Yogathasar presented at the Tech Strategist’s meetup in Sydney. We shared insights into the ongoing discussion around how serverless works, how a business case can be made, and how a single agile lighthouse project can drive strategic transformation.
Any new technology can be an enabler, yet can also be a major source of distraction when it comes to choosing how to organise your infrastructure to best meet the needs of your internal team and, ultimately, your external customers. This is because there are so many paths to choose from to achieve your goals. Utilising higher order cloud services and going serverless takes careful planning, investment in resources and commitment to tackle the challenges along the way.
Here's a quick 60 second explainer video taken from the event about how serverless works:
TL;DR? Fundamentally, “a serverless solution is one that costs you nothing to run if nobody is using it.”
Using a Lighthouse Project to Move to Serverless
Serverless is not just a buzzword. It can literally transform a business, getting it back onto a level playing field with the competition.
Take, for example, Dawshiek’s experience using a lighthouse project (a short, sharp experimental project designed to prove a new concept quickly and with minimal upfront cost) to convince a business to go serverless!
The client was a SaaS accounting software business that nearly left it too late. They were mired in legacy technology and unsure of the best way to accelerate the transformation they so desperately needed.
By 2013, the web accounting world had changed dramatically, and desktop-installed accounting software was rapidly becoming old and unwanted. Web-based alternatives were rapidly solving multiple small, medium and enterprise level problems.
Thousands of customers had abandoned the business within one year. Scurrying to provide a comparable web-based product meant juggling the development and maintenance of three product streams at once: the desktop, hosted, and web versions. After expending huge resources on old .NET technology and playing with dynamic CRMs, the business wasted two years trying to achieve their web-based product goals.
In 2016, on a flight back to head office, Dawshiek realised that the solution would need to be created from scratch.
Dawshiek collaborated with another architect and two days later he presented to the CTO. He proposed an idea for a modern marketplace solution consisting of the above-mentioned technologies. He asked for the chance to build a new marketplace solution, and the CTO gave him the green light. He started building each of the components with a team of three initially, passed the PoC (proof of concept), and reached 40% marketplace functionality in one month.
With the new serverless approach, he took only six months to build the target state with nice-to-have features. By using microservices architecture he changed everything including the way authentication works, payment, subscription, databases, notifications, partner engagement, compliance and more. He fundamentally changed the way the products worked with faster speed and improved customer experience.
Running the whole project with an iterative approach was paramount to its success. The marketplace grew, the developers had ongoing learnings, they cleaned the code, and were able to quickly and easily add new features.
The outcome was a fully functional marketplace in six months, at an eighth of the price of the original web-based product. The business then committed to becoming 100% serverless with all future products and developments.
Potential downsides of going serverless
This may make serverless look like a win-win strategy for the business, yet if you are considering going this route you also need to mitigate any potential downsides.
Serverless, doesn’t literally mean that no servers are involved. Rather, it means to the consumer of the service, there are no virtual machines exposed. It’s a black box.
While the key selling point for Serverless is fundamentally built around the reduction of TCO, some organisations may find that core services will scale to a boundary where moving to self-hosted, container based solutions make more sense. There is no magic calculation that will decide this for you, however for many companies, this won't happen until their services hit 10,000's-100,000s of transactions per second.
However, by taking a pragmatic approach to your architecture and mixing in self-managed services where appropriate, one can leverage the best of both worlds.
Our experience is that it is easier to move from a FaaS architecture and move to containers, than vice versa.
You may also need to consider other limitations as well, such as 99th percentile performance against your latency NFRs, your approach to how you troubleshoot, various cost challenges for long-running batches, as well as fact that not every workload suits parallel processes.
Other issues may simply revolve around your people. You may need to account for any upskilling of your engineers to utilise this technology, or even consider the fact that your organisation may need an entire mindset shift around how you approach development moving forward.
Ultimately though, the results so far are inspiring, especially for businesses focused on getting the best outcomes for their customers in the long term. The business case for implementing a serverless strategy needs to support the overall business growth goals, yet it may be the best foot forward to set your business up for the future.