Développement d’Application Backend pour le Secteur Bancaire

Développement d’Application Backend pour le Secteur Bancaire

Information
Région:
Autriche
Secteur:
Services Financiers et Bancaires
Type:
Web
Modèle d'engagement:
Temps et Matériaux
Durée:
2 mois
Équipe:
2 développeurs backend seniors
ID:
0
Technologies utilisées
Elasticsearch
Kubernetes
Helm
Java 21
Quarkus
Docker

Client

Une entreprise autrichienne fournissant des solutions logicielles modernes aux banques et organisations financières à travers l’Europe de l’Ouest et la Scandinavie avait besoin du développement d’une application backend par Elinext.

Description du projet

Notre client disposait d’une application bancaire en ligne offrant des solutions modernes pour la gestion d’actifs, le trading en ligne et divers services financiers. Ils souhaitaient améliorer l’expérience utilisateur grâce à un accès plus rapide aux informations et une efficacité opérationnelle accrue, en proposant une solution de recherche rapide et fiable.

En raison des volumes de données importants, leur fonctionnalité de recherche était lente et inefficace. Les employés d’Elinext, expérimentés dans le développement d’applications backend, ont reçu les spécifications techniques et proposé une architecture pour accélérer le fonctionnement de la solution. Après avoir obtenu l’approbation du client concernant la pile technologique et les autres aspects techniques, nous avons entamé le projet.

Défis

Le principal défi pour notre client était d’offrir aux utilisateurs finaux la possibilité de bénéficier d’une recherche textuelle rapide dans leur application bancaire.

Créer une recherche rapide aurait permis d’améliorer l’expérience utilisateur grâce à une efficacité opérationnelle accrue et une meilleure compétitivité sur le marché des logiciels bancaires. Ils recherchaient un ensemble spécifique de services de développement web.

La lenteur de la recherche était un problème préexistant causé par le volume élevé de données, ce qui rendait la fonctionnalité inefficace. Nous devions également tenir compte de la structure hiérarchique des droits d’accès pour différents rôles utilisateurs.

Le client cherchait un prestataire compétent ayant de l’expérience avec ElasticSearch et d’autres outils pour le développement d’applications backend, ainsi que la capacité à implémenter des solutions de recherche rapide et efficace. Ils étaient satisfaits du développement frontend existant.

Principaux défis :

  • Réduire significativement les temps de recherche dans l’application bancaire.
  • Améliorer l’efficacité du traitement des données.
  • Offrir une meilleure expérience utilisateur en assurant un accès rapide aux informations financières.

Processus

Positionnée comme une entreprise ayant une expertise approfondie dans le développement de logiciels bancaires, Elinext a établi une collaboration avec le client.

L’équipe comprenait deux développeurs seniors ayant une expertise dans le développement backend et une expérience avérée avec ElasticSearch, Apache Kafka et Docker.

Les deux développeurs ont principalement travaillé de manière indépendante, avec des réunions quotidiennes avec les responsables produits et des démonstrations hebdomadaires pour montrer les progrès réalisés. Occasionnellement, l’équipe a eu des réunions avec le client pour discuter des exigences et effectuer des ajustements si nécessaire.

Elinext a utilisé Grafana et Prometheus pour surveiller chaque composant du système et évaluer les performances et l’efficacité. Des points de terminaison ont été fournis pour récupérer les statistiques du système.

Étapes du projet :

  1. Conception et architecture : Une semaine pour définir l’architecture et choisir les technologies et composants à utiliser pour compléter le projet.
  2. Développement et mise en œuvre : La période estimée était de deux mois, avec une semaine supplémentaire planifiée pour les imprévus, mais elle a été achevée une semaine avant la date prévue.

Solution

Nos ingénieurs ont tiré parti de leur expérience antérieure dans le développement d’applications backend avec des projets similaires. Ils ont utilisé Elasticsearch pour des capacités de recherche textuelle rapide, Kafka Connect pour la synchronisation des données en temps réel, et Docker pour la conteneurisation, afin de garantir la portabilité et la cohérence entre les environnements. La décision d’utiliser Quarkus, Helm et Kubernetes s’est basée sur la nécessité de hautes performances, d’évolutivité et d’un déploiement efficace. Il s’agissait du premier projet utilisant ces technologies pour nos ingénieurs, qui ont appris au fil du processus. L’idée principale est d’ajouter un cache local à chaque système pour stocker les données et les droits d’accès pour une recherche rapide, ainsi qu’un cache global synchronisé avec les caches locaux. En même temps, chaque cache local doit également être synchronisé avec la base de données du système.

 

Synchronisation de la base de données avec le cache local

Le cache distribué se compose de :

  • Conteneur Elasticsearch Cluster (cache local, cache global). Utilisé pour stocker et gérer les données de recherche.
  • Service de synchronisation de cache. Connecté à un service de messagerie pour recevoir des notifications sur les données nouvelles ou modifiées (supprimées). Il transmet ensuite ces données à l’index Elasticsearch approprié. Ce processus garantit que le cache reste synchronisé avec les informations de la source de données. Le service peut également produire des événements de synchronisation pour Kafka Connect afin de synchroniser le cache global avec le cache local.
  • Service de synchronisation global via Kafka. Kafka Connect synchronise les données des caches locaux avec un ou plusieurs caches globaux.
  • Backend de recherche. Implémente les méthodes Elasticsearch pour rechercher et récupérer les données.

Le cache distribué

Pile technologique

  • Quarkus : Choisi pour ses hautes performances et ses temps de démarrage plus rapides par rapport aux frameworks traditionnels (par ex. Spring), idéal pour les applications cloud-native et les microservices.
  • Elasticsearch : Choisi pour ses puissantes capacités de recherche textuelle, essentielles pour fournir des résultats rapides et précis dans l’application.
  • Apache Kafka : Utilisé pour la synchronisation des données grâce à sa capacité à traiter de grands volumes de données en temps réel, garantissant la cohérence et la fiabilité entre plusieurs composants du système.
  • Docker : Utilisé pour conteneuriser l’application, permettant une exécution cohérente entre différents environnements et simplifiant les processus de déploiement.
  • Helm et Kubernetes : Utilisés pour rationaliser le déploiement et la gestion des applications conteneurisées, facilitant l’évolutivité et l’orchestration des services.
  • Docker Compose : Utilisé pour simplifier la configuration et la gestion des conteneurs Docker pendant le développement.

Nos ingénieurs ont passé un temps considérable à apprendre à gérer les certificats de sécurité. De plus, ils ont ajusté l’architecture pour répondre aux nouvelles exigences du client et gérer des requêtes de recherche complexes dans Elasticsearch.

Architecture du service de synchronisation:

Nos ingénieurs ont utilisé Grafana et Prometheus pour surveiller chaque composant du système et évaluer les performances et l’efficacité. De plus, ils ont fourni des points de terminaison pour récupérer les statistiques du système.

En ce qui concerne l’assurance qualité, les développeurs ont effectué des tests unitaires et des tests manuels pour garantir la fonctionnalité. En outre, ils ont réalisé des tests de performance avec de grands volumes de données afin d’évaluer l’efficacité du système sous une charge importante.

Résultats

Les services de développement de logiciels personnalisés sont l’une de nos principales spécialités. Elinext a mené à bien le projet dans les délais impartis et dans le budget alloué. Le système que nous avons mis en œuvre est en cours d’intégration dans l’environnement du client. Il devrait accroître la productivité grâce à des capacités de recherche en texte intégral plus rapides et plus efficaces, améliorer la satisfaction des utilisateurs grâce à un accès plus rapide aux données financières et renforcer la scalabilité pour gérer des volumes de données croissants. À long terme, cela devrait permettre de réaliser des économies grâce à l’optimisation et à l’automatisation du système.

Les résultats de l’implication d’Elinext dans le développement d’applications backend devraient être évalués à l’avenir, une fois l’intégration du système terminée. Le client envisage également d’ajouter un panneau d’administration et une authentification unique (SSO) au système dans le futur, ce qui donne au projet un potentiel de collaboration supplémentaire. Notre client est sans aucun doute satisfait de notre expertise en tant qu’entreprise de développement de logiciels financiers.

1-png-10
2-png-11
Voulez-vous le même projet?
Vous Avez une Idée de Projet? Discutons-en Ensemble
Contactez-Nous