Les microservices : est-ce réaliste ? Les géants américains du Web ne jurent plus que par elle.
L'architecture en microservices balaye la SOA. Mais est-elle applicable partout, à toutes les applications ? Quels sont ses atouts, ses inconvénients ? Des experts répondent. Il est des architectures informatiques comme de l’habillement : une mode chasse la précédente. C’est, pour les fervents militants de cette nouvelle architecture, le seul moyen d’encaisser les montées en charge vertigineuses qu’un service Internet ou mobile peut connaitre lorsqu’il rencontre le succès à l'échelle mondiale.
Puissante mais complexe, l’architecture en microservices demande de maitriser des solutions nouvelles sur lesquelles les compétences de haut niveau sont rares. Le Journal du Net a demandé à quelques experts en microservices français de répondre à la question : Les entreprises françaises doivent-elles aujourd'hui songer aux microservices ? Docker/dockercraft. How did Linkedin decrease code lines from 60K (Ruby) to 2K (Node.js)? They Write the Right Stuff. The right stuff kicks in at T-minus 31 seconds.
As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take command. Four identical machines, running identical software, pull information from thousands of sensors, make hundreds of milli-second decisions, vote on every decision, check with each other 250 times a second. A fifth computer, with different software, stands by to take control should the other four malfunction. At T-minus 6.6 seconds, if the pressures, pumps, and temperatures are nominal, the computers give the order to light the shuttle main engines — each of the three engines firing off precisely 160 milliseconds apart, tons of super-cooled liquid fuel pouring into combustion chambers, the ship rocking on its launch pad, held to the ground only by bolts.
As the main engines come to one million pounds of thrust, their exhausts tighten into blue diamonds of flame. The economics of software correctness. This post is loosely based on the first half of my “Finding more bugs with less work” talk for PyCon UK.
You have probably never written a significant piece of correct software. That’s not a value judgement. It’s certainly not a criticism of your competence. I can say with almost complete confidence that every non-trivial piece of software I have written contains at least one bug. You might have written small libraries that are essentially bug free, but the chances of having written whole programs which are are tantamount to zero.
I don’t even mean this in some pedantic academic sense. Why is this? Well, lets start with why it’s not: It’s not because we don’t know how to write correct software. Also, if you look at the NASA development process you will pretty much conclude that we can’t do that. The problem is not that we don’t know how to write correct software. And “too expensive” doesn’t mean “It will knock 10% off our profit margins, we couldn’t possibly do that”. How we ended up with microservices. Microservices are a thing these days.
When I was at SoundCloud, I was responsible for the migration from a monolithic Ruby on Rails application to a constellation of microservices. I’ve told the technical side of this story multiple times, both in presentations, and as a multi-part series for SoundCloud’s engineering blog. These engineering bits are what people are most interested in hearing about, but recently I realised I never explained to a wider audience how we ended up using microservices to begin with.
I am sorry to disappoint my fellow techies, but the reason we migrated to microservices had to do much more with productivity than pure technical matters. I’ll explain. Note: This post definitely has a lot of revisionism, and, in trying to make it easier to understand, oversimplifies a fairly chaotic chain of events into a linear timeline. The Next project When I first joined the company, the most important project we had at play was what we internally called v2. Process hacking. Agile Games Nantes. La cathédrale et le bazar.