Le Backend d'une application est la partie la plus sensible d'une architecture, celle qui fournit les services, l'infrastructure transactionnelle et les données. Dans ce domaine, les briques logicielles n'ont cessé d'évoluer ces dernières années avec une orientation vers le design d'API. On ne construit plus un backend pour un périphérique donné mais une infrastructure de services ou de Microservices exposant une API sur laquelle viendront se greffer de nombreux clients (Mobiles, Desktop, Server2Server, ....). Cette infrastructure est parfois hébergée en local ou sur le cloud.
Design d'API et Microservices
Concevoir une API est un métier en soi. Quelle granularité adopter ? Comment exposer un service REST sans connaître précisément le besoin Front-End ? Comment gérer l'authentification, la montée en charge, la communication inter-composants ? A l'heure des micro-services, il est indispensable de bien maîtriser les notions de conteneurs, circuit-breakers, résilience, auto-scaling, monitoring et traçabilité distribuée. Concevoir une API sous la forme de Microservices peut se faire avec des solutions "clés en main" ou de manière spécifique. Tout dépend des exigences et de la complexité fonctionnelle. Nous maîtrisons les outils et Framework tels que
Swagger ou
GraphGL mais également les problématiques liées à REST.
Java et Spring Boot
Dans le monde Java, il existe plusieurs Framework permettant de fournir des services techniques aux Microservices. Nous privilégions Spring Boot pour sa maturité, sa robustesse et sa richesse fonctionnelle. Que ce soit
Spring Framework, Spring Data, Spring Cloud ou Spring
Security, nous choisirons avec vous les briques les plus pertinentes. Il existe également des générateurs de briques applicatives telles que
JHipster ou
YeoMan. Nous saurons tirer partie de leur avantage pour accélérer le processus de développement.
NodeJS
Dans le monde JavaScript, l'alternative la plus populaire reste
NodeJS. Construire un backend avec NodeJS relève d'une grande complexité tant l'offre est pléthore. NodeJS en soit n'est qu'un environnement d'exécution dans un marché fragmenté par les innombrables projets ou Framework hébergés sur
Github. Quid de l'accès aux données ? de la sécurité ? du typage ? de l'exposition et la création de services REST transactionnels ? Faut-il utiliser
NestJS ou avoir une approche plus bas niveau avec Express.js, Hapi.js ou Meteor ? Faut-il proposer un Middleware d'authentification tel que
PassportJS utilisant les protocoles
JWT,
Oauth ou un SSO spécifique ? Nous vous apportons notre expertise dans ce domaine avec le souci constant de répondre au besoin fonctionnel.
Notre principale expertise autour de Node est développée
dans cet article sur notre blog.
Bases SQL et noSQL
L'accès aux données et la structure de stockage des données d'une entreprise peuvent prendre plusieurs formes selon les besoins. Les entreprises disposant d'architectures BigData traitant des
volumes important de données ne pourront se satisfaire de bases SQL relationnelles classiques. D'autres, aux besoins moins important pourront s’accommoder de bases traditionnelles. L'indexation et la recherche de données devront s'opérer via des outils adaptés aux structures de stockage. Nous maîtrisons les bases SQL classiques Open Source telles que MySQL, Postgres ou MariaDB. Mais également les bases commerciales telles que SQL Server ou Oracle. Dans le monde NoSQL, nous utilisons régulièrement MongoDb, Cassandra ou Redis. L'accès à ces bases via les drivers ou les outils de mapping objet/relationnel font également partie de notre expertise, sans compter la recherche et la visualisation avec
Elastic Search
DevOps, Cloud et usine logicielle
Une fois l'application réalisée, les tests et le déploiement entrent en jeu. Dans ce domaine, le cloud et la philosophie DevOps ont révolutionné les habitudes avec la conteneurisation. Là encore, les exigences fonctionnelles et techniques dicteront les outils. Que ce soit avec
Docker en mode
Swarm/
Compose ou avec un orchestrateur plus complexe tel que
Kubernetes, nous saurons vous guider. Les mêmes principes dicteront le déploiement en local ou sur Amazon AWS, Microsoft Azure et Google Cloud Platform.
Enfin, nous mettons en place toute l'infrastructure permettant de déployer une usine logicielle basée sur
Git et
Jenkins associés aux outils
Atlassian (Bitbucket, JIRA et Confluence) ou
GitLab.
Sécurité applicative
DNG a mis la sécurité applicative au cœur de son offre. Nous proposons une formation dédiée aux vulnérabilités listées dans le top 10 de
l'OWASP afin de sensibiliser les développeurs aux dangers de l'injection ou du XSS. Dans nos audits, nous utilisons des outils Open Source tels que
ZAP,
Burp ou
SQLMap.