Symphonia's March 2023 newsletter
This is the latest edition of our newsletter. To receive the email version please subscribe here.
Hello from Symphonia!
For new subscribers, and those who may have forgotten who we are, Symphonia consists of myself, Mike Roberts, and my business partner John Chapin. We are technology consultants, helping companies around the world with software architecture, software development, and Dev Ops - almost always in the context of using Amazon Web Services. Since we work with engineers, CTOs, and all roles between, you can think of us as “fractional principal engineers”.
When we started Symphonia at the end of 2016 our goal was to help companies using Serverless technologies. At the time Serverless was new, but we’d already had success using AWS Lambda at our previous company. It turns out we were a little early though for most organizations, and so Serverless ended up being just a part of our work for the first few years. More important to companies was our broad and independent view of the AWS platform in general.
Over the last 3 years we’ve seen a shift, with Serverless starting to “cross the chasm” into the mainstream. I’ve recently had two long running projects with companies replatforming container-based systems to AWS Lambda, and John just finished a long data engineering engagement which used AWS Glue, and related services.
In other words we’ve finally got to where we hoped to be, it just took a little longer than we’d planned!
Serverless in 2023
Earlier this year I was invited to be a guest on the ThoughtWorks Technology Podcast to speak about the state of Serverless today. It was a fun conversation, and I explored some of the main topics in an article last week. These were:
- What does Serverless actually mean today?
- The good and bad of the enterprise-ification of Serverless
- Lambda is great, but teams don’t necessarily know how to build with it
- Will companies embrace the Serverless-enabled event-driven renaissance?
Overall I’m still happy with the trajectory of Serverless nearly a decade after I first used some of its primary techniques. My main concerns now aren’t actually technical - they’re educational. I think that the AWS Serverless platform, at least, is now capable of supporting most of the types of software systems I’ve worked on in my career. The biggest problem is teams understanding what they need to change, and what they don’t need to change, in relation to how they’ve built solutions before.
To learn more take a listen to the podcast, or read my article.
AWS boosts Serverless Java
AWS saves its biggest launches of the year for the “re:Invent” conference that takes place in November. A surprise for the Serverless community at 2022’s re:Invent was that the biggest new feature for Lambda was specific to Java / JVM applications. This feature is named “SnapStart” and its goal is to solve “the cold start problem”.
John and I are fans of Java on Lambda - it’s how we got started with Lambda, and we wrote a book on it! But if we’re being honest we thought that Java was an “also ran” of the Serverless world, and we don’t use Java with many of our clients. So to see AWS invest this heavily in Java on Lambda tells us that while Node, Python, and Go may get a lot of the Lambda-buzz in general, there’s a quiet mass of companies either already running their JVM code on Lambda, or wanting to do so.
John’s already been using SnapStart - to great success - with one of our clients. If you want to learn more about SnapStart I wrote a couple of articles - both the “what, and why” of SnapStart, and also how to use it.
CDK - Infrastructure as “actual” Code
One of the long running concerns with Serverless is deployment tooling. Partly that’s because a lot of what used to be hidden complexity within the code of large applications now becomes the deployment, configuration, and connection, of multiple cloud services and resources.
Our default recommendation for deployment with AWS has been Amazon’s own infrastructure-as-code service - CloudFormation. The big problem with CloudFormation though is that it’s not particularly pleasant to work with - especially when it comes to defining what you want to deploy using CloudFormation templates.
The solution for this from AWS is a somewhat recent project named CDK - the Cloud Development Kit. CDK lets you define your CloudFormation-deployed infrastructure using standard programming languages, rather than configuration templates. In turn this allows engineers to use all the kinds of editing, abstraction, testing, and refactoring techniques from writing application code in the realm of infrastructure code.
I’ve been using CDK now for about 18 months, and without question I find it far quicker to develop and modify CloudFormation infrastructure with CDK rather than templates. But I don’t recommend it for all teams - I have concerns with CDK as relates to long term maintenance, especially for certain organizational-structures. I wrote more on this last year - take a read.
If you want to join me in the land of CDK then I’ve started writing a few guides on our blog, and I expect to be doing a lot more work in this area over the rest of the year, so stay tuned!
Closing Out
On the podcast I mentioned earlier the host Mike Mason asked me “Are we getting to the point where it’s not a question of whether it’s appropriate, it’s more like how are you going to incorporate serverless architecture into your systems?” Not surprisingly I answered with a whole hearted “yes”! If Serverless is about anything it’s about picking the best service to support each facet of a system - just like you might use the best library within a traditional software codebase.
As such the key to starting with Serverless isn’t necessarily to throw away everything you have right now. Instead it’s about looking at your ecosystem, deciding where new cloud services could help you move faster or save money, and incorporating those new services into your architecture, development, and operations lifecycles.
If you’d like to chat about how that might work for you then drop us a line at mikeandjohn@symphonia.io - we’d be happy to chat.
Until next time,
Mike & John
To receive the email version of this newsletter please subscribe here.