ServerlessDays: Belfast 2020

Marc Templeton
Kainos Applied Innovation
4 min readMar 27, 2020

[server]less, is more

Serverless refers to storing and running your code in the cloud via a provider, e.g. Amazon, Microsoft, Google, etc. Executing code in this manner is known as event-driven or the function-as-a-service (FaaS) paradigm. Allocating the hardware provisioning to someone else has the benefit of reducing overheads but more importantly, additional hardware can be spun-up — almost instantaneously — to meet demand. Serverless’ main overhead reduction is in its pricing model which states that you only pay for execution time, incurring no cost when the program is idle.

ServerlessDays: Belfast 2020, what was it?

This event was part of a series of ServerlessDays conferences held worldwide to promote and grow a community of serverless adoptors! These conferences are organised and ran independently by eager, local engineers including Kainos’ very own Peter Farrell. Last Friday ServerlessDays: Belfast 2020 took its inaugural steps as the first in this series to take place on the isle of Ireland and boasted a sold-out crowd of 200 participates, 10 talks with an additional 4 lighting talks and 1 or 2 ‘Heros’ walking around!

The day was packed full of content but I’ve summarised the key points that I took away below.

Features, features and more features. The serverless journey has come on a long way over the past few years and this was no less highlighted than the opening talk from Danilo Poccia from Amazon who showcased the development AWS has made in releasing services to reduce complexity and concerns around latency, language support and learning new paradigms which stifle business progression and innovation.

Flexibility in the cloud. Martin Woodward from Microsoft demonstrated the seamless integration of Azure with traditional CI/CD techniques whilst Azure MVP Mark Allan talked how Kubernetes extensions allow for applications to be written in containers but ran in the cloud. There was also a talk on how serverless platforms are making more use of edge computing to reduce latency.

Design and build like a piece of LEGO: iteratively. Sheen Brisals, LEGO’s Senior Software Engineer, gave an insight into how his team migrated from an entire legacy e-commerce system to a fully serverless setup in just 10-months. The key takeaway from this talk wasn’t the sheer mammoth accomplishment of the task but rather the approach taken by Sheen and his team; iterative development. Sheen highlighted how well suited iterative development on a serverless application was, primarily down to its decoupled nature meaning small increments of services could be brought into production as they were developed.

Serverless joke of the day:

Q: What do you get if you cross a serverless system with a non-serverless downstream dependency?

A: ɯǝɥʎɐW

Serverless components provide excellent concurrency because their FaaS setup allows tens, if not hundreds, of requests to be handled at once, but how does this impact non-serverless downstream components? Well, dependencies such as non-scalable RDBs have a finite number of parallel connections which serverless can exceed resulting in lost messages. So, what is the solution? This was the pre-set and discussion around Jeremy Daly’s talk which highlighted design principals to bake resiliency in applications. Resiliency is a measure of how well a system performs after failing. Therefore, we accept the shortcomings of the downstream RDB and design cache clusters, circuit breakers, dead letter queues and other design patterns using serverless services. Another huge talking point was the understanding and appreciation of when to use asynchronous and synchronous requests when you have slower downstream services; showing transparent with your users stating that the system is ‘thinking’ — realistically knocking repeatedly at the door of non-serverless components — will drastically improve their experience.

A change of minds, or a change of titles? To implement serverless successfully within a business it must be adopted throughout. One change of philosophy to do this is to think of traditional Software Engineers within serverless projects more as Architects.

You can’t escape good ole’ research. Whilst it is easy for businesses to think of serverless as a ‘silver bullet’ that will solve latency and performance issues, research into microservices is imperative. These services have limits and similar ones have subtle differences, understanding these and what that means for your product to uncover which is best suited for your particular use-case.

Speak the same language: business. One cause of poor software quality is down to a lack of domain knowledge when designing a product. A design pattern to resolve this is Domain-Driven Design (DDD) which Susanne Kaiser discussed. DDD looks at mapping business users, their needs and the services to achieve that into ‘cores’ which have different value to the product.

The event session was recorded and when it is uploaded I will update this post.

If you are interested in any of these topics and want to know more, check out the Applied Innovation publication below!

--

--

Marc Templeton
Kainos Applied Innovation

Full-time Software Engineer at @KainosSoftware. Part-time velociraptor impressionist.