¿Qué es Azure DevOps?

Azure DevOps es el conjunto de servicios DevSecOps alojados en la nube de Microsoft y que funcionan para cualquier lenguaje de programación, que es multiplataforma y que puede desplegar ejecutables en cualquier entorno.

Azure DevOps tiene todo lo necesario para convertir una idea en una aplicación. Se pueden planificar proyectos con herramientas ágiles. Se puede administrar sus planes de prueba desde la web, la versión de su código con Git y desplegar las soluciones con el increíble sistema multiplataforma CI/CD. Y, al mismo tiempo, se obtiene una completa trazabilidad y visibilidad en todas las actividades de desarrollo.

Introducción a Azure DevOps

Demos una vuelta a los DevOps de Azure y veamos todo lo que tiene para ofrecer.

Vamos a comenzar en https://dev.azure.com, donde se me presenta acceso a todas mis organizaciones y proyectos.

Página principal de Azure DevOps
Página principal de Azure DevOps

Al desplazarse sobre los mosaicos de los proyectos, se puede ver qué servicios utiliza cada uno de ellos. Se puede usar Azure DevOps tanto como lo necesite.

Desde esta página, se puede saltar rápidamente al trabajo que se va asignando y cualquier pull request que requiera la atención del usuario.

Mis Wok Items en Azure DevOps
Mis Wok Items en Azure DevOps

Al hacer click en “Projects”, lleva a la página de resumen. Aquí se puede ver rápidamente la descripción, las estadísticas y los miembros del equipo.

Descripción del proyecto en Azure DevOps
Descripción del proyecto en Azure DevOps

¿Qué son Azure Boards?

Con Azure Boards, se puede realizar un seguimiento eficaz del trabajo con paneles kanban, trabajos pendientes, paneles de equipo e informes personalizados.

Son perfectos para controlar el ciclo de vida de desarrollo del proyecto o producto, manteniendo información actualizada y accesible por todos los miembros del equipo.

Es la herramienta total para cualquier desarrollo ágil, contando con plantillas metodológicas que contemplan los eventos como daily, sprint review o retrospectiva y los artefactos en forma de backlogs de sprint y producto.

Como se puede observar en siguiente imagen, desde la navegación de la izquierda, puedo acceder a los paneles de control. «Dashboards» son tableros completamente personalizables; simplemente hay que hacer click, se edita y, además, se puede arrastrar y soltar en el widget deseado. Hay multitud de widgets adicionales disponibles de manera gratuita en el marketplace.

Dashboards en Azure DevOps
Dashboards en Azure DevOps

Los widgets son interactivos, por ejemplo, se puede usar el widget «New workitem» para crear un nuevo elemento de trabajo o hacer clic en el enlace «Dashboard» en el widget de trabajo para saltar a mi tablero combinado.

El «Kanban dashboard» es una característica de los tableros Azure DevOps que permite planificar el proyecto utilizando backlogs y tableros. Se puede planear y seguir todos los estados de manera completa. Desde el tablero de Kanban, se pueden revisar los tests y las tareas de cada elemento. Usando los «Backlogs», se pueden planear sprints simplemente arrastrando y soltando un elemento para el sprint deseado.

Tablero Kanban en Azure DevOps
Tablero Kanban en Azure DevOps

Una vez en un sprint, se puede usar el «Tablero de tareas» para rastrear el progreso de las tareas. Cuando los desarrolladores inician una tarea, pueden crear ramas para su trabajo directamente desde el tablero.

Tablero de tareas en Azure DevOps
Tablero de tareas en Azure DevOps

¿Qué son los Azure Repos?

Esto nos lleva a los Azure Repos, que admiten el control de versiones de código centralizado con TFVC (Team Foundation Version Control) y el control de versiones distribuido con Git. Además, están hospedados en la nube, por lo que se asegura su disponibilidad en todo momento.

Tienen multitud de funcionalidades, como poder hacer commits, trazabilidad de cambios en el código, pull requests, administración avanzada de archivos, gestión de branches y búsqueda semántica de código fuente.

El número de Azure Repos de los que disponemos es ilimitado y gratis.

Como se puede ver en la imagen, desde los archivos, puede navegar por el contenido de sus repositorios e incluso realizar ediciones rápidas.

Azure Repos en Azure DevOps
Azure Repos en Azure DevOps

El menú de Commits permite ver cómo se combinan todas las ramas.

Commits en Azure DevOps
Commits en Azure DevOps

El menú de Pushes da una vista del histórico de los cambios que se enviaron al repositorio remoto:

Pushes de código en Azure DevOps
Pushes de código en Azure DevOps

El menú de Branches permite revisar todas las ramas y ver en qué posición están respecto a la rama master.

Ramas de código en Azure DevOps
Ramas de código en Azure DevOps

 La página de Tags permite revisar crear etiquetas:

Tags en Azure DevOps
Tags en Azure DevOps

Usando el menú de pull requests, se puede revisar y participar en ellas.

Pull Requests en Azure DevOps
Pull Requests en Azure DevOps

 Los «repositorios de Azure» permiten escribir comentarios enriquecidos durante las pull requests e, incluso, aplicar políticas que requieren que se ejecute una build, etc.

¿Qué son Azure Pipelines?

La siguiente parte que vamos a explicar es Azure pipelines, que es un completo sistema multiplataforma CI/CD (Continuous Integration / Continuous deployment) capaz de compilar cualquier lenguaje de programación, ejecutar los tests asociados y desplegar el resultado en cualquier plataforma.

Se disponen gratis de 10 trabajos paralelos con minutos ilimitados.

Azure Pipelines es altamente compatible con Kubernetes y contenedores. De manera muy directa, se pueden cocinar e insertar imágenes en registros de contenedores, como Docker Hub y Azure Container Registry.

Aquí, en el resumen de una compilación, se pueden revisar los commits, los resultados de los tests y mucho más.

Detalle de una build en Azure DevOps
Detalle de una build en Azure DevOps

La sección de implementación permite ver en qué parte de la release está actualmente la build.

En la edición de una build, se puede observar todo el potencial que esta característica de Azure DevOps nos ofrece:

Editar una build en Azure DevOps
Editar una build en Azure DevOps

Azure Pipelines puede obtener el código fuente desde los sistemas de control de versión más populares.

Igualmente, ofrece agentes de compilación de Mac OS, Linux y Windows listos para ser utilizados.

Seleccionar un agente de build en Azure DevOps
Seleccionar un agente de build en Azure DevOps

Agregar tareas a una build es tan fácil como arrastrar y soltar de la colección de cientos de tareas de código abierto disponibles.

Añadir una tarea a una Build de Azure DevOps
Añadir una tarea a una Build de Azure DevOps

¿No ves la tarea que necesitas? Simplemente busca en el marketplace lo que necesita o creala tú mismo.

Tareas disponibles en el Azure Marketplace
Tareas disponibles en el Azure Marketplace

 Una vez que se completa la edición de la build, las pipelines de Azure pueden ser desplegadas en cualquier plataforma con Azure Releases.

Releases en Azure DevOps
Releases en Azure DevOps

Las releases, al igual que las builds, proporcionan agentes alojados en Mac OS, Linux y Windows. Con la integración con App Center, también se puede desplegar a dispositivos móviles.

Veamos qué se puede editar en una versión.

Origen del drop en Azure DevOps
Origen del drop en Azure DevOps

Se pueden obtener los artefactos para ser desplegados desde casi cualquier lugar, incluidos otros sistemas de CI como Jenkins.

Origen del drop en Azure DevOps
Origen del drop en Azure DevOps

Las releases permiten definir entornos e, incluso, asignar usuarios aprobadores entre ellos.

Environments de Release en Azure DevOps
Environments de Release en Azure DevOps

 Desde las releases, tiene acceso a la misma biblioteca de tareas y agentes.

Añadir tareas a una Release en Azure DevOps
Añadir tareas a una Release en Azure DevOps

¿Qué son los Azure Test Plans?

Los «planes de prueba de Azure» permiten administrar todo tu esfuerzo de prueba en todas las plataformas y configuraciones.

Son la base para incrementar la calidad de código a través de pruebas manuales y exploratorias, evitando errores no deseados y regresiones.

Azure Test Plans en Azure DevOps
Azure Test Plans en Azure DevOps

¿Qué son Azure Artifacts?

Y, por último, están los Azure Artifacts, que permiten aplicar las mismas prácticas recomendadas de DevOps a los paquetes que se desarrollan y mantienen para ser reutilizados en tiempo de desarrollo, ahorrando así tiempo y esfuerzo a los desarrolladores.

Se puede empaquetar funcionalidad, ya sea en paquetes Nuget o paquetes npm, y crear feeds y referenciarlos en proyectos de desarrollo.

Azure Artifacts en Azure DevOps
Azure Artifacts en Azure DevOps

Eso fue solo un vistazo rápido de lo que está disponible en Azure DevOps. Comienza hoy de forma gratuita y experimenta cómo Azure DevOps puede acelerar tu transformación DevSecOps https://dev.azure.com

¿Qué es AKS?

El Azure Kubernetes Service (AKS) es un servicio administrado de orquestación de contenedores, basado en el sistema de código abierto Kubernetes, que está disponible en la nube pública de Microsoft Azure. Una organización puede usar AKS para implementar, escalar y administrar los contenedores de Docker y las aplicaciones basadas en contenedores en un grupo de hosts de contenedores.

AKS comenzó a estar disponible en General Availability en junio de 2018.

Así mismo, se podrá hacer una estimación del coste de nuestro AKS con la calculadora de Azure. De esta manera, se conocerá en todo momento cuánto va a suponer la creación y uso de un clúster de estas características.

El servicio, totalmente administrado, Azure Kubernetes Service (AKS) facilita la implementación y la administración de las aplicaciones en contenedores. Ofrece Kubernetes en modalidad serverless, una experiencia de CI/CD integrada y seguridad y gobernanza de nivel empresarial. Es el nexo perfecto entre los equipos de desarrollo y de operaciones en una sola plataforma para crear, desplegar y escalar aplicaciones con confianza.

Qué es AKS
Qué es AKS

AKS características y beneficios

Los principales beneficios de AKS son la flexibilidad, la automatización y la reducción de los gastos de gestión para administradores y desarrolladores. Por ejemplo, AKS configura automáticamente todos los maestros y nodos de Kubernetes durante el proceso de implementación y maneja una gran variedad de otras tareas, incluida la integración de Azure Active Directory, las conexiones a los servicios de monitoreo y la configuración de funciones de red avanzadas, como el enrutamiento de aplicaciones HTTP.

Dado que AKS es un servicio administrado, Microsoft maneja todas las actualizaciones de Kubernetes para el servicio, por lo que, a medida que las nuevas versiones van estando disponibles, se pueden ir utilizando. Los usuarios pueden decidir cómo y cuándo actualizar la versión de Kubernetes en su propio clúster AKS para reducir la posibilidad de una interrupción accidental de servicio.

Además, los nodos AKS pueden escalar hacia arriba o hacia abajo para adaptarse a las fluctuaciones en las demandas de recursos. Para necesidades especiales de procesamiento, AKS también admite grupos de nodos habilitados por unidades de procesamiento de gráficos (GPU). Esto puede ser vital para cargas de trabajo intensivas en cómputo, como las aplicaciones científicas, machine learning e inteligentica artificial.

Los usuarios pueden acceder a AKS a través de un portal de administración de AKS, una interfaz de línea de comandos (CLI) de AKS o el uso de plantillas ARM a través de herramientas como Azure Resource Manager. El servicio también se integra con el Registro de Contenedores de Azure (ACR) para el almacenamiento de imágenes de Docker, y admite el uso de datos persistentes con los Discos de Azure.

AKS casos de uso

El uso de AKS, en general, se limita a la implementación y administración de aplicaciones basadas en contenedores, pero existen numerosos casos de uso para un servicio de estas características.

Por ejemplo, una organización podría usar AKS para automatizar y agilizar la migración de aplicaciones a contenedores: primero, podría mover la aplicación a un contenedor, registrarlo en ACR para, posteriormente, usar AKS para iniciar el contenedor en un entorno preconfigurado. De manera similar, AKS puede implementar, escalar y administrar diversos grupos de contenedores, lo que ayuda con el despliegue y la operación de aplicaciones basadas en microservicios.

El uso de AKS puede complementar paradigmas de desarrollo de software ágiles, como la integración continua (CI), la entrega continua / implementación continua (CD) y DevSecOps. Por ejemplo, un desarrollador podría colocar una nueva compilación de contenedores en un repositorio, como GitHub, mover esas compilaciones a ACR y, luego, desplegarlo en AKS y ejecutar en sus contenedores el código del microservicio.

Otros usos para AKS incluyen el Internet de las cosas (IoT). El servicio, por ejemplo, podría ayudar a asegurar recursos de cómputo adecuados para procesar datos de miles o, incluso, millones de dispositivos IoT discretos. De manera similar, AKS puede ayudar a garantizar un cálculo adecuado para las tareas de big data, como la capacitación de modelos en entornos de aprendizaje automático, básicos en aplicaciones de inteligencia artificial.

En general, son los desarrolladores de software y el personal de operaciones de TI utilizan con más frecuencia AKS, gracias a todas las ventajas que hemos resumido en este artículo.

Seguridad, seguimiento y cumplimiento.

AKS es compatible con el control de acceso basado en roles (RBAC) a través de Azure Active Directory (AD), lo que permite a un administrador adaptar el acceso a Kubernetes con la identidad de usuarios y grupos del Azure Active Directory.

AKS e integracion con Active Directory
AKS e integracion con Active Directory

Los administradores pueden monitorear el estado de los contenedores utilizando las métricas de procesador y la memoria recopiladas de los contadores de rendimiento, los nodos Kubernetes y otros puntos de la infraestructura. Los registros de contenedores también se recopilan y almacenan para un análisis y resolución de problemas más detallados. Los datos de monitoreo están disponibles a través del portal de administración de AKS, la CLI de AKS y las interfaces de programación de aplicaciones (API).

Monitorizacion de AKS
Monitorizacion de AKS

AKS cumple con los requisitos reglamentarios de los System and Organization Controls (SOC) y de los principales organismos reguladores, incluidos ISO, HIPAA y HITRUST. Finalmente, AKS está certificado por la Cloud Native Computing Foundation (CNCF), que supervisa el código abierto de Kubernetes.

AKS vs ACS

Antes del lanzamiento de AKS, Microsoft ofreció Azure Container Service (ACS), que era compatible con numerosas plataformas de orquestación de contenedores de código abierto, incluidos Docker Swarm y DC/OS de Mesosphere, así como Kuberenetes. Con AKS, el enfoque está exclusivamente en el uso de Kubernetes. Los usuarios de ACS con un enfoque en Kubernetes pueden migrar potencialmente de ACS a AKS.

Sin embargo, AKS plantea numerosas diferencias que un usuario debe abordar antes de una migración de ACS. Por ejemplo, AKS utiliza discos administrados, por lo que un usuario debe convertir los discos no administrados en discos administrados antes de asignarlos a los nodos AKS. De manera similar, un usuario debe convertir cualquier volumen de almacenamiento persistente u objetos de clase de almacenamiento personalizados asociados con los discos de Azure a discos administrados.

Además, las aplicaciones con estado pueden verse afectadas por el tiempo de inactividad y la pérdida de datos durante una migración de ACS a AKS, por lo que los desarrolladores y los propietarios de las aplicaciones deben realizar la debida diligencia detallada antes de realizar el cambio.

Disponibilidad y costes de AKS

AKS es un servicio gratuito de Azure, por lo que no se incurre en gastos por la administración del clúster Kubernetes. Sin embargo, a los usuarios de AKS se les facturan los recursos de cómputo, almacenamiento, redes y otros recursos de la nube que consumen los contenedores que conforman la aplicación que se ejecuta dentro del clúster Kubernetes.

AKS
AKS