NashTech

Microservices und benutzerdefinierte Plugins

Microservices und benutzerdefinierte Plugins

Einführung

Unser Team arbeitete daran, den traditionellen Ansatz loszuwerden und wandte die Microservice-Architektur in unserer Anwendung an. Wir haben die Geschäftsfunktionalität des Kunden in mehrere unabhängige Module aufgeteilt, die für die Ausführung spezifischer und eigenständiger Aufgaben zuständig sind.

Über Tide

Tide ist eine Finanzplattform für Unternehmen und mit einem Marktanteil von 6 Prozent der führende Anbieter von digitalen Bankdienstleistungen für Unternehmen in Großbritannien. Wir sind der führende Anbieter von digitalen Bankdienstleistungen für Unternehmen in Großbritannien und eines der am schnellsten wachsenden Fintech-Unternehmen des Landes. Wir würden ähnliche Dienstleistungen in Indien anbieten.

Tide bietet derzeit ein Sparkonto bei der RBL Bank an, die von der Reserve Bank of India (RBI) reguliert wird. Mehr als 1 von 20 Kleinunternehmern im Vereinigten Königreich haben eine Bankverbindung mit uns, und wir sind bereit, weltweit tätig zu werden und Unternehmern wie Ihnen zu helfen. Wir sind davon überzeugt, dass dieses Modell es uns ermöglicht, unseren Mitgliedern eine breitere Palette von Produkten und Dienstleistungen anzubieten und ihnen zu helfen, Zeit (und Geld) bei ihrer Finanzverwaltung zu sparen.

Auswirkungen

  • Die Einrichtung eines neuen Bankkontos kann in nur 10 Minuten auf einem mobilen Gerät abgeschlossen werden. Dies spart den Unternehmen wertvolle Zeit bei der Einrichtung ihres Unternehmens und/oder ihres Kontos, so dass sie effizienter arbeiten können, als wenn sie eine Filiale aufsuchen müssten.
  • Für die Eröffnung eines Kontos ist keine Bonitätsprüfung erforderlich, daher besteht kein Risiko, wenn Mitglieder Tide neben einem bestehenden Konto ausprobieren.
  • Kostenlose Anmeldung, keine jährlichen oder monatlichen Gebühren. Dadurch sparen die Mitglieder Geld, das sie stattdessen in ihr Unternehmen investieren können.
  • Zugang zu allen Produktfunktionen der Tide Platform zur Verwaltung ihres Unternehmens, wie z. B. GST-Registrierung, Quittungsimport, Ausgabenmanagement, Spesen-Team-Karten, Buchhaltungssoftware-Integrationen, Rechnungsstellungs-Tool, Rechnungsschutz und Gehaltsabrechnungsmanagement*.
  • Nach erfolgreicher Einrichtung des Kontos haben Sie auch Anspruch auf die Tide-Vorteile.

Die Herausforderung

Kommunikation mit den anderen Diensten wie User-Rest-Service, Gravitee-Client, etc. mit Hilfe von Microservices.

Die Lösung

Unser Team arbeitete daran, den traditionellen Ansatz loszuwerden und wandte die Microservice-Architektur in unserer Anwendung an. Wir haben die Geschäftsfunktionalität des Kunden in mehrere unabhängige Module aufgeteilt, die für die Ausführung spezifischer und eigenständiger Aufgaben zuständig sind.

Die Module können über einfache und leicht zugängliche APIs (Application Programming Interfaces) weltweit miteinander kommunizieren. Und wir haben den Scheinclient eingeführt, um unsere Herausforderung zu meistern.

Feign Client: ist ein von Netflix entwickelter Webdienst. Es wird verwendet, um HTTP-Client-Binder und HTTP-API-Clients zu verbinden. Außerdem bietet es Unterstützung für steckbare Anmerkungen und Feign-Annotationen. Es hilft bei der Erstellung von REST-API-Clients, was die Webdienst-Clients erleichtert. Wir können deklarative Annotationen verwenden, um die REST-Dienste aufzurufen, anstatt Kesselsteincode zu schreiben.

Architektur

Für Tide haben wir die folgenden benutzerdefinierten Plugins für das API-Gateway gepflegt: –

gravitee-policy-tide-auth

  • Damit sind alle unsere Authentifizierungsfragen geklärt: Authentifizierung für mobile Clients, Webclients, Partner und Mitarbeiter sind entweder alle geklärt oder werden bald geklärt sein.
  • Das Plugin wird im Gateway auf alle v3-Routen angewendet. v1- und v2-Authentifizierung werden nach wie vor von der JBE durchgeführt.

gravitee-reporter-tide

  • Sie dient der asynchronen Protokollierung von HTTP-Anfragen und -Antworten in der HTTP-Protokolltabelle.

gravitee-policy-nr-transaction-naming

  • Hier wird die benutzerdefinierte Gruppierung von NewRelic-Transaktionsnamen vorgenommen. Im Allgemeinen leistet NewRelic gute Arbeit bei der Aggregation von Aufrufen in den Metriken, allerdings folgen einige unserer Unterpfade nicht der Nummern- oder UUID-Konvention, und NewRelic gruppiert diese Aufrufe nicht von vornherein.

gravitee-policy-secure-headers

  • Dadurch werden unseren API-Antworten Standard-Sicherheits-Header hinzugefügt.

Diese Plugin-Liste könnte noch weiter anwachsen, wenn die Access Management-Lösung von Gravitee nicht alle notwendigen Funktionen für die Multi-User-Authentifizierung bietet, die wir benötigen.

Diese sind Maven-basiert und nicht Gradle, da Gravitee derzeit nur Plugins unterstützt, die über den Maven-Archetyp erstellt wurden. Wenn Sie sich die Repositories ansehen, werden Sie feststellen, dass sie ein übergeordnetes Modul und untergeordnete Module haben. Diese Struktur wurde gewählt, weil jedes untergeordnete Modul zur Laufzeit effektiv mit den anderen kommuniziert.

In der Maven-Installationsphase wird das Maven-Assembly-Plugin verwendet, um eine Zip-Datei zu erstellen. Diese Zip-Datei befindet sich im lokalen .m2-Ordner, z. B. /home/USERPROFILE/.m2/repository/co/tide/gravitee-reporter-tide/1.0.0-SNAPSHOT (oder im s3-Maven-Repository, wenn die Bereitstellungsphase in Bitbucket ausgeführt wird).

Diese Zip-Datei wird von APIM verwendet, um die benutzerdefinierten Funktionen zu integrieren.

tide-microservice

Erstellen eines Teammitgliederflusses:

  • The Tide sendet eine Anfrage aus der bestehenden mobilen Anwendung für die Aufnahme eines neuen Teammitglieds in ihr Unternehmen.
  • Verteilte Sperren werden auf der Grundlage der E-Mail des Unternehmens und der Teammitglieder eingerichtet. Dadurch wird sichergestellt, dass ein anderes Teammitglied das Teammitglied nicht gleichzeitig hinzufügen/zuordnen kann, und dass die Höchstzahl der Teammitglieder pro Unternehmen nicht überschritten wird.
  • Wir rufen die Details des Tide-Mitglieds ab, um zu bestätigen, dass der Kontoinhaber berechtigt ist, Teammitglieder zu seinem Unternehmen hinzuzufügen.
  • Je nachdem, ob das Teammitglied bereits existiert, legen wir es entweder von Grund auf neu an oder aktualisieren es und weisen ihm in beiden Fällen Zugang zum Unternehmen zu.
  • Die Berechtigungen werden den Benutzern zugewiesen, die durch ihre zugewiesenen Rollen zugelassen sind. Diese Berechtigungen werden in der Datenbank gespeichert und auf der Grundlage des Bis-Datums als aktiv oder inaktiv unterschieden.
  • Wenn die Aktualisierung der Berechtigungen in der Datenbank fehlgeschlagen ist, werden die auf dem Gravitee vorgenommenen Änderungen rückgängig gemacht.
  • Das UMS löst ein Ereignis zur Aktualisierung der Unternehmensmitgliedschaft aus, das derzeit nur vom KYC Flows Service genutzt wird.
  • Der Vorgang wird geprüft und die verteilten Sperren werden freigegeben.
  • Das UMS löst einen E-Mail-Befehl aus, der vom Benachrichtigungsdienst verarbeitet wird. Dieser sendet entweder eine Einladungs-E-Mail mit einem Link zum Abschluss der Anmeldung oder eine E-Mail zur Aktualisierung des Zugangs, in der der neue Zugang erklärt wird und ein Anmeldelink enthalten ist.
  • Die Antwort wird an das Gezeiten-Mitglied zurückgeschickt.
micro2-1024x742

Entzug eines Teammitglieds:

  • Das Tide-Mitglied sendet über die bestehende mobile App eine Anfrage zur Abmeldung eines bestehenden Teammitglieds aus seinem Unternehmen.
  • Eine verteilte Sperre wird auf der Grundlage der E-Mail des Teammitglieds eingerichtet, um sicherzustellen, dass ein anderes Tide-Mitglied das Teammitglied nicht zur gleichen Zeit aktualisieren kann.
  • Wir rufen die Details des Tide-Mitglieds ab, um zu bestätigen, dass der Kontoinhaber berechtigt ist, Teammitglieder zu seinem Unternehmen hinzuzufügen.
  • Die Berechtigungen, die den Benutzern zugewiesen wurden, werden entfernt.
  • Wenn das Löschen der Berechtigungen aus der Datenbank fehlschlägt, werden die Änderungen an der Gravitee zurückgesetzt.
  • Alle Zustimmungen der Teammitglieder werden widerrufen, was eine Abmeldung aller aktiven Sitzungen des Teammitglieds erzwingt. Idealerweise würden wir nur die aktiven Sitzungen für das Unternehmen widerrufen, von dem widerrufen wird, aber die API lässt dies nicht zu.
  • Wir löschen die Teammitglieder sanft, indem wir ihren Status auf widerrufen aktualisieren.
  • Ein Ereignis wird über SQS/SNS an den KYC Flows Service gesendet, um ihn über den Widerruf der Unternehmensmitgliedschaft zu informieren.
  • Der Vorgang wird geprüft und die verteilte Sperre wird freigegeben.
  • Die Antwort wird an das Gezeiten-Mitglied zurückgeschickt.
micro3-1024x746

Das Ergebnis

  • Isoliert ein fehlerhaftes Modul

Alle Module sind unabhängig voneinander, d. h. wenn ein Dienst des Projekts ausfällt, arbeiten die anderen weiter, ohne dass es zu Ausfallzeiten kommt. Der Entwickler hätte einfach das fehlerhafte Modul herausgenommen und den Code für das Modul neu geschrieben.

  • Erhöht die geschäftliche Agilität

Microservices sind relativ klein und einfach in ihrer Größe. Der Ausfall eines Moduls würde den gesamten Betrieb der Anwendung nicht beeinträchtigen. Die Entwickler erhalten die Freiheit, mit neuen Prozessen, Geschäftslogiken und Algorithmen zu experimentieren.

  • Einfach zu warten und zu debuggen

Alle Module der Microservices sind von Natur aus unabhängig. Dies ermöglicht es den Entwicklern, das Projekt besser zu pflegen, so dass der fehlerhafte Code leicht identifiziert und effizient debuggt werden kann.

  • Einfache Aktualisierung der Anwendung

Microservice bietet die Unabhängigkeit, einzelne Module zu aktualisieren oder zu ersetzen, ohne den gesamten Betrieb der Anwendung zu beeinträchtigen.

Weitere Fallstudien lesen

Vom Überwinden von Widrigkeiten zum Reiten der Welle der digitalen Transformation im Bildungssektor

Erfahren Sie, wie NashTech dem Trinity College London hilft, die Welle der digitalen Transformation im Bildungssektor zu reiten

AWS
AWS
Migration und Modernisierung der virtuellen Lernumgebung auf AWS für ein verbessertes Erlebnis

Das migrierte und modernisierte Moodle Infrastruktur bedeutet, dass The Open Die Universität kann nun folgende Vorteile nutzen Cloud-Vorteile.

Ein Einblick in eine einjährige RPA-Reise mit einem führenden digitalen Werbedienst

Ein Einblick in eine einjährige RPA-Reise mit einem führenden Anbieter von digitalen Werbedienstleistungen und -lösungen und wie NashTech ihnen geholfen hat.

Unsere Partnerschaften

Nach oben scrollen
BEISPIEL TITEL
Muster kurz
Musterüberschrift lorem isump
DE FREE WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
“Verbesserung der Benutzererfahrung für Produktbesitzer”
KOSTENLOSES WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
"Verbesserte Benutzererfahrung für Produktverantwortliche"