Thursday, January 27, 2011

Blog Post: Entrevista MSDN: Una nube en desarrollo

imageComo en cada edici�n, este mes MSDN Flash ha publicado una entrevista a un profesional destacado: Carlos Guevara. Carlos cuenta con m�s de 14 a�os dedicados a la programaci�n Web, desarrollando para importantes empresas de la regi�n, y es adem�s un activo expositor en eventos Microsoft. Con cada vez m�s compa��as trabajando en la nube, compartimos en este espacio sus puntos de vista:

 

  • MSDN Flash: Se multiplican las organizaciones que utilizan aplicaciones y servicios en la nube �Qu� prestaciones le pedir�as a una plataforma cloud para montar all� tus aplicaciones?

Carlos Guevara: Como todo, a nivel de tecnolog�a en el mundo de hoy, los requerimientos y prestaciones que uno espera de una plataforma computacional dependen mucho de las caracter�sticas de la soluci�n a desarrollar, as� que posiblemente no exista una respuesta totalmente correcta o que aplique a todas las necesidades de los departamentos de IT de nuestra regi�n. Aun as�, hay m�ltiples consideraciones que deber�an tomarse en cuenta siempre, y yo normalmente las agrupo en cuatro categor�as diferentes que ser�an las Caracter�sticas de la plataforma en la nube, Los Niveles de Servicio y Respuesta que se ofrecen, la localizaci�n de los recursos y el Costo Beneficio de los mismos.

Posiblemente la m�s cambiante de estas categor�as es la de Caracter�sticas, por lo r�pido que se mueve la tecnolog�a en estos momentos, y por lo variado de las necesidades de los diferentes clientes. En mi experiencia algunas de estas caracter�sticas que son de suma importancia incluyen: la facilidad de desarrollar para esa plataforma, la facilidad de administraci�n y delegaci�n de los aspectos de configuraci�n de la misma, la capacidad de integraci�n a los componentes de mi infraestructura y aplicaciones de legado ? como lo son mecanismos de autenticaci�n y seguridad, y la integraci�n y exposici�n de servicios desde y hacia aplicaciones existentes internas y externas entre otras cosas.

Obviamente cuando se contratan servicios de computaci�n en la nube, uno de los principales beneficios es la garant�a de escalabilidad y disponibilidad de nuestras aplicaciones hospedadas all�, por lo que el SLA o Acuerdo de Niveles de Servicio/Respuesta, es un factor de extrema importancia. Estos acuerdos deben verse minuciosamente y deben tomarse muy en cuenta a la hora de escoger un proveedor.

Otro tema que muchas personas no toman en consideraci�n, es el lugar final donde van a residir las aplicaciones. El proveedor de servicios debe identificar sus centros de operaciones, ya que muchas veces por temas legales, o temas de accesibilidad de la informaci�n, el cliente debe poder tener opciones para escoger d�nde deben residir sus datos o aplicaciones y en cuantos lugares deben poder replicarse los mismo.

Por �ltimo, el costo siempre es un factor determinante. Especialmente cuando consideramos que uno de los m�s grandes beneficios de la computaci�n en la nube es el de poder controlar de la forma m�s granular el costo de nuestras operaciones. Mientras m�s granular sea el manejo del costo, y m�s f�cil y r�pido sea el cambiar la configuraci�n de nuestro esquema en cuanto a instancias, tama�o de las mismas y dem�s, mejor ser� el costo beneficio de la misma.

 

  • MSDN Flash: �En qu� casos prefieres la infraestructura como servicio (IAAS) y en cu�les la plataforma (PAAS)?

CG: Este tema en realidad pareciera muy subjetivo, pero en realidad depende mucho del motivo por el cual una empresa espec�fica escoge utilizar la nube para manejar sus operaciones tecnol�gicas. Normalmente yo explico la diferencia entre IAAS y PAAS como la diferencia entre un programador de C++ y uno de .NET. El programador de C++ escoge ese lenguaje porque quiere acceso directo a la infraestructura, porque no quiere que se instalen componentes o librer�as que no le sirvan a �l y prefiere ese nivel de control para garantizar que su aplicaci�n rinde al m�ximo para su requerimiento, aunque sabe que va a tener que trabajar mucho m�s para lograr su cometido. El programador de .NET est� consciente que utiliza controles y objetos pre-hechos, que est�n orientados a dar el mejor beneficio para la mayor�a de los usuarios, pero no necesariamente optimizados a su soluci�n misma, pero esto no afecta en gran manera sus necesidades.

IAAS es un esquema de computaci�n en la nube que para algunos departamentos de IT parecer� m�s natural. Mantendr�n absoluto control de lo que se instale en sus servidores y de su manejo. Pero este nivel de control implica que no se puede reducir en gran manera la carga a su departamento de IT. El principal objetivo es reducir la cantidad de compras y facilitar los mecanismos de procuradur�a para poder crecer m�s r�pidamente, pero cada uno de estos ?crecimientos? va a implicar un alto nivel de trabajo, pruebas, etc.

Los usuarios que escojan PAAS cuentan con una soluci�n que elimina grandemente los dolores de cabeza de crecimiento. La aplicaci�n puede crecer sin gran esfuerzo por parte del departamento de infraestructura de tecnolog�a de la empresa. La escalabilidad es m�s r�pida, m�s fluida y m�s confiable.

Normalmente yo recomiendo IAAS solo para empresas que necesitan un alto nivel de control, como empresas de desarrollo de software, especialmente las que trabajan en construir aplicaciones tipo SAAS (Software as a Service) y que necesitan mucho control sobre funcionamientos espec�ficos de la infraestructura. Tambi�n se recomienda para empresas que tengan requerimientos de legado muy espec�ficos, que no est�n provistos en las soluciones PAAS normales, pero en ambos casos, es mi experiencia que son muy pocas empresas las que requieren tomar esta decisi�n.

 

  • MSDN Flash: �Qu� herramientas recomiendas para desarrollar pensando en la nube?

CG: Existen numerosas herramientas, y en mucho dependen de tu plataforma de desarrollo favorita y el esquema de arquitectura en la nube o proveedor seleccionado. Existe una soluci�n open source llamada Cloud Tools que es muy recomendada especialmente para ciertos tipos de aplicaciones en JAVA y que funciona muy bien con Amazon Elastic Compute Cloud (Amazon EC2), y Google tiene un SDK muy poderoso, aunque un poquito complejo para su soluci�n de computaci�n en la nube.

Claro que yo estoy mucho m�s parcializado a las soluciones de Microsoft, pues Visual Studio 2008 y 2010 tienen excelentes caracter�sticas para desarrollar soluciones a la nube y en particular hacia Windows Azure. Estas hacen que la programaci�n sea mucho m�s din�mica y f�cil de implementar.

Y para los que quieren empezar a programar hacia AZURE, Microsoft tiene una soluci�n llamada WebMatrix que mediante plantillas y wizards o asistentes, ayuda a crear diferentes tipos de proyectos que se pueden hospedar ya sea localmente o en Windows Azure. En realidad los ejemplos documentaci�n y soluciones que provee WebMatrix son sumamente �tiles, pr�cticos y educativos para los que est�n aprendiendo o los que quieren soluciones r�pidamente.

 

  • MSDN Flash: A partir de la experiencia, �hay conceptos de desarrollo que no aplican para la nube?

CG: Al ponderar esta pregunta, inmediatamente vino a mi mente lo mucho que ha avanzado la tecnolog�a de computaci�n en la nube en los �ltimos tres a�os. En ese momento hubiera podido contestar con numerosos ejemplos por la falta de integraci�n de mecanismos de autenticaci�n como Active Directory, o integraci�n con modelos de arquitecturas distribuidas, que se hac�an imposibles de manejar en la nube.

Pero las empresas y en particular Microsoft han avanzado mucho, muy r�pidamente. El hecho que Microsoft haya dedicado los �ltimos dos PDCs (Professional Developer Conference) a mejoras en Windows Azure como AppFabric, han avanzado tanto la capacidad de su plataforma que no puedo considerar una soluci�n que no sea posible hacer en la nube.

El �nico factor determinante ser�an aplicaciones de legado muy antiguas que no pudieran conectarse a sistemas en la nube.

 

  • MSDN Flash: �Cu�les son las prestaciones de Windows Azure y SQL Azure que m�s ayudan a los desarrolladores?

CG: Uno de los puntos m�s interesantes para m� acerca de Azure es su CDN (Content Delivery Network), lo cual permite que aunque mi aplicaci�n est� hospedada en la regi�n Noreste de Estados Unidos, por ejemplo, existan mecanismos para hacer CACHE DIN�MICO de datos e informaci�n de mi aplicaci�n en m�ltiples lugares alrededor del mundo, para garantizar disponibilidad y tiempo de respuesta de la aplicaci�n hospedada.

Adicionalmente, AppFabric es una de las caracter�sticas que como desarrollador m�s me orientan a escoger las soluciones de Windows Azure, pues es el ?MiddleWare? ideal para facilitar la interconexi�n de aplicativos, servicios e infraestructura como Active Directory (ADFS) a nuestras aplicaciones. AppFabric reduce la complejidad de aplicativos interconectados como nada que yo haya visto anteriormente.

Por �ltimo, la interoperabilidad de AZURE hacia productos y plataformas de m�ltiples proveedores brinda un gran valor y beneficio al desarrollador. Poder contar con optimizaciones no solo para Visual Studio y las plataformas .NET, sino tambi�n para aplicaciones en JAVA y PHP entre otras, y que todas convivan como aplicaciones nativas y de primer mundo en la plataforma es incre�blemente valioso, y m�s cuando no es necesario una gran cantidad de esfuerzo para que estos componentes se hablen entre s�.

Tatiana Zavialova Tila Tequila Tamie Sheffield Kelly Monaco Gisele Bündchen

No comments:

Post a Comment