Descubre los beneficios de implementar Micro servicios en Google Cloud Platform
¿Qué es un Microservicio?
Los microservicios son un tipo de arquitectura de software donde las grandes aplicaciones se componen de pequeñas unidades autocontenidas que trabajan juntas a través de APIs que no dependen de un lenguaje específico. Cada servicio tiene un alcance limitado, se concentra en una tarea particular, y es altamente independiente. Esta configuración permite a los responsables de I.T. y a los desarrolladores construir sistemas de forma modular. El libro de Martin Fowler "Microservicios: A Definition of This New Architectural" es una de las publicaciones fundamentales sobre los microservicios. describe algunas de las características clave de los microservicios como:
Componentización: Los microservicios son unidades independientes que son fácilmente reemplazables o actualizables. Las unidades se comunican entre sí y con servicios externos a través de llamadas a procedimientos y peticiones de servicios web.
Capacidades empresariales: El desarrollo de aplicaciones antiguamente solía dividir a los equipos en áreas como el "back" y el "equipo de la base de datos". El desarrollo de microservicios se construye en torno a necesidades de negocio, con la responsabilidad colectiva de las partes interesadas para un ciclo de desarrollo completo de funciones que van desde la UX y la gestión del proyecto.
Tuberías tontas, endpoints inteligentes: Las aplicaciones de microservicios contienen su propia lógica. Los recursos que se utilizan con frecuencia deben ser automatizados, y solo nos debemos de preocupar por entregar a detalle la información necesaria.
Productos en lugar de proyectos: En lugar de centrarse en un proyecto de software que se entrega tras su finalización, los equipos de microservicios tratan las aplicaciones como productos de los que se apropian. Los equipos establecen un diálogo continuo con las partes interesadas, con el objetivo de adaptar continuamente la aplicación a la función empresarial.
Gobernanza descentralizada: Las herramientas se construyen y comparten para gestionar problemas similares en otros equipos.
¿Qué problemas ayudan a solucionar los microservicios?
Hasta las organizaciones más grandes tienen problemas cuando las arquitecturas monolíticas no pueden ser escaladas, actualizadas o mantenidas a medida que crecen. Las implementaciones monolíticas intentan servir a muchos maestros, lo que significa que con el tiempo su complejidad crece y la modificación se hace difícil y muchas veces casi imposible.
Para servir a los clientes de forma eficiente, una estructura monolítica puede acabar siendo estática, es decir, mantiene información sobre los clientes a los que sirve a lo largo del tiempo, lo que significa que también consume más recursos. En un intento de hacer que los monolitos sean más fáciles de mantener, un grupo de arquitectura puede tratar de imponer nuevas normas sobre sobre qué tecnologías y qué principios de diseño utilizar. Esto significa que a medida que un monolito añade funcionalidad, las nuevas implementaciones no pueden ser tan eficientes como se desea porque los estándares no están ajustados para acomodar las necesidades de ese caso de uso en particular.
La arquitectura de microservicios es una respuesta a ese problema. Se trata de una Arquitectura de software en la que las tareas complejas se dividen en pequeños procesos que operan de forma independiente y se comunican a través de código que le es indistinto el lenguaje de programación. Acepta los estándares impuestos por los grupos de arquitectura más importantes, haciéndolos estandarizados, los microservicios promueven el compromiso con formatos abiertos como HTTP, ATOM y otros, que proporcionan suficiente consistencia en cómo se produce la comunicación para permitir una gran interoperabilidad.
A medida que las aplicaciones se hacen más grandes, las intrincadas dependencias y conexiones crecen. Tanto si se trata de una arquitectura monolítica o de unidades más pequeñas, los microservicios permiten separar funcionalidades de las aplicaciones existentes y nuevas en componentes manejables y reutilizables, lo que permite a los de software sean más ágiles.
Recomendado por LinkedIn
¿Por qué Google Cloud Platform?
Automatización de despliegue de aplicaciones modernas. Una aplicación se compone de muchas partes móviles, por lo que algunos desarrolladores prefieren construir sus aplicaciones en la nube, para empezar ("cloud-native"). Google es el creador de Kubernetes, que es un orquestador para aplicaciones formadas por muchos componentes. Desde el principio, Google adoptó un enfoque proactivo para automatizar el despliegue de estas aplicaciones multifacéticas en la nube: por ejemplo, abriéndose a Kubo, una plataforma de automatización creada para ayudar a los desarrolladores que utilizan Cloud Foundry a desplegar sus aplicaciones desde las plataformas de desarrollo a la nube, o usando App Engine, una forma fácil e intuitiva de desplegar aplicaciones hasta para las personas menos experimentadas haciendo este proceso de doloroso, a fácil.
Control de costos a tu Medida. En lugar de ser el líder de bajo coste, la estrategia de Google con GCP es permitir que tengas control total en tus gastos.Por ejemplo, Google ofrece un gestor de ciclo de vida para su almacenamiento de datos de objetos, que permite descargar o eliminar los objetos que no se han utilizado en 30 días o más, o que sus recursos sean auto escalables, o apagar o prender un servicio con un solo botón.
Amistoso para primerizos. Una plataforma de servicios en la nube puede ser un concepto abrumador de digerir para un novato. Al igual que para muchos consumidores no es obvio cuál es el propósito de una computadora en la nube es una experiencia nueva y extraña para las personas que están acostumbradas a ver y tocar las máquinas que están utilizando. GCP ofrece ejemplos paso a paso de cómo realizar muchas de las tareas más comunes, por ejemplo, crear una máquina virtual basada en Linux, es tan fácil como andar en bicicleta.
FUENTE: Documentación Google Maps Platform
CRÉDITOS:
Antonio Hernandez Fernandez | Arquitecto Google Cloud Platform / Arquitecto de Soluciones | BSI • Bufete de Soluciones Integrales
Diseño: Ruben Vera | Marketing & Comunicaciones | BSI • Bufete de Soluciones Integrales
MÁS INFORMACIÓN:
Martha Villanueva | Director Comercial | BSI • Bufete de Soluciones Integrales / mvillanueva@bsigeonet.com.mx