Serverless — the Ghost of the Future?
My takeaways from the maiden Serverless Computing conference in London
I know this article is a bit late. It was written a long time ago but remained unpublished until now.
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.
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:
- Serverless computing is the future and we can only expect much more.
- The thing that is inevitable is change, no matter what or how we feel about it.
- Serverless provides developers with boundless opportunities and possibly the first billion dollar app developed by a single developer!
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.
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
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.
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
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.
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.
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.
Resources
- AWS Serverless
- Serverless computing — Microsoft Azure
- Serverless computing — Google Cloud
- What is serverless computing and which enterprises are adopting it?- Scott Carey, Computerworld
- Serverless Architecture — Twilio
- Serverless Architectures
- The Rise of Serverless Computing
- Serverless — The New Stack
- Serverless: The New World of Software Development — Eddie Jauregui
- The serverless approach to testing is different and may actually be easier -Paul Johnston
- Basic Integration Testing with Serverless Framework
- How to Test Serverless Applications
- How to Test Serverless Applications — Yan Cui
- Principles of Chaos Engineering
- Monitoring and Observability — Cindy Sridharan
- Five Approaches to Serverless Application Observability- Epsagon
- Serverless observability brings new challenges to current practices — Yan Cui
- Monitoring Isn’t Observability — Baron Schwartz
- Monitoring and Observability — What’s the Difference and Why Does It Matter? — Peter Waterhouse
- Best tools for serverless observability — Andrea Passwater