Uso de contenedores con aplicaciones nativas de nube

Completado

Entornos confiables y separados con contenedores

Los contenedores son entornos aislados de forma flexible que pueden ejecutar paquetes de software. Suelen ser un componente clave de las aplicaciones nativas de nube, ya que proporcionan un entorno confiable e independiente que funciona de la misma forma en cualquier máquina. Con frecuencia se hace referencia a ellos como "contenedores de Docker", como el nombre de la herramienta más popular para crearlos y administrarlos.

Cada contenedor es independiente, con su código, datos y dependencias propios. Uno de los puntos fuertes de la creación de contenedores es que no es necesario configurar hardware ni perder tiempo en la instalación de sistemas operativos, máquinas virtuales y software para hospedar una implementación.

Aunque podemos usar los contenedores directamente, con un programa de software en funcionamiento desde nuestra propia máquina a la nube también podemos exportar contenedores desde los servicios. Es el caso, por ejemplo, del servicio Azure Speech, que transcribe la voz en tiempo real en texto y está disponible como imágenes de contenedor que pueden implementarse directamente en su sistema. Muchos de los servicios de Azure usan contenedores de forma subyacente, por lo que hay una amplia gama disponible.

Cloud-native design with containers, with a code component residing within a container, while the database component isn't in a container.

Los contenedores son fáciles de usar con los servicios en la nube. Garantizan que, una vez probada, la aplicación funciona de la misma forma en la máquina local que en la nube, lo que le ofrece una experiencia mucho más confiable y con poco mantenimiento. Esta contenedorización significa que puede escalar horizontalmente de forma fácil mediante la replicación de los contenedores y que cada instancia de la aplicación está en un entorno idéntico. Además, puede administrar contenedores con un orquestador de contenedores, como Kubernetes. Los contenedores orquestados, junto con su naturaleza ligera, pueden escalar horizontalmente de forma mucho más rentable y ágil que las máquinas virtuales.

Administre los contenedores fácilmente con un servicio de Kubernetes

Kubernetes, que a menudo se abrevia como K8s, es una tecnología que administra varios contenedores de forma automática. Puede conectar contenedores para que la base de datos pueda comunicarse con un elemento back-end, escalar recursos y automatizar la implementación de aplicaciones, las copias de seguridad y el mantenimiento.

Una de las principales ventajas de Kubernetes es su capacidad para restaurar las aplicaciones a la instancia exacta que se ha probado y guardado, lo que también se conoce como recuperación automática. Como los contenedores se pueden guardar y replicar, Kubernetes puede comprobar el estado de un contenedor y reemplazarlo por una copia original, si es necesario.

Kubernetes también puede aumentar o disminuir de forma automática el número de contenedores en caso de que cambie la demanda. Si el tráfico hacia un contenedor es elevado, Kubernetes puede equilibrar la carga y distribuir el tráfico de red para que la implementación sea estable.

Cloud-native design with AKS.

Asimismo, una de las principales ventajas de usar un servicio de Kubernetes es la administración simplificada de la configuración de seguridad. Muchos de ellos tienen servicios de autenticación integrados, lo que permite que los servicios proporcionen ofertas de cumplimiento para la mayoría de los países, regiones y sectores.

Además, cuando se actualiza un componente, puede automatizar Kubernetes de forma que cree contenedores para la implementación, quite los contenedores existentes y adopte todos sus recursos en los nuevos contenedores. Los servicios de Kubernetes, como AKS, simplifican la administración de los contenedores y pueden reducir enormemente el tiempo de desarrollo, los costos y las obligaciones de seguridad. La integración continua y entrega continua (CI/CD) permiten a los servicios de Kubernetes optimizar las canalizaciones de desarrollo y la implementación de aplicaciones.