de Gmail a YouTube para buscar, todo en Google se ejecuta en contenedores. La contenedorización permite a nuestros equipos de desarrollo moverse rápidamente, implementar software de manera eficiente y operar a una escala sin precedentes. Cada semana, comenzamos más de varios miles de millones de contenedores., Hemos aprendido mucho sobre la ejecución de cargas de trabajo en contenedores en producción durante la última década, y hemos compartido este conocimiento con la comunidad a lo largo del camino: desde los primeros días de contribuir cgroups al núcleo Linux, hasta tomar diseños de nuestras herramientas internas y abrirlos como el proyecto Kubernetes. Hemos incorporado esta experiencia en Google Cloud Platform para que los desarrolladores y las empresas de cualquier tamaño puedan aprovechar fácilmente lo último en innovación de contenedores.
Los contenedores ofrecen un mecanismo de empaquetado lógico en el que las aplicaciones se pueden abstraer del entorno en el que realmente se ejecutan. Este desacoplamiento permite que las aplicaciones basadas en contenedores se implementen de manera fácil y consistente, independientemente de si el entorno de destino es un centro de datos privado, la nube pública o incluso el portátil personal de un desarrollador., La contenedorización proporciona una clara separación de preocupaciones, ya que los desarrolladores se centran en la lógica y las dependencias de la aplicación, mientras que los equipos de operaciones de TI pueden centrarse en la implementación y la administración sin preocuparse por los detalles de la aplicación, como las versiones de software específicas y las configuraciones específicas de la aplicación.
para aquellos que provienen de entornos virtualizados, los contenedores a menudo se comparan con máquinas virtuales (VM)., Es posible que ya esté familiarizado con las máquinas virtuales: un sistema operativo invitado como Linux o Windows se ejecuta sobre un sistema operativo host con acceso virtualizado al hardware subyacente. Al igual que las máquinas virtuales, los contenedores le permiten empaquetar su aplicación junto con bibliotecas y otras dependencias, proporcionando entornos aislados para ejecutar sus servicios de software. Sin embargo, como verás a continuación, las similitudes terminan aquí, ya que los contenedores ofrecen una unidad mucho más liviana para los desarrolladores y los equipos de operaciones de TI, con una gran cantidad de beneficios.,
en lugar de virtualizar la pila de hardware como con el enfoque de máquinas virtuales, los contenedores virtualizan a nivel del sistema operativo, con varios contenedores que se ejecutan directamente sobre el núcleo del sistema operativo. Esto significa que los contenedores son mucho más ligeros: comparten el núcleo del sistema operativo, se inician mucho más rápido y utilizan una fracción de la memoria en comparación con el arranque de un sistema operativo completo.
hay muchos formatos de contenedor disponibles. Docker es un formato contenedor popular de código abierto que es compatible con Google Cloud Platform y Google Kubernetes Engine.
contenedores sila aplicaciones entre sí a menos que las Conecte explícitamente. Eso significa que no tiene que preocuparse por dependencias conflictivas o contención de recursos: establece límites explícitos de recursos para cada servicio. Es importante destacar que es una capa adicional de seguridad ya que sus aplicaciones no se ejecutan directamente en el sistema operativo host.
Contenedores de dar a los desarrolladores la capacidad de crear entornos predecibles que están aislados de otras aplicaciones., Los contenedores también pueden incluir dependencias de software necesarias para la aplicación, como versiones específicas de los tiempos de ejecución del lenguaje de programación y otras bibliotecas de software. Desde la perspectiva del desarrollador, todo esto está garantizado para ser consistente sin importar dónde se implemente la aplicación en última instancia. Todo esto se traduce en productividad: los desarrolladores y los equipos de operaciones de TI pasan menos tiempo depurando y diagnosticando diferencias en los entornos, y más tiempo enviando nuevas funcionalidades para los usuarios., Y significa menos errores, ya que los desarrolladores ahora pueden hacer suposiciones en entornos de desarrollo y prueba que pueden estar seguros de que se mantendrán en producción.
Los contenedores pueden ejecutarse prácticamente en cualquier lugar, lo que facilita enormemente el desarrollo y la implementación: en Sistemas Operativos Linux, Windows y Mac; en máquinas virtuales o bare metal; en la máquina de un desarrollador o en centros de datos locales; y, por supuesto, en la nube pública. La popularidad generalizada del formato de imagen Docker para contenedores ayuda aún más con la portabilidad., Donde quiera que desee ejecutar su software, puede usar contenedores.
Los contenedores virtualizan los recursos de CPU, memoria, almacenamiento y red a nivel del sistema operativo, proporcionando a los desarrolladores una vista en caja de arena del sistema operativo aislado lógicamente de otras aplicaciones.,onment
los contenedores le permiten empaquetar su aplicación y sus dependencias en un manifiesto sucinto que se puede controlar por Versión, lo que permite una fácil replicación de su aplicación entre los desarrolladores de su equipo y las máquinas de su clúster.,
al igual que las bibliotecas de software empaquetan bits de código juntos, lo que permite a los desarrolladores abstraer la lógica como la autenticación del usuario y la administración de sesiones, los contenedores permiten que su aplicación en su conjunto se empaquete, abstrayendo el sistema operativo, la máquina e incluso el código en sí. Combinado con una arquitectura basada en servicios, toda la unidad sobre la que se pide a los desarrolladores razonar se vuelve mucho más pequeña, lo que lleva a una mayor agilidad y productividad. Todo esto facilita el desarrollo, las pruebas, la implementación y la gestión general de sus aplicaciones.,
Los contenedores funcionan mejor para arquitecturas basadas en servicios. A diferencia de las arquitecturas monolíticas, donde cada pieza de la aplicación está entrelazada, desde IO hasta procesamiento de datos y renderizado, las arquitecturas basadas en servicios las separan en componentes separados. La separación y la división del trabajo permiten que sus servicios continúen funcionando incluso si otros están fallando, manteniendo su aplicación en su conjunto más confiable.,
La Componentización también le permite desarrollar de forma más rápida y fiable; las bases de código más pequeñas son más fáciles de mantener y, dado que los servicios están separados, es fácil probar entradas específicas para salidas. los contenedores
son perfectos para aplicaciones basadas en servicios, ya que puede comprobar el estado de cada contenedor, limitar cada servicio a recursos específicos e iniciarlos y detenerlos independientemente unos de otros.
y dado que los contenedores abstraen el código, los contenedores le permiten tratar los servicios separados como cajas negras, disminuyendo aún más el espacio del que un desarrollador debe preocuparse., Cuando los desarrolladores trabajan en servicios que dependen de otro, pueden iniciar fácilmente un contenedor para ese servicio específico sin tener que perder tiempo configurando el entorno correcto y solucionando problemas de antemano.
descubrir las tres maneras que usted puede utilizar en sus contenedores en la Nube de Google!
Google Kubernetes Engine para una solución de organización de contenedores, Cloud Run para un enfoque totalmente sin servidor y Compute Engine para usar simplemente máquinas virtuales.,
hemos tenido tanto éxito con nuestro sistema interno de gestión de clústeres Borg que hemos tomado lo que hemos aprendido y lo hemos puesto en el proyecto de código abierto Kubernetes. Ahora usted y otras empresas pueden beneficiarse de nuestras décadas de experiencia., También conocido como «k8s», Kubernetes proporciona una organización automatizada de contenedores-administración de sus máquinas y servicios para usted-mejorando su confiabilidad y reduciendo el tiempo y los recursos que necesita para gastar en DevOps, sin mencionar el alivio del estrés asociado a estas tareas.
Kubernetes facilita todo lo relacionado con la implementación y administración de su aplicación. Kubernetes automatiza las implementaciones y reversiones, monitoreando el estado de sus servicios para evitar implementaciones incorrectas antes de que las cosas vayan mal., También ejecuta continuamente comprobaciones de estado en sus servicios, reinicia contenedores que fallan o se han estancado y solo anuncia servicios a clientes cuando ha confirmado que se han iniciado correctamente. Además, Kubernetes escalará automáticamente sus servicios hacia arriba o hacia abajo en función de la utilización, asegurando que solo esté ejecutando lo que necesita, cuando lo necesita. Al igual que los contenedores, Kubernetes le permite administrar declarativamente su clúster, lo que permite controlar la versión de su configuración y replicarla fácilmente.,
- comprobar implementaciones y reversiones automatizadas
- comprobar supervisión del estado del Servicio
- comprobar escalado automático de servicios
- comprobar administración declarativa
- comprobar implementar en cualquier lugar, incluidas las implementaciones híbridas
quizás lo más importante es que Kubernetes está diseñado para usarse en cualquier lugar, lo que le permite organizar implementaciones en el sitio, desde nubes públicas hasta implementaciones híbridas entre ambas., Esto permite que su infraestructura llegue a sus usuarios donde están, que sus aplicaciones tengan una mayor disponibilidad y que su empresa equilibre sus preocupaciones de seguridad y costos, todo ello adaptado a sus necesidades específicas.
Por supuesto, Kubernetes se ejecuta mejor en Google Cloud Platform. Google Kubernetes Engine es la principal solución de Kubernetes administrada que le permite configurar y preparar la producción rápidamente.,
Kubernetes Engine está totalmente gestionado por los ingenieros de confiabilidad de Google, los que conocen mejor los contenedores, lo que garantiza que su clúster esté altamente disponible y actualizado. Se integra a la perfección con todos los servicios GCP, como la supervisión, el diagnóstico y el registro de Stackdriver; la administración de identidades y accesos; y la mejor infraestructura de redes de Google.
- comprobar Kubernetes de código abierto administrado
- comprobar 99.,SLA del 5% y alta disponibilidad con implementaciones multizona integradas
- compruebe la integración perfecta de otros servicios GCP
- compruebe el precio por rendimiento líder en la industria
- compruebe Flexible & interoperable con sus clústeres locales u otros proveedores de nube
- compruebe la infraestructura administrada de nivel Google
pero nos encanta darle opciones. Google Cloud Platform le ofrece un espectro completo para ejecutar sus contenedores., Desde un entorno completamente administrado con Google Cloud Run hasta la administración de clústeres con Kubernetes Engine y la infraestructura de roll-It-yourself en Google Compute Engine, de clase mundial, de precio a rendimiento, puede encontrar la solución ideal para ejecutar contenedores en Google Cloud Platform.
no Se detiene allí. Google Cloud Platform proporciona las herramientas que necesitas para usar contenedores desde el desarrollo hasta la producción., Cloud Build y Container Registry proporcionan almacenamiento y administración de imágenes de Docker, respaldados por los altos estándares de seguridad de Google y la red de clase mundial. El sistema operativo optimizado para contenedores de Google proporciona un sistema operativo ligero y altamente seguro que viene con Docker y Kubernetes runtimes preinstalados. Toda su gestión de contenedores puede llevarse a cabo en GCP.