Microservices-die heutige service-orientierte Architektur du jour — sind toll, aber nicht für alle. Es gibt viele Situationen, in denen Sie möglicherweise mehr Schaden als gutes tun.

Foto: Joe McKendrick
Das ist das Wort von Adam Drake, einen technischen business transformation Experte, der vor kurzem veröffentlicht ein paar Worte der Vorsicht über microservices. Er warnt vor der erhöhten operativen Aufwand, performance-Probleme und Skalierbarkeit Probleme.
Drake stellt wichtige Schritte bei der Beurteilung eines Unternehmens müssen für microservices-Architektur. Nachdem die beiden ersten Schritte unternommen werden, fordert er “dann nochmal überlegen, ob microservices sind, die richtige Richtung für Ihre Organisation. Die Chancen stehen gut, viele der Probleme, die Sie vorher hatte werden einfach verschwinden.”
- Bereinigen Sie die Anwendung. Dazu gehört es sicherzustellen, dass das system “hat eine gute automatisierte tests und ist mit den aktuellen Versionen aller Bibliotheken, frameworks und Sprachen,” Drake sagt.Machen Sie Gebrauch von APIs. “Überarbeiten Sie den Antrag in übersichtliche Module mit klaren Schnittstellen machen werden,” Drake sagt. “Nicht zulassen bits des Codes zu erreichen, in den Modulen direkt. Alle sollte die Interaktion über die APIs vorgestellt, die durch das Modul.”Trennen Sie die Dienste: Trennen ein Modul von seiner Anwendung, aber halten Sie es auf dem gleichen host, sagt Drake. “Damit beginnt, um Ihnen einige der Nützlichkeit völlig getrennte microservices, aber mit weniger Operationen-Kopfschmerzen”, sagt Drake. Es wird noch ein Kommunikations-Problemen zu kämpfen, aber ohne die begleitenden Herausforderungen, die kommen werden, sobald die einzelnen Komponenten ausgeführt werden, über verteilte Netzwerke.Verschieben Sie das Modul getrennt auf einen neuen host. “Jetzt müssen Sie befassen sich mit den Themen rund um die Kommunikation über ein Netzwerk, aber Sie werden gekauft haben, sich selbst ein bisschen weniger Kopplung zwischen den beiden Systemen, die” Drake sagt.Separate storage-Fähigkeiten. Schließlich Drake sagt, “wenn möglich, umgestalten der Daten-storage-system, so dass das Modul auf den anderen host hat nun die gesamte Verantwortung für die Speicherung von Daten, die in Ihren Kontext.”Betrachten Sie Ihre organisatorische Bereitschaft. Eine microservices-versierte Unternehmen hat teams, die Bereitstellung von Ressourcen auf einem Augenblick, mit wenig oder gar keine Hilfe von außen, Drake sagt. “Wenn Ihre Organisation über nur einen oder wenige Menschen in Ihrem ganzen dev team, kann die Einrichtung neuer Dienste, virtuelle oder anderweitig, Sie sind nicht bereit für microservices.” Bereit sein, zu überwachen. “Wenn Sie nicht überwachen die system-und Anwendungs-performance Ihres monolith, dann haben Sie eine miserable Zeit mit microservices”, sagt Drake. Kennzahlen sind “system-level-Metriken (wie CPU und RAM), application-level-Metriken (wie Anfrage-Latenz pro Endpunkt, oder Fehler pro Endpunkt), und business-Metriken (wie z.B. Transaktionen pro Sekunde, oder den Umsatz pro Sekunde) zu verstehen, die performance Ihrer Systeme.”Gut gerüstet für continuous integration und continuous deployment. Drake es ausdrückt Perspektive: Wenn der monolith fehlt eine gute CI/CD-Ansatz, dann eine microservices-Architektur wird hundert mal herausfordernd, “sich Vorzustellen, dass man 10 teams und 100 Dienstleistungen, die alle erfordern eine manuelle integration testing und deployment. Nun stellen Sie die gleiche manuelle Arbeit, aber mit nur einem Monolithen. Wie viele verschiedene Arten können die Dinge schief gehen mit 100 Dienstleistungen? Wie viele Möglichkeiten mit einem Monolithen?”