Gestión automática de entornos de despliegue con Azure (Introducción)

510af5389e0b9b98decb66e3b5fd6577e3f73032a4e336aeb523b1c836901341   A estas alturas ya debería estar claro para que sirve la integración continua y sus ventajas: el tener un sitio donde se corran todas las compilaciones y tests, el evitar “en mi maquina funciona”, reducir el tiempo de despliegue, el tener una buena gestión de los diversos entornos ¿no?

Bueno, en esta ocasión quiero referirme a la gestión de los diversos entornos en que va a correr nuestra aplicación durante su ciclo de vida: Desarrollo, QA, Staging, PreProducción, Certificación, Producción, etc, como quieran llamarle, pero el caso es que mal que bien (aun cuando no se usen practicas Agiles, DevOps o Integración Continua) al menos hay un reconocimiento en las organizaciones de que no se puede pasar las aplicaciones directamente de la máquina del desarrollador a Producción, bueno, salvo el caso de un sitio donde trabaje en el que los entornos de PreProducción estaban tan desactualizados que no quedaba otra que hacer los pases “en caliente”.

Pero como ya sabemos, cuando trabajamos en múltiples entornos, debemos asegurarnos que cada entorno tenga un conjunto de parámetros separado, de tal manera que no vaya a ser que al entorno de Producción se le dé por escribir en el entorno de QA, o a QA buscar la máquina del ultimo desarrollador que hizo el pase de entorno, de ahí que en buena parte de los despliegues (manuales) se dedique buen tiempo a verificar que estamos copiando los archivos de configuración en el entorno adecuado, y claro esta tarea es pequeña pero estresante.

Entornos

Soluciones hay muchas y una de las que nos brinda desde hace buen tiempo Visual Studio son las “transformaciones” que básicamente consiste que en adición a nuestro Web.config y app.config incluyamos en nuestro proyClipboard01ecto archivos de nombre web.EntornoObjetivo.config como se ve en el gráfico, siendo que cada uno de estos archivos contiene fragmentos XML donde se indican que atributos de configuración serán alterados en el entorno destino y que valores se colocaran en reemplazo de los que habían en Web.config. Finish Reading: Gestión automática de entornos de despliegue con Azure (Introducción)

Los retos para hacer cloud en el Perú

Cloud es una interesante y validad promesa para las empresas peruanas, la promesa de reducir sus costos fijos, haciendo que buena parte de la infraestructura pase a ser costo variable pagando solo lo que se consume, es algo muy atractivo, y mas cuando un caso de éxito como el de Cineplanet llama la atención por la escalabilidad que esta logrando.

Para lograr esto hay que mirar con otros ojos a nuestras conexiones de internet, si antes se orientaba a facilitar acceso a la web y al correo, ahora… las cosas cambian, si antes el servidor de correo estaba en la red local ahora lo esta fuera, así que cada request sale fuera de la red de la organización por mencionar el detalle que podría ser mas común.

Otro escenario en que nuestra velocidad de conexión puede asomar un lado poco amable es el de la carga de datos desde nuestra organización hacia la nube, y claro como usualmente la infraestructura de la nube esta fuera de nuestro país la latencia si que es un factor a considerar, para lo cual habrá que recurrir a herramientas como Azure Speed y así determinar en que zona geográfica nos conviene mas provisionar nuestros servicios en la nube; pues como vengo insistiendo, el hecho de que haya datacenters cloud en Brasil no implica que vayamos a conseguir mejores velocidades de conexión que las que tenemos con USA.

Pero por mas de que elijamos bien la zona geográfica y aumentemos razonablemente el ancho de banda, hay otro factor que toca considerar y es que la mayoría de conexiones a Internet que se contratan son de tipo ADSL (Asymmetric Digital Subscriber Line) siendo que la A, que antes usualmente no nos importaba pues solo consumíamos contenido, nos puede jugar una mala pasada pues la Asimetría nos recuerda que la velocidad con la que nos podemos bajar contenido siempre sera mucho mayor que la velocidad de subida… upss y eso se refleja en los problemas mencionados anteriormente, de ahí que dentro del planeamiento de uso de soluciones cloud debe hacerse la evaluación de pasar de conexiones ADSL a conexiones DSL que no restrinjan la capacidad de subir contenido.

Ya en el lado que no esta mucho en nuestras manos esta el reclamar por los precios y las velocidades que se ofertan en el Perú (penosas realmente) y esperar que a se haga una NAP a nivel de la Comunidad Andina, lo cual justificaria a los proveedores de cloud el montar un datacenter en la región, o que se mejore la conexión vía fibra óptica con Brasil y así reducir la latencia con los datacenter de dicho país.

Por otro lado, corresponde hacer una mayor difusión respecto a lo que implica cloud en cuanto a generar nuevas aplicaciones (PaaS) o gestión de Infraestructura (IaaS), pues percibo que aun en los departamentos de IT se habla de cloud solo en términos de compartir información en repositorios de facil acceso o usar herramientas de ofimática basadas en Web, y como bien sabemos es mucho mas que eso, todo un reto para los informáticos en estos tiempos ¿no?

 

 

¡Mudanza!

Si has sido un visitante que ha pasado por aquí en semanas anteriores te habrás dado cuenta del cambio de estilo en el blog, lo cual ya es mas obvio, pero lo que no lo es tanto es que desde hace una semana este blog ha dejado de estar alojado en Blogger para estar alojado en Azure usando WordPress.

Las razones para ello son varias, con WordPress hay una mayor escena de temas y plugins para usar, en ese sentido Blogger se había quedado muy atrás, pero una razón muy importante es que siendo que ahora me he enfocado en Cloud Computing en general y en Azure en particular, decidí que una buena opción seria hacer uso de esas opciones y así profundizar en el uso continuo de un recurso en Azure.

La primera decisión que tome fue el tipo de servicio de Azure a usar, descartadas las maquinas virtuales (el uso continuo de procesador garantiza una factura alta) la opción obvia era elegir un Azure WebSite, y dentro de esta opción opte por un servicio de hospedaje “Compartido” (Shared).

wordpress03

La razón por la que elegí este nivel fue porque es el mas “barato” que permite asignar un dominio personalizado (en este caso consultorinternet.com) y no quedarse con el modelo sitio.azurewebsites.net que viene por defecto. Y si por alguna razón este site crece en trafico siempre podre crecer a alguno de los modelos como “Basic” o “Estandar”.

Implementar WordPress fue muy sencillo, solo tuve que elegir de la galeria que te ofrece Azure a WordPress y listo.

wordpress04

Ahora bien, en la siguiente pagina si que hay que tener cuidado en agregar todos los parámetros (son varios) que se piden, y anotar sus valores en lugar seguro.

wordpress05

Nótese que en WebScaleGroup estoy usando un plan de hosting que ya tenia previamente,  y que ya había migrado del modelo “Gratis” al “Compartido” para de esta manera poder hacer uso del tema de los dominios personalizados que ya mencione mas arriba. Con respecto a la BD si es tu primer site en WordPress tienes que crear una BD nueva, si ya tienes otro site deberás usar una BD ya existente a menos que por tu volumen requieras contratar BD extra en ClearDB.

Ya con el WordPress corriendo seguí las indicaciones de este enlace para efectuar la migración de Blogger a WordPress, todo bien pero creo que no es necesario efectuar los pasos recomendados en la sección “Redireccionar los enlaces de blogger a wordpress” (que incluye el uso de un plugin) siendo que mas practico es configurar el formato de los enlaces permanentes de esta manera:
wordpress02
Esta configuración (ojo a la palabra html que hay que agregar manualmente) es la que ya tenia en Blogger, por lo que si los buscadores tenían referenciado un enlace “antiguo” esta referencia no se perderá, lo que si se ha perdido son los enlaces que hacen referencias a entradas agrupadas por mes, bueno… no se puede tener todo.

Con todo esto listo, toca configurar los parámetros en el proveedor de dominios (en mi caso Network Solutions) de acuerdo a lo indicado en esta documentación, nótese que el tiempo en que se propagan los cambios en los valores puede variar, en unos casos en 5 minutos ya Azure “sabia” de los cambios, en otros se tardo como media hora, pero nunca ha tardado las horas que se supone que tienen de colchón para propagar los cambios.

Ya configurado el site, me percate que si bien al entrar a www.consultorinternet.com accedía al nuevo site en WordPress y ya no al de Blogger, cuando administraba el site o iba a los enlaces veía el dominio en azurewebsites.net que no era lo que esperaba, luego de revisar tanto en la consola de Azure como en Network Solutions por si había algún error, revise la administración en WordPress percatándome que tenia que editar algo tan simple como lo que se ve en el siguiente gráfico, upsss.

wordpress06

Bueno, ya esta listo, espero sus visitas y comentarios en esta nueva etapa. Lo mas probable es que en breve migre Fisica 3, el site hermano.

Repasando el Remix en el SIMO


Como ya lo tenía planeado hoy día asistí al reMIX España el cual se llevo a cabo dentro del SIMO Network, sonaba interesante la idea, pues a diferencia de la mayoría de conferencias de Microsoft esta estaba centrada en el tema de interfaces de usuario, lo cual nunca está de mas saber.

El lado negativo de esta conferencia no debo atribuirlo a Microsoft sino al propio personal de IFEMA, tradicionalmente he asistido a diversos eventos de Microsoft con solo dar mi nombre y comprobando este en la lista de asistentes, pero lamentablemente la cerrazón del personal de Ifema me impidió asistir el día de ayer a la presentación de Windows 7, por lo que tuve que ir a una cabina a imprimir mi invitación y de esta manera no perderme el reMix, para que el día de hoy notara la insistencia de los empleados en pedir tarjeta o datos de empresa, mal de su parte.

Microsoft siempre tiene un objetivo en sus presentaciones, en este caso introducirnos a las ventajas que trae Windows 7, y lo mas fundamental plantear el paradigma de integración en los procesos de diseño de interfaz de usuario y la programación “pura y dura”, amen de lo usual en estos eventos: promocionar sus herramientas de desarrollo y tecnologías, curiosamente el plato fuerte en este sentido no fue Visual Studio sino Silverlight y Microsoft Expression.

Luego del clásico discurso motivador de uno de los Developer Evangelist de Microsoft, dos empresas playmusic.fm y Telecinco enseñaron el estado de sus desarrollos usando estas tecnologías, y la verdad es que la primera para ser un startup ha apostado por crear una interfaz moderna, yendo mas allá del clásico formulario de caja de texto y botones (paradigma contra el cual se iría a lo largo de la jornada), la verdad es que para quien toda la vida ha trabajado en esta clase de interfaces, primero con Delphi, luego VB y ASP.NET el pensar en carruseles y drag and drop … cuesta un poco, pero no hay que perder esto de vista a la hora de plantearse un diseño de aplicaciones.

También toco un vistazo a Azure, el cual si bien esta en beta no dudo que en breve sera demandado por las empresas, por lo que tocara estar listos.

Luego se explico sobre el Expression SketchFlow, herramienta la verdad que era completamente desconocida para mi, la cual sin ser totalmente revolucionaria la veo muy útil, siendo la sesión eminentemente practica se nos enseño como se crea un prototipo de aplicación navegable, siendo el objetivo transmitir la clase de cosas que podrá hacer la aplicación al cliente, esta herramienta resulta muy practica para discutir y definir ajustes de una manera más clara que mediante enésimos powerpoints o documentos de Word. El pequeño problema, como comentábamos con Jordi, es que Microsoft partió de la idea de ofrecerla como una herramienta para los diseñadores gráficos antes que como una utilísima herramienta para el Analista Funcional.

Esto me hizo pensar en un detalle, si bien Microsoft nos recalca la evolución que se está dando desde el punto de vista de las interfaces de usuario y como quienes desarrollamos debemos pensar más de acorde a estos tiempos y a los nuevos tipos de usuarios, por otro lado no se recalco mucho en la necesidad que hay en el “lado del diseño” de pensar en la funcionalidad y sobre todo en desarrollar buenas prácticas que permitan un trabajo de equipo de manera integrado, algo de esto lo comente hace dos años, y creo que aún permanece vigente y se hará necesario reflexionar sobre cómo hacer que las bonitas interfaces que nos mandan (gracias a Photoshop o Corel) sean fácilmente trasladables a una aplicación “real” ya sea en ASP.NET, Silverlight o Windows Forms.

La siguiente sesión antes del almuerzo ya fue más light y con pretensiones de ser divertida, se trataba de dar un vistazo a las novedades de Windows 7 en cuanto a interfaz de usuario y sobre la forma de acceder programáticamente a ellas, por lo menos se cumplió con el objetivo de dar ese vistazo y dejarnos con la curiosidad de intentar explorar.

A la vuelta del almuerzo (bocadillo de tortilla de patatas y ensalada cortesía de Microsoft) tocaba una sesión a la cual le tenía interés pues a Silverlight solo lo he visto cuando alguna web (como esta imprescindible Web dedicada al evento de ALM del año pasado) lo utiliza en vez de Flash (palabra que no fue mencionada en ningún momento del remix, lo cual es una señal clara de intenciones), lamentablemente el nerviosismo del expositor no permitió explotar totalmente un tema que de por si era muy interesante.

En contraparte, la conferencia final dedicada a Surface, sí que cumplió con las expectativas ya que tanto la claridad del expositor de Plain Concepts como los ejemplos (sencillitos pero efectivos prueba de concepto) permitieron consolidar la idea sobre el cambio de paradigmas de uso de la informática, la nueva clase de usuarios en estos tiempos, y como pensar a la hora de tratar de aprovechar la tecnología que está saliendo.

En resumen una de las mejores conferencias de Microsoft a la que haya asistido, también será por el factor novedad de mi parte, pero al menos me dejo la idea de cosas a tomar en cuenta para el desarrollo futuro de aplicaciones. Lo malo: es que no se menciono en ningún momento a Windows Forms, es que claro todo el empuje va hacia Silverlight y Windows Presentation Foundation.