Ir a

El futuro de la infraestructura se añadirá en contenedores

Las empresas tecnológicas y las emergentes están adoptando rápidamente plataformas de contenedores gestionados que les permiten invertir menos recursos de ingeniería en el mantenimiento de su infraestructura y más en las prioridades de futuro que impulsan los resultados empresariales, como el crecimiento, las ventajas competitivas y el aumento de rentabilidad.

Reducción de la gestión de la infraestructura para agilizar la comercialización de productos

Aunque la mayoría de las empresas tecnológicas y startups trabajan actualmente en la nube, muchas aún tienen que aprovechar todas las ventajas de hacerlo. Si estás en la nube, pero no en Kubernetes, es probable que estés aprovechando soluciones propias mientras creas y mantienes tus propias herramientas personalizadas adicionales. Además, estás dejando mucho a la cabeza en cuanto a eficiencia, ejecutando tus propias cargas de trabajo en máquinas virtuales (VMs) infrautilizadas y posiblemente encerrándote.

¿Cuántas herramientas utilizas actualmente para gestionar y parchear tus máquinas virtuales? ¿Cómo se pueden actualizar las aplicaciones? ¿Cómo se utiliza la máquina virtual? Puede que lo que tienes ahora mismo no sea tan eficiente. Hay cosas que se producen (cortes, problemas de escalabilidad, etc.) debido a debilidades de tu arquitectura de máquina virtual, a que los costes no tienen el control o a que la infraestructura no está configurada para admitir muchas cosas. Tu empresa debe hacer lo siguiente:

  • Refactorizar o reestructurar un MVP para convertirlo en una solución escalable
  • Llega a más proveedores de servicios en la nube para cumplir las expectativas normativas y de los clientes
  • Ampliar la cobertura geográfica para reducir la latencia y proporcionar mejores experiencias a una base de clientes generalizada
  • Mejora de tu estrategia de seguridad integral
  • Mejorar la experiencia del cliente (por ejemplo, en cuanto a disponibilidad)

La deuda técnica y antigua puede ralentizar el proceso. Por eso, estamos experimentando un gran cambio en Kubernetes. Una arquitectura moderna compuesta por contenedores gestionados te da acceso a patrones probados para ejecutar una infraestructura fiable y segura. Puedes acelerar tu tiempo de lanzamiento y aumentar tu productividad sin sacrificar la estabilidad ni la seguridad gracias a la ventaja añadida de ayudarte a atraer al mejor talento técnico para trabajar en la innovación.

También te preocupa salir de la comunidad de Kubernetes y de su ecosistema circundante, cuya innovación estable define los estándares y prácticas recomendadas del sector actuales. En última instancia, y esto es aún más importante de cara a los desafíos de contratación actuales, debes decidir dónde quieres que dediquen tus ingenieros su tiempo: mantener la infraestructura, crear y mantener herramientas personalizadas o hacer las tareas oportunas para que tu empresa avance. Es posible que lo que tengas entre manos funcione, pero es probable que tu hoja de ruta incluya algunos elementos que no te interesan, como pagar las deudas técnicas y compensar la falta de plataformas.

  • Cifrado de extremo a extremo
  • Observabilidad (registros, métricas, registro automático)
  • Gestión y cumplimiento de políticas
  • Alta disponibilidad y conmutación por error automático
  • Reducción de costes

Kubernetes es una herramienta de código abierto y no compatible con plataformas. Ofrece todas las herramientas habituales desde el primer momento para proteger y agilizar cada fase del ciclo de desarrollo y despliegue. Es la suma de todas las secuencias de comandos y prácticas recomendadas que la mayoría de los administradores de sistemas llevan a cabo juntas y que se presentan como un sistema detrás de un conjunto declarativo de APIs. Todo está automatizado, los detalles están ocultos y está listo para usarse. Además, Kubernetes puede eliminar la gran mayoría de la infraestructura como código y trasladar tu plataforma a la infraestructura como datos. No tienes que escribir ni mantener código. le dices a Kubernetes lo que quieres, no lo que tienes que hacer. Esto supone un gran ahorro en lo que respecta a la sobrecarga de gestión.

Los contenedores son la mejor forma de usar el continuo informático.

Si quieres ejecutar cargas de trabajo tradicionales, puedes hacerlo en una plataforma moderna con Kubernetes separando las aplicaciones de las máquinas virtuales y colocándolas en contenedores. Contar con imágenes de contenedor para empaquetar el software hará que sea más fácil actualizar las máquinas virtuales. Ahora puedes desvincular la gestión del ciclo de vida de la máquina virtual y la del ciclo de vida de la aplicación, lo que simplifica la eliminación de la máquina virtual como, por ejemplo, Ruby, Python y Java. Si lo mueves al lugar al que pertenece, junto a la aplicación del desarrollador, podrás controlarlo todo desde un mismo lugar y mantener tus máquinas en funcionamiento.

Las plataformas de computación gestionadas convierten los servicios en la nube en plataformas como un servicio, lo que te ofrece la potencia y la flexibilidad de los contenedores, además de la comodidad de un servidor sin servidor. Como no hay servidor, no se ha configurado el clúster ni se necesita mantenimiento, lo que te aporta una gran ventaja sin perder el control.

En el caso de las cargas de trabajo que no requieren mucho control sobre la configuración del clúster, puedes dejar que los servicios aprovisionen y gestionen su infraestructura subyacente, incluidos los nodos y grupos de nodos, mientras que solo pagas por la carga de trabajo, no el clúster. De esta forma, puedes eliminar la administración de los clústeres a la vez que optimizas la seguridad y ahorras una cantidad de dinero potencialmente considerable.

En el caso de las aplicaciones nativas de la nube, esto funciona de forma similar, con menos trabajo, eliminando la infraestructura subyacente y sirviendo como host de extremo a extremo de las aplicaciones, los datos e incluso los análisis. Gracias a una plataforma sin servidor, podrás empezar a ejecutar contenedores en un entorno totalmente gestionado con una mínima complejidad y seguridad, rendimiento, escalabilidad y prácticas recomendadas integradas.

Veamos qué implicaciones puede tener para tu negocio y cómo puedes mantener a tu organización a la vanguardia.

Ventajas de los servicios gestionados basados en estándares abiertos

Algunas empresas consideran que es necesario trabajar en varias nubes. La gravedad de los datos es real y, si dispones de una base de clientes global, te resultará inevitable atender a los clientes que quieren minimizar la latencia y las tarifas de red al mantener sus operaciones de computación cerca de dónde se encuentran los datos.

En estos casos, la multinube puede expandir su mercado direccionable y, de todas formas terminará admitiendo servicios y datos gestionados de otros proveedores. Otras empresas valoran la multinube como estrategia de mitigación de riesgos. En cualquier situación, la clave es adoptar correctamente los entornos multinube, y las soluciones estándar del sector pueden ayudarte.

En primer lugar, comprueba que puedes aprovechar todos los flujos de trabajo para hacer todo lo posible. Cuando hablamos de flujos de trabajo, nos referimos a habilitar la automatización de tareas para crear la arquitectura de flujo de datos entre la base de datos y la computación. Es aquí donde el software libre es importante. Si seleccionas una base de datos que no está abierta, tendrás problemas para implementar la arquitectura y la automatización del flujo de datos. Te recomendamos que utilices algo como el protocolo Postgres (por ejemplo, Cloud Spanner) o una base de datos gestionada de Postgres (por ejemplo,Cloud SQL ) en cualquier proveedor de servicios en la nube.

En segundo lugar, desde el punto de vista de la computación, Kubernetes ahorra mucho tiempo en cuanto a despliegues y automatización, por lo que, cuando elijas un conjunto de tecnologías, asegúrate de que funcionen fuera de los límites establecidos por tu proveedor. Los límites pueden ser diferentes regiones o zonas, diferentes proyectos o cuentas, e incluso on‐premise o en la nube. No pierdas el tiempo creando y manteniendo infraestructuras independientes para cada proveedor de servicios en la nube (por ejemplo, una en AWS, otra en Google y otra en Azure). para tus ingenieros no será tarea fácil. Si creas una sola vez y la despliegas en varias nubes, cuando necesites hacer actualizaciones, puedes hacerlo de forma centralizada y coherente. Las pilas de computación, como Kubernetes, suponen una gran ventaja para los clientes que se toman en serio la nube multinube de una forma eficiente y sin necesidad de reinventar la rueda cada vez que quieren incorporar un nuevo proveedor en la nube.

Tercero: gestión de riesgos. Tener la capacidad de ejecutar tu pila en otro entorno ayudará a mitigar el riesgo de que tu proveedor de servicios en la nube caiga o empiece a competir con tu empresa. Para cumplir las normativas, las organizaciones deberán elegir a los proveedores para asegurar la continuidad de su negocio. Por ejemplo, si pierdes operaciones en una región, no experimentarás ningún periodo de inactividad con un proveedor de copias de seguridad.

Las migraciones multinube que tienden bien son las que aprovechan los estándares abiertos. Por ejemplo, Kubernetes ofrece una API independiente de proveedores tanto para ejecutar aplicaciones como para configurarlas y desplegarlas, así como para integrar elementos como políticas de seguridad, redes, etc. Piensa en Kubernetes como un sistema operativo multinube; cuando es tu capa de abstracción, normalmente puedes ocultar las diferencias entre la mayoría de los proveedores más importantes de la nube.

Pasar a un modelo totalmente gestionado para reducir la sobrecarga operativa

A la hora de decidirte por Kubernetes, tienes varias opciones. Sin duda, puedes ejecutarlo tú mismo. Kubernetes es un proyecto de código abierto, por lo que puedes descargarlo y dedicar años a integrarlo en tu proveedor de servicios en la nube o en tu entorno preferido.

No obstante, si crees que no es el mejor momento para usar tu tiempo, puedes usar una oferta gestionada de Kubernetes. Si utilizas AWS, significa que dispone de EKS. Si estás en Azure, tienes AKS. Y, si utilizas Google Cloud, significa Google Kubernetes Engine (GKE). A partir de esas opciones, puedes usar la API de Kubernetes común para que, cuando tu equipo cree sus herramientas y flujos de trabajo, puedas reutilizarlas en varios proveedores.

No obstante, no todas las ofertas de servicios gestionados son iguales. Kubernetes no solo es tan bueno como la infraestructura en la que se ejecuta, sino que también elimina las diferencias como un servicio de orquestación de Kubernetes totalmente gestionado y orquestado. Además, cuenta con un sistema de infraestructura como servicio (IaaS) totalmente integrado, desde el aprovisionamiento de máquinas virtuales de Tau, hasta un rendimiento un 42% mejor con respecto a ofertas similares de uso general.1 Autoescalado en varias zonas y licencias para crear y gestionar GPUs, TPUs para aprendizaje automático, volúmenes de almacenamiento y credenciales de seguridad bajo demanda. Solo tienes que colocar tu aplicación en un contenedor y seleccionar un sistema basado en tus necesidades.

¿Qué pasa si has elegido AWS como tu proveedor de servicios en la nube para máquinas virtuales? ¿Hay que seguir con EKS? En general, Kubernetes es igual para todos los proveedores de servicios en la nube. tendrás la API de Kubernetes. Pero debajo de esa API hay un clúster, nodos de trabajador, políticas de seguridad, los nueve campos de terreno, y ahí es donde destaca GKE.

Por ejemplo, si todavía necesitas esos otros clústeres, puedes conectarlos a GKE Connect, que te proporcionarán un único lugar para gestionar, ver y solucionar problemas, depurarlos y gestionar asuntos de forma centralizada, como las credenciales. GKE se considera una de las mejores soluciones de Kubernetes gracias a su capacidad de gestión integral, y no solo al plano de control, a la alta disponibilidad de varias regiones o a varias zonas. GKE también puede utilizar los balanceadores de carga globales con la entrada multi-clúster gestionada de forma centralizada en varios clústeres y regiones.

¿Y si quieres la API de Kubernetes, pero no la responsabilidad de aprovisionar, escalar y actualizar los clústeres? Para la mayoría de las cargas de trabajo, GKE Autopilot abstrae la infraestructura subyacente del clúster, incluidos los nodos y grupos de nodos, y solo pagas por la carga de trabajo. El objetivo de Autopilot de GKE es proporcionar la API estándar de Kubernetes con todos los valores de seguridad predeterminados para que puedas centrarte en tus cargas de trabajo, no en los clústeres.

__________________________

1 Los resultados se basan en una estimación de las SPECrate®2017_int_base en las máquinas virtuales de producción de otros dos proveedores de servicios en la nube líderes, así como en máquinas virtuales de producción de Google Cloud Tau que usan versiones recomendadas de diferentes proveedores. SPECrate es una marca de Standard Performance Evaluation Corporation. Para obtener más información, consulta la página www.spec.org.

Simplifica la entrega de aplicaciones con soluciones sin servidor

Kubernetes ha trasladado las organizaciones de las máquinas virtuales a un nuevo conjunto de abstracciones que te permiten automatizar operaciones y centrarte en tus aplicaciones. Sin embargo, para cargas de trabajo más específicas (por ejemplo, aplicaciones web y móviles, backend de APIs REST, procesamiento de datos, automatización de flujos de trabajo), puedes simplificar aún más las tareas y optimizar el despliegue aprovechando el modelo sin servidor.

Es posible que uses AWS Lambda, una popular plataforma sin servidor que permite escribir funciones como servicio y vincularlas a todo tipo de eventos. No obstante, puesto que te conectas a una base de datos y gestionas las cuestiones de seguridad, estas funciones tienden a crecer en la complejidad, algunas de ellas son más grandes que las aplicaciones normales. Entonces, ¿qué ocurre cuando tienes una aplicación que va más allá de la sencillez de una función como servicio o de una aplicación que quieres ejecutar sin servidor?

A diferencia de una plataforma sin servidor tradicional que requiere reescribir tus aplicaciones, Cloud Run ofrece una estrategia que te permite reutilizar tus inversiones en aplicaciones en contenedores. Aunque GKE es un servicio gestionado, aún tienes que tomar algunas decisiones clave: las zonas en las que se deben ejecutar, dónde almacenar los registros, cómo gestionar el tráfico entre las distintas versiones de las aplicaciones, nombres de dominio registrados, y gestionar certificados SSL.

Cloud Run elimina todas esas decisiones, para que puedas ejecutar cargas de trabajo más tradicionales y evitar los arranques en frío al inhabilitar el escalado a cero. Si tus aplicaciones tienen que ejecutarse siempre, Cloud Run también es compatible con otros requisitos tradicionales, como NFS, WebSockets y la integración con VPC. No obstante, al igual que la mayoría de las plataformas sin servidor tradicionales, Cloud Run cuenta con una infraestructura sólida que ofrece funciones como la gestión del tráfico integrada y el autoescalado.

Rentabiliza al máximo la migración

Reflexionando sobre tu lógica de migración

Imagina que no utilizas contenedores y te preguntas por dónde empezar. En este artículo se describe la estrategia pragmática de adoptar la creación en contenedores.

La primera razón de adoptar los contenedores es solucionar el problema de embalaje. Actualmente, se está produciendo una gran cantidad de trabajo en torno a la producción de artefactos reproducibles y a comprender lo que contiene nuestro software. o, como se conoce en el sector, la "cadena de suministro de software segura". Creemos que una forma ideal de hacerlo es usar imágenes de contenedor que incluyan el código y los entornos de ejecución de tus aplicaciones, dependencias. Una de las ventajas de los contenedores es que pueden desplegarse en máquinas virtuales, lo que reduce la complejidad del despliegue y el mantenimiento del software en todos tus equipos.

El segundo motivo para adoptar contenedores es la orquestación. La gestión de máquinas virtuales conlleva un montón de gastos de gestión y mantenimiento. Si eres como la mayoría de las empresas, tu equipo ejecuta docenas o cientos de pasos para gestionar la infraestructura y, aunque estos sean automatizados, esas herramientas de automatización también requerirán un mantenimiento continuo. Supongamos que utilizas herramientas de automatización estándar del sector, como Terraform, Puppet, Chef y Ansible. Las tareas generales de mantenimiento son aún peor para las herramientas propias o personalizadas.

El tercer motivo para adoptar contenedores es la eficacia. Además de la carga de mantenimiento, la mayoría de las organizaciones solo llegan a utilizar entre un 5% y un 10% de uso de CPU, por no mencionar la memoria ni el almacenamiento. Es decir, se consumen muchos recursos. Muchos equipos están creando más herramientas personalizadas para cerrar esta brecha implementando aspectos como el autoescalado y el empaquetado de contenedores, por lo que se reduce el tiempo de funcionamiento. Esto conlleva un sobregasto y una factura sorprendente en la nube.

Muy pocas organizaciones pueden crear su propia plataforma de orquestación, por lo que usar una plataforma de código abierto como Kubernetes, Mesos o Nomad es una opción habitual. No obstante, si quieres una plataforma que te ayude a disfrutar de ventajas como un mantenimiento reducido, prácticas recomendadas estándar del sector y una integración profunda con el resto de tu proveedor de servicios en la nube, Un servicio gestionado como GKE para maximizar el valor potencial de tus contenedores.

Conceptos básicos para llevar a cabo una migración correctamente

Llegados a este punto, puede que te preguntes: ¿la migración a contenedores realmente supone un periodo de inactividad sin valor? Lo último que quieres hacer es pulsar el botón de pausa en el desarrollo futuro, ¿verdad?

Para responder a esta pregunta, veamos cómo puedes aprovecharla para aprovechar la experiencia en la nube hasta la fecha.

Migra las aplicaciones de las máquinas virtuales a los contenedores, sobre todo si se trata de transferir toda tu computación a un nuevo proveedor de la nube. La realidad es que no tienes que ir al por mayor; Puedes hacerlo de una en una, empezando por las máquinas virtuales, y moviendo una o dos aplicaciones a Kubernetes, donde pueden vivir juntas en la misma red y hablar con las máquinas virtuales No tienes que unirte a una transición de principio a fin. puedes moverte lentamente de una plataforma a otra.

Mantener las máquinas virtuales puede ser útil para algunas aplicaciones, como bases de datos grandes y pesadas que no benefician mucho a Kubernetes. No pasa nada si los combinas. Sin embargo, hemos observado que la mayoría de los clientes sacan mucho partido de migrar sus aplicaciones y proyectos de código abierto a Kubernetes. Da prioridad a las aplicaciones que generarán el mayor retorno al cambiar a GKE no se mueve todo a la vez.

Kubernetes se sigue ejecutando en las mismas máquinas virtuales de Linux que probablemente estés utilizando en la actualidad. En realidad, lo que obtienes es un flujo de trabajo simplificado y coherente que incluye muchos elementos que debes incluir en tu hoja de ruta de la infraestructura, en lugar de una colección de secuencias de comandos locales. y la automatización. Incorporar nuevos miembros al equipo también es mucho más fácil cuando usas una herramienta estándar del sector, como Kubernetes, en lugar de enseñarles todas las formas personalizadas que tiene tu empresa.

Llegados a este punto, ya tienes una opción para adoptar contenedores lentamente, pero de forma pragmática, lo que permite ahorrar tiempo a tu equipo en términos de administración generales y dinero de la empresa en costes de computación.

¿Listo para dar los siguientes pasos?

Migra, innova y crece

Ya hemos hablado mucho sobre los contenedores y las migraciones a la nube, tanto si te encuentras en Kubernetes como si buscas una oferta mejor o si buscas una estrategia diferente que se ajuste a tus aplicaciones y hoja de ruta.

Sea cual sea tu opción de desarrollo de aplicaciones, la opción de contenedores gestionados reduce los costes de infraestructura, a la vez que permite que tu equipo pueda centrarse en crear productos de calidad. El futuro de la infraestructura es la creación en contenedores. Hay que asegurarse de que tanto los ingenieros como la empresa están preparados para dar buenos resultados. 

¿Necesitas inspiración? Resolvamos juntos los retos a los que te enfrentas.

Descubre cómo puede ayudarte Google Cloud a sacar el máximo partido a tus aplicaciones modernas.
Habla con un experto
Google Cloud Next '21: Presentamos Autopilot en Google Kubernetes Engine
Ver seminario web

Rellena el formulario y nos pondremos en contacto contigo. Ver formulario