Here is the new analysis of trends in Technology, Tools, Platforms and Languages & Frameworks. ThoughtWorks is sharing their experiences from projects they support or build in a periodic Tech Radar publications. The pdf version for Nov 2016 is here and the newest edition is always here. In this post I’m going to share remarks that affects currently my daily job.

TECHNIQUES

ADOPT Customer Driven Contracts

A must in a microservice environment, when you need to test your service in isolation from others in a line with theirs API (contract). There are several tools utilizing that, depending on your technology. Not all of them are mature enough, however it is a good investment to use them.

ADOPT Pipeline as a code

Manual CI job configurations finally can be replaced. for sure your CI has some support of keeping the configuration as a code that is tested and versioned together with your source code.

HOLD A single CI instances for all teams

I can imagine 20 projects on one CI, one is building and 19 are in queue. Then comes the 21st project and it changes the CI config that breaks others builds. One CI for whole organization is not a solution.

HOLD Anemic REST

REST API is not just an API to browse database. Feel free to model your business processes in API as well. If you are adding new user to your system, you don’t need to POST on ‘/users’, since you have a table ‘users’ in your DB. Go on and make an API for business process that you are modelling and POST for ‘/registration’

TOOLS

ADOPT Consul

A Service Discovery tool supporting DNS and HTTP discovery with customizable health checks. Right now I’m into Eureka so time to compare those two once again

ADOPT Graphana

As a live monitoring tool for visualizing your metrics. Definetely useful and easy to integrate with your framework

LANGUAGES & FRAMEWORKS

ADOPT Spring Boot

It’s in adopt since April, however is widely used in industry in production systems for a bit longer. I have an experience with it in production systems and definetely agree with this judgement.

HOLD AngularJS

Do not start a new project with AngularJS v1. If you start a new project ThoughtWorks prefers ‘the ramp-up speed and more maintainable codebases we are seeing with Ember and React’

Jenkins 2.0 as deployment pipeline is on hold – still the build pipeline generation is not a first-class-citizen since it is still based on plugins. Authors says that it could be done better. I suppose that it recommendation considers only the pipeline, not the CI itself

Apache Kafka is on trial – although quite widely used in industry. Authors have a pragmtic approach building the report

Languages & Frameworks

Spring Boot to adopt – seems to be obvious choice right now, so those who bet on it few years ago were right (lucky me!)

React.js to adopt – as a JS framework with one-way binding, providing the loose coupling on the front side

Platforms

Docker! Docker! Docker!

Techniques

GitFlow on hold! That’s right. Authors noted that feature branches tend to stand away from master / develop branch for too long. That causes the merge / integration problems. So the point is to use GitFlow wisely. Feature branch and merge request that have 2 days of coding in it are far too big.