L’usage et l’utilité du Cloud ne sont plus à prouver. Désormais les réflexions autour de ce nouvel outil se concentrent sur quand migrer et, plus intéressant encore, comment migrer.

Une fois dans le Cloud, une série de questions se pose. Comment assurer la robustesse des workloads ? Comment trouver des avantages compétitifs par l'usage des services offerts par le Cloud ? Comment innover ? Comment fournir des produits fiables ? etc.

Toutes ces questions trouvent en partie réponse dans l’humain, c'est-à-dire les femmes et les hommes qui, à travers leur compréhension du Cloud, seront à même de répondre aux problématiques de notre époque.

En d’autres termes, l’évolution technologique doit s’accompagner d’une évolution des métiers pour supporter le changement de paradigme technologique.

Chez WeScale, nous avons remarqué l’émergence d’un nouveau profil : le Développeur Cloud Native.

Au-delà de son expertise de développeur, ce profil hybride possède des qualités souvent associées à d'autres métiers. Rigueur du codeur, intransigeance de l’expert sécurité, vision de l’ architecte sont des qualités avec lesquelles un développeur Cloud Native compose et s’adapte. Plutôt que d’en donner une définition formelle, nous préférons exposer les principes autour desquels nous pensons que tout Cloud Native Développeur se retrouve :

  • Pense service

Le Cloud se pense à travers l’existence de services, leur consommation et leur orchestration/interaction. Chaque service possède un ensemble de propriétés qu’il faut être capable de combiner les unes aux autres pour répondre à un besoin métier.

  • Est un architecte

La manipulation de services Cloud nécessite d’avoir une prise de recul sur la manière de les organiser. D’un point de vue Développeur Cloud Native, l’application ne se résume plus à du code pur, mais à la synergie de services qui nécessite donc d’en architecturer l’organisation.

  • Pense scalabilité

Tout produit ou application doit se concevoir en ayant en tête l'élasticité de la solution. Des garde-fous permettent d’en contrôler et maîtriser la croissance et une phase de tests dédiés permet d’éprouver la solidité de l’approche.

  • Est frugal

Faire mieux avec moins est une philosophie de tous les instants. Que ce soit en termes de ressources utilisées, de temps investi, ou de composition d’équipe, tout doit se penser de manière économe et responsable.

  • Pense sécurité

Secure By Design est une caractéristique non négociable d’un produit. Le Développeur Cloud Native connaît les différentes couches de sécurité et les pense à la fois de manière exogène et endogène à l'application.

  • Automatise au maximum

Depuis sa conception jusqu’à sa mise en production, la chaîne de production d’un logiciel doit être la plus automatisée possible. Tout action manuelle est l’exception et non la règle.

  • Prend du recul sur la technique

Les bonnes pratiques propres au développement sont importantes, mais font partie d’une équation globale. Elles viennent soutenir une architecture métier et sont à ce titre un moyen et non une fin.

  • (Se) Remet en cause souvent

Un développeur Cloud Native ne juge pas la valeur d’une architecture au temps passé dessus. Si des arguments techniques ou fonctionnels justifient la remise à plat totale ou partielle d’un applicatif, des actions sont immédiatement prises.

  • Accepte de faire des compromis

Le tout est plus important que la somme des parties. Le développeur Cloud Native est capable d’assumer des choix non-optimaux pour atteindre un objectif opérationnel, tout en balisant le terrain pour de futures optimisations.

  • Consomme des technologies en étant guidé par des concepts

Languages, services, Cloud providers, ne sont que des expressions de concepts.
La réussite d’un projet passe plus par la compréhension des concepts sous-jacents, qu’ils soient de bas niveau ou de haut niveau, plutôt que la maîtrise fine d’une syntaxe d’utilisation.

  • Prend des risques maîtrisés

Le développeur Cloud Native ne favorise pas la stabilité au dépend de l’innovation. Il sait trouver un équilibre entre innovation et fiabilité.

  • Délivre

Un développeur Cloud Native est un acteur de terrain. Il propose, démontre et délivre. Ses livrables sont du code plutôt que des “slides”. Sa philosophie est l’action plutôt que l’attentisme.

  • Est orienté donnée

Toute donnée générée doit être exploitée. Que l’on parle de log applicative, de log réseau et infrastructure ou de donnée métier, chaque information doit être utilisée et analysée dans un but d’amélioration continue.

  • S’engage mais est réaliste

Des engagements clairs et chiffrés sont supportés par des Service Level Agreement actés avec les consommateurs des différents services. Le développeur Cloud Native définit ces engagements en fonction des besoins métier et de contraintes techniques objectives.

Définir un profil est un exercice délicat. Sans prétendre être exhaustif nous pensons que ces 14 points résument l’essentiel : un profil multi-compétences qui s’adapte aux changements perpétuels des plateformes Cloud. Hier, la demande de profils développeurs portait essentiellement sur le langage. Nous pensons aujourd’hui que cette approche tend à s’effacer au profit d’expériences sur des fournisseurs Cloud. Pour autant, cette qualité ne doit pas faire disparaître l’essentiel, à savoir que des concepts sous-jacents et communs à toutes ces plateformes se retrouvent derrière les caractéristiques du développeur Cloud Native.

C’est en recrutant et cultivant ce type de profil que vous pourrez tirer le meilleur parti du Cloud pour vos projets.