Serverless — the Ghost of the Future?

My takeaways from the maiden Serverless Computing conference in London

Sidney Barrah
The KickStarter
7 min readMay 25, 2020

--

I know this article is a bit late. It was written a long time ago but remained unpublished until now.

Photo by Taylor Vick on Unsplash

Serverless computing was borne out of the shift from enterprise application architectures to containers and micro-services. By abstracting away most operational concerns, serverless computing provides users with the opportunity to no longer worry about managing servers, scalability, availability, over/under provisioning of resources and all other infrastructural issues. However, this still means that users are responsible for deploying and managing the hosting environment configurations.

I was introduced to the serverless world in 2018 after joining an amazing engineering team in one of the UK’s well-known charities, Comic Relief . At the time, I was still just getting acquainted with micro-service architecture after years of developing monoliths. It was all new, shiny and exciting! As a developer, I saw the appeal, as it meant not having to worry about servers and not paying when my code was not running.

Serverless computing
Serverless Computing London

The maiden edition of the Serverless Computing London on 12–14 November, 2018 at 30 Euston Square saw a number of keynote speakers discuss serverless computing in detail. Everyone, from enthusiasts to engineers and vendors, was present.

Takeaways

I put together my key takeaways from some of the speakers I was fortunate enough to hear. These are my thoughts/impressions and in no way a reflection of the speakers.

My main takeaways from my two days at the conference are:

  • New — Serverless is still in the growth stage as most businesses explore how it could help them achieve their overall goals.
  • Testing, testing and more testing Especially end-to-end feature testing and testing in production is key. You need to anticipate every action of the end users.
  • Observability — Understanding exactly what happens every time a request passes through your code. Using various logging and tracing tools, it makes life easier to debug your systems.

The Talks

I attended the talks that were of personal interests to me at the time and have summarised some of my takeaways below:

Day 1

Keynote: Three Ghosts of Serverless — A look into the Past, Present, and Yet to Come

Speaker: Chad Arimura, Oracle

In this keynote, Chad took us on a visual journey of how much technology has evolved over time using the stories of the Three Ghosts of Serverless — The Past Ghost, The Present Ghost and the Future/Yet to come Ghost.

Takeaways:

Chad — Ghosts of Serverless — Serverless Computing London 2018

Event: GraphQL and Serverless

Speaker: Ant Stanley

Takeaways:

  • GraphQL is exciting and offers a lot of advantages especially in a serverless environment. However, it is important to understand the trade-offs before opting to replace REST with GraphQL.
  • GraphQL makes sense in applications that require complex queries but not so much for those that donʼt.
Angry Birds

Event: Migrating an Existing Service To Serverless

Speaker: Marcia Villalba, Rovio

In this talk, Marcia shared how her team at Rovio (creators of Angry Birds), with no experience in serverless architecture, migrated an existing video-on-demand service to use serverless. The focus was mainly on the team’s process and the learnings.

Takeaways:

  • She emphasised the importance in training for teams; at the start of the project, none of the team members had any experience with serverless.
  • The team was also able to cut down costs for the business and improve on their automated testing and CI/CD processes.
  • She also emphasised the importance of system monitoring with dashboards and logging.

Event: Serverless design patterns

Speaker: Yan Cui, Dazn

The advent of serverless means that new architectural design patterns have also emerged and must be considered when developing serverless apps. Yan discussed knowing how to pick the right event source based on the trade-offs that you want.

Takeaways:

  • Going serverless means that the time from idea to product is shorter, with less operational responsibility.
  • Design patterns do not guarantee success, as it is more important to understand the problems and constraints over following a pattern.
Yan Cui — Serverless Design Patterns — Serverless Computing London 2018

Event: A Brave New World: Rethinking Testing For Serverless

Speaker: Nate Taggart, Stackery

Takeaways:

  • Serverless has changed testing approaches, making it easier and sometimes harder.
  • Serverless means testing strategies have to be adapted.

Day 2

Charity Majors — Observability — Serverless Computing London 2018

Keynote: Observability (and Responsibility) for Serverless Systems

Speaker: Charity Majors, Honeycomb

She talks about how going serverless does not mean that we stop thinking about debugging our systems but means that it is harder because we are dealing with a black box. This emphasises the importance of observability.

Takeaways:

  • Observability is everything!
  • Monitoring is not the same as observability and should not be confused as such.
  • We are not getting better at building large softwares fast enough when compared to the complexities.
  • Developers should take responsibility for the deployment of their code and should also support their code in production.
  • It is much easier to build complex systems than to understand them.
  • It is crucial for us to understand what is going on within your systems.
  • Always test before production, and testing in production is important.
Red Nose Day — Comic Relief

Event: Going Serverless at Comic Relief: A deep dive into our donations platform.

Speaker: Peter Vanhee, Comic Relief

Peter talks about how Comic Relief, a well-known UK charity, which runs one of the largest fundraising events was able to architect a donation platform able to handle hundreds of per-second donations, all done serverlessly. I was lucky to be part of the Comic Relief team at the time. Peter went on a deep dive into the overall architecture of the serverless donations platform at Comic Relief, including our implementation of CI/CD, chaos testing, and observability.

Takeaways:

  • The importance of end-to-end test-driven development.
  • How we used chaos engineering to test various parts of the donation platform.
  • How we ran load testing in our serverless applications.
  • The importance of having a highly resilient system capable of failing gracefully.

Event: How we used Serverless to meet the unique requirements of a major broadcaster

Speaker: Paul Markham

Paul spoke about how a major media company solved a complex technical problem by leveraging the advantages of serverless computing. They were able to handle large video files and deliver media content on time to their clients. He talked about the lessons learnt and things they would do differently if they had to do it again.

Photo by Martin Shreder on Unsplash

Conclusion

Serverless technology has come a long way since 2018 and I have been lucky to attend a few more serverless events since then. Serverless technology provides simplicity and economic advantages, which is why it has continued to gain popularity. This has been spurred by the rapid growth in the offerings by the various cloud providers such as AWS, Google, Microsoft, and IBM. There has also been the introduction of more observability tools to provide visibility into systems like never before.

Serverless computing gives cloud providers the opportunity to control the entire development stack, manage resources and thus, minimise costs, encourage customers to use the various products/services offered in their ecosystem and continue to reduce the amount of effort developers need to create and manage scalable applications.

As a developer, the abstraction of operational and infrastructural concerns allow me to only worry about my code. However, there are challenges that still exist. One of the drawbacks of serverless has been the lack of tools and frameworks. Thankfully, this is changing gradually as several cloud providers now provide various products/services which address this concern and aids the development process. One of my favourite tools is the serverless framework, as it is open source, provides excellent support and deployment to any cloud provider.

With the rapid advancement in technology, I see most of the challenges as soon becoming part of the past.

Photo by Markus Spiske on Unsplash

--

--