Azure: Centro de Arquitectura para Soluciones DevOps

El articulo de hoy es una recopilación de enlaces que suelo utilizar cuando tengo que montar temas relacionados con practicas y procesos DevOps en diferentes empresas.

Azure Architecture Center es una web donde encontraremos de forma centralizada guías, procedimientos recomendados, buenas prácticas y patrones para diseño de soluciones arquitectónicas en Microsoft Azure para todo tipo de aplicaciones.

Link: https://docs.microsoft.com/es-es/azure/architecture

Recopilacion de Escenarios para Devops

Hay varias arquitecturas y soluciones de ejemplo relacionadas con DevOps que os pueden servir de guia o aceleradores para implementar proyectos sin tener que partir de cero, os comparto la lista:

• Azure DevOps: https://docs.microsoft.com/azure/architecture/example-scenario/apps/devops-dotnet-webapp
• DevOps with containers: https://docs.microsoft.com/azure/architecture/example-scenario/apps/devops-with-aks
• Microservices with AKS and Azure DevOps: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/microservices-with-aks
• Secure DevOps for AKS: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/secure-devops-for-kubernetes
• Azure DevOps CI/CD pipelines for chatbots: https://docs.microsoft.com/es-es/azure/architecture/example-scenario/apps/devops-cicd-chatbot
• CI/CD for Azure VMs: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/cicd-for-azure-vms
• CI/CD for Azure web apps: https://docs.microsoft.com/es-es/azure/architecture/solution-ideas/articles/azure-devops-continuous-integration-and-continuous-deployment-for-azure-web-apps
• CI/CD for containers: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/cicd-for-containers
• Container CI/CD using Jenkins and Kubernetes on AKS: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/container-cicd-using-jenkins-and-kubernetes-on-azure-container-service
• DevSecOps in Azure: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/devsecops-in-azure
• DevTest for IaaS solutions: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-iaas

• DevTest for PaaS solutions: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-paas
• DevTest for microservices: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/dev-test-microservice
• DevTest Image Factory: https://docs.microsoft.com/es-es/azure/architecture/solution-ideas/articles/dev-test-image-factory
• Immutable infrastructure using Jenkins and Terraform on Azure: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/immutable-infrastructure-cicd-using-jenkins-and-terraform-on-azure-virtual-architecture-overview
• DevOps in a hybrid environment: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/java-cicd-using-jenkins-and-azure-web-apps
• Java CI/CD using Jenkins and Azure web apps: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/java-cicd-using-jenkins-and-azure-web-apps
• Run a Jenkins server on Azure: https://docs.microsoft.com/azure/architecture/example-scenario/apps/jenkins
• SharePoint Farm for testing: https://docs.microsoft.com/azure/architecture/solution-ideas/articles/sharepoint-farm-devtest

Como siempre, espero que os sea de utilidad.

Azure DevOps: Como desactivar Pipelines con sintaxis YAML para no dispararse en cada commit

Un caso que sucede a veces en Azure DevOps cuando estamos definiendo procesos de integración continua con código YAML, es saber como podemos desactivar Pipelines de CI/CD para que no se ejecuten de forma automática cada vez que se hace un commit en el repo Git.

Como sabéis, al crear una nueva pipeline Azure DevOps, el asistente nos crea por defecto un archivo azure-pipelines.yml para definir nuestra build con una plantilla base para automatizar todo el proceso.

Pipelines YAML intro image

Dentro de la plantilla, podemos editar el código YAML para adaptarlo los jobs, step y task a nuestros procesos de CI/CD y en la primera linea del archivo encontramos la etiqueta de trigger: – master

Desactivando el trigger en YAML

Ya en el archivo YAML, el trigger indica que dispara la build en master de forma automática, lo normal es comentarlo o borrarlo para que no se ejecute la próxima vez.

# Docker
# Build and push an image to Azure Container Registry
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

# desactivar trigger automatico CI
# trigger:
# - master

resources:
- repo: self

variables:
....

Pero, si hacemos el commit y confirmamos los cambios en Git se vuelve a disparar la build aunque tengamos el trigger comentado o borrado.

Desactivando el trigger en Pipeline Settings

Una forma de evitar que se dispare la build, es mediante la opción de Settings de la propia Pipeline, si entramos en esta opción accederemos a un formulario donde podemos seleccionar lo siguiente:

Por último, no olvidar guardar los cambios pulsando el botón Save en la pantalla.

Desactivando el trigger en Pipeline clásico

Otra forma, un poco más escondida de desactivar el pipeline es pulsando EDIT para entrar en las opciones del pipeline clásico como se muestra en la imagen y después seleccionar en el menú los 3 puntos (…) y la opción Trigger para navegar al menu de pipeline clásico.

Por último, no olvidar guardar los cambios pulsando el desplegable y seleccionar Save en la pantalla.

Un consejo final, yo también suelo modificar el nombre del pipeline y le añado el sufijo [disabled] para identificarlo.

Como siempre, espero que os sea de utilidad!!

DevOps: Introducción al nuevo Azure DevOps

Para empezar el año, quiero compartir una serie de videos oficiales ofrecidos por el equipo de producto de Azure DevOps para conocer todas las novedades y potencia de esta plataforma y ver todas sus posibilidades.

Son videos introductorios que estan en Channel9, para comenzar a trabajar con Azure DevOps:

On-demand videos

 

Como siempre que los disfruteis!!

VSTS: Database DevOps for .NET Developers

Como vimos en un articulo anterior sobre VSTS, automatizar los despliegues de nuestro codigo hasta producción es una buena práctica y nos permite trabajar de forma más agil y confiable, pero que pasa con nuestras Bases de datos, scripts, tablas, campos, etc.

Muchas veces solo nos centramos en el codigo ejecutable de aplicaciones y servicios pero también es posible realizar el mismo proceso con nuestros proyectos de bases de datos.

Microsoft explico en su ultimo evento «Net Conf 2017», la forma correcta de hacerlo mediante VSTS, aplicando técnicas de Database DevOps for .NET Developers with SSDT and SQL Server 2017.

Aqui teneis el video de la charla:

Como siempre, espero que os sea de utilidad.

Cheers and Happy Coding!!

VSTS: Introducción y Tutoriales para CI & CD

Supongo que todos conocemos la nomenclatura a estas alturas, pero por si acaso, pongamos un poco de contexto.

  • VSTS (Visual Studio Team Services ) es la plataforma ALM de Microsoft alojada en Azure con un conjunto de servicios y herramientas para jefes de proyecto, desarrolladores, DevOps y Stakeholders.
  • TFS (Team Foundation Server) es la versión on-premises de VSTS que podemos instalar en nuestros propios servidores.
  • CI (Integración Continua) es una práctica utilizada para automatizar la compilación y pruebas del código para garantizar la calidad de los artefactos entregables generados.
  • CD (Entrega Continua) es el proceso mediante el cual el código se compila, prueba e implementa en nuestros entornos de DEV, QA, PRE y producción, este ciclo de implementación y pruebas en múltiples entornos generan calidad y detección de errores tempranos.
  • RM (Release Management) este servicio en VSTS y TFS permite configurar y administrar todo el proceso de CD para las aplicaciones, mediante «pipelines» de ejecución automatizados que consumen los artefactos generados para lanzar nuevas versiones y correcciones a los sistemas de las aplicaciones.

Visto los conceptos anteriores, yo personalmente, lo defino como «DevOps todo en uno de Microsoft«, y como una imagen vale más que 1000 palabras, veamos esto en 2 diagramas:

Diagrama del proceso CI & CD

Aqui vemos de forma esquemática en que consiste todo el proceso.

vsts-release

Tutoriales oficiales

Como guias de consultas para automatizar todo el proceso y mejorar «nuestra calidad de vida» para no hacerlo manualmente, en la página de Microsoft disponemos de varios tutoriales para ayudarlos con esto:

 Despliegue de aplicaciones en Azure o IIS

Provisionamiento de maquinas virtuales

Otros ejemplos

Video: DevOps with VSTS for ASP.NET apps

 

Video Release Management:

https://channel9.msdn.com/Blogs/VisualStudioEnterprise/ReleaseManagement

 

Como siempre, espero que os sea de utilidad.

Cheers and Happy Coding!!

VSTS: Introduccion a Team Foundation Service

TFS2012-logo

Team Foundation Service es la nueva versión de TFS en la nube de Microsoft, la verdad es que es genial y para usarlo  solo necesitais una cuenta Windows Acount (antigua LiveID), registrarse aquí: http://tfs.visualstudio.com/  conectarlo con Visual Studio 2010/2013: leer esto y listo.

Ya tenemos disponible un servidor de TFS para nuestro proyectos, lo mejor de todo,  es que es gratuito para equipos pequeños de hasta 5 usuarios y podemos manejar varios proyectos. Que más se puede pedir !!!

Services Packs para Visual Studio 2010

Nota: Si tenemos VS 2010 instalar estos 2 Packs sino al Conectar con TFS Server nos dará error y no podremos crear proyectos de equipo.

Presentación en el evento de TSF  más ligero en la nube:

¿Por qué TFS como servicio?

  • Toda la funcionalidad de TFS
  • Soporte completo al ciclo de vida
  • Esfuerzo de instalación reducido
  • Mínima configuración
  • Mantenimiento muy sencillo

¿Qué ofrece TFS Service igual que TFS on-premise?

  • Elementos de trabajo
  • Control de versiones
  • Construcciones automatizadas
  • Gestión de proyectos, Agile con plantilla Scrum
  • Gestión de casos de prueba
  • Desarrollo heterogéneo

¿Qué ofrece TFS Service como extra?

  • Instalación y configuración casi nulos
  • Colaboración simplificada, trabajo sencillo con equipos distribuidos

¿Qué le falta a TFS Service?

  • Integración Lab Management
  • Sharepoint para publicar contenido
  • Data Warehouse para reporting e informes
  • Se pueden hacer informes personalizados con Excel

¿En cuanto a infraestructura TFS Service?

  • Seguridad: Autenticación basada en Windows Azure Access Control Services. Por ahora Windows Account (LiveID) y en el futuro, AD Federation Services y otros.
  •  Encriptación HTTPS: Seguridad de datos basada en el almacenamiento (Windows Azure Storage y SQL Azure) .
  • Rendimiento: Localización geográfica en USA (en la versión final podrá ser elegida) y monitorización continua y pruebas de rendimiento exhaustivas.
  • Disponibilidad: SLA  Actualmente 99,93% y garantizado 99,9% para cuentas de pago, además redundancia multi AppTier con failover transparente, redundancia de datos en Azure.
  • Actualizaciones: Los datos de los proyectos se van actualizando según salgan nuevas versiones de forma transparente y posibilidad de pasar a on-premises (para mas de 5 usuarios)
  • Compatibilidad: Compatible con todos los clientes de TFS, Visual Studio 2010 y 2012, Team Explorer Everywhere  y otros.
  • Escenario de uso híbrido: On-premises + TFS service, soportado por la plataforma de integración de TFS
  • Escenario de uso TFS Service completo: Se pueden crear proyectos y extraer los datos usando la plataforma de integración de TFS.

Aqui teneis los primeros tutoriales:

Ejemplo de captura de la aplicación Fabrikam

TFS2012-project

Pues eso, Os recomiendo poneros manos a la obra y probarlo porque seguro que gustará y sin duda es una herramienta que utilizareis.

Tutorial Visual Studio 2010 Scrum 1.0

Video explicativo de 2 horas de duracion, dividido en 2 partes, para introducción en el ecosistema de desarrollo y ciclo de vida de proyectos (ALM) con Visual Studio 2010 y Team Foundation Server mediante la plantilla de procesos Visual Studio 2010 Scrum 1.0 para gestionar proyectos.

Descargar: Video1 y Video2

Fuente: Charles_Sterling – Introducing-VS2010-Scrum-10

Visual Studio 11 Developer Preview

Desde el pasado 16 de Septiembre ya esta disponible la versión Preview de Visual Studio 11, TFS 11 y Net Framework 4.5 para desarrolladores

Aqui teneis todos los enlaces de descargas:

Si quereis saber más:

What's New in Visual Studio 11 Developer Preview What’s New in Visual Studio 11 Developer Preview
Comprobar las nuevas caracteristicas y funcionalidades de la preview.
Visual Studio 11 Application Lifecycle Management Virtual Machine and Hands-On-Labs Visual Studio 11 Application Lifecycle Management Virtual Machine and Hands-On-Labs
Descargar Virtual Machine, hands-on-labs  y demo scripts para Visual Studio 11.
.NET Framework 4.5 Developer Preview .NET Framework 4.5 Developer Preview
Conocer las nueva funcionalidades en .NET 4.5.

Para ver las primeras imagenes, visitar este enlace: GenBetaDev VisualStudio 11

Microsoft Solutions Framework 5.0 (MSF)

Microsoft Solutions Framework 5.0, abreviado como MSF, es un marco de trabajo flexible para la planificación de proyectos y gestión del ciclo de vida de las aplicaciones con Visual Studio 2010, válido para entornos tradicionales y para entornos ágiles, resumiendo un poco, nos brinda una solución para la optimización y mejora de los entornos de producción de software que nos permite crear proyectos de equipo y controlarlos mediante Team Foundation Server (TFS).

Segun las propias palabras de Microsoft, Microsoft Visual Studio Team Foundation Server y el núcleo de las herramientas de administración, puede aplicar procedimientos probados para administrar el ciclo de vida de su aplicación, desde comprender las necesidades del cliente hasta el diseño del código y la implementación. Puede usar la instrumentación de estas herramientas para realizar un seguimiento de las necesidades de código, compilaciones y resultados de las pruebas. Estos procedimientos pueden ayudar a su equipo a crear software que sus clientes valoren, lo que resulta más rápido y más confiable.

Puede usar estas herramientas para obtener los siguientes resultados:

Planeación y seguimiento: capture lo que es importante para sus clientes y realice el seguimiento del progreso de su proyecto. Represente los procesos y supervise su calidad para ayudar a su equipo a convertir las necesidades del cliente en software operativo.

Diseño: diseñe la funcionalidad, sobre activos existentes o desde el principio, usando los diagramas arquitectónicos para comunicar la información crítica acerca del software de su equipo.

Desarrollo: escriba, realice pruebas unitarias, depure, analice y genere perfiles de su aplicación mediante herramientas que se integran con el resto del ciclo de vida de la aplicación para que su equipo pueda comprender cómo su progreso contribuye al proyecto.

Compilación: compile su aplicación mediante el sistema de compilación integrado para que su equipo pueda asegurarse de cumplir los requisitos de calidad y ver qué requisitos se han cumplido en cada compilación.

Pruebas: ejecute pruebas manuales o automatizadas, incluidas las pruebas de rendimiento y de esfuerzo. Administre las pruebas sistemáticamente para que su equipo conozca la calidad del software en cualquier momento.

Implementación: implemente en entornos virtuales para habilitar un desarrollo y unas pruebas más sofisticadas.


Las características fundamentales a cubrir para la administración y gestion de proyectos son:

  • Captura de la visión del producto
  • Creación de los requisitos del producto
  • Desarrollo de la documentación
  • Establecimiento del proceso del proyecto
  • Administración de problemas
  • Planeamiento de una iteración
  • Planeamiento del proyecto
  • Administración del riesgo
  • Prueba de un requisito del cliente
  • Comprobación de un requisito del producto

Plantillas de procesos para MSF y TFS: