Ops, architecture web et Data : Technos et tendances phares

Que ce soit des méthodes ou des outils récents ou déjà bien connus et maîtrisés par la communauté Tech, nous vous présentons une liste non exhaustive des technologies et tendances phares du moment en architecture web, Ops et Data.

CBTW
L’Actualité Tech — Blog CBTW
10 min readFeb 11, 2021

--

Tendances en Ops, architecture web et Data
Photo by Christina @ wocintechchat.com

Les tendances présentées sont issues d’une veille professionnelle régulière de notre secteur d’activité ainsi que d’échanges techniques internes entre collaborateurs.
Elles font suite à un premier article publié sur les technos et les tendances phares en développement web et mobile.

1. Tendances dans la conception d’architecture Web

La mise en place d’une architecture web permet l’organisation et la structuration du projet et répond à un besoin de maintenabilité et de pérennité. Il existe différents types d’architectures, qui peuvent être choisies selon le type de projet, le besoin métier, les fonctionnalités, le besoin de sécurité, les données traitées, etc.
Parmi les tendances d’utilisation actuelles, se démarquent :

Architecture en micro-services
Il s’agit d’une architecture modulaire basée sur les micro-services, un ensemble de fonctionnalités découpées en services indépendants selon leur utilité. Ces micro-services peuvent évoluer indépendamment les uns des autres et communiquent entre eux par le biais d’une API.
Cette architecture a notamment séduit Netflix et Spotify, qui sont passés progressivement d’une architecture monolithique à une architecture en micro-services. Toutefois elle ne correspond pas nécessairement à tous les types de projets, car elle est surtout utile pour simplifier des enjeux métiers complexes et elle peut nécessiter une réorganisation des équipes de travail par service.

Architecture CQRS (Command and Query Responsibility Segregation)
Cette architecture sépare la lecture de l’écriture des données et permet un traitement asynchrone des commandes.
Ainsi on distingue les requêtes de lecture de données, afin de récupérer rapidement et facilement une donnée sans traitement et sans modification, et les requêtes de modification de données, qui doivent être contextualisées et validées par les règles métiers appliquées au domaine.

Event sourcing
L’event sourcing est un type d’architecture événementielle qui enregistre chaque succession d’évènements ayant mené à l’état actuel d’une application.
Chaque action effectuée est enregistrée et l’on peut ainsi retracer le parcours et l’historique de l’ensemble des actions. Compatible avec une architecture CQRS, l’event sourcing permet de mener des analyses et ainsi de repérer facilement des corrections à apporter ou encore d’aider à la prise de décision.

Serverless
L’architecture serverless est un dérivé du cloud computing, basée sur un découpage de projet en fonctions. Les serveurs sont gérés et maintenus par les providers, qui assurent qu’une réponse soit bien transmise à chaque appel d’une de ces fonctions. Le code s’exécute donc uniquement lors d’événements, ce qui permet une allocation dynamique des ressources.
De plus, la structuration sous forme de fonctions rend l’architecture serverless compatible avec une architecture en micro-services.

2. Tendances dans l’Ops

Les équipes d’infrastructure et d’exploitation sont en charge des tests et du déploiement et de la maintenance des applications et services. Dans une démarche d’affranchissement des silos et de collaboration, on évoque de plus en plus la culture DevOps, qui vise à harmoniser les relations entre le développement et la production.
Un DevOps possède donc des compétences en développement en plus d’être en charge des opérations système, c’est-à-dire de l’infrastructure informatique et de la performance serveur.
Il a pour principales missions de déployer des applications sur différents environnements, de réaliser des tests en amont du développement et de veiller à la qualité et à la maintenance de la production et des applications et à l’optimisation continue des processus et des performances. L’objectif étant d’automatiser ces tâches au maximum.
Plusieurs tendances d’utilisation actuelles se démarquent pour la réalisation de ces missions :

Infrastructure et gestion de déploiements

Docker
Lancé en 2014, Docker est un logiciel qui sert à créer et gérer des conteneurs, afin de faciliter le déploiement et l’évolution d’applications dans différents environnements. Apparentés au fonctionnement des machines virtuelles, les conteneurs permettent de virtualiser le système d’exploitation d’un serveur et d’effectuer des processus de manière autonome.
Cette technologie présente différents avantages, tels qu’une consommation des ressources systèmes efficientes, un déploiement rapide et flexible, une facilité de restauration des versions précédentes et une forte portabilité sur les différents types de serveurs existants.

Kubernetes
Kubernetes est une plateforme open source mise au point par Google. Elle est utile pour automatiser le déploiement, la mise à l’échelle et la gestion des applications conteneurisées.
Kubernetes permet de gérer à la fois les ressources machines, la mise en réseau et le stockage et peut répondre à des enjeux de gestion de données continue et en temps réel.

Infra as code (IaC)
L’Infrastructure as Code se définit par une mise en place et une gestion automatisée des infrastructures, basées sur le développement de scripts. Ainsi via des lignes de code, il est possible de directement créer et gérer l’infrastructure d’un projet sur un serveur virtuel.
L’IaC permet aux développeurs de s’approprier certains éléments de la partie Ops liés à l’industrialisation et garantit une standardisation des projets, ainsi qu’un gain de temps et d’efficacité.

> Terraform
Terraform est un outil open source pour la création et la gestion d’infrastructures as code déclaratives. Écrit en langage Go, il sert, grâce à des fichiers de configuration, à administrer automatiquement son infrastructure sans traitement manuel.
En effet, en déclarant l’état désiré, Terraform s’exécutera pour atteindre l’état souhaité et appliquera la commande vers le provider de destination. Il permet d’ailleurs un déploiement vers plusieurs providers différents.

> Ansible
Créé en 2012 et géré par Red Hat, Ansible est un outil open source de gestion de configuration qui permet d’automatiser des tâches en transmettant des instructions sous forme de scripts au format Json. Écrit en langage Python, il permet de simplifier des processus tels que le déploiement, les mises à jour, etc. grâce à la gestion de modules. Il est notamment apprécié pour ses possibilités de personnalisation et sa simplicité d’utilisation, mais également pour son utilisation sur Docker.

> Pulumi
Mis au point par des anciens collaborateurs de Microsoft et présenté au public en 2018, Pulumi fait partie des Cloud Native Languages.
Cet outil open source permet de développer une infrastructure cloud à partir de différents langages comme Javascript, Go ou Python. Proche de l’architecture de Terraform, il offre également une gestion multi-providers.
Encore récent dans le paysage des outils infra as code, il n’est pas encore implémenté en entreprise, mais tend à devenir un outil incontournable au vu de son potentiel.

Spécialisation des opérations

FinOps
Le FinOps correspond à une stratégie d’optimisation des coûts engendrés par l’utilisation des services du Cloud. Il réunit donc les aspects financiers et opérationnels. Via la mise en place d’outils de suivi et de contrôle des dépenses, l’objectif est de mieux comprendre puis d’optimiser l’utilisation des ressources hébergées sur le Cloud.

DataOps
La DataOps est une nouvelle approche qui réunit les compétences de l’Ops et des métiers Data dans le but d’optimiser l’analyse de données. Ainsi, elle amène méthodes agiles, processus de contrôle et de suivi des données, mise en place de workflows et pipelines, et automatisation des déploiements et livraisons de données.

> Airflow
Airflow est un outil de planification de tâches qui fonctionne avec le langage Python. Il permet l’automatisation de processus grâce à la création et l’orchestration de workflows.

3. Tendances dans la Data

La Data Science a pour vocation d’appuyer la prise de décision à partir de données disponibles. Dans ce cadre, plusieurs disciplines sont donc sollicitées pour récolter la donnée, la rendre exploitable, l’observer et construire des modèles qui permettent d’interpréter ces données.

Un Data scientist doit maîtriser autant le développement, les statistiques et les outils de machine learning, qu’une bonne compréhension des besoins métiers.
Il peut donc être amené à travailler sur l’élaboration de modèles prédictifs ou de classification ou à coder, le plus souvent en Python, pour intégrer son modèle en production.
Plusieurs tendances d’utilisation actuelles se démarquent pour la réalisation de ces missions :

Python
Python est un langage de programmation interprété, multiparadigmes et multi-plateformes. Aussi utilisé pour le développement d’applications web, on le retrouve couramment dans les domaines de la robotique et de la data, notamment sur la partie machine learning et analyse de données.

> Flask
Flask est catégorisé comme un micro-framework. Il offre des fonctionnalités pour concevoir des applications web en Python via un fichier unique. Très facile à prendre en main, il propose de nombreuses extensions et s’interface également avec de nombreux autres outils.

> Django
Complet et flexible, Django est un framework Python open source. Il se targue de permettre un développement rapide et pragmatique avec peu de code en proposant une structure qui sépare traitements, données et vues.

À noter que Flask et Django, bien qu’ils soient des frameworks web, sont également utilisés par les Machine Learning Engineers afin de créer des APIs permettant de mettre à disposition leurs algorithmes de machine et deep learning.

Scikit-learn
Scikit-learn est une librairie développée en Python destinée à l’entraînement automatisé des modèles de Machine learning. Utilisée pour l’extraction et la classification de données, elle répond particulièrement aux enjeux de prédiction, recommandation et détection. C’est aujourd’hui le package le plus utilisé en Machine Learning.

Tensorflow
Développée par Google, cette librairie désormais open source est dédiée à l’apprentissage automatique. Elle permet de développer, d’entraîner et d’exécuter des modèles et des applications de Machine et de Deep Learning.
Elle est utilisée pour de nombreuses applications, telles que la reconnaissance d’image ou le traitement naturel du langage.

Data Engineering

Un Data engineer a une connaissance des infrastructures, du développement et des méthodes d’optimisation de traitement de la donnée. Il collecte des données brutes à rendre exploitables via la mise en place de méthodes automatisées et d’infrastructures de collecte, de stockage et de traitement des données.
Il peut traiter des problématiques complexes telles que le traitement de données en temps réel ou encore le traitement de grosse volumétrie de données hétérogènes.
Plusieurs tendances d’utilisation actuelles se démarquent pour la réalisation de ces missions :

Scala
Scala est un langage de programmation qui a émergé depuis l’École polytechnique fédérale de Lausanne (EPFL). Il s’agit d’un langage multiparadigme, qui prend en compte les paradigmes de programmation orientée objet et de programmation fonctionnelle. Proche du langage Java, il apporte des simplifications qui permettent de produire un code concis et simple. C’est un langage prévu pour être compilé en Bytecode Java. Ce qui lui permet, s’il est lancé sur une JVM, d’appeler des librairies Java de manière totalement transparente, et donc de profiter de son (gigantesque) écosystème.
Il facilite aussi l’évolution progressive des programmes grâce à son concept de programmation par paliers.

Spark
Développé en Scala, Spark est un moteur d’analyse et de traitement de données big data. Il permet de traiter de grands volumes de données de manière distribuée avec une haute vitesse d’exécution. En effet Spark écrit ses opérations sur la mémoire du cluster, contrairement à son équivalent Hadoop MapReduce qui écrit sur disque, lui permettant donc d’avoir des performances beaucoup plus importantes (à condition d’avoir suffisamment de mémoire).
De plus, grâce aux librairies qu’il inclut, il permet d’accéder à des données de différentes sources, puis de combiner différents traitements permettant de créer des flux de traitement complexes.

Hadoop
Développé en Java, Hadoop est un framework open source utilisé principalement pour le stockage et le traitement de volumes de données massif. Il est notamment utilisé par Twitter et LinkedIn.
Son utilisation permet de faciliter la réalisation d’applications distribuées et scalables, de traiter des données en temps réel et d’aider à l’exploitation et l’analyse dans des projets de Big Data.
Il s’est également inspiré des publications de Google (MapReduce et GoogleFS) pour créer ses deux principales briques, Hadoop MapReduce pour le calcul distribué et HDFS pour le stockage distribué.

> YARN (Yet Another Resource Negotiator)
YARN est un composant du framework Hadoop qui permet la planification des tâches et l’allocation des ressources pour le traitement de différents types de données.

> HDFS (Hadoop Distributed File System)
HDFS est un système de fichiers distribués qui permet le stockage et le traitement rapide de données volumineuses. Il est compatible avec YARN et a pour but de faciliter le traitement des données Big Data tout en limitant le risque de perte de données

Data Lake (Lac de Données)
Un data lake est un espace de stockage d’un ensemble de données de différentes sources et de différents formats. Il permet ainsi de faire interagir et de traiter des données brutes hétérogènes sans imposer de transformation et de structure au moment de leur collecte. Les données pourront ensuite offrir une vision globale ou servir pour différents cas d’usage.

Pour aller plus loin

Encore une fois, il ne s’agit pas d’une liste exhaustive et il y a par ailleurs d’autres mouvements et concepts qui prennent une ampleur grandissante sur la scène de la Tech, dont par exemple : le GreenIT et la prise en compte de l’empreinte écologique des modèles de data science.

De plus, pour creuser davantage ces sujets et rester informés des dernières tendances, vous pouvez retrouver les différentes conférences organisées par les communautés de ces différents langages et frameworks dans notre article : Les conférences professionnelles phares de la tech et du monde du travail en 2021 en France et en Europe.

Nous publions régulièrement des articles sur des sujets de développement produit web et mobile, data et analytics, sécurité, cloud, hyperautomatisation et digital workplace.
Suivez-nous pour être notifié des prochains articles et réaliser votre veille professionnelle.

Retrouvez aussi nos publications et notre actualité via notre newsletter, ainsi que nos différents réseaux sociaux : LinkedIn, Twitter, Youtube, Twitch et Instagram

Vous souhaitez en savoir plus ? Consultez notre site web et nos offres d’emploi.

L’auteur

Joy Schlienger
Content Producer
Learning addict with strong curiosity
#Protectourplanet 🌱🌍

Je remercie vivement pour leur temps et pour leur implication Belinda, Talent Manager, ainsi que l’ensemble des collaborateurs qui ont participé à la relecture, la complétion et la validation de cet article.

--

--

CBTW
L’Actualité Tech — Blog CBTW

Nos experts partagent leur vision et leur veille en développement web et mobile, data et analytics, sécurité, cloud, hyperautomation et digital workplace.