I get to do lots of fun things as part of my day job at Thoughtworks. One of them is that I get to help out on the creation of the Thoughtworks Technology Radar as part of my membership of our Technology Advisory Board (TAB). We put one of these out every six months or so, and the most recent edition has just gone live.
The radar itself is basically a series of 'blips' broken into quadrants and rings. The rings show more or less whether or not we think the technology is a good idea or mature enough for mainstream use (Hold, Assess, Trial, and Adopt). The quadrants give some basic categorisation (Techniques, Tools, Platforms, and Languages & Frameworks). The process behind creating the radar is now pretty slick (we've been at this a while), but to the outside observer they'd probably just see a bunch of grownups arguing around a giant whiteboard. Each of us brings our candidates to our face to face meeting, and argues the merits for their inclusion - around 120 blips make it into the final version, but twice as many don't make the cut.
The important thing to understand is that the radar is not trying to be either objective nor comprehensive. It represents, to an extent, what Thoughtworkers are interested in (many of the blips come from our co-workers), but also what the opinionated people in the room want to argue for. So inconsistencies abound! You can get more information on how we select things, and why certain things fade, in the FAQ.
The radar itself does a good job of highlighting the various trends we spotted when looking at the blips as a whole. But I thought it would be good to pull out a few of the blips that really interested me personally.
During my research into microservices this was one of the patterns that emerged. A way to avoid the perils of a single-purpose API backend, a Backend-For-Frontend (BFF) is instead a single-purpose API which is paired with a specific user interface. Hat tip to Phil Calçado for naming the pattern based on his work at SoundCloud! I mention it in my book, Building Microservices, but plan a more in-depth study of the pattern (to be published soon).
SysDig - and we're talking about the open source command-line tool here, rather than it's commercial parent SysDig Cloud - is awesome. A plugable CLI for common sys admin tasks (with helpful stuff for working with Docker too), if all it offered was a more uniform interface to a bunch of useful commands I'd be interested. What I love about it though is it's ability to capture trace files from a machine and interrogate them later on. This means if a machine gets wedged in prod you can grab a trace file, tear it down and restart another one to get the site up again, but still have the information you need to find out what happened. The overview video below is well worth a look…
AWS Lambda is, in my opinion, the first time that AWS have really got close to a decent developer-ready platform as a service. Beanstalk is less of a PAAS offering, more of a wizard over infrastructure, which most teams end up bailing on. Lambda is something else again. Lambda allows you to spin up very short lived processes to respond to either an event or an API call. When no requests are coming in, you aren't running anything, and not getting charged for it either. For stateless processes especially, such as you might find in abundance in the average microservice architecture, lambda has the potential to be incredibly powerful.
We all know that HTTPS is a good idea for public facing websites, and even internal services, but managing certificates is a pain. Let's Encrypt is a new signing authority which aims to lower the barrier to entry for protecting sites with HTTPS. They do this in two ways. Firstly, they're free. Secondly, and more importantly, the provide a fully automated way to issue and renew certificates via their command-line interface! In beta right now it should be generally available by the end of the year.
So, if I've done enough to whet your appetite, go and check out the latest edition of the radar. There is even a PDF download available too for offline reading and printing!
An earlier version of this article first appeared on Sam Newman's personal website.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.