That’s what happened in Belfast last Friday with the first Serverless conference in Ireland, Serverless Days Belfast.
10 Talks, 4 lightning talks, around 300 people, excellent coffee, fabulous lunch and spectacular traybakes.traybake
Paul Swail has done an excellent write-up already, so I won’t attempt to repeat what he’s said. Go read his report.
Here are my thoughts after each of the presentations.
Kicking us off Danilo Poccia gave a history of Serverless on AWS and an overview of what’s currently available. He challenged us to think about what we need to learn or unlearn.
For me, that’s a crucial step and one that events like Serverless Days help with. Serverless software development differs from traditional techniques and there is a lot of unlearning to do. Approaches that work in legacy application development can be bad patterns when using Serverless.
That thought was echoed in Jeremy Daly’s talk which focused on techniques to integrate non-serverless components. You need to think differently about resiliency and scaling techniques because “Everything has Limits”. Jeremy has also published a number of serverless patterns.
Next up, Michael O’Reilly gave us an insight into making the jump to Serverless. On the subject of learning he told us to “Bring the pain forward” (which I think is a Jez Humble quote?). He also highlighted that there’s room for communities of practice that perhaps we miss out on. We need to share the non-differentiating features of our industry. That echoes a concept I first learned in radio, which has a mantra of “agree on technology, compete on content”. I guess in sofware that might translate to “agree on patterns, compete on algorithms”?
After demonstrating Microsoft’s excellent DevOps tools Martin Woodward stunned us with a real-time demo deploying code to a Commodore 64 running in Azure. He introduced 5 key practices we should bake in to our processes to ensure continuous delivery. He described Serverless development as “actual chaos” (in a mathematical sense, i.e. you can't be sure what it's going to do) which made me think we need to start thinking about using Cynefin a bit more.
In between telling us dodgy jokesjoke, Bret McGowen echoed Michael’s thoughts about undifferentiated heavy lifting - “If it’s not something you do differently, outsource it”. He introduced Firebase as a means to reduce the amount of code we write, which looks very interesting for rapid application development. And did you know he’s from Texas?
Sheen Brisals gave us an excellent story of Lego’s transition to Serverless for their e-commerce platform. The big learning takeaway for me was that Serverless is an ecosystem and you need engineering diversity to succeed. That made me think we need to grow key-shaped engineers who have communities of practice (h/t Michael O’Reilly) to reach out to for support.
Farrah Campbell gave us a refreshing insight into the challenges in getting into technology. We don’t make it easy for people to get started. Serverless can lower the barrier to entry, which can only be a good thing as it will increase our engineering diversity (h/t Sheen Brisals). She also showed the best slide of the day too, “I know you feel anxious but you forgot the part where you’re a badass”.
We got another beautiful example of how people learn from Glenn Horan who documented his first experience with Cloudformation. Knowing about and using the right tools can save us hours (days?) of pain. Another opportunity to rely on those communities of practice?
One of Glenn’s slides showed his git history from when he tried to get his function to work properly, which highlighted for me a need to be able to test things like Cloudformation locally without requiring a git push and CI build. That conflicts a little with what Paul Swail recommended in his talk - he encouraged us to use cloud services instead of running locally. Paul’s talk highlighted areas of learning around deployment techniques which vary from the way we might do traditional development, things like source code management, testing and micro service architectures. Is there a recommended pattern for testing Cloudformation?
Paddy Carey introduced yet another new piece of AWS technologies that I wasn’t aware of, Lambda@Edge. I’m already thinking of places where that could have been useful to me in previous projects.
Tom Wallace showed us how not to do it by describing a wonderfully complicated hello world Serverless application - I can’t wait to see the GitHub repo for this one.
Mark Allan gave us the challenge to think of Kubernetes as Serverless, demonstrating that it’s possible to run Serverless functions in containers. I confess that I have to date managed to avoid thinking about Kubernetes, and I want that to continue as long as possible…
We got an excellent introduction to Wardley mapping & Domain Driven Design from Susanne Kaiser, but the big headline from Susanne was a snippet from the CISQ report that in 2018 poor quality software cost 2 TRILLION, 8 HUNDRED BILLION dollars! It’s time to up our game and spend that money on solving climate change, ending world hunger and building a colony on Mars.
The day was wrapped up by Yan Cui. Yan gave us 8 mistakes developers make with Serverless, echoing Paul’s 8 mistakes (Did they both independently arrive at the same number?) He warned us of legacy thinking, that we may not see faster delivery using Serverless if we don’t allow our team culture to change to support it. This is what Farrah referred to as Serverless thinking in her talk. We need to trust our developers to build deployable software, and to provide relevant training where they need it (instead of restricting their access because they don’t understand our setup).
I've taken a long list of things to think about away from this conference. I anticipate working a number of these concepts into our training programme as we develop our cloud and serverless portfolio.
*[h/t]: Hat tip