Netflix : pari gagné sur le cloud basé sur les microservices

Les services reposant sur le cloud sont en passe de révolutionner tout ce que vous pensiez savoir sur les applications et la sécurité. Mais nul besoin de nous croire sur parole ; demandez plutôt l’avis d’Adrian Cockcroft, VP en stratégie des architectures cloud chez AWS et ancien architecte cloud chez Netflix.

De nombreux employés de Netflix n’étaient pas convaincus que le passage aux microservices était une bonne idée. « La moitié de l’entreprise pensait que c’était stupide. » —Adrian Cockcroft, ancien architecte cloud chez Netflix

Au cours d’un grand débat en compagnie de Frank Chen et de Martin Casado de la firme Andreessen Horowitz (également connue sous le sigle « a16z »), Adrian Cockcroft aborde la façon dont Netflix a parié sur l’architecture microservices et explique les incroyables innovations qui en ont découlé.

Écoutez le podcast complet d’a16z ici. Voici les six principaux points à retenir.

1. Il est utile d’agir rapidement et d’être directif

Avec la transition de Netflix d’un service de livraison de DVD lent à une plate-forme de streaming incontournable, l’entreprise savait qu’elle devait entreprendre des changements fondamentaux. Pour commencer, elle devait sortir de son propre datacenter et aller dans le cloud. Elle devait également passer d’une base de données Oracle monolithique à une architecture microservices (cette dernière consiste à diviser les applications en petits processus modulaires capables d’être déployés de manière indépendante). Au cours de ces opérations, la culture de Netflix a elle aussi évolué, et ses développeurs ont été réassignés dans des équipes plus petites, plus axées sur les produits.

« Ce qui était intéressant, c’est que la mise en place simultanée de tous ces changements radicaux a permis d’obtenir une meilleure adhésion au projet », affirme Adrian Cockcroft.

« Réaliser des changements progressifs, ça semble être bien en théorie, mais en pratique vous devez être suffisament directif pour que tout le monde agissent de concert », déclare-t-il. « Notre problématique principale était que la capacité de nos datacenters était insuffisante pour assurer le streaming. »

2. Préparez-vous à surmonter une résistance culturelle profonde

Même à cette période, beaucoup d’employés chez Netflix n’étaient pas convaincus que le passage aux microservices était une bonne idée. Adrian Cockcroft a dû alors réaliser quelques travaux de base pour les convaincre.

« La moitié de l’entreprise pensait que l’idée était stupide. Quelques-uns d’entre nous pensaient qu’elle pouvait marcher, tandis que d’autres personnes étaient un peu plus enthousiastes », explique-t-il. Il a alors formé un groupe de pionniers qui pensaient que l’idée pouvait fonctionner, les a tous réunis dans une même pièce, puis a commencé à développer des idées dans le cloud pour comprendre les véritables défis à relever.

« L’astuce consiste à former une petite équipe, à puiser très loin et à exécuter toute une série de petits projets, afin d’en apprendre le plus possible avec un apport initial minimal. »

3. L’architecture microservices améliore la sécurité des applications

Traditionnellement, pour protéger une énorme base de données dans un datacenter, il est nécessaire d’accumuler suffisamment de dispositifs de sécurité en amont pour tenir les « méchants » à distance. Cependant, cette approche présente de sérieux inconvénients. « Si quelques normes PCI sont requises dans un petit coin du monolithe, le bloc entier doit se conformer aux normes PCI et SOX, et à bien d’autres choses », affirme Adrian Cockcroft. « Et si cette base de données monolithique est compromise, les méchants ont accès à tout son contenu. »

Adrian Cockcroft reconnaît : « En divisant cette base de données en plusieurs groupes de services dans le cloud, vous ajoutez de nouvelles couches de complexité à la sécurité et à la conformité. Cependant, en la morcelant en plusieurs services, vous pouvez verrouiller les éléments que vous devez absolument protéger, tout en étant plus souple vis-à-vis des services moins risqués. En fragmentant l’application, la plus grande partie est extrêmement agile et innovante, tout en conservant les éléments à sécuriser extrêmement bien protégés. »

4. L’architecture microservices oblige vos développeurs à écrire du code plus fiable

Dans un environnement très agile, où les applications sont actualisées plusieurs fois par jour, il est physiquement impossible d’examiner entièrement chaque changement et de les valider. « La seule personne qui connaît l’état exact d’un service donné est le développeur qui l’a modifié en dernier », affirme Cockcroft.

« Ça semble peu rassurant, mais dès que vous vous rendez compte que chacun d’eux ne contrôle qu’une très petite partie du système, vous savez que le comportement du système dans son ensemble reste vraiment robuste et fiable », dit-il.

Si vous responsabilisez les développeurs vis-à-vis des performances de leur code, vous les obligez également à adopter de bonnes pratiques. Personne ne souhaite passer ses week-ends à corriger des problèmes.

« Si un développeur est d’astreinte, il s’efforcera d’écrire du code vraiment fiable et ne le publiera pas un vendredi après-midi ». « En étant d’astreinte et conscients que leur code doit tenir la route, les développeurs savent ce qu’ils ont à faire. »

5. L’architecture microservices permet de meilleures performances des applis

Lorsque vous passez aux microservices, vous répartissez votre charge de travail dans des groupes qui sont responsables et chargés de créer et de perfectionner un conteneur. Leur objectif prioritaire est de rendre ce conteneur aussi simple et performant que possible. Non seulement cette opération permet d’avoir toujours plus de conteneurs sécurisés, mais votre application bénéficie également de meilleures performances directes si tous les conteneurs sont optimisés en permanence.

6. L’architecture microservices permet aux grandes entreprises d’agir comme des start-up

En diffusant leurs services dans le cloud, les organisations peuvent agir à la vitesse des affaires, en faisant potentiellement passer leurs opérations d’un centre de coûts à un produit.

Secteur par secteur, les grandes entreprises qui travaillent de manière cloisonnée réalisent que l’adoption du cloud et de l’architecture microservices n’est pas seulement un avantage face à la concurrence, c’est une question de survie.

« La menace existentielle est vraiment présente », indique Adrian Cockcroft. « Si vous sortez des produits et services tous les trimestres, alors que vos concurrents le font tous les jours et de manière continue, vous allez vous retrouver très à la traîne en termes d’expérience utilisateur et vous en pâtirez. Les entreprises qui réussissent à combiner le DevOps et la microarchitecture dans le cloud commencent vraiment à distancer sérieusement la concurrence. »

Netflix a su reconnaître la nécessité d’une transformation commerciale en s’appuyant sur la technologie. Sa décision de passer d’un service de livraison de DVD lent à une plate-forme de streaming incontournable a nécessité un changement fondamental, en évoluant d’un modèle avec un datacenter monolithique à une architecture microservices axée sur les applications. La transformation numérique est un voyage, et non une destination. Chaque entreprise se situe à un endroit différent de ce voyage et doit emprunter une route différente. L’important est de faire le premier pas.