Mireya Lara
Abel Ubaldo Terrazas
Sebastián Pineda Duque
Amin Espinoza
ProfesorJosé Antonio De La Paz Fonseca
The Paradise Studio Popayan
Irving Juárez
Roberto Membreño
Mateo Orozco Lotero
Un microservicio es una arquitectura que descompone una aplicación en componentes pequeños, independientes y especializados, que pueden desarrollarse, desplegarse y escalarse de forma autónoma. Esto permite a los equipos trabajar en paralelo y usar diferentes tecnologías para cada servicio. Si un microservicio falla, los demás continúan funcionando, lo que aumenta la resiliencia del sistema. Esta metodología mejora la agilidad y la innovación, al facilitar la incorporación de nuevas tecnologías sin necesidad de rehacer toda la aplicación.
Me parece que además de la separación en componentes, la idea más importante es separar las reglas de negocio para que éstas puedan ser administradas por la gente de negocio y/o PM, Scrum Master. De esta forma el negocio solo se concentra en las reglas de negocio y no en una aplicación de microservicios/monóliticas. Esto también da agilidad ante las dinámicas del mercado.
En qué rutas va este curso?
Este curso es la culminación de muchos anteriores como Docker, Docker Avanzado, infraestructura como código, proveedores de nube, en fin, básicamente sería una ruta a la que podríamos llamar "Ruta de microservidios".
backend con go mi panita bonito
Fedeverso completado
Aqui esta lo que yo entiendo por "Microservicios".
Antes, se usaba un server gigante para todos los servicios de una aplicación. Entiendase un servicio como una función dentro de una aplicación, por ejemplo la Autenticación, el streaming de video, el chat en tiempo real, el crud de comentarios todos son servicios.
Entonces, como antes todo estaba en un solo server, cuando el chat tenia una actualización, habia que actualizar toda la aplicación desde cero, y eso implica que el servicio de streaming de video se podia romper por la actualización de algo que en teoria no le afectaba.
Y eso que es lo que provoca? Fragilidad en el software.
Cuando un software es frágil, no solamente es más dificil hacer deploys, sino que hacer testings se vuelve una tarea casi imposible, además de que escalarlo es aún peor.
Si nisiquiera se puede asegurar que el software vaya a funcionar correctamente, menos vamos a poder probar pruebas de stress o performance.
Entonces, que son los microservicios? Es simplemente romper la aplicación por cada servicio, y eso implica que cada servicio es independiente, osea que tiene su propio servidor (en el lenguaje de programación de preferencia del equipo) y es parte de un todo más grande -> La app.
Nos ayuda a ser más agiles en temas de deployments, escalamiento de la aplicación y flexibilidad en que tecnologias usar. Entonces si el chat necesita un cambio, el server hace deploy y la aplicación sigue funcionando como si nada.
En caso de que el microservicio del chat haya fallado, solo esa parte de la aplicación se veria afectada, pero el streaming de video seguiria funcionando de manera correcta.
Los microservicios mejoran la productividad y eficiencia al dividir las aplicaciones en servicios pequeños y especializados. Esto permite:
En conjunto, este modelo optimiza recursos, facilita la innovación y permite evolucionar sin rehacer sistemas completos.
Readys