Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Class
Type
Materials
Reviewed
Microservicios
El término "Arquitectura de microservicio" ha surgido en los últimos
años para describir una forma particular de diseñar aplicaciones de
software como conjuntos de servicios de implementación
independiente.
Base de datos
Aplicación del lado del servidor → esta app es un monolito: un único ejecutable
lógico. Cualquier cambio en el sistema implica la creación e implementación de una
nueva versión de la aplicación del lado del servidor
Clase 1 - Lectura 1
El estilo arquitectónico de microservicios consiste en crear aplicaciones como conjuntos
de servicios. Los servicios se pueden implementar y escalar de forma independiente,
estos módulos pueden incluso ser escritos en distintos lenguajes t ser gestionados por
distintos equipos.
Clase 1 - Lectura 2
componentes que están componentes fuera de
vinculados a un programa y se proceso que se comunican
llaman mediante llamadas a con un mecanismo como una
funciones en memoria solicitud de servicio web o una
llamada a procedimiento
remoto
Una de las principales razones para usar los servicios como componentes es que los
servicios se pueden implementar de forma independiente
El uso de servicios como este tiene desventajas. Las llamadas remotas son más caras
que las llamadas en proceso, por lo que las API deben ser más generales y a menudo
esto es más complicado de usar.
Clase 1 - Lectura 3
Productos, no proyectos
La mayoría de los esfuerzos de desarrollo de aplicaciones que vemos utilizan un
modelo de proyecto: donde el objetivo es entregar una pieza de software que luego se
considera completada. Una vez finalizado, el software se entrega a una organización
de mantenimiento y el equipo del proyecto que lo construyó se disuelve.
Clase 1 - Lectura 4
Mensajería ligera
Gobernanza descentralizada
Una de las consecuencias de la gobernanza centralizada es la tendencia a estandarizar
en plataformas tecnológicas únicas.
Clase 1 - Lectura 5
La descentralización de la responsabilidad de los datos en los microservicios tiene
implicaciones para la gestión de actualizaciones. El enfoque común para lidiar con las
actualizaciones ha sido utilizar transacciones para garantizar la coherencia al actualizar
varios recursos. Este enfoque se usa a menudo dentro de los monolitos.
Automatización de infraestructura
Muchos de los productos o sistemas que se están construyendo con microservicios
están siendo construidos por equipos con amplia experiencia en Continuous Delivery y
su precursor, Continuous Integration . Los equipos que crean software de esta manera
hacen un uso extensivo de las técnicas de automatización de la infraestructura.
Otra área en la que vemos equipos que utilizan una amplia automatización de la
infraestructura es la gestión de microservicios en producción.
Clase 1 - Lectura 6
comparación con un diseño monolítico, ya que introduce una complejidad adicional
para manejarlo.
Dado que los servicios pueden fallar en cualquier momento, es importante poder
detectar las fallas rápidamente y, si es posible, restaurar el servicio automáticamente.
Diseño evolutivo
Los profesionales de microservicios, por lo general, provienen de un fondo de diseño
evolutivo y ven la descomposición de servicios como una herramienta más para
permitir a los desarrolladores de aplicaciones controlar los cambios en su aplicación sin
ralentizar los cambios.
Continuous delivery
Es una disciplina del desarrollo en la que se crea software de tal manera que este se
pueda lanzar a producción en cualquier momento.
Clase 1 - Lectura 7
Puede realizar implementaciones de botón de cualquier versión del software en
cualquier entorno bajo demanda
Amplia automatización de todas las partes posibles del proceso de entrega, por lo
general utilizando un DeploymentPipeline
Continuous Integration
Es una práctica de desarrollo en la que los miembros de un equipo integran su trabajo
con frecuencia; por lo general, cada persona se integra al menos a diario, lo que
genera múltiples integraciones por día. Cada integración se verifica mediante una
compilación automatizada (incluida la prueba) para detectar errores de integración lo
más rápido posible.
Automatizar el build
Cada commit debe hacer build a la linea principal en una máquina de integración
Clase 1 - Lectura 8
Mantener el build rápido
Automatizar la implementación
No elimina los errores, pero los hace más fáciles de encontrar y eliminar
Cómo empezar?
Automatizar la compilación
Clase 1 - Lectura 9