lunes, octubre 27, 2008
|
Microsoft acaba de entrar oficialmente al mercado de Cloud Computing (o "Computación en la Nube") al anunciar su Azure Services Platform, un conjunto de herramientas que será parte de Windows 7, pero que los desarrolladores ya pueden empezar a utilizar desde ahora.
Desde ya muchos dentro y fuera de Microsoft llaman a este iniciativa "Windows Azure". Con Azure, desarrolladores de software que utilicen tecnologías como el Microsoft .NET Framework y Visual Studio podrán (al menos en teoría) crear aplicaciones que escalan "en la nube" de servidores de Windows de manera natural, básicamente ofreciendo una alternativa a soluciones como el Google Compute Engine o el Amazon Elastic Compute Cloud (Amazon EC2). Para los que no están al tanto, Cloud Computing es una técnica que permite tratar a decenas, miles o millones de máquinas en Internet como si fueran una sola (de ahí el término "nube", ya que por lo general uno representa todas las máquinas en Internet como una "nube" en diagramas de presentaciones), con el objetivo de poder (1) escalar la aplicación a altas demandas de usuario, (2) hacer las aplicaciones mas resistentes a fallas, y (3) bajo algunos escenarios disminuir costos. El problema es que por lo general programar para este tipo de sistemas conlleva aprender nuevas formas de hacer las cosas, muchas de las cuales no son triviales y que requieren planeamiento previo de la arquitectura de tu aplicación. Sin embargo, tanto Google y Amazon, y ahora Microsoft, todos prometen aliviar la ruta del aprendizaje y de llevar soluciones prácticas al mercado con sus distintas implementaciones. ¿Pero qué exactamente es Azure? Primeramente hay tres aspectos distintos de Azure que he podido discernir leyendo la documentación hasta ahora proveída por Microsoft. 1. Azure es en sí mismo un nuevo sistema operativo de Microsoft, y no simplemente un servicio que ejecutará "sobre" Windows 7 y futuras versiones de Windows. Piensen de Azure como "Windows Distribuido por Internet", en donde los servicios a los que te tienes acceso por parte de Azure no son locales, sino que existen "en la nube de Internet", y que accedes a ellos gracias a unos APIs (interfaces de programación). A esto es que Microsoft se refiere por "Windows Azure". 2. Azure es además una "nube de servidores", sobre los cuales ejecutan aplicaciones diseñadas específicamente para Azure. Esto significa (al menos que Microsoft aclare estoy diga lo contrario) que nadie en realidad podrá "comprar" Azure para instalar localmente, sino que Microsoft será quien proveerá una mega-granja de servidores que proveerán los servicios de Azure y los espacios virtuales en donde se instalarán aplicaciones de Azure. Esto es muy similar a lo que hace Google y Amazon hoy día. 3. Azure es además un entorno de desarrollo, herramientas y APIs que utilizas para desarrollar aplicaciones compatibles con Azure, y que pruebas en el ambiente de Azure. No se todavía si Microsoft proveerá algún tipo de "emulador local" como lo hace Google con su Compute Engine para que los desarrolladores puedan desarrollar y probar localmente sin tener que subirlo todo a Internet primero antes de probar. Algo interesante es que podrás acceder a servicios de Azure no solo desde aplicaciones .Net, sino que además desde Java y Ruby, aunque conociendo el historial de Microsoft no les tengo confianza en que después de un par de ellos decidan solo soportar a .Net (como hicieron con Java anteriormente). Noten sin embargo que si deseas crear servicios (es decir, programas que funcionen dentro de Azure), que tu única opción de programación es .Net. Si todo esto les suena familiar, es porque es precisamente lo que describí Microsoft debería hacer si quería mantenerse relevante en la Era Internet, con la única diferencia siendo que cuando escribí sobre esto hace unos meses atrás no tenía un nombre y lo llamé "Windows X". Noten que aun falta mucho por aprender sobre Windows Azure, pero sí hay algunas cosas que puedo decir al respecto. Primero, esta es una excelente movida por parte de Microsoft, ya que por primera vez en una década le ofrece a los programadores leales de sus sistemas operativos algo nuevo y refrescante, y verdaderamente poderoso e innovador. No duden que Azure será exitoso, aun si Microsoft no lograra atraer a nadie mas que un cierto porcentaje de los programadores de Windows que ya posee. Sin embargo, con esto viene un precio, y es que quien sea que diseñe para Azure (y a cierto grado se podría decir algo similar sobre el Google App Engine y el Amazon EC2) estaría básicamente vendiéndole su alma a Microsoft, ya que no solo tendría Microsoft control total sobre tu aplicación, sino que además sobre temas como su rendimiento, almacenamiento, versionamiento, lenguajes, APIs, y ejecutables. En otras palabras, estarías intercambiando flexibilidad en escalabilidad y confiabilidad de tus aplicaciones, por atarte mas fuerte que una soldadura de acero al mundo Microsoft. Noten sin embargo, que sea como sea, Cloud Computing está aquí para quedarse, y será exitoso de una manera u otra. En mi opinión lo que necesitamos ahora es un grupo de estándares que empresas como Google, Microsoft y Amazon sigan, o sino una verdadera alternativa de la comunidad del Software Libre, que sea adoptada al menos por los grandes alojadores de websites de Internet, haciendo la plataforma mas abierta y libre para todos. Por ahora sin embargo, con todas las dudas aun por responder sobre Windows Azure, mi punto de vista es que Microsoft va por un muy buen camino con esto... Nota a los mas técnicos: Para que tengan una idea de lo que se sentiría programar con Azure, la idea es similar a programar con Servicios Web, en donde por ejemplo si tu aplicación requiere de enviar emails, lo que obtienes es un API que te da un interfaz que utilizas para hacer llamadas remotas a un servicio "en la nube" que envía emails. Específicamente, Azure implementa interfaces remotos con SOAP y REST, por lo que en teoría podrías acceder a sus servicios desde cualquier entorno de programación que soporte estas tecnologías. En el mundo Azure, no tienes idea de cómo funcionan estos servicios, simplemente llamas los métodos necesarios con los parámetros acordados, y mágicamente (por ejemplo) los emails son enviados, aun en grandes cantidades, tomando Azure los millones de emails que haya que mandar y distribuyendo la carga sobre su fábrica de servidores. Similarmente, así mismo almacenarías datos; simplemente llamas métodos que guardan objetos, pero tu ni idea tienes en donde en realidad son almacenados esos objetos, lo único que te interesa es que los puedas volver a leer, y hacer todo esto con baja latencia por Internet. Así, poco a poco, construyes una aplicación que reside distribuida por toda la fábrica de servidores de Windows Azure, en donde en vez de hacer llamadas locales lo que haces es hacer llamadas genéricas que son automáticamente distribuidas por Internet según la potencia requerida. Noten además que Microsoft piensa implementar todos sus servicios de Internet sobre Azure, como Live Hotmail, Live Messenger, etc, por lo que también tendrás acceso programático a tales servicios desde tus aplicaciones, lo que estará genial, ya que por ejemplo podrás crear aplicaciones que están conscientes de tu identidad en el mundo "Live" de Microsoft, y tener acceso a tu agenda de contactos, a tus emails, crear sesiones de chat, etc, todo bajo tu control. Página oficial de Azure Página de descarga de los SDKs para programar con Azure autor: josé elías |
7 comentarios |
Windows / Microsoft |
Comentarios
Añadir Comentario |
"Interesante en extremo..!
Sería fascinante poder compartir tu consciencia de esa forma con otra persona.."
Sería fascinante poder compartir tu consciencia de esa forma con otra persona.."
en camino a la singularidad...
©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
hay Elias, Elias Elias.......
......"Sin embargo, con esto viene un precio, y es que quien sea que diseñe para Azure (y a cierto grado se podría decir algo similar sobre el Google App Engine y el Amazon EC2) estaría básicamente vendiéndole su alma a Microsoft, ya que no solo tendría Microsoft control total sobre tu aplicación, sino que además sobre temas como su rendimiento, almacenamiento, versionamiento, lenguajes, APIs, y ejecutables.
En otras palabras, estarías intercambiando flexibilidad en escalabilidad y confiabilidad de tus aplicaciones, por atarte mas fuerte que una soldadura de acero al mundo Microsoft....."
Por que no pusiste esto cuando, Hablaste sobre Google, Amazon, o sobre la herramienta de desarrollo de Apple...
Nunca he visto a alguien tan frustrado con Una compania como TU, que paso no pudiste trabjar ahi....
en fin
Yo....