News

Double victoire pour Apriko: l’or et l’argent lors des Best of Swiss Software Awards 2024

Le 19 novembre 2024, les meilleures solutions logicielles de Suisse ont été récompensées au Kongresshaus de Zurich. Particulièrement rayonnante : la start-up Apriko, qui a doublement convaincu en remportant l’or dans la catégorie Business Solutions et l’argent dans la catégorie Cloud Native Solutions.

En savoir plus
Blog

Qu’est-ce que le payroll?

Vous êtes-vous déjà demandé en quoi consistait le payrolling ou la paie ? Connaissez-vous Try & Hire ? La réponse n’est pas simple, car le terme « payrolling » est utilisé pour 2 services différents.

En savoir plus

Apriko – une plateforme performante et flexible pour les applications d’entreprise modernes

Engineering
avril 15, 2024

Apriko a été développé en tant qu’application de microservice pour répondre aux exigences croissantes des applications d’entreprise modernes. Cette approche architecturale offre l’agilité, l’évolutivité et la maintenabilité nécessaires aux systèmes logiciels actuels. Elle a fait ses preuves auprès de grandes entreprises de logiciels telles que LinkedIn, Spotify et Netflix.

Contrairement aux architectures monolithiques interconnectées et interdépendantes et liées sous forme d’application unique, un environnement de microservices se compose de nombreuses petites applications indépendantes. Chacun de ces microservices remplit une tâche spécifique selon le Single Responsibility Principle, gère ses données dans sa propre base de données et peut-être développé, testé et mis en production de manière autonome.

Défis liés au développement des microservices

Le défi dans de telles approches architecturales consiste à développer des applications réellement indépendantes avec leurs propres bases de données, sans créer de dépendances. C’est par exemple un exploit de pouvoir générer un contrat de travail dans un service sans connaître People Service ou de calculer les salaires sans avoir accès à People Service ou à HR-Service.

Communication entre les microservices : Le bus d’événements

Chez Apriko, nous utilisons un bus d’événements pour la communication entre les microservices. Ainsi, toute application disposant des droits d’accès correspondants peut publier des données sous forme de messages sans connaître les destinataires. D’autres applications peuvent s’abonner à certains messages dont elles ont besoin sans avoir besoin de connaître l’émetteur. Le message reçu peut ensuite être traité de n’importe quelle manière et l’application peut enregistrer et développer les données nécessaires sous la forme souhaitée.

Dans l’exemple précédent, People Service publierait toutes les données personnelles nouvelles et modifiées. Dans ce cas précis, les abonnés à ces messages seraient HR Service et PayrollGlossaire Service. HR Service enrichit les données avec des aspects contractuels, par exemple la durée, les congés, le salaire, etc. et publie les données contractuelles qui peuvent à leur tour être utilisées par PayrollGlossaire Service pour calculer le salaire en combinaison avec les données personnelles.

Les défis de l’intégration des microservices

Selon l’interface utilisateur, l’usager crée le contrat et la personne en une seule étape. Comment supprimer la dépendance dans ce cas ? Et que se passe-t-il si People Service n’est pas disponible au moment de l’enregistrement et que la personne ne peut pas être créée ? Et quel est alors l’état du contrat ? Ces exemples illustrent la complexité et les nombreux défis qu’implique une telle architecture.

Un autre défi dans une architecture de microservices distribuée est de garantir une vue complète et consolidée des données, malgré la gestion décentralisée des données par le biais de différents services. Comme chaque service ne gère qu’une partie des informations nécessaires, il n’est pas possible pour un seul service d’effectuer une requête complète sur l’ensemble des données pertinentes. Pour résoudre ce problème, nous avons développé un Model Service. Ce service reçoit et traite les messages des différents microservices et crée à partir de ceux-ci une vue agrégée des données. Model Service fait donc office d’étape préliminaire à un Data Warehouse et permet de lancer des requêtes complexes, également basées sur des graphiques, sur des données hiérarchisées.

Avantages d’une architecture de microservices

Un logiciel si indépendant et soigneusement conçu offre les avantages et les opportunités suivants :

  • Autonomie : Les microservices fonctionnent indépendamment les uns des autres. Cela s’applique aussi bien à la durée qu’au développement et au déploiement. Chaque microservice peut être développé et déployé de manière autonome. Ils sont également indépendants l’un de l’autre sur le plan technologique.
  • Découplage : Les microservices sont découplés les uns des autres. Ils communiquent uniquement via des interfaces clairement définies et indépendantes de la langue. Le découplage a lieu à tous les niveaux (conservation des données, sécurité, technologie, architecture, déploiement, etc.). Ce découplage permet un remplacement et un échange facile des différents modules.
  • Automatisation : Les microservices permettent un niveau élevé d’automatisation en ce qui concerne les déploiements, les tests, l’approvisionnement et l’évolutivité. Dans le cadre de Continuous Delivery, une architecture de microservices permet de mettre en place des mises à jour de manière indépendante et rapide. Avec un faible « Time-to-Market », l’on peut réagir rapidement face aux nouvelles tendances et aux changements.
  • Évolutivité : Les microservices sont conçus pour faire évoluer un système rapidement et facilement. Le découplage permet de déployer les modules indépendamment les uns des autres.
  • Résilience : En cas de pannes partielles et d’erreurs, le système continue de fonctionner.
  • Sécurité : L’encapsulage facilite la sécurisation des différents modules. Les microservices isolés peuvent être sécurisés séparément à l’aide de pare-feu et de passerelles.
  • Business Value : L’amélioration de l’efficacité du développement, les économies de frais d’exploitation et la stabilité accrue contribuent à améliorer l’expérience client et à réduire les temps d’arrêt. Le système se développe et se réduit dynamiquement avec la demande des clients, de nouvelles fonctionnalités sont disponibles sur le marché en un temps record et l’amélioration de la testabilité réduit le risque lors des mises à jour.

Approche API-first : efficace et conviviale

Une approche API-first met l’accent sur le produit API plutôt que sur la technologie sous-jacente. L’objectif est de développer une API à la fois efficace et conviviale. Une API bien conçue permet aux utilisateurs d’accéder facilement aux informations et de créer leurs propres applications, créant ainsi un écosystème flexible et polyvalent.

Chez Apriko, nous développons nos API en fonction de l’approche Behavior Driven Development (BDD). Le comportement de l’API est alors défini dans des tests d’acceptation automatisables. Le développement de l’’API est piloté par des tests et repose sur des spécifications précises qui définissent le comportement du logiciel, les tests automatisés et les critères d’acceptation. Cela permet de s’assurer que toutes les fonctions et leur comportement peuvent être testés de manière entièrement automatisée. L’API peut ainsi s’intégrer parfaitement dans d’autres systèmes et communiquer facilement avec des applications externes et notre propre interface utilisateur.

Applications Web progressives (PWA)

Pour offrir aux utilisateurs Apriko une expérience moderne, fluide et indépendante de la plateforme, nous misons sur les applications Web progressives (PWA). L’application PWA permet de créer des applications basées sur le Web qui se comportent comme des applications natives garantissant une expérience utilisateur cohérente sur différents appareils. Cette technologie allie la flexibilité des technologies Web et la convivialité des applications natives et offre une interface utilisateur particulièrement réactive et conviviale.

En combinaison avec notre architecture de microservices, l’utilisation de PWA nous permet d’intégrer les différentes applications de manière flexible et efficace, sans que la logique métier soit implémentée dans l’application PWA elle-même. Notre PWA consomme 100 % de nos API développées selon l’approche API-first. Cela signifie que toutes les fonctions sont entièrement traitées par les API et que l’application PWA sert uniquement de frontend qui traite et représente les données et les fonctions de l’API. Cela sépare clairement l’interface utilisateur de la logique métier et permet une architecture claire et gérable, où les modifications de la logique métier peuvent être effectuées dans les API sans affecter l’interface utilisateur.

Architecture axée sur les modèles : Efficacité, cohérence et résistance aux erreurs élevées

Dans notre architecture, nous misons sur une conception basée sur des modèles, où notre modèle de domaine sert de base centrale pour le développement. Cette approche nous permet de générer de manière entièrement automatique tous les composants du code, des API aux structures de base de données en passant par l’application Web progressive (PWA). En utilisant des générateurs de code et des algorithmes spécialement conçus, nous pouvons nous assurer que tous les composants sont créés de manière cohérente et en fonction du modèle de domaine central.

L’avantage de cette approche réside dans son efficacité élevée et sa résistance aux erreurs. Une fois le modèle de domaine défini, nos outils génèrent automatiquement le code nécessaire pour la logique API, les schémas de base de données et l’interface PWA. Cela réduit considérablement le travail manuel et minimise les incohérences potentielles, car tous les éléments du système sont parfaitement harmonisés. Les développeurs peuvent ainsi se concentrer sur les exigences spécifiques et la nature même de l’application, plutôt que sur la mise en œuvre détaillée de chaque composant.

Cette approche basée sur des modèles favorise non seulement la cohérence et la maintenabilité du système, mais accélère également le processus de développement. Comme la plupart des éléments de code sont créés automatiquement, les modifications apportées au modèle de domaine peuvent être rapidement répercutées sur l’ensemble des domaines concernés du système. Cela favorise un développement agile où les adaptations et les extensions peuvent être mises en œuvre rapidement sans perdre de vue les relations complexes entre l’API, la base de données et l’interface utilisateur.

Conclusion : Une plateforme performante et flexible

En résumé, la combinaison d’une architecture dirigée par des modèles, des microservices et des applications Web progressives (PWA) chez Apriko crée une plateforme particulièrement performante et flexible pour les applications d’entreprise modernes. En utilisant un modèle de domaine central et des générateurs de code entièrement automatisés, nous optimisons la cohérence et l’efficacité du développement. Nos développeurs peuvent ainsi se concentrer sur les aspects techniques et l’amélioration de l’expérience utilisateur plutôt que de se consacrer à un travail de mise en œuvre redondant.

Nous avons éveillé ton intérêt ? N’hésite pas à nous contacter !

Thaya Selvarajah
Product owner & Solution Architect

Encore plus de bonnes raisons de choisir Apriko

Engineering

Parvenir au but plus rapidement et mieux : avec une génération de code automatisée

avril 15, 2024

Le niveau de complexité est élevé dans le développement logiciel moderne, notamment dans les architectures de microservices. Mais que faire pour éviter les erreurs dans de simples tâches répétitives ?

Engineering

Génération automatique de l’interface utilisateur graphique (IU)

avril 15, 2024

Un principe central de conception de l’architecture logicielle d’Apriko est de générer automatiquement autant de code boilerplate que possible ou d’en déduire une logique.

Engineering

Behavior Driven Development

avril 15, 2024

Chez Apriko, nous visons un degré élevé d’automatisation des processus clients, une mise sur le marché rapide et une amélioration continue de nos logiciels.

Engineering

Plateforme pour les applications d’entreprise modernes

avril 15, 2024

Apriko a été développé en tant qu’application de microservice pour répondre aux exigences croissantes des applications d’entreprise modernes.

Engineering

DevOps chez Apriko

avril 15, 2024

Le développement de logiciels modernes nécessite des méthodes agiles afin de pouvoir réagir rapidement aux changements du marché tout en garantissant la qualité. DevOps offre ici la solution idéale grâce au lien étroit entre développement et exploitation.

Durée: 9 Minuten
Intervenants: Thaya Selvarajah

Les cookies sont utilisés sur ce site web afin d’analyser et d’améliorer son utilisation. Tu peux désactiver les cookies dans les paramètres de ton navigateur, mais cela peut affecter la fonctionnalité du site.

EYEBROW

Share Options

Copy text, max 150 characters, omnitat volor recestiosam faccusa pidundisquam re sitati faccusa nullaboris aut. Ecest, omnitat pidundisquam re sitati.