Mayo de 2018

Volumen 33, número 5

DevOps - cualquier lenguaje, cualquier plataforma con proyectos de Azure DevOps

Por Willy-Peter Schaub, Alex Mullans | Mayo de 2018

Durante los últimos dos años, Microsoft ha implantado un ambiciosa integración continua (CI) y la iniciativa de canalización de la entrega continua (CD) para su plataforma de DevOps. La ALM | Equipo de DevOps Rangers ha colaborado activamente en el esfuerzo, que tratan sobre la creación de y basándonos en cada versión, tanto en numerosas entradas de blog y en MSDN Magazine artículos como "Aplicar DevOps a un proyecto de desarrollo" (msdn.com/magazine/mt767695) y "Los desplazamientos para la entrega continua con Visual Studio Team Services" (msdn.com/magazine/mt814804). Años de inversión son pagar dividendos, como Microsoft hoy dispone de un ecosistema de DevOps rápido y heterogéneo generado en torno a una plataforma de Visual Studio Team Services (VSTS) que ha evolucionado a saltos agigantados.

Detrás de este esfuerzo son los equipos de desarrollo que admiten integrados de petición para marcos de aplicaciones populares y la integración de canalización CI/CD automática y transparente, compatibilidad integrada con la supervisión, en el idioma y la plataforma de su elección. Además, los desarrolladores desean crear cualquier aplicación, para cualquier servicio de Azure, en minutos. Velocidad y la simplicidad son de vital importancia.

Proyectos de Microsoft Azure DevOps (bit.ly/2E5zkWG) cubre todas estas necesidades. Permite a los desarrolladores iniciar una aplicación en cualquier servicio de aplicaciones de Azure en unos pocos pasos rápidos, lo que proporciona que todo lo necesario para desarrollar, implementar y supervisar una aplicación. Crear un proyecto de DevOps y aprovisiona todos los recursos de Azure y proporciona un repositorio de código de Git, la integración de Application Insights y el programa de instalación de una canalización de la entrega continua para la implementación en Azure. El permite del panel de proyecto de DevOps supervisar código confirmaciones, compilaciones y las implementaciones de una sola vista en el portal de Azure.

Este artículo explora cómo DevOps proyectos habilitar con tecnología de nube CI/CD mediante VSTS para:

  • Ponerse a trabajar con una nueva aplicación y una canalización de DevOps completa en unos pocos minutos
  • Admitir una amplia variedad de marcos conocidos como. NET, Java, PHP, Node.js y Python
  • Integrar con integrados Application Insights para análisis de instantánea y la información procesable
  • Empezar desde cero o poner una aplicación existente a través de GitHub

Como alternativa, podemos buscar en el proyecto de DevOps como una característica para ayudar a los usuarios "Introducción" en Azure. Imagine un desarrollador que necesita para desarrollar e implementar una solución de Node.js en Azure. El usuario debe encontrar qué servicio de Azure funciona mejor para el idioma, el escenario y la plataforma, el prototipo del entorno y, por último, cree un proceso para el equipo de ingeniería. Cada paso tiene una curva de aprendizaje y varios puntos de error. El proyecto DevOps simplifica todo esto y facilita la prueba de error. No es casi DevOps, sino también sobre lo que más fácil empezar a trabajar en Azure.

Hablando de DevOps

Me gustaría hacer una pausa durante un momento reiterar que nuestra definición de DevOps aquí en Microsoft. Como Donovan Brown, el Administrador de DevOps principal en el grupo de Azure lo describe: "DevOps es la unión de personas, procesos y productos para permitir la entrega continua de valor a los usuarios finales".

También puede leer detenidamente el DevOps en el sitio de Microsoft (aka.ms/devops) para obtener información sobre las lecciones aprendidas por la división de desarrollo de Microsoft durante nuestro viaje siete años hasta DevOps Agile. Que el trabajo ha generado una cultura que se centra en el cliente, coloca primero producción y entrega continuamente valor a un ritmo de tres semanas en la nube.

En este artículo nos centraremos en la parte más fácil de nuestra definición de DevOps, los productos. Como se mencionó, los desarrolladores desean un proceso sencillo, rápido y coherente. Exigen soporte técnico para su elección de plataforma y el lenguaje de programación, así como para la automatización y canalizaciones de cuadro CI/CD.

Como se muestra en figura 1, una canalización de CI/CD es una secuencia de distintas prácticas usadas para integrar continuamente, probar e implementar los cambios en producción. Información de telemetría, comentarios del usuario y el flujo de incidentes de sitio activo atrás para informar a la toma de decisiones, mejorar las futuras versiones y el más importante, evaluar la hipótesis que dan lugar a la implementación. Está sobre continuamente proporcionando un valor.

Prácticas recomendadas de DevOps
Figura 1 DevOps prácticas

Proyectos de Azure DevOps

Con los proyectos de DevOps de Azure, puede compilar una aplicación de Azure, en un servicio de Azure, en minutos. También obtendrá automática CI/CD canalización una integración completa, la supervisión integrada y la implementación a la plataforma de su elección. Como se muestra en la tabla de figura 2, hay varios tipos de aplicación, el marco de trabajo y la implementación que elegir al crear un nuevo proyecto de DevOps. Es importante tener en cuenta que esta tabla refleja la información en el momento de escribir y que habrá mayor compatibilidad integrada cuando lea esto.

Aplicación de la figura 2, marco de trabajo y opciones de implementación

Aplicación Framework Implementación de Windows Implementación de Linux
    Aplicación Web Máquinas virtuales Aplicación Web Aplicación Web para los contenedores
.NET ASP.NET X X    
ASP.NET Core X X X X
Java Sprint X     X
JSF X     X
Node.js Express.js X     X
Sails.js       X
Node.js simple X     X
PHP Laravel X     X
PHP simple X     X
Python Django X   X  
Bottle X   X  
Matraz X   X X

Veamos cómo crear un nuevo proyecto de DevOps en el portal de Azure mediante la creación de un par de aplicaciones. Recomienda empezar a trabajar con proyectos de DevOps de Azure y poder continuar utilizando sus propias cuentas de Azure y VSTS. Este enfoque le permitirán explorar las soluciones resultantes en detalle.

Como se muestra en Figure3, el primer ejemplo de aplicación se basa en Java y el marco de trabajo de primavera y se ha implementado como una aplicación Web en Windows. Es uno de los diversos ejemplos posibles que muestra una combinación de tecnologías que se ejecutan en Windows, un escenario común para los desarrolladores.

Aplicación Web de Java, JSF, en la aplicación de Windows
Figura 3 Java, JSF, Web App en aplicaciones de Windows

En el portal de Azure cree un nuevo proyecto de DevOps. A continuación, puede elegir entre un conjunto de aplicaciones de ejemplo desarrollada con. NET, Node.js, PHP, Python o Java, o puede hacer que nuestro propio código.

Para implementar la aplicación, (1), seleccione la aplicación de ejemplo de Java, (2) elija Spring como el marco de aplicación y (3), seleccione aplicación Web en Windows como servicio de Azure para implementar la aplicación. A continuación, (4) escriba un nuevo nombre de proyecto y confirmar o cambiar los detalles de Azure y VSTS. Se creará una nueva cuenta VSTS y cambiar la ubicación del servicio de aplicación al centro de Canadá. De forma similar, puede cambiar la configuración de Azure como la suscripción, precios plan, nombre de la aplicación Web y la ubicación de la aplicación Web. Asegúrese de validaciones integradas que se especifican los valores correctos y que se evitan los errores de nivel inferiores.

Una vez completado, repita el ejercicio, pero esta vez seleccione. NET, el núcleo de .NET Framework y la aplicación Web para los contenedores en Linux para implementar la aplicación. Este es otro ejemplo simple que muestra el modo en que puede ejecutar en un contenedor de una combinación de tecnologías en Linux. Tras completar estos cuatro sencillos pasos, ha creado dos proyectos de DevOps, como se muestra en figura 4.

Proyectos de DevOps
Figura 4 DevOps proyectos

Estos proyectos permiten fácilmente y crean rápidamente las canalizaciones de CI/CD completadas para varios idiomas populares, marcos y plataformas. Se trata de un recurso útil para los proyectos experimental y demostraciones rápidas y se inicia una excelente manera de obtener el equipo de desarrollo con un proceso, ampliable, coherente y completo.

Magia de segundo plano

Obviamente, ninguno de esto ha ocurrido por arte de magia. Al hacer clic en el botón Listo después de seleccionar el marco de tiempo de ejecución, el servicio y la configuración, iniciado una secuencia de fases distintas, se muestra en figura 5. Puede ir al panel de proyecto de DevOps se muestra al seleccionar el proyecto nuevo en la lista de proyectos de DevOps o usando las notificaciones en el portal de Azure.

Vista de canalización en Azure
Figura 5 la vista de canalización en Azure

Son las cuatro fases:

  1. Recursos de Azure: Creado y configurado sus recursos de servicio de aplicaciones de Azure, el plan de servicio de aplicaciones y el extremo de la aplicación.
  2. Repositorio: Crea un repositorio de Git distribuido y comprueba en el código de ejemplo.
  3. Canalización de CI/CD: Sin problemas relacionados con la solución de colaboración de VSTS de ingeniería de los equipos, lo que le permite planear, probar, versión y supervisar sus soluciones.
  4. Visión de la aplicación:  Crea y configura la telemetría de Application Insights. Esta herramienta permite active supervisión y aprender a proactivamente detectar problemas y analizar y continuamente hipótesis sin código de prueba.

Tenga en cuenta que las fases del proyecto de DevOps no solo crean y configura un elemento de configuración/CD Pipeline(see section 3 in Figure 5), también realiza una extracción del código, una compilación de integración continua e implementa la versión en el entorno de desarrollo.

En el panel de proyecto de DevOps, supervisar sus canalizaciones de CI/CD, telemetría de Application Insights y navegue a los recursos de Azure o VSTS relevantes.

Al navegar a la nueva cuenta VSTS, encontrará dos nuevos proyectos: JaSpWeADemo y dNCoWe4DDemo (figura 6). Éstos se vinculan a los dos proyectos de DevOps de Azure.

Cuenta de Visual Studio Team Services y proyectos de equipo
Figura 6 Visual Studio Team Services cuenta y proyectos de equipo

En la compilación, elementos de configuración se ejecuta una compilación de Maven cada vez que alguien protege el código. Para reducir el número de compilaciones en ejecución, se procesan por lotes de cambios cuando se ejecuta una compilación. Puede ajustar los eventos que desencadenan una compilación, por ejemplo, especificar ramas o usar filtros de ruta de acceso para reducir el conjunto de archivos que pueden desencadenar la acción.

Cuando se explora el proyecto JaSpWeADemo canalización, como se muestra en figura 7, se presentan los artefactos (1) y (2) entornos. El Dropartifact es un elemento que se pueden implementar de la aplicación generado por el desencadenador de implementación continua de Build.The indica a Release Management para crear una nueva versión cuando detecta que un nuevo artefacto está disponible. Una vez más, puede ajustar los eventos que desencadenan la versión, por ejemplo procesamiento solo artefactos desde la bifurcación principal.

PipelineView en Visual Studio Team Services
Vista de la canalización de 7 en Visual Studio Team Services

De forma predeterminada, la canalización de CI/CD creada por el proyecto de DevOps automáticamente se implementa en el Devenvironment cuando una versión se crea un desencadenador de implementación continua. El entorno de desarrollo no requiere aprobación manual, deshabilitado Gatesare y tiene solo una tarea que implementa el servicio de aplicaciones de Azure de ejemplo.

La canalización generada por el proyecto de DevOps es un buen punto de partida para demostraciones y experimentación. Para la producción, la canalización puede requerir algunos amor adicional, que se abordará más adelante en la sección siguiente.

Por último, abra el proyecto de ejemplo dNCoWe4DDemo segundo y eche un vistazo a la canalización de CI/CD. En general, la canalización es muy similar. Sin embargo, profundizar en la compilación y observará que el elemento de configuración de la compilación desencadenadores una compilación de la imagen del contenedor, lo inserta en el registro de contenedor de Azure. La versión de CD implementa el servicio de aplicaciones de Azure en Linux, sin ninguna experiencia de Linux o un contenedor necesaria.

Como se muestra en este tutorial rápido, proyectos de DevOps obtener una rápida introducción con una canalización de CI/CD completa y funcional. La curva de aprendizaje para Azure, VSTS y DevOps es notablemente inferior al usar proyectos de DevOps, en comparación con la creación de la solución y la canalización de CI/CD a mano. Ahora está habilitada para trabajar con las partes interesadas, por ejemplo, seguridad, operaciones y administración para llevar a cabo la canalización de CI/CD para el siguiente nivel de la versión.

Pulir la canalización generada

La canalización de CI/CD es un elemento esencial de DevOps que ayuda a los equipos de forma coherente y entregar continuamente valor, a un ritmo más rápido y con un menor riesgo. Puede mejorar la canalización generada para alinearse con los procesos y las directivas organizativas. Totalmente puede automatizar las pruebas, validación y la entrega del software en varios entornos de producción, o configurar una canalización parcial automatizada con aprobaciones y puertas. Incluso puede elevar el nivel de calidad, seguridad y progresivo exposición de las nuevas características.

Estos son algunos punteros para comenzar:

  • Greenlighting y puertas de: Refinar la canalización de versiones con un conjunto de puertas en Opciones previas y posteriores a la implementación que se integran las señales de la supervisión de sistemas y otros servicios externos (bit.ly/2E549uG).
  • Analizar los proyectos de código abierto: Analizar y medir la calidad técnica con SonarCloud y VSTS, desde el proyecto a cada método continuamente (bit.ly/2J4v0ea).
  • Validación de seguridad: Soluciones continuamente seguras dentro de la canalización de CI/CD. Infraestructura segura de direcciones, validar la seguridad, examinar los componentes de código abierto en busca de vulnerabilidades y supervisar los ataques (bit.ly/2Gmczjg).
  • Implementación de la nueva versión:  Usar canales de implementación para exponer progresivamente una nueva versión y ajustar las versiones en producción con marcas de característica (red.ht/2GTsQNC).

La importancia de la administración de paquetes

Si está pensando en maneras de ofrecer más valor más rápidamente a los usuarios finales, probablemente esté utilizando paquetes (por ejemplo, NuGet, npm y similares). Los paquetes y DevOps tienen una relación simbiótica. Administración de paquetes se centra en la entrega de un valor adicional a través de productos empaquetados a la canalización de CI/CD y se permite a compilar y automatización de la versión. En VSTS, la extensión de administración de paquetes está diseñada para ser una parte sin problemas de la canalización de DevOps, ya que fáciles de usar responsable paquetes de fuentes públicas y rápidas para crear y compartir los paquetes propios.

Es la manera más fácil de agregar algunos mágico de administración de paquetes a la canalización de DevOps con orígenes de nivel superior, que conectan la administración de paquetes de fuente a fuentes públicas como nuget.org y npmjs.com. Hay dos grandes ventajas al usar paquetes desde estos orígenes a través de la administración de paquetes:

  • Cada vez que utilice un paquete, se mantiene una copia guardada en la fuente, lo que significa que está protegidos de problemas como el incidente de panel de la izquierda (vea bit.ly/2pO1Do5), pública del origen de las interrupciones y cualquier otra cosa del mundo puede producir hacia usted. Todo lo que necesita para mantener su flujo de canalización es el paquete VSTS de la fuente.
  • En la fuente, puede ver todas las copias guardadas y sus procedencia, para que pueda filtrar y ver exactamente qué paquetes ha usado desde dónde.

A partir de administración de paquetes lleva a cabo dos pasos. En primer lugar, instale el paquete de administración y creación de una fuente, tal como se muestra en bit.ly/2GDj5W9. De forma predeterminada, la nueva fuente se configura automáticamente con los orígenes de nivel superior para nuget.org y npmjs.com. A continuación, Visual Studio (bit.ly/2pR3aZZ) o npm (bit.ly/2J2xVUq) para usar la nueva fuente. Desde allí, 's empresarial como de costumbre. Cuando comienza a trabajar, puede ejecutar una compilación limpia para obligar a los paquetes que se guarde en la fuente.

Resumen

Éste es el primero de una serie de artículos que tenemos intención tratan características nuevas y futuras. Creemos que transparencia ayuda a generar empatía y confianza y el más importante, le permite aprovechar pasos incrementales de adoptar productos y mejorar el proceso. Marcador de la escala de tiempo (bit.ly/2uv25fM), inspeccionar los artículos futuros y busque anuncios en el próximo Microsoft Build y Inspire eventos. En este momento, podemos mencionamos que estamos trabajando en unos pocos interesantes mejoras para los proyectos de DevOps, incluidos expandir los recursos de máquina virtual de Azure, agregar compatibilidad para ir y Ruby y ampliar la compatibilidad para bases de datos.

Ahora que hemos introducido DevOps proyectos y tratan la magia en segundo plano, se sentirá seguro estudio maneras de mejorar sus canalizaciones de CI/CD. Recuerde que DevOps no es un destino, es un viaje de mejora continuo y rápido.

Recursos de DevOps

El ámbito de DevOps y CI/CD evoluciona con mucha rapidez y no hay mucha información para desarrolladores cubrir. Para ayudar a solucionar el desafío, que hemos recopilado algunos recursos y vínculos al contenido que puede explorar y marcador para futuras referencias. Estos recursos ofrecen las últimas actualizaciones del producto y basándonos en nuestra casos de transformación de DevOps. Esperamos que le permitirá simplificar y acelerar sus propias transformaciones de DevOps.


Willy-Peter Schaubes un administrador de programas en VSTS, trabajar en Microsoft Vancouver en maravillosa Columbia Británica. Desde mediados de años 80, ha emprendido una búsqueda por simplicidad y facilidad de mantenimiento en ingeniería de software. Puede seguirlo en LinkedIn en aka.ms/willysli o en Twitter: @wpschaub.

Alex Mullanses un administrador de programas en VSTS, lo que sea más fácil y más rápido para los equipos compartir y reutilizar código. Puede seguirlo en Twitter: @alexmullans.

Gracias a los siguientes expertos técnicos por revisar este artículo: ALM | DevOps Rangers, Gopinath Chigakkagari, Atul Malaviya


Discuta sobre este artículo en el foro de MSDN Magazine