miércoles, septiembre 09, 2009

Cloud Computing I


“The cloud is a virtualization of resources that maintains and
manages itself” Kevin Harting




Entre las nuevas tendencias en IT surge un nuevo paradigma para implementar aplicaciones
empresariales y servicios que difiere del conocido datacenter centralizado donde tenemos todas nuestras aplicaciones, bases de datos, servidores de email, de archivos etc.
Aprovechando las ventajas provistas por las mejoras en las redes de datos, virtualización, sistemas de almacenamiento entre otros este nuevo paradigma nos permite implementar aplicaciones dentro de una infraestructura no centralizada y compartida, básicamente está es la filosofía de cloud computing.
En este artículo veremos los conceptos básicos de este paradigma, describiremos aplicaciones y servicios provistos por los mayores proveedores de software y aspectos relacionados con los pros y contras de implementar en la nube aplicaciones empresariales.

¿Que es cloud computing?

“..moving computing and data away from the desktop and the portable PC and simple displaying the results of computing that take place in a centralized location and is then transmitted via the Internet on the user’s screen” John Markoff

Probablemente el término “cloud” surge de la representación que se hace a Internet en los diagramas de redes.
Conceptualmente cloud computing proporciona un nivel alto de abstracción de la nube en donde los desarrolladores y administrador implementan aplicaciones utilizando frameworks y herramientas que los abstrae de la implementación física como puede ser detalles de routers, servidores, unidades de almacenamiento etc.
Por lo tanto el usuario del servicio no necesita preocuparse de cómo se implementa esas tecnologías y como se mantienen. Solo se preocupa de como acceder a sus aplicaciones desde cualquier lado y su nivel de disponibilidad para satisfacer los requisitos de las aplicaciones.
En realidad con cloud computing se puede acceder a funciones y servicios con necesidades de cambios dinámicos.
Los frameworks que se utilizan en la nube deben proveer los siguientes mecanismos:

- Automonitoreo
- Registración y descubrimiento de recursos.
- Definición de acuerdos de nivel de servicio SLA.
- Reconfiguración automática.

Desde el punto de vista del usuario en la nube los recursos están virtualizados y se mantienen y administran por si mismos.

Mitos sobre la nube

Cloud computing no es grid computing, unit computing ni software-as-services SaaS,
pero estos paradigmas pueden utiliza una red en la nube como forma de implementarlos
El cloud no solamente es un cambio tecnológico sino también de negocio tanto para
los clientes que la utilicen como los proveedores de software e infraestructura tecnológica.
Gartner publicó los 8 mitos más comunes con respecto a cloud computing

Mito 1: Cloud computing es un infraestructura o una arquitectura.
Mito 2: Cada suministrador tendrá una nube diferente.
Mito 3: SaaS es la nube.
Mito 4: Cloud computing es una nueva revolución.
Mito 5: Toda los sistemas remotos son Cloud computing.
Mito 6: Internet y la Web con la nube.
Mito 7: Todo estará en la nube.
Mito 8: Cloud computing elimina las redes privadas.

Soluciones implementadas

Existen varios proveedores que ya poseen sistemas implementados en la nube y que están disponibles para ser utilizados en forma gratuita o mediante el pago de un costo según las caracteristicas suministradas.
Ejemplo de ellos son los servicios de Amazon mediante salesforce.com, LiveMesh de Microsoft o Moozy de EMC para compartir recursos, App Engine de Google o Blue Cloud de IBM son algunas de las aternativas disponibles. Para mayor detalle ver referencias.
La NASA tiene disponible "NEBULA Cloud computing platform", que son servicios basados en Cloud Computing que provee componenetes open sources y sistemas self-services.

Conclusiones

Cloud computing es el resultado de la evolución de la tecnología aplicada a la implementación de infraestructura hardware y estándares abiertos para interoperar sistemas.
Sobre la nube se pueden implementar servicios como software-as-service que son productos software expuestos en la nube como servicios como por ejemplo Google Docs o Microsoft Office Online, platform-as-service como por ejemplo los sistemas multi-petabyte de EMC Atmos o SimpleDB de Amazon.
Otro aspecto importante es el cambio en el modelo licenciamiento pasando de un sistema de compra o alquiler de la infraestructura a pago por uso.
Grandes proveedores como Micrososft, Google, Amazon, IBM, HP, Citrix o EMC entre otros ofrecen servicios en la nube, con carácteristicas muy variadas.
Por lo tanto es importante considerar a la hora de utilizar servicios en la nube los aspectos de seguridad, privacidad, disponibilidad, fiabilidad y cumplimiento de estádares aplicables a sistemas implementados en la infraestructura dentro de la compañía.

Con appistry http://www.appistry.com/ se pueden generar redes Cloud Computing locales.

Referencias

IBM Blue Cloud
http://www.deitel.com/ResourceCenters/Programming/CloudComputing/CloudComputingIBMsBlueCloud/tabid/3063/Default.aspx

Microsoft Cloud Computing Tools
http://msdn.microsoft.com/en-us/vstudio/cc972640.aspx

Amazon Cloud Services
http://aws.amazon.com/products/

EMC Cloud Optimized Storage
http://www.emc.com/products/category/subcategory/cloud-optimized-storage.htm

Google Cloud App Engine
http://code.google.com/intl/en/appengine/

NEBULA Cloud computing platform
http://nebula.nasa.gov/



¿Es socio del MUG?, www.mug.org.ar

miércoles, septiembre 02, 2009

Interoperability I

Es cada vez más común que los sistemas empresariales actuales tengan que
interactuar entre ellos, con productos implementados dentro de la compañía o con
sistemas implementado en Internet o dentro de otra compañía u organismos
gubernamentales.

En ese contexto existieron muchos protocolos de comunicaciones, desde el manejo
de la comunicación directamente utilizando el protocolo TCP/IP hasta modernos
sistemas de integración modernos donde se maneja seguridad, estabilidad,
fiabilidad, direccionamiento, enrutamiento etc.

Los primero protocolos de comunicaciones estaban diseñados para interconectar
sistemas que corrieran bajo la misma plataforma o lenguaje, de ellos surgió el DCOM
para plataforma Microsoft, CORBA para Java etc. Para el caso de necesitar
interconectar sistemas heterogéneos se debía recurrir e protocolo de bajo nivel como
TCP/IP o RPC, hoy en día se siguen utilizando para comunicarse con versiones
antiguas de algunas plataformas como SAP o Host.

Debido a esta gran torre de Babel de protocolos varios importantes proveedores de
software y hardware como Microsoft, Sun, IBM, Intel, CA, Entrust, BEA, TIBCO entre
otros coordinaron la creación de un estándar de comunicación para interconectar sus
plataformas.

Con el advenimiento del XML como lenguajes para especificar datos y metadatos se
dio un gran avance en el tema, luego se crearon las especificaciones de los XML
WebServices, en sus versiones más básicas se pudo efectuar interconexiones básicas
entre varias plataformas, como por ej .Net de Microsoft con Java de Sun.

Para poder satisfacer requerimientos de interoperabilidad más exigentes se creó el
Organization for the Advancement of Structured Information Standards
OASIS.
OASIS es un consorcio de organismos con el fin de crear estándares abiertos para la
intercomunicación de sistema de información globales.

Con respecto a los webservices se generaron la familia de estándares WS*, que
extienden la especificación original para los webservices otorgando especificaciones
para agregar seguridad, manejo de transacciones, de enrutamiento etc.

En lo que respecta a seguridad se crearon la familia de estándares WS-Security ,
que tiene como objetivos establecer mecanismos de intercambio de mensajes SOAP
en forma segura.

Utilizando protocolo independientes de la plataforma

Una forma de evitar todos los problemas asociados con el marshaling entre
plataformas es utilizar protocolos que sean independientes de ellas.
Luego de un gran esfuerzo de los mayores vendors de software y hardware (Intel,
HP, Sun, IBM, Microsoft, CA etc) se formalizaron una serie de estándares para
manejar un lenguaje común a la hora de interconectar sistemas heterogéneos.

De todos estos estándares lo que nos interesan son los referidos al uso de servicios
web como mecanismo de comunicación.
De este trabajo surgió el
WS-Basic Profile 1.1 que consta de un conjunto de
especificaciones para servicios web no propietarias que agrega clarificaciones,
refinamientos, interpretaciones y ampliaciones de especificaciones que promueven la
interoperabilidad.
Este conjunto está formado por las especificaciones de
WSDL v1.1, UDDI v2 y SOAP
v1.1
.

Conclusión
La correcta integración de plataformas heterogéneas necesita , valga la redundancia
, la correcta integración de los proveedores que las crean, pues son lo que deben
generar herramientas para poder interconectarse con otros sistemas utilizando un
lenguaje común.
Los estándares de OASIS, en especial los WS* son un importante paso en este
sentido

Referencias

Especificación WS-Securiy,
http://docs.oasis-open.org/wss/2004/01/oasis--
200401-wss-soap-message-security-1.0.pdf

World Wide Web Consortium
http://www.w3.org/