Categoría: Azure

#NETRAF2017, un evento que la rompió!!

#NETRAF2017, un evento que la rompió!!

Buenas!

Les comento que tuve la suerte de participar como speaker en el #NETRAF2017, un evento de tecnologías .NET que se hizo en la ciudad de Rafaela el pasado sábado 20 de mayo. Un lujo todos los speakers de primer nivel que participaron, tanto de la ciudad como a nivel nacional.

En el mismo participé con dos charlas:

La plataforma .NET en el 2017:

En estos últimos tiempos ha habido varios cambios en la plataforma, por lo que es interesante hacer una revisión de dónde estamos parados como desarrolladores y qué alternativas tenemos disponibles. Por ello hice un repaso en general del estado actual de la plataforma y sus particularidades.

Las diapositivas utilizadas son las siguientes:

Chat multiplataforma con reconocimiento de voz:

A modo de cierre del evento, con Ezequiel aplicamos distintos conceptos que se vieron en el evento para desarrollar un chat multiplataforma (sitio web, app Android y app iOS). Para ello, utilizamos las siguientes tecnologías / plataformas:

Seguir leyendo “#NETRAF2017, un evento que la rompió!!”

Azure Functions: Azure Bootcamp 2017 en Corrientes

Azure Functions: Azure Bootcamp 2017 en Corrientes

Buenas!

El pasado sábado tuve la suerte de poder participar del Azure Bootcamp 2017 en Corrientes junto con Sebastián Henzenn. En el mismo estuvimos dando una charla sobre Azure Functions, una de las nuevas funcionalidades que ofrece Azure.

Los temas que tratamos sobre esta funcionalidad son los siguientes:

  • Definición de Azure Functions
  • Ejemplo de aplicación
  • Debug en Visual Studio 2017 (para funciones en C#)
  • Deployment continuo de las Azure Functions

 

El link del repositorio donde está el código y documentación adicional es el siguiente: https://github.com/diegobersano/bootcamp-corrientes

 

Además de las diapositivas en cuestión que expusimos:

 

Finalmente agradecer y felicitar a José Fernandez por la invitación y por la gran organización que llevaron adelante, un lujo haber podido participar!

AppHarbor y Azure: Alternativas para publicar aplicaciones en la nube de forma gratuita

Muchas veces como desarrolladores queremos publicar nuestras aplicaciones, de forma que podamos mostrar el resultado parcial, o que sea utilizada por usuarios finales. Ante esto puedo recomendarles dos alternativas gratuitas muy interesantes: AppHarbor y Windows Azure. Veamos cada una en detalle:

AppHarbor:

AppHarbor se ofrece bajo la arquitectura PaaS, y nos permite correr aplicaciones ASP.NET en la nube. De forma sencilla podremos crear nuestras aplicaciones e integrarlas al repositorio de control de código fuente correspondiente.

Uno de los aspectos característicos que tiene en su funcionamiento son los Add-ons. Por ejemplo, si queremos agregar un motor de base de datos a nuestra aplicación, el mismo será un Add-on. Hay una gran variedad de opciones de Add-ons, y dependiendo de las necesidades que tengamos habrá distintos planes comenzando desde opciones gratuitas hasta algunas pagas con características destacadas.

PublicacionGratuita - AppHarbor
Pantalla de administración de nuestra aplicación en AppHarbor

Seguir leyendo “AppHarbor y Azure: Alternativas para publicar aplicaciones en la nube de forma gratuita”

[Microsoft-Dev-Blog] Azure Web Sites: Usar slots para hacer deploys en forma instantánea

Buenas, como es costumbre les comparto el post que escribí en el blog Microsoft-Dev-Blog.

En el mismo vemos en detalle dos funcionalidades muy interesantes de los sitios web de Azure: Slots y Swap. La verdad es que a medida que iba escribiendo el post me iba sorprendiendo por el funcionamiento que tenía y las soluciones que nos puede llegar a ofrecer.

La idea de los Slots es poder manejar más de un ambiente por sitio web, logrando una organización adecuada.

A su vez, podemos intercambiar el contenido de los slots a través de un Swap. Esto realiza un intercambio en el ruteo de los sitios, permitiendo por ejemplo poner una nueva versión productiva de nuestra aplicación de forma instantánea y sin cortes, a diferencia de los deploys clásicos donde la aplicación puede estar varios minutos abajo – créanme que realmente es así 😉 -.

Una de las nuevas funcionalidades que nos brindan actualmente los sitios web de Azure es crear distintos slots sobre el mismo. Cuando creamos nuestro sitio web en Azure, el mismo será el que ejecute la aplicación final de usuario (lo que normalmente llamamos el sitio de producción).

Si queremos tener mayor cantidad de ambientes sobre el mismo sitio, en el cual podamos realizar pruebas sin modificar la aplicación final de usuario, contamos con la posibilidad de crear distintos slots para cada uno de estos ambientes. De esta forma se produce una equivalencia slot-ambiente, para el cual tendremos tantos como nos sea necesarios; cuanto más compleja sea nuestra aplicación, más slots necesitaremos para su correcta gestión. Azure nos brinda hasta un máximo de 4 slots por sitio web.

A su vez, al tener slots sobre un determinado sitio podremos hacer “Swap” entre ellos. Esta funcionalidad es la clave del planteo de los slots, ya que nos permite realizar un intercambio directo los distintos ambientes de nuestra aplicación sin ningún corte para los usuarios. Sin dudas que esto es algo muy bueno. Dependiendo del tipo de aplicación y los usuarios que tengamos puede resultar muy difícil (y a veces costoso en el impacto que tiene) dar de baja temporalmente nuestra aplicación para realizar una actualización.

Pero, ¿cual es la diferencia entre el Swap y un deploy o publicación tradicional que nos da esta ventaja? La clave está que no Swap no se realizan copias de ningún archivo, que es lo que genera el corte en el uso de la aplicación y la demora, sino que se realiza intercambiando el ruteo en el acceso de los sitios entre los que hagamos Swap, invirtiéndolos. Esto a su vez nos da otra gran ventaja: al realizar el intercambio y poner un slot productivo (por mencionar un caso de ejemplo), en el slot de origen nos queda el sitio que anteriormente estaba en producción, teniéndolo disponible para hacer una vuelta atrás en caso de ser necesaria, con la misma facilidad y sin impacto para el usuario.

Leer el post completo..

[Microsoft-Dev-Blog] Azure Web Sites: Configurar integración continua

Buenas, como es costumbre les comparto el post que escribí en el blog Microsoft-Dev-Blog.

En el mismo repasamos como configurar la integración continua en nuestros sitios web de Azure, enlazando nuestros repositorios de control de código fuente. De esta forma ante cada nuevo “Commit” o “Push” (dependiendo del tipo de repositorio que usemos) se sincronizarán los cambios, se realizará la compilación y ejecución de tests (en caso de que existiesen). Si todo esto es correcto, el resultado se publica en nuestro sitio.

La verdad que da una gran flexibilidad ya que podemos configurar casi cualquier tipo de repositorio, y como funcionalidad es muy útil para los equipos de desarrollo..

Como vimos en el post anterior, el uso del servicio sitios web de Azure nos brinda muchas funcionalidades interesantes. Una de ellas es la publicación automática a partir de los cambios en los repositorios de código fuente, o en otras palabras integración continua. Según el artículo Continuous Integration de Martín Fowler, podemos definir la integración continua de la siguiente forma:

La integración continua es una práctica del desarrollo de software, donde los miembros de un equipo integran su trabajo frecuentemente, dando lugar a múltiples integraciones por día. Por cada integración se realiza una compilación automática (incluyendo la verificación de los tests asociados) para detectar errores de integración lo más rápido posible. Muchos equipos coinciden en que este enfoque conduce a una reducción significativa de los problemas de integración y permite que un equipo pueda desarrollar software coherente con mayor rapidez.

Este enfoque, el cual está muy relacionado con las metodologías ágiles, es relativamente sencillo de comprender: la idea es continuamente integrar y encontrar fallas los más pronto posible, además de estar respaldados en un conjunto de pruebas que se ejecutarán en cada integración para garantizar el correcto funcionamiento. A su vez cada miembro del equipo sube al repositorio de código fuente de manera frecuente. Esto permite una “comunicación” más fluida entre el equipo y una reducción de los errores y su impacto.

Después de esta introducción vayamos a la práctica: cómo lo aplicamos en nuestros sitios web de Azure?

Leer el post completo..

[Microsoft-Dev-Blog] Azure Web Sites: Crear aplicaciones web en la nube

Les comparto este post que escribí en el blog Microsoft-Dev-Blog.

En el mismo vemos como podemos crear nuestras aplicaciones web en la nube con Azure, de forma sencilla y rápida, con un alto grado de personalización/configuración y soporte a múltiples plataformas.

Y un dato no menor, al crear una cuenta de Azure tendremos disponibles 10 sitios web con el plan Gratis, de forma que podemos realizar varias pruebas o algunas pequeñas aplicaciones totalmente gratuitas..

Luego de ver varios aspectos introductorios, estamos en condiciones de ver las alternativas de servicios que nos brinda Azure con mayor detalle.

El primer servicio que vamos a ver en este blog son los sitios web, tal vez uno de los servicios más simples de usar y administrar. Un sitio web de Azure es una plataforma escalable, segura y flexible para implementar nuestras cualquier aplicación web, ya sea un sitio sencillo como un blog o una compleja plataforma de e-commerce (por poner solo unos ejemplos).

La principal característica que tiene este servicio es la facilidad de uso que nos plantea en distintas formas. En primer medida, nos brinda una interfaz clara y simple para realizar la creación de nuestras aplicaciones. Con solo un par de clicks podremos tener nuestro sitio configurado y funcionando según nuestras necesidades.

SitiosWeb - Portada
Claves de los sitios web de Azure: ejecución de aplicaciones en diversos lenguajes, rapidez para lograr nuestro sitio funcional e integración completa.

Leer el post completo..

 

[Microsoft-Dev-Blog] Arquitecturas disponibles en la nube: IaaS, PaaS y SaaS

Les comparto este post que escribí en el blog Microsoft-Dev-Blog.

En este post mencionamos cuales son las arquitecturas disponibles en la nube y sus características, destacando cual es apropiada para cada fin.

Generalmente cuando creamos una aplicación debemos encargarnos de realizar todos los aspectos de soporte necesarios para que la misma se ejecute de forma apropiada. Sin duda que esta situación en muchos casos no es lo ideal, debido a que nos estaremos sobrecargando con muchas tareas administrativas en las cuales generalmente no somos especialistas. De esta forma reduciremos en forma potencial el éxito y correcto funcionamiento de nuestra aplicación

La situación mencionada se refleja claramente en un esquema como el siguiente:

ArquitecturaNube - EsquemaTradicional
Esquema tradicional

Como se ve claramente en la imagen, debemos ocuparnos de diversos aspectos asociados a tener nuestra aplicación en ejecución, como lo son el mantenimiento de la red, sistema operativo o el framework necesario para que nuestra aplicación desempeñarse de forma apropiada.

La computación en la nube viene a romper este esquema básico, brindándonos muchas más alternativas. Si hay algo por lo que se caracteriza la computación en la nube es por brindarnos la flexibilidad necesaria para poder resolver las necesidades particulares que tengamos. Desde el punto de vista arquitectónico, esta flexibilidad se ve reflejada en las siguientes alternativas:

Leer el post completo..

[Microsoft-Dev-Blog] Patrones de uso en la nube

Les comparto el post de @sebis en nuestro blog Microsoft-Dev-Blog. En el mismo hace una revisión de los patrones de uso comunes en la nube, para los cuales Azure es una alternativa interesante:

Generalmente cuando hablamos de escenarios de cloud computing, lo hacemos refiriéndonos a una solución de una problemática particular. Estas problemáticas pueden ir desde la falta de recursos, de nuestro proveedor, para escalar nuestras aplicaciones hasta un esquema donde contratamos recursos que por momentos desperdiciamos.

Veamos a continuación los patrones de usos con los que nos encontramos habitualmente y que Azure nos ayuda a resolver:

  • Encendido y Apagado (Ond And Off)
  • Rápido Crecimiento (Growing Fast)
  • Aumento Impredecible (Unpredictable Bursting)
  • Aumento Predecible (Predictable Bursting)

Encendido y Apagado:

PatronesUso - OnAndOff

Como su nombre lo indica, corresponde a los casos en los que los servicios deben estar en ciertos momentos encendidos y en otros apagado. Esto refleja soluciones en las que es necesaria una carga de trabajo intermitente. Un ejemplo de esto sería una campaña de marketing, la cual se activa en determinados momentos.

La gran ventaja de este patrón es que evita desperdiciar recursos (y el costo de los mismos) cuando no los estamos usando.

Leer el post completo..

Microsoft-Dev-Blog: Nuevo blog de .Net

Les comento que estoy participando en un nuevo blog de .Net realizado en forma conjunta con mi amigo y colega @sebis, denominado Microsoft-Dev-Blog. Si bien hace bastante tiempo que veníamos con la idea, recién ahora nos pudimos hacer un poco de tiempo para realizarlo..

Como bien expresó @sebis en el primer post del blog, la idea del mismo es compartir conocimientos, experiencias y novedades sobre distintas tecnologías .Net, haciendo foco especial en Azure. Sin dudas que el desarrollo de aplicaciones ha ido cambiando a lo largo del tiempo, siendo necesario estar al tanto de dichos cambios. Personalmente creo que conocer las funcionalidades que nos ofrece Azure nos da un importante valor agregado para poder brindar soluciones efectivas, siendo a día de hoy una plataforma sólida, abierta y flexible, que permite dar soluciones efectivas a las más diversas necesidades de distintos tipos de empresas.

A modo introductorio, les dejo un resumen y link de los dos primeros post:

Qué es Azure?

Cuando nos hablan de Azure por primera vez, pensamos en “la nube” y no mucho mas que eso. Algunos se la imaginaran como una especie de “super-hosting” o “mega-red” de Microsoft o pensaran en algo similar a los servicios cloud de Amazon. Algo de eso hay, sin embargo vamos a ver que se trata de mucho más que eso.

Leer más..

 

Qué nos ofrece Azure?

Azure nos da posibilidades para poder hacer muchísimas cosas, siendo una plataforma flexible, abierta y sólida. Con su oferta de servicios podemos implementar aplicaciones de muy diversos tipos, o incluso armar esquemas híbridos en donde parte de nuestra aplicación este en la nube (utilizando alguna funcionalidad particular que ofrece Azure) y otra esté en los servidores propios. Las posibilidades son casi ilimitadas!!

Empecemos por ver los servicios disponibles en Azure (al día de la fecha). De forma general, los podemos agrupar en las siguientes 4 categorías:

  • Compute services
  • Network services
  • Data services
  • App services

Leer más..

Espero que disfruten este nuevo blog tanto como yo disfruto en hacerlo, y que sobre todo sigamos aprendiendo en conjunto.

Gracias por leer!!