- La compañía es líder en open source y en Kubernetes, lo cual es un reflejo de su compromiso con la comunidad de desarrolladores y la innovación.
- Microsoft Azure es una pieza clave para llevar Kubernetes a las empresas y pone a disposición de los desarrolladores herramientas y recursos que les permiten impulsar la colaboración y ser más productivos que nunca.
Durante el evento KubeCon EU, que se celebra en Barcelona del día 20 al 23 de mayo, Microsoft ha celebrado la acogida de la comunidad y ha destacado que Kubernetes ha conseguido que la Nube Nativa sea ubicua, cambiando la forma en que las compañías desarrollan y administran su propio software.
Para Microsoft, KubeCon es un entorno perfecto para conocer de forma directa la experiencia de los desarrolladores y saber más sobre las oportunidades y retos que proporciona su software. En este sentido, aprender de las áreas donde los desarrolladores han encontrado carencias, errores, bugs o caminos sin salida provocados de una u otra manera por decisiones de la compañía o errores propios, permite a Microsoft liderar un proceso de mejora continua.
Escuchar a usuarios y clientes permite a la compañía identificar los problemas reales que surgen en el día a día y centrar sus esfuerzos en la resolución de los mismos. Gracias a ese espíritu, Microsoft ha anunciado:
- La versión 3 de Helm
- La integración de Kubernetes con Visual Studio Code (VS Code)
- La versión 1.0 del proyecto Virtual Kubelet
- El Service Mesh Interface (SMI) y el nuevo proyecto de la comunidad para la colaboración en torno a la infraestructura Service Mesh
Helm 3
Posiblemente, el hito más importante para la comunidad de Kubernetes es la primera versión Alpha de Helm 3, que presenta una re-factorización casi completa del gestor de paquetes de Helm para convertirse en un moderno gestor de paquetes de aplicaciones. El proyecto Helm es prácticamente tan antiguo como el propio Kubernetes. Por lo tanto, su diseño original fue anterior a muchos de los avances propios de Kubernetes, entre ellos CustomResourceDefinitions e incluso el Control de Acceso Basado en Roles (Kubernetes RBAC). Debido a esto, la arquitectura de Helm 2 se vio obligada a implementar una serie de características por su cuenta, lo que la hizo menos integrada con Kubernetes, y significó que la gestión de cosas como el RBAC de Charts y Resources era complicada y estaba desconectada de la de la propia Kubernetes. Helm 3 permite un salto cualitativo en este sentido.
Al reemplazar las APIs personalizadas para charts y despliegues con CustomResourceDefinitions, funcionalidades como RBAC se aplican directamente a Helm, de forma que todo el sistema da un salto cualitativo en términos de integración y es nativo de Kubernetes. Gracias a ello, ahora se puede utilizar por línea de comando ‘kubectl’ para interactuar con charts de Helm, y el Control de Acceso Basado en Roles nativo de Kubernetes para limitar el acceso y los recursos que los usuarios pueden crear.
Helm se ha convertido en el estándar de facto para empaquetar y desplegar las aplicaciones de Kubernetes, centrándose en el usuario final y facilitando que estos tengan éxito. Los avances y mejoras que incluye Helm 3 siguen esta tendencia y lo hacen aún más útil, tanto para los que ya lo utilizan, como para otros usuarios que han probado otras soluciones.
Extensión de Kubernetes para el editor de código de Visual Studio
Hacer que Kubernetes sea accesible para todos es un gran reto. Microsoft ha construido un sistema que facilita la implementación de sistemas distribuidos y ha trabajado estrechamente con el equipo responsable de la extensión de código abierto Kubernetes para Visual Studio Code.
Esta extensión lleva la integración nativa de Kubernetes al código de Visual Studio, de forma que se puede ver fácilmente el contenido de un clúster, comprobar el estado de los Pods de un vistazo, hacer clic con el botón derecho del ratón para obtener un terminal en un Pod o configurar una redirección de puertos de red, y filtrar fácilmente los registros para identificar problemas, todo ello dentro del mismo entorno en el que está alojado el código.
Además, de acuerdo con los principios open de Microsoft, la extensión es de código abierto en GitHub y funciona con Kubernetes en cualquier lugar. No importa dónde se esté ejecutando Kubernetes, la integración con Visual Studio Code hace que sea más fácil trabajar con las aplicaciones y clúster con menos ventanas y cambios de contexto.
Hoy, Microsoft ha anunciado en Kubecon que su integración de VS Code ha alcanzado la versión 1.0 y está totalmente soportada para gestionar la producción de clústeres de Kubernetes. Además, también se ha incorporado una API de extensibilidad completa que hace posible que terceras partes, como Red Hat OpenShift, creen sus propias experiencias de integración sobre la base proporcionada por Microsoft. Al igual que los Custom Resources, añadir extensibilidad permite la colaboración en el núcleo, al mismo tiempo que permite que otros construyan experiencias enriquecidas dirigidas a entornos específicos. Es un ejemplo del valor de un enfoque abierto y extensible de las herramientas.
Virtual Kubelet 1.0
Otro de los anuncios del día es la versión 1.0 de Virtual Kubelet, que representa una integración única de Kubernetes y tecnologías de contenedores serverless, como Azure Container Instances. Permitir a los profesionales liberarse del trabajo de administrar un sistema operativo, mientras que todavía utilizan Kubernetes para la configuración, es una poderosa propuesta de valor tanto para las startups como para las grandes empresas.
A la pujante comunidad de usuarios y al destacado papel de Azure se suman a los anuncios realizados a principios de este mes en Build, la conferencia anual de desarrolladores de Microsoft, entre los que destaca el lanzamiento de los nodos virtuales AKS, impulsados por el Proyecto Virtual Kubelet. Todo ello pone de manifiesto el valor del Código abierto, incluso cuando se trabaja con funcionalidades estrechamente integradas para Azure.
Service Mesh Interface (SMI)
Por último, Microsoft ha destacado la creciente comunidad que se está desarrollando en torno a la especificación Service Mesh Interface. Durante un tiempo, la compañía ha tenido constancia de que los usuarios y clientes estaban satisfechos con la propuesta de Service Mesh, ya que les proporcionaba los avances necesarios para el desarrollo de aplicaciones nativas de la nube. Sin embargo, también ha comprobado que la integración monolítica de la interfaz y la implementación que existía anteriormente para Service Mesh ha limitado su adopción.
Los entornos Service Mesh o malla de servicios están evolucionando muy rápido y a los usuarios les preocupa que, al apostar por una implementación en particular, puedan quedar “atrapados”. Al ofrecer una interfaz de API genérica, que posteriormente puede implementarse por varios proveedores de Service Mesh, como Istio, Linkerd y Consul Connect, la interfaz libera a los usuarios para utilizar sus capacidades sin estar sujetos a ninguna implementación concreta.
Esto significa que son libres de experimentar e incluso cambiar implantaciones sin tener que cambiar sus aplicaciones. Una cuestión que favorece que Service Mesh esté a la par con otras partes de Kubernetes, como Ingress, Container Runtime (CRI) y Networking (CNI), que tienen interfaces genéricas con implementaciones modulares. Microsoft está orgullosa de haber trabajado con grandes partners en el desarrollo de SMI y espera construir una comunidad aún mayor a medida que avance y reitere en su especificación. SMI es un proyecto abierto iniciado con la colaboración de Microsoft, Linkerd, HashiCorp, Solo, Kinvolk y Weaveworks, que también ha contado con el apoyo de Aspen Mesh, Canonical, Docker, Pivotal, Rancher, Red Hat y VMware.
Puedes encontrar más información en los siguientes enlaces:
- Post de Brendan Burns: https://cloudblogs.microsoft.com/opensource/2019/05/21/kubecon-microsoft-updates-helm-3-virtual-kubelet-1-visual-studio-code-service-mesh-interface/
- Post de Gabe Monroy sobre Service mesh: https://cloudblogs.microsoft.com/opensource/2019/05/21/service-mesh-interface-smi-release/