A continuación se detallan los puntos que un arquitecto de micro servicios debería considerar antes de comenzar el viaje. Tenga en cuenta que un buen modelado de dominio y reactivo es esencial para crear un diseño robusto de micro servicio.
- Es una mala idea diseñar y desarrollar microservicios desde cero si su organización y usted no tienen antecedentes de trabajar en una sola, en comparación con lo que ha arraigado la cultura de microservicios.
- La mejor práctica es comenzar a refactorizar un microservicio cuyo modelo de dominio se entiende bien en base al supuesto de que está en evolución durante bastante tiempo.
- El arquitecto debe considerar varios otros patrones, diseño arquitectónico, aspecto de implementación al diseñar su modelo de dominio, por ejemplo, reglas comerciales, persistencia, almacenamiento en caché, gestión de transacciones, seguridad, generación de código, TDD, principios de refactorización.
- Un modelo de dominio defectuoso puede dar lugar a la creación de una “Capa de servicio pesado” o lo que comúnmente se conoce como “Modelo de dominio anémico”, donde las clases de fachada (beans de sesión sin estado en la mayoría de los casos) comienzan a acumular más y más lógica empresarial y el objeto de dominio se convierte en meros datos transportistas con toneladas de captadores y colocadores.
- El arquitecto debe concebir el modelo de dominio de tal manera que el modelo se centre en un dominio operativo comercial específico, debe estar en la alineación adecuada con el modelo comercial, las estrategias y el proceso comercial, que evoluciona a lo largo de un período de tiempo.
- El arquitecto debe enfocarse en el aspecto de implementación de los microservicios donde cada servicio trabaja en completo aislamiento uno del otro utilizando el paradigma de alta cohesión y acoplamiento flexible.
- Identifique las siguientes prácticas recomendadas de microservicios al salir con diseño, contexto acotado, CQRS, abastecimiento de eventos, persistencia Polyglot, interrupción de circuitos (Hystrix), gestión de datos controlada por eventos, etc.
- Identifique si se debe usar un modelo OSS basado en Netflix para la implementación de servicios o un modelo diferente de implementación
- Identifique herramientas robustas para diversas metodologías y técnicas, tales como tienda de eventos, registro de servicios, descubrimiento de servicios (Consul, etc.), CD / CI, bases de datos para persistencia políglota, contenedores, para diversos servicios y su implementación
- Identifique las técnicas de integración, como las puertas de enlace API, para el registro de servicios, la limitación, la gestión, la orquestación, la coreografía, etc.
- Identidad y autenticación, utilizando herramientas como Oauth2 o JSON Web Tokens
- Identifique la responsabilidad de DevOps en términos inequívocos e identifique herramientas para la misma que incluyen Docker y contenedorización y decida si usar VM vs. Contenedores
- identificar un PAS, una buena idea, sin embargo, para una fácil implementación en la nube de servicios, PCF, Kubernetes, Fabric 8 es una buena herramienta. Proponga enérgicamente un PaaS para el despliegue, ya que la mayor parte del dolor / trampa del despliegue puede ser atendida por un PaaS robusto.
- Identificar herramientas de monitoreo, como Kibana, logstach, grafana
- Construir una hoja de ruta adecuada junto con negocios en torno a la arquitectura de servicios para varios componentes de negocios de forma aislada o en grupo para ser competitivos y rápidos en el mercado
- La mejor práctica no solo para el equipo individual que desarrolla sus servicios independientes (funcionalidades comerciales) en sus respectivos dominios tecnológicos
- Gestione la interacción entre varios equipos en el desarrollo de micro servicios y mantenga las dependencias al mínimo
- interactuar con Ops para desarrollar un plan de lanzamiento incremental y pruebas automatizadas de servicio
- Hay un montón de otros detalles esenciales que un arquitecto tiene que identificar y que forman la base del desarrollo de micro servicios. eso incluye, entre otros, identificar diversas tecnologías para los servicios que se desarrollarán y expondrán.
- Esta pregunta requiere un libro completo para explicar la responsabilidad de un arquitecto 🙂
- ¿Por qué la Casa Batlló de Antoni Gaudí se considera un edificio modernista ya que rechaza los principios del diseño arquitectónico modernista?
- ¿Por qué los castillos tenían tantas habitaciones?
- Corea: ¿Cuál es el mejor recurso para aprender a construir hanok?
- ¿Por qué la arquitectura se considera arte?
- ¿Los arquitectos buscan opinión pública sobre los diseños, o todo depende de ellos?