¿Cómo crear una aplicación en AppHarbor? – Agregar una base de datos

Siguiendo con el post anterior donde vimos cómo crear una aplicación en AppHarbor, vamos a seguir sobre la misma temática pero enfocándonos en un punto en particular: agregar interacción con una base de datos. Generalmente cuando desarrollamos una aplicación ASP.NET MVC tenemos alguna interacción con bases de datos, independientemente del uso que necesitemos darle.

AppHarbor maneja el concepto de Add-Ons. Los mismos son agregados que podemos incluir en nuestra aplicación, algunos gratuitos y otros de pago. Las bases de datos son uno de los tipos de Add-Ons disponibles, siendo otras opciones dedicadas al monitoreo del sitio (por ejemplo New Relic), gestión de archivos multimedia, envíos de emails, entre otros.

Para gestionar los mismos vamos al portal de administración de nuestra aplicación y seleccionamos la opción “add-on catalog” ubicada en la parte inferior:

AppHarbor - InstalarAddOn
Agregar Add-On

Leer más »

Anuncios

¿Cómo crear una aplicación en AppHarbor? – Explicación inicial

Hace varios meses vimos en un post las alternativas que teníamos para publicar nuestras aplicaciones en la nube de forma gratuita. En este post vamos a ver paso a paso como crear una aplicación en AppHarbor, una de las alternativas disponibles que mencionamos. La idea es hacer varios posts explicando distintos aspectos a tener en cuenta sobre esta herramienta.

Lo primero que vamos a hacer es acceder a AppHarbor. Si nunca lo hemos usado, deberemos crearnos una cuenta, lo cual es muy sencillo. Una vez finalizado esto, iremos a la pestaña “Your Applications” y podremos seleccionar el nombre de la aplicación que queremos crear, además de la zona geográfica en la cual se va a alojar (las opciones son Estados Unidos y Europa).

AppHarbor - CrearSitio
Creación de la aplicación en AppHarbor

Una vez realizada la creación, nos aparecerá el portal de administración de nuestra aplicación donde tenemos todas las opciones de configuración. Además, veremos que ya nos indica las alternativas que tenemos para enlazar nuestro repositorio de control de código fuente.

Leer más »

[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..