Wann und wie sollte ich eine Microservices-Architektur verwenden

Inhalt

Das Microservices-Architektur erhält in letzter Zeit viel Aufmerksamkeit, und das ist kein Zufall. Es gibt einige große Unternehmen wie Netflix und Amazon, die erklärt haben, wie sie eine nutzen Microservices-Architektur um ihre Dienste skalieren zu können und sicherzustellen, dass sie diese kontinuierlich und ohne Unterbrechungen bereitstellen können.

microservices-architektur-1136876

Eine Microservices-Architektur ergibt mehr Sinn im Vergleich zum Entwurf monolithischer Anwendungen.

Im monolithischen Architekturdesign, erstellen wir eine enorme, schwere Anwendung mit allen eng gekoppelten Modulen innerhalb einer einzigen ausführbaren Datei, die im Allgemeinen auf einem Web- oder Anwendungsserver implementiert wird. Trotz dieses, este diseño arquitectónico tiene algunos inconvenientes que han permitido el uso del Microservices-Architektur hacerse popular:

  • No hay actualizaciones fáciles y frecuentes.
  • Problemas de distribución continua.
  • Difícil de administrar equipo y proyecto.
  • Rendimiento y escalabilidad costosos.
  • Falta de diversidad tecnológica.
  • No es fácil reemplazar los componentes.

¿Qué es una arquitectura de microservicios?

Un estilo de arquitectura de microservicios logra una configuración donde los componentes de la aplicación son aplicaciones independientes. Estos componentes independientes de la aplicación se comunican entre sí a través de RMI (Invocación de método remoto), Restful Web Services o Push Messaging.

Al diseñar sistemas en una arquitectura de microservicios, debemos identificar los componentes independientes. Estos componentes serán miniaplicaciones, que se desarrollarán de forma separada. Seguirán su propio ciclo de desarrollo y despliegue.

En una configuración general podemos tener escenarios en los que necesitamos datos de varios componentes para una sola solicitud. Im Idealfall, tendremos una puerta de link API o un controlador frontal que agregue los datos de estos componentes y los devuelva.

Además debemos tener comunicación entre componentes. Los componentes pueden comunicarse por medio de API REST o mensajería o RMI (invocación de método remoto).

Las características de una aplicación basada en arquitectura de microservicios son las siguientes:

  • Servicio habilitado, ejecución independiente de componentes.
  • Ejecución independiente de componentes en torno a algunas capacidades comerciales.
  • Mentalidad de producto en lugar de proyecto.
  • Componentes inteligentes que usan canales de comunicación simples como el protocolo RESTish simple o la cola de mensajes ligeros.
  • Estándares descentralizados. Cada componente independiente puede usar su propio estándar exclusivo para el desarrollo y la implementación.
  • Administración de datos descentralizada. Cada componente individual tiene su propio almacenamiento de datos.
  • Administración automatizada de la infraestructura. Para la implementación de componentes independientes, debemos confiar en la administración de infraestructura automatizada para reducir la complejidad.
  • Diseño de la aplicación teniendo en cuenta posibles fallos. Hay varias partes móviles independientes en las aplicaciones. En caso de que el receptor no obtenga respuesta, muss korrekt verwaltet werden.
  • Evolutives Design, um das bestmögliche Zerlegungssystem zu erhalten, das ersetzt und aktualisiert werden kann, ohne seine Umgebung zu beeinträchtigen.

Wann sollte man eine Microservices-Architektur einsetzen

Sollten wir eine Microservices-Architektur für jedes Produkt oder Projekt mit diesen beiden Ansätzen verwenden:

  • Nur monolithisch oder mit einem ersten monolithischen Ansatz. Regelmäßig, wenn eine monolithische Anwendung erfolgreich ist oder Hilfe bei Skalierung und Leistungsverbesserung benötigt, können wir uns auf zwei Arten für eine Microservices-Architektur entscheiden:
    • Erweitern Sie die gut gestalteten modularen Komponenten der monolithischen Anwendung.
    • Erstellen Sie die Microservices-Anwendung von Grund auf neu und migrieren Sie die bestehende monolithische Anwendung darin.
  • Ein erster Microservices-Ansatz. Debemos decantarse por el primer enfoque de microservicios cuando:
    • La modularidad y la descentralización son un aspecto importante desde el inicio de cualquier proyecto.
    • Anticipamos que la aplicación tendrá un gran volumen de transacciones o tráfico.
    • Tenemos preferencia por los beneficios a largo plazo sobre los a corto plazo.
    • Contamos con el conjunto de personas adecuado para diseñar, Desarrollar e poner en práctica aplicaciones rápidamente, Especialmente durante la etapa inicial.
    • Estamos comprometidos con el uso de herramientas y tecnologías de vanguardia.

Cómo utilizar una arquitectura de microservicios

Leider, La mayor parte de la información disponible sobre la arquitectura de microservicios explica por qué deben usarse, Pero no cómo.. Es bueno saber que los microservicios podrían revolucionar el diseño, la implementación y el funcionamiento de las aplicaciones. Aber, ¿cómo se construye exactamente un único microservicio? Debe comprender los componentes fundamentales de un microservicio si desea que la salida funcione correctamente y no termine luciendo como la misma aplicación monolítica con una nueva capa de pintura.

Dies sind die Cinco ítems que necesitará un microservicio antes de que pueda usarse en una arquitectura de aplicación distribuida:

  1. Funcionalidad con alcance adecuado. El primer elemento de un microservicio es establecer qué debe hacer. Una forma de establecer el alcance adecuado es dividir los servicios en función de la funcionalidad lógica. Ein anderer Ansatz zur Bestimmung des Umfangs besteht darin, die Struktur der Entwicklungsorganisation widerzuspiegeln. Ein dritter Ansatz besteht darin, einen Dienst auf die Menge an Code zu minimieren, die das Team innerhalb eines Zeitraums von zwei Wochen wieder einbringen könnte.
  2. Bereiten Sie eine API vor. Sobald wir eine Anwendung in mehrere kooperative Dienste aufgeteilt haben, wie sollten diese Dienste miteinander kommunizieren? Regelmäßig, Dies geschieht über Aufrufe der REST-Webservice-API, auch wenn zusätzlich andere Transportmechanismen verwendet werden können. Eine gute Idee ist es, nicht sofort mit der API-Codierung zu beginnen. jedoch, Es ist besser, zunächst auf Papier oder Whiteboard zu arbeiten, um festzulegen, was ein bestimmter Dienst bereitstellen muss, um korrekt zu funktionieren.
  3. Verkehrsverwaltung. Aus der Perspektive des Anrufdienstes, Sie sollten Ihre Anrufe immer nachverfolgen und bereit sein, sie zu beenden, wenn die Lösung zu lange dauert. Aus der Perspektive des aufgerufenen Dienstes, Das API-Design sollte die Möglichkeit umfassen, eine Antwort zu senden, die eine Überlastung anzeigt. Die Dienste sollten außerdem in der Lage sein, bei Bedarf neue Dienstinstanzen zu erstellen und zu löschen, um sich an Schwankungen des Verkehrsaufkommens anzupassen.
  4. Datendownload. Die Notwendigkeit eines kontinuierlichen Betriebs ist sehr unterschiedlich zu dem, was traditionelle Anwendungen benötigen, die oft ausfallen, wenn die zugrunde liegende Infrastruktur versagt. Um sicherzustellen, dass Benutzer weiterarbeiten können, wenn eine Instanz ausfällt, Die spezifischen Benutzerdaten können aus den Serviceinstanzen in ein gemeinsam genutztes redundantes Speichersystem migriert werden, das von allen Serviceinstanzen erreichbar ist.. Ein anderer Ansatz zur Entlastung des Speichers besteht darin, einen speicherbasierten gemeinsamen Cache zwischen einem bestimmten Service und dem mit diesem Service verbundenen Speicher zu schalten..
  5. Überwachung. Das Überwachungssystem einer auf Microservices basierenden Anwendung muss die kontinuierliche Änderung von Ressourcen ermöglichen., Die Erfassung von Überwachungsdaten an einem zentralen Ort und die Anzeige von Informationen, die die sich ständig ändernde Natur von Microservices-Anwendungen widerspiegeln, ermöglichen..

(Funktion(D, S, Ich würde) {
var js, fjs = d.getElementsByTagName(S)[0];
Wenn (d.getElementById(Ich würde)) Rückkehr;
js = d.createElement(S); js.id = id;
js.src = „//connect.facebook.net/es_ES/all.js#xfbml=1&Status=0“;
fjs.parentNode.insertBefore(js, fjs);
}(dokumentieren, ‚Skript‘, ‚facebook-jssdk‘));

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher