Compartir a través de


Visual Studio 2013

Introducción a Visual Studio Online

Ed Blankenship

Ya sea que usted forma parte de un equipo numeroso o si su equipo se compone de una sola persona, con Visual Studio Online podrá planear, crear, construir, compilar, probar y supervisar fácilmente aplicaciones altamente exigentes, desde cualquier lugar. No requiere de un grupo extenso para hacerse cargo de la infraestructura y no hay que tocar ni un solo servidor. Como alguien que ha llevado a cabo cientos de instalaciones y actualizaciones de Team Foundation Server (TFS) en mi función de consultor, agradezco que ese trabajo pesado y rutinario ahora sea cosa del pasado. Visual Studio Online se actualiza con las características más nuevas en forma automática y continua, así que podemos concentrarnos en lo que más necesitamos: ¡construir nuestras aplicaciones!

¿Qué novedades hay?

Frecuentemente me preguntan “¿Visual Studio Online no es simplemente TFS en la nube?” La respuesta es sí y no.

TFS se lanzó hace ocho años y dio el salto como servicio de administración del ciclo de vida de las aplicaciones (ALM) hospedado en la nube en el año 2012, con el lanzamiento de Team Foundation Service. Desde el primer día, la adopción fue fenomenal por parte de equipos de desarrollo individuales que recién comienzan y también por empresas de tamaño medio que optan por dejar atrás la infraestructura local. La gracia es que cada pocas semanas aparecen características nuevas en el producto, a medida que el equipo de productos de TFS las incorpora en las iteraciones de desarrollo internas. Quienes tengan una cuenta podrán observar la Línea temporal de características en bit.ly/17DV8Yl para descubrir las novedades o seguir los medios sociales como VSOnline en Twitter (twitter.com/vsonline).

Por lo tanto, sí, Visual Studio Online es la siguiente evolución de TFS y Team Foundation Service, que traslada los aspectos fundamentales de ALM a la nube. Y no, no es exactamente lo mismo.

Con la conversión de Microsoft en una empresa de dispositivos y servicios, muchos se han preguntado, “¿qué significa esto para mí como desarrollador?” En Visual Studio Online, Microsoft ahora tiene una plataforma de servicios que le sirve a usted, ya sea que usa Moonlight en sus propios proyectos personales o si trabaja en sistemas más grandes con su equipo. Exploraré algunos de estos servicios.

ALM y más allá

Al estar basado en la nube, Visual Studio Online puede entregar algunas experiencias muy poderosas:

Compilación en la nube. Sin servidores y sin sobrecarga: simplemente fantástico. El código parte de una imagen de servidor limpia cada vez que se ejecuta la compilación. ¿Esas dependencias y configuraciones de la máquina que usted ni siquiera sabía que existían le provocan dolores de cabeza más adelante? Cosa del pasado. Sigue teniendo acceso completo a las entregas de la compilación, ya que también se almacenan en el repositorio del código fuente en Visual Studio Online. ¿Necesita una configuración más compleja? Considere una solución híbrida: conserve sus preciados recursos locales para los flujos de trabajo o la infraestructura altamente personalizados y use Visual Studio Online para tareas básicas como la integración continua.

Pruebas de carga en la nube. A las personas, los nuevos emprendimientos e incluso los equipos más grandes les cuesta mucho realizar pruebas de rendimiento y de carga adecuadas, ya que los recursos y la configuración son tan costosos y consumen tanto tiempo. ¿Cómo justificar los gastos si ni siquiera sabe si la aplicación que creó va a tener éxito? En vez de lanzar y esperar, ahora tiene acceso a un servicio de pruebas de carga completas que funciona en la infraestructura de Microsoft y que siempre cuenta con la última versión del software de prueba de cargas. Ya no está limitado a esos trastos dados de baja que mendigó en la sala de aprovisionamiento ni se queda atascado tratando de entender qué es lo que tiene que instalar y configurar: puede configurar y escalar las pruebas de la manera que necesite para que las ejecuciones sean realistas. Si agrega 100 usuarios virtuales o si tiene que acelerarlo para prepararse para la temporada de fiestas, el servicio de pruebas de carga es capaz de procesar lo que usted necesita, cuando lo necesita.

Supervisión de aplicaciones en 360 grados, en tiempo real. ¿No tiene un centro de servicios a tiempo completo que supervise el estado y el mantenimiento de los sistemas de producción? Con Visual Studio Online, ahora sí lo tiene. Visual Studio Online Application Insights recopila información operacional, de rendimiento y de uso de clientes completa de sus aplicaciones, sin importar si estas se ejecutan en las instalaciones locales, en Windows Azure, en proveedores de nube de terceros o en forma híbrida en todas las tres. Más que mantener solo encendidas las luces, también puede supervisar en forma proactiva el uso, para decidir mejor cuál será la próxima gran característica que le conviene desarrollar. El servicio también se vale de la metainformación de la aplicación para que usted investigue los problemas actuales, como por ejemplo información sobre la compilación e implementación, con lo que puede volver a su solución y código fuente en cualquiera de sus entornos (inclusive la producción). Ya lo conoce, porque se encuentra en el mismo almacén de datos junto con el resto de la información de ALM, lo que ahorra mucho tiempo.

Traiga su propio IDE o use el editor de código ligero para el explorador. Visual Studio Online le permite actualizar su código fácilmente de cualquier forma, en cualquier momento y en cualquier lugar. Ya tiene Visual Studio, por supuesto, y ahora puede usar un verdadero repositorio Git para lograr una conexión perfectamente integrada con Eclipse, Xcode y muchos otros IDE para sus proyectos de desarrollo multiplataforma. Por lo demás, simplifique todo al máximo: lleve a cabo las actualizaciones al vuelo, desde cualquier explorador moderno, con el nuevo editor de código ligero de Visual Studio Online, conocido por el criptónimo “Monaco”. Este editor de código es complementario con el uso de Visual Studio en el escritorio.

Al igual que usted, Microsoft está comprometido con la entrega continua de valor, gracias a las versiones nuevas significativas de Visual Studio Online cada tres semanas. Si tiene una buena idea para una característica, incluso puede votar en UserVoice. ¿Así que qué espera? Diríjase a visualstudio.com y comience ya. Es gratis para los primeros cinco usuarios y se incluye como beneficio de las suscripciones a MSDN. Además, hay descuentos introductorios para los servicios de pago por uso y otros planes de usuario adicionales de Visual Studio Online para los otros miembros del equipo. No tiene que preocuparse del almacenamiento adicional, de las transacciones, del ancho de banda, de los ciclos de procesos, etcétera, ya que están incluidos en los planes de usuario y los servicios de pago por uso.

De cero a héroe: configure su proyecto para el éxito

¿Desea ver cómo Visual Studio Online le permite crear la próxima aplicación estrella? El siguiente escenario lo guiará por una iteración de ejemplo con Visual Studio Online. Si anteriormente ya usó TFS o Team Foundation Service, parte de esto le resultará familiar.

Este es el escenario: usted es el desarrollador jefe de un equipo pequeño con recursos limitados pero con una excelente idea para una aplicación. Tiene que comenzar rápido, pero espera que la aplicación perdure durante un buen tiempo, así que quiere encaminar el proyecto para el éxito continuo. No quiere perder tiempo en configurar infraestructura o canalizaciones de implementación ni agentes de prueba. Solamente desea crear la aplicación y que esta llegue a las manos de los clientes cuanto antes.

El comienzo es rápido, fácil y sin esfuerzo. Vaya a visualstudio.com, encuentre el vínculo “Empiece de manera gratuita” en el extremo superior derecho, rellene el formulario y… ya está listo.

Una vez que tiene una cuenta, necesita un lugar donde puedan trabajar usted y su equipo. En Visual Studio Online, el contenedor del nivel superior es un proyecto de equipo, así que el primer paso es crear uno. Tiene que tomar dos decisiones importantes en este momento:

  • Qué tipo de repositorio de control de código fuente va a usar.
  • Qué plantilla de procesos será la mejor para registrar los elementos de trabajo.

Las opciones para el control del código fuente son el control de versiones distribuido con Git y el control de versiones tradicional que le es familiar de TFS. Por ejemplo, suponga que su equipo actualmente está escribiendo una aplicación para Windows Phone 8 y sus servicios back-end, pero pretende portar la aplicación móvil en algún momento a los dispositivos iPhone y Android. Sabiendo que tendrá que trabajar con varias plataformas y diferentes IDE, opta por Git como el repositorio de control de código fuente. Para obtener más información sobre la elección entre Team Foundation Version Control (TFVC) y Git, revise el vídeo de Channel 9 en bit.ly/16XPcUK.

La plantilla de procesos es lo que define el flujo de trabajo: cómo se llaman los elementos de trabajo, qué estados atraviesan cuando usted trabaja en ellos, además de otros metadatos. Puede elegir entre tres plantillas: Scrum, Ágil e Integración de modelos de madurez de capacidades (CMMI). Si su equipo usa CMMI u otro proceso más formal, probablemente debería usar esa plantilla. Si trabaja en un equipo ágil o si no tiene ningún proceso específico, opte por la plantilla Ágil o Scrum. La principal diferencia entre las dos es la forma en que se controlan los errores y los nombres que se usan para los elementos de trabajo pendiente. La plantilla Ágil trata los errores como tareas, mientras que la plantilla Scrum los muestra en el trabajo pendiente, junto con los demás elementos de trabajo pendiente. Si no está seguro, opte por la plantilla Scrum: no por nada es la opción predeterminada. Si elige la plantilla Scrum no significa que tiene que usar Scrum; simplemente significa que aparecerá la terminología de Scrum en los tipos de los elementos de trabajo. Scrum se refiere a los elementos como Elementos de trabajo pendiente del producto (PBI) y la plantilla Ágil los denomina Casos de usuario. Obtenga más información sobre el trabajo con los proyectos de equipo y las diferencias claves entre las plantillas de procesos en bit.ly/Vh0azl.

Una vez que tiene sus cuenta y el proyecto de equipo, llegó el momento de agregar los miembros del equipo. Para esto, asegúrese de que tiene las cuentas Microsoft (previamente Live ID) del equipo, desplácese a la página principal del proyecto (myawesometeam.visualstudio.com) y siga el flujo que aparece en la figura 1.

Adding Team MembersFigura 1 Adición de miembros del equipo

Si desea poner a punto los permisos y otros detalles administrativos, use el icono de configuración con el engranaje en el extremo superior.

Manos a la obra: configure su primera iteración

Una vez que tiene listos los detalles administrativos, llegó el momento de poner manos a la obra. Eligió la plantilla Scrum, pero su equipo (todos los cinco) no están completamente convencidos de usar formalmente Scrum. Usted sabe que quiere trabajar en iteraciones, entregar código funcional lo más rápido posible e incorporar respuestas de sus clientes en la siguiente iteración. También quiere registrar el trabajo que actualmente está en progreso y el trabajo que está por delante, y necesita una forma de establecer prioridades para ese trabajo.

Antes de comenzar con los elementos de trabajo, echaré una mirada rápida a algunos de los detalles. Al elegir la plantilla Scrum trabajará principalmente con características, PBI, errores y tareas (hay otros tipos de elementos de trabajo, pero la mayoría de estos operan tras bambalinas). En la figura 2 se resumen las relaciones entre estos tipos de elementos de trabajo, que se mantienen con vínculos de elemento de trabajo.

Work Item RelationshipsFigura 2 Relaciones entre los elementos de trabajo

Generalmente, una característica representa una cantidad de trabajo que abarcará varias iteraciones (a veces se denominan épicas), una PBI es una unidad de valor para el cliente que se puede completar en una sola iteración y una tarea es una unidad de trabajo que se puede completar en un par de días. Su uso le permite acotar la vista del proyecto al nivel de detalle que tenga sentido en un momento dado, desde el nivel de la cartera hasta los detalles. Hay muchos elementos de trabajo más aparte de los que analizo aquí, y lo invito a que consulte los artículos pertinentes en MSDN para informarse.

Una última nota sobre el trabajo con los elementos de trabajo: el hecho que exista un campo no significa que deba usarlo. Use los campos que tienen sentido para su equipo y haga caso omiso de los demás. Mi consejo después de ayudar a muchos equipos en el pasado es que simplifique todo al máximo.

Llegó el momento de rellenar el registro de trabajo pendiente, así que haga clic en la pestaña Trabajo en la página del proyecto. Aparecerá el registro del trabajo pendiente del producto.

El menú a mano izquierda le permite acotar la vista al nivel de detalle adecuado y desde la lista a la derecha puede agregar elementos a ese nivel. Reordene sus PBI en forma vertical para establecer prioridades en el trabajo pendiente.

Ahora que ya tiene trabajo en el trabajo pendiente, llegó el momento de comenzar a pensar en la primera iteración. El equipo quiere avanzar rápido, así que opta por entregar las iteraciones en una semana, con el fin de entrar en producción todos los martes. Lo primero que debe hacer es poner fechas a la iteración. Puede hacer esto en el menú de configuración o, si la vista está acotada a una iteración determinada, en el vínculo “Establecer fechas”.

Después de asignar fechas a la iteración, puede comenzar a asignar los PBI desde el trabajo pendiente a la iteración al arrastrarlos desde la derecha y colocarlos en la iteración apropiada a la izquierda. Una vez que los PBI están en una iteración, puede dividirlos en tareas individuales para los miembros del equipo, tal como se aprecia en la figura 3.

Iteration PlanningFigura 3 Planeación de la iteración

Esta es solo la punta del iceberg en cuanto a las posibilidades de las herramientas de planeación ágil. A medida que su equipo crezca y sus necesidades se vuelvan más complejas, podrá agregar cosas como planeación de la capacidad, pronósticos y administración del plan de pruebas. Por ahora, esta es toda la complejidad que necesita, así que comience por completar los PBI.

A medida que progresa en los elementos del trabajo pendiente, debe llevar la cuenta del trabajo en curso. Su equipo desea comprender mejor el estado de la iteración actual, así que durante la siguiente reunión breve diaria, usted abre el panel de tareas de la iteración.

Este entrega una excelente visión del estado de cada PBI y sirve para encauzar la reunión informal diaria. El panel de tareas de la iteración cuenta con funciones de arrastrar y colocar y de toque, de modo que durante la reunión puede realizar cambios rápidos para mantener actualizado el panel (y los estados de los elementos de trabajo y las asignaciones del equipo).

El panel de tareas de la iteración es excelente para controlar el trabajo, pero para hacerse una idea del flujo de valor en todo el equipo, necesita un panel acotado al nivel del PBI o de la característica. Pase al panel Kanban, al que puede acceder desde el trabajo pendiente.

Desde allí, puede establecer límites para el trabajo en progreso en cada columna, registrar el flujo del trabajo y revisar el diagrama de flujo acumulativo del equipo. El panel Kanban debe reflejar el flujo de trabajo del equipo, así que haga clic en el botón Personalizar columnas y realice los cambios pertinentes. Cambie el nombre de las columnas y agregue columnas nuevas, si desea. Lo bueno es que cada equipo puede personalizar las columnas para sus propias necesidades, sin afectar a los demás equipos.

Ahora, suponga que encontró a su primer inversionista. Desgraciadamente, esta empresa no es del tipo silencioso y, para que siga fluyendo el dinero, exige actualizaciones semanales del estado sobre los aportes que se entregaron y la calidad del producto. Podría parecer que esto es un montón de trabajo extra. Afortunadamente, cuenta con los gráficos de los elementos de trabajo, ilustrados en la figura 4, que le permiten producir rápida y fácilmente los informes que necesita.

Work Item ChartsFigura 4 Gráficos de elementos de trabajo

Diez minutos después, el inversionista está satisfecho y usted puede volver a trabajar para satisfacer a sus clientes. Incluso puede anclar los gráficos de elementos de trabajo que creó en el panel del equipo.

Entrega de valor: compilación de la aplicación

Usted sabe cómo programar. También sabe que mantener la calidad al máximo es de importancia fundamental para sus clientes. Desgraciadamente, usted y su equipo están tan llenos de ideas nuevas que a veces es fácil correr precipitadamente a la siguiente idea, sin desarrollar por completo la actual.

La base de código no siempre se compila correctamente. Después de una breve retrospectiva, el equipo decide que tienen que comenzar a usar compilaciones automáticas, ya sea mediante una compilación de integración continua (CI) o incluso al establecer una entrada validada para evitar que entre código incorrecto en el repositorio. Usted no tiene la infraestructura ni el tiempo necesarios para configurar su propio servidor de compilación local. Esto es donde el servicio de compilación en nube de Visual Studio Online demuestra su utilidad.

Desde Team Explorer en el IDE de Visual Studio, seleccione la página de compilación y, luego, Definición de nueva compilación. Póngale un nombre a la definición nueva, seleccione el desencadenador y recorra los pasos restantes del asistente. No olvide guardar la definición de compilación cuando haya terminado.

Simplemente porque se trata de una compilación de integración continua (o cualquier otro tipo de desencadenador), no significa que no pueda iniciarlo manualmente en cualquier momento si necesita una compilación no programada. Por supuesto, podría iniciarla desde Team Explorer, ¿pero eso qué gracia tendría? Abra su explorador favorito y vaya a la pestaña Compilación en la página del proyecto. Seleccione la compilación en la lista a la izquierda y haga clic en Poner compilación en cola.

Después de configurar e iniciar una compilación de integración continua, vaya a la sala del equipo para ver los resultados y compartir la noticia con sus colegas. Para obtener más información sobre las compilaciones, consulte bit.ly/158otoM.

Pruebas de carga a petición

El número de usuarios está creciendo rápidamente, pero los usuarios se quejan de que el sitio demora demasiado. Usted no es capaz de identificar la causa de las demoras, así que quiere crear algunas pruebas de rendimiento y carga realistas para descubrir los cuellos de botella. Comienza por grabar algunas pruebas de rendimiento web con Visual Studio Ultimate. Cada prueba representa una forma típica en que un usuario interactuaría con el sitio, lo que se denomina una transacción sintética.

Luego combina las pruebas de rendimiento para simular una carga típica en el sistema. Posteriormente pretende crear otros casos, pero por ahora simplemente desea seguir con el caso donde todo sale bien.

Una vez que equilibró las pruebas de rendimiento en una prueba de carga, configura la prueba de carga para que se ejecute en Visual Studio Online; para esto abre el archivo de configuración de pruebas y elige Visual Studio Online. Luego puede observar cómo llegan los datos, tal como se aprecia en la figura 5.

Viewing Load-Test ResultsFigura 5 Representación de los resultados de la prueba de carga

Sí, lo acaba de concretar en menos de una hora. Si está interesado en un tutorial más detallado, consulte bit.ly/18hIcCm.

Supervisión y aprendizaje continuo: recopilación de datos de telemetría

Su aplicación y los sitios y servicios Windows Azure auxiliares están activos. Los usuarios parece que los están descargando. Las personas examinan el sitio y la aplicación cliente se comunica con el back end de los servicios . Al menos algo parece estar sucediendo. Pero no está muy seguro qué…

Tiene que comenzar a recopilar datos de telemetría en toda la aplicación. No solo páginas web, rendimiento del servidor y la aplicación para Windows Phone 8, y no solo en el nivel de datos de Windows Azure. Necesita una visión completa del flujo de la experiencia de usuario, de extremo a extremo. Conozca el nuevo servicio Application Insights de Visual Studio Online.

Para comenzar con el servicio Application Insights, vaya a la página principal de su cuenta de Visual Studio Online y haga clic en el mosaico de Application Insights. Tiene que registrar la aplicación con su código de invitación, ya que el servicio actualmente se encuentra en una versión preliminar limitada. Una vez terminado esto, puede configurar una prueba sencilla para hacer ping a una URL (la nueva Prueba de URL única) y puede ver cómo comienzan a fluir los datos. En este ejemplo usamos una prueba ping básica, pero también puede aprovechar las transacciones sintéticas que acaba de crear como pruebas de rendimiento web para las pruebas de carga. Puede supervisar luego la aplicación con pruebas ping básicas o transacciones sintéticas desde diferentes centros de datos en el mundo.

También puede configurar el Agente de supervisión de Microsoft para que informe los datos de supervisión de rendimiento de la aplicación al servicio de Application Insights. Esto entregará una visión aún mejor de cómo se están comportando los servicios de su aplicación con cada una de sus dependencias, inclusive las bases de datos y otros servicios.

Para la mayoría de los sitios y aplicaciones conectadas, no hay nada más importante que el tiempo de actividad. Su aplicación no es diferente y, desgraciadamente, algunos informes de sus clientes lo pillaron por sorpresa al indicarle que el servicio estaba inactivo, aunque usted creía que estaba funcionando. Necesita una supervisión constante y en vivo, para ser el primero en saber si una prueba genera errores o si el sitio se descompone. Esto es exactamente lo que le puede entregar Application Insights.

Saber si el sitio está disponible es excelente. Saber exactamente qué línea del código o procedimiento almacenado está atrasando las cosas es mejor. Poder saltar directamente a esa línea de código en el IDE desde el servicio de supervisión de rendimiento es, bueno, realmente impresionante. Application Insights descubre dependencias, le muestra cuando ha hecho implementaciones nuevas y agrega toda la información sobre el rendimiento para entregarle las diez partes más lentas de la aplicación.

Ahora que cuenta con la función de supervisión del rendimiento de Application Insights, pudo reducir radicalmente el tiempo promedio para reparar el servicio y el tiempo promedio para restaurarlo.

Cuando lanzó la aplicación por primera vez al mercado, entendía a fondo qué es lo que haría la aplicación y cómo los clientes interactuarían con ella. Ahora las necesidades de los clientes evolucionan y la aplicación tiene que evolucionar con ellos. Tiene muchas hipótesis sobre cómo mejorar la experiencia de usuario, pero lo que necesita son datos de telemetría para demostrar sus suposiciones e hipótesis. Con la incorporación de la supervisión del uso en Application Insights, obtiene los datos multidimensionales que lo orientarán para las inversiones futuras en su aplicación, tal como se aprecia en la figura 6.

Application Insights DashboardFigura 6 Panel de Application Insights

A medida que su equipo trabaje más y más con Application Insights, usted comenzará a darse cuenta que vivió un cambio de paradigma en la forma en que crea el software. Estos conocimientos ya no son una cuestión secundaria: convirtió este proceso en un miembro titular del ciclo de vida de la aplicación, con un impacto profundo en la forma en cómo su equipo reflexiona sobre la aplicación. Luego incluso puede usar el SDK para comenzar a crear informes con métricas de negocio personalizadas que podrá registrar en sus paneles o enviar eventos de traza personalizados para los desarrolladores.

Application Insights creó una conexión entre los desarrolladores y la forma en que los clientes usan la aplicación. Las preguntas sobre cómo el usuario interactúa con la aplicación, qué impacto tendrá un cambio en el rendimiento y cómo conservar la disponibilidad actual casi perfecta de la aplicación se discuten durante todo el ciclo de vida.

En resumen

Aquí la tiene: una breve introducción al último miembro de la familia de Visual Studio. Visual Studio Online es una plataforma de herramientas y servicios basada en la nube que le permite planear, implementar y administrar su aplicación. Evolucionó a partir de TFS y Team Foundation Service y llevó la plataforma Microsoft ALM a la nube y la fortaleció con nuevos servicios como Application Insights y un IDE en línea. Y esto es solo el comienzo. Incluso si usted usa TFS en forma local, puede aprovechar los servicios de Visual Studio Online como las pruebas de carga y Application Insights en la medida justa en que los necesita. El equipo de Visual Studio Online está dedicado a entregar valor en forma continua, con actualizaciones significativas cada pocas semanas.

Ed Blankenship es gerente de producción de Visual Studio Online y Visual Studio ALM en Microsoft. Antes de entrar a Microsoft, fue elegido Microsoft MVP del año 2010 (Visual Studio ALM, Team Foundation Server) y fue Microsoft MVP durante cinco años. Es el autor principal de dos libros sobre Team Foundation Server, inclusive “Professional Team Foundation Server 2012” (Wrox, 2013).

Gracias a los siguientes expertos técnicos por su ayuda en la revisión de este artículo: Andrew Clear y Cheryl Hammond (consultores sobre ALM en Northwest Cadence)
Andrew Clear y Cheryl Hammond son consultores sobre ALM en Northwest Cadence. Han escrito numerosos artículos especializados y presentaciones sobre Visual Studio ALM, crearon en conjunto una serie de entrenamiento en agilidad para la empresa y han realizado consultorías para clientes grandes y pequeños en Norteamérica, Europa y Asia.