Omitir navegación

Mayor colaboración con HashiCorp

Publicado el 22 octubre, 2018

Corporate Vice President, Azure Compute

Estoy muy agradecido por tener la oportunidad de dar una charla en HashiConf ’18. Siempre es fantástico trabajar con Mitchell, Armon y los magníficos ingenieros de HashiCorp, porque creo que compartimos un mismo punto de vista en cuanto a la creación de herramientas pragmáticas y de código abierto en la nube para empresas. Con esta sólida visión y colaboración en mente, estoy encantado de explicar parte del trabajo que hemos realizado desde los anuncios que hicimos en HashiConf el año pasado, con el fin de reunir lo mejor de las experiencias centradas en el usuario de HashiCorp con los puntos fuertes de la nube de Azure.

Nuestros equipos de ingeniería han trabajado juntos para ampliar los recursos y servicios que ofrece el proveedor de Terraform para AzureRM y han agregado varias integraciones nuevas con HashiCorp Vault. Para esta entrada de blog, pensé que sería bueno para los lectores ver los enormes avances que hemos hecho en colaboración con HashiCorp. Para ello, vamos a repasar algunos de los principales hitos que hemos alcanzado este año.

Actualización de Terraform en Azure Cloud Shell

Sinceramente, Cloud Shell es una de mis características favoritas en Azure. Un área de trabajo basada en la nube a la que se puede acceder desde cualquier parte y con cualquier dispositivo me permite crear, supervisar y actualizar fácilmente mis recursos de la nube con independencia del lugar donde me encuentre. Ya llevamos cierto tiempo con Terraform muy integrado en Azure Cloud Shell y, recientemente, lanzamos un editor gráfico basado en Monaco, el motor de código abierto en el que se basa Visual Studio Code. Hoy estoy encantado de anunciar que hemos agregado el resaltado de sintaxis de Terraform a este editor.

Actualización de Terraform en Azure Cloud Shell

Esto permite editar y crear sin problemas archivos de plan de Terraform directamente en Azure Cloud Shell. Ahora, cuando edita código HCL de Terraform en el editor de Cloud Shell, ve los colores a los que se ha acostumbrado en VS Code, de modo que puede reconocer los errores de sintaxis, ortográficos, etc. con rapidez.

Proveedor de Terraform para Azure

Los ingenieros de Microsoft y HashiCorp han trabajado muy duro con la ayuda de la comunidad para crear compatibilidad con nuevos servicios de Azure, nuevas características en los servicios actuales y nuevos escenarios. Desde la última actualización, hemos seguido investigando en IaaS, pero centrados principalmente en habilitar nuevos escenarios de Azure PaaS. Hemos tenido en cuenta los comentarios de los clientes para dar prioridad a las características más importantes.

Con la idea de que no tenga que esperar demasiado para obtener las correcciones, las características y los recursos que se distribuyen, vamos a publicar nuevas actualizaciones, aproximadamente, cada dos semanas. Hace muy poco se distribuyó la versión 1.17 del proveedor de Terraform para AzureRM. A continuación se indican los recursos más destacados que se han publicado desde la versión 1.3.

Recursos de IaaS

Recursos de PaaS

Proveedor de Terraform para Azure Stack

Azure Stack es una extensión de Azure que permite a nuestros clientes crear aplicaciones híbridas que abarquen el entorno local y la nube pública. Los usuarios de Azure Stack obtienen la coherencia de una sola área expuesta de API que funciona de manera global, desde los centros de datos que no tienen una conexión física hasta las implementaciones híbridas.

HashiCorp y Microsoft se han asociado con el fin de ampliar la funcionalidad de Terraform para administrar Azure Stack, lo que permitirá a nuestros clientes crear o administrar sus recursos en Azure Stack del mismo modo que lo hacen en Azure.

El proveedor de Terraform para Azure Stack se publicó por primera vez en mayo de 2018 y, desde entonces, se ha actualizado para incluir más funcionalidad.

Desde el evento Microsoft Ignite que tuvo lugar en septiembre, están disponibles las siguientes capacidades:

  • Creación y administración de artefactos de Compute, Storage y Networks.
  • Implementación de infraestructura compleja necesaria para instalar orquestadores, como Cloud Foundry, Kubernetes, OpenShift y Service Fabric.

Puede comenzar a desarrollar scripts de Terraform para Azure Stack hoy mismo siguiendo estas instrucciones.

Módulos de Terraform

Una de las cosas más increíbles del código abierto es el hecho de que la comunidad se una y colabore para compartir su trabajo y ayudar a otros. En este esfuerzo, la comunidad de Terraform y Azure han dado un gran paso adelante. Han aprovechado todos los recursos nuevos de Azure que se han agregado a Terraform y han contribuido con nuevos módulos de Azure en Terraform Registry. Con estos, el número total de recursos es de 73 módulos respecto a los 45, aproximadamente, de hace tres meses.

Clientes de Terraform en Azure

Nos hemos comprometido a invertir en recursos de Terraform para que los clientes de Azure que ya han invertido en esta herramienta, o que simplemente prefieren trabajar con ella, puedan usar Terraform para el aprovisionamiento de infraestructura. Los resultados de nuestros esfuerzos han sido increíbles. El número de clientes que han adoptado Terraform en Azure casi se ha triplicado desde principios de año. Lo están utilizando tanto clientes de gran envergadura como clientes más pequeños y en una gran variedad de sectores.

Axon es uno de estos clientes, que quería administrar mejor grandes volúmenes de datos, estándares muy estrictos de integridad de los datos y una base de clientes global. Con este fin, utilizó HashiCorp Terraform en Microsoft Azure para migrar Axon Evidence (Evidence.com) de Amazon Web Services a Azure.

Proveedor de recursos de Azure para Terraform

Tenemos una versión preliminar privada de un nuevo proveedor de recursos de Azure para HashiCorp Terraform que permitirá a los clientes de Azure que utilizan Azure Resource Manager (ARM) aprovisionar y configurar recursos dependientes con proveedores de Terraform como si fuesen proveedores de recursos nativos de Azure.

Hemos realizado una gran inversión en Terraform y hemos colaborado estrechamente con HashiCorp para ofrecer una funcionalidad muy completa en Azure que permita a los clientes que utilizan Terraform administrar sus recursos. Aunque muchos usuarios vienen a nosotros como usuarios de Terraform dedicados, hay otros que han elaborado configuraciones muy amplias basadas en plantillas de ARM, el lenguaje de configuración nativo de Azure. Antes de asociarnos con HashiCorp, los usuarios de plantillas de ARM se enfrentaban a un dilema cuando querían integrar herramientas o servicios externos en sus plantillas. Podían usar varias soluciones alternativas o reescribir toda la pila de configuración en Terraform. Con la integración de proveedores de Terraform en las plantillas de Azure Resource Manager, este problema se ha resuelto. Ahora los usuarios de plantillas de ARM tienen acceso a un amplio ecosistema de proveedores implementados para Terraform y, de igual modo, las startups y los proveedores de servicios que habían integrado sus sistemas con Terraform también pueden integrarlos ahora de forma automática con las plantillas nativas de Azure.

Si desea registrarse para participar en la versión preliminar privada, vea la entrada de “presentación del proveedor de recursos de Azure para Terraform”en el blog de Azure.

Integraciones de Vault en Azure

Ha habido bastante actividad para agregar y mejorar las integraciones de HashiCorp Vault con Azure. Se ha lanzado un nuevo método de autenticación para Azure Active Directory, un motor de secretos para la generación automática de entidades de servicio y asignaciones de roles de Azure, así como la capacidad de quitar el sello de HashiCorp Vault con claves almacenadas en Azure Vault KMS. Puede leer información general de estas características en una entrada de blog donde se anuncia su disponibilidad, en un breve vídeo introductorio que grabamos junto con HashiCorp o en la documentación detallada sobre el “método de autenticación de Azure” y el “método de secretos de Azure”.

Servicio Azure VM Image Builder 

Normalmente, los usuarios quieren que las máquinas virtuales incluyan opciones de configuración y seguridad predefinidas, junto con el software de su propiedad. Sin embargo, configurar su propia canalización de compilación de imágenes requeriría infraestructura y configuración. Con Azure VM Image Builder, puede usar una imagen ISO o de Azure Marketplace y comenzar a crear sus propias imágenes maestras con solo algunos pasos.

Azure VM Image Builder permite:

  • Establecer un origen. Puede usar una máquina virtual Linux de Azure Marketplace o una máquina ISO con Red Hat Enterprise Linux (RHEL) y comenzar a agregar sus propias personalizaciones.
  • Agregar personalizaciones. Puede agregarlas en forma de scripts de shell y, puesto que VM Image Builder se basa en HashiCorp Packer, también puede importar los scripts de aprovisionador de shell de Packer que ya tenga.
  • Distribuir. Usted especifica dónde desea que se hospeden sus imágenes, ya sea en la Galería de imágenes compartidas de Azure o como una imagen administrada de Azure.

Si desea registrarse para participar en la versión preliminar privada, vea la entrada donde se anuncia la versión preliminar privada de Azure VM Image Builder en el blog de Azure.

Integraciones de Consul en Azure

La evolución constante hacia sistemas de software muy distribuidos y arquitecturas basadas en microservicios conlleva varios desafíos interesantes. Uno de los principales es “¿cómo se puede mantener un seguimiento de todos los servicios implementados?”. Aquí es donde HashiCorp Consul implementado en una moderna plataforma en la nube como Microsoft Azure puede ser de ayuda. Además de proporcionar un mecanismo de detección de servicios, Consul permite realizar cambios de configuración en servicios implementados en Azure, así como agregar una malla de servicios.

Algunas actualizaciones importantes:

  1. Hemos colaborado con HashiCorp para proporcionar una serie de elementos de inicio rápido (plantillas de Terraform) para implementar Consul en Azure, en escenarios tanto de una sola región como de varias.
  2. Ya disponemos de una serie de instrucciones para implementar agentes de malla de servicios de Consul en entornos de Azure IaaS y Azure AKS.
  3. HashiCorp ha lanzado una plantilla de Helm para Consul. Helm es el administrador de paquetes de código abierto para Kubernetes desarrollado por Microsoft, que también ofrece soporte técnico. El paquete de Helm para Consul, desarrollado por Hashicorp, permite que los usuarios de Kubernetes implementen fácilmente Consul en cualquier entorno de Kubernetes; por ejemplo, los creados con Azure Kubernetes Service.

Estas mejoras reflejan la estrecha colaboración entre HashiCorp y Microsoft, algo que reforzaremos aún más en el congreso HashiConf de este año. El progreso a lo largo de este último período de más de doce meses ha sentado una base muy sólida para la colaboración y los avances futuros en el campo de la nube y DevOps. Nuestros ingenieros están trabajando para incorporar nuevas integraciones de productos de HashiCorp con servicios de Azure el próximo año que ya se acerca.

Si se encuentra en San Francisco el 23 de octubre de 2018, daré una charla sobre estas extraordinarias actualizaciones de ingeniería entre nuestras compañías la semana que viene en HashiConf. ¡Hasta entonces!