arquitectura_de_infraestructura

Upload: edson-correa-poma

Post on 11-Jul-2015

210 views

Category:

Documents


1 download

TRANSCRIPT

Aprenda la disciplina, ejerza el arte y contribuya con sus ideas enwww.ArchitectureJournal.net Recursos que sirven de base

Arquitectura de InfraestructuraArquitecturas de alta disponibilidad para hosting masivo Brindar informtica integral de alta productividad Infraestructuras orientadas a pruebas Perfil del Architecture Journal: Don Ferguson Resolver el dilema de la integracin Ontologa y Taxonoma de los Servicios en una Arquitectura Orientada a Servicios Versionado en SOA

ContenidosPrlogoPor Simon Guest

1 2

Arquitecturas de alta disponibilidad para hosting masivoPor Shaun Hirschman, Mathew Baldwin, Tito Leverette y Michael Johnson

Descubra los secretos para la creacin de infraestructuras de hosting escalables, confiables, seguras y fcil de mantener.

Brindar informtica integral de alta productividadPor Marc Colmes y Simon CoxExplore una solucin tcnica para la creacin de un servicio HPC distribuido, orientado al servicio.

7

Infraestructuras orientadas a pruebasPor Mario CardinalLos equipos de infraestructura tienen la oportunidad de aprender de los equipos de desarrollo el modo de expresar las decisiones de arquitectura utilizando secuencias de comando de prueba.

19

Perfil del Architecture Journal: Don FergusonDon Ferguson es Asociado Tcnico de Microsoft en Plataformas y Estrategia en la dependencia del CTO. Actualcese sobre su carrera y sus pensamientos sobre la arquitectura.

24

Resolver el dilema de la integracinPor Jim WiltAprenda una definicin del dilema de integracin y lo que puede hacer para evitarlo en su entorno.

26

Ontologa y Taxonoma de los Servicios en una Arquitectura Orientada a ServiciosPor Shy CohenLos servicios se pueden obtener en diversas formas y tamaos. Vea un modo de utilizar una ontologa y taxonoma comn para describirlos

30

Versionado en SOAPor Boris LublinskyLa idea de versionado de servicios es simple, pero la implementacin requiere mucha reflexin y planificacin. Aprenda diversos enfoques para permitir esto en su organizacin.

36

Recursos

que sirven de base. www.architecturejournal.net

Fundador Arvindra Sehmi Microsoft Corporation Jefe Editor Simon Guest Microsoft Corporation Consejo Editorial de Microsoft Gianpaolo Carraro John deVadoss Neil Hutson Eugenio Pace Javed Sikander Philip Teale Jon Tobey Editor Comercial Lisa Slouffman Microsoft Corporation Diseo, Impresin y Distribucin: CMP Technology Contract Publishing Chris Harding, Director Gerente Angela Duarte, Gerente de Publicacin Lisa Broscritto, Gerente de Proyecto Kellie Ferris, Directora Corporativa de Servicios Creativos Jimmy Pizzo, Director de Produccin

PrlogoEstimado arquitecto:Bienvenido al Journal 11, cuyo tema es Arquitectura de Infraestructura. Hace algunos aos, uno de mis colegas anteriores, Pat Helland, propuso una analoga de arquitectura llamada Metrpolis. Su planteamiento era crear un paralelo utilizando la arquitectura de construccin y planificacin de una sociedad para dar sentido a los desafos complejos en la arquitectura de software. Una de las cosas que siempre recuerdo de la Metrpolis es que, como arquitectos de TI, por lo general, dedicamos proporcionalmente demasiado tiempo a nuestras propias construcciones. Muchos de nosotros somos culpables de obsesionarnos con la apariencia que tendr nuestra construccin y cmo se desempaar. Sin embargo, como resultado, a veces nos olvidamos de la visin ms global. Por ejemplo, el modo en el que nuestra construccin se adecuar a la ciudad. Para la arquitectura de la construccin, una construccin debe ajustarse a los planos de la ciudad en una cantidad de reas, incluidos los planos de carreteras, utilidades, transporte, etc. Teniendo esto en cuenta para la edicin de nuestro Journal, quera analizar los mismos desafos del modo que se relacionan con nuestra industria. Para encabezar esta edicin, contamos con un grupo de autores, Shaun Hirschman, Matthew Baldwin, Tito Leverette y Michael Jonson, quienes han escrito un artculo sobre arquitecturas de alta disponibilidad para hosting masivo. En este artculo, el grupo comparte aspectos fundamentales para crear una arquitectura de hosting que sea resistente y escalable. A continuacin, tenemos a Marc Colmes y Simon Cox con una nueva visin de HPC que llaman Informtica de Alta Productividad. Marc y Simon han trabajado juntos sobre el anlisis de las consideraciones integrales y de infraestructura para HPC. Sigue Mario Cardinal con un artculo llamado Infraestructuras orientadas a pruebas. Mario es un gran defensor del Desarrollo orientado a Pruebas (TDD, sus siglas en ingls) y en este artculo describe en lneas generales el modo en el que el TDD puede aplicarse al nivel de la infraestructura. Para continuar con la serie de Perfiles del Architecture Journal, para esta edicin tuve la exclusiva oportunidad de reunirme con Don Ferguson y preguntarle lo que significa ser arquitecto. Para quienes no lo saban, Don sola ser Asociado de IBM y Arquitecto Principal en el Grupo de Software de IBM, recientemente antes de unirse a Microsoft. Despus de la entrevista con Don, contina un artculo de Jim Kilt sobre Resolver el dilema de la integracin. Jim comparte algunos de sus desafos de integracin adems de presentarnos un Mapeo en el pozo de la desesperacin! Para completar esta edicin, tenemos dos artculos grandiosos sobre el tema de la Arquitectura Orientada a Servicios (SOA) del mundo real. Comienza Shy Cohen con una ontologa y taxonoma de servicios que puede encontrarse en SOA, varios de los cuales se ajustan bien dentro del espacio de la infraestructura. El ltimo artculo de esta edicin es Versionado en SOA, de Boris Lublinsky. Boris toma un desafo que pueden enfrentar varios arquitectos en la actualidad y analiza mltiples enfoques para el versionado de servicios. Bien, este es todo el contenido que hemos tratado en esta edicin. Espero que estos artculos le ayuden a considerar no slo el tipo de construcciones que prepara para su Metrpolis, sino tambin la infraestructura que se necesita para ayudar a las personas a que lleguen a ella. Hasta la prxima edicin!

La informacin contenida en The Arquitecture Journal (Journal) se brinda slo con fines informativos. El material publicado en el Journal no constituye la opinin o asesoramiento de Microsoft Corporation (Microsoft) o de CMP Media LLC (CMP) y no debe basarse en ningn tipo de material publicado en este Journal sin antes buscar asesoramiento independiente. Microsoft y CMP no proveen garanta o representacin alguna respecto de la precisin o aptitud de los fines de cualquier material del Journal y en ningn caso Microsoft o CMP aceptan responsabilidad de ningn tipo, incluyendo responsabilidad por culpa (excepto por dao contra los derechos personales del individuo o fallecimiento), por cualquier tipo de daos o perjuicios o prdidas (incluyendo, sin limitacin, prdida del negocio, rdito, ganancias o prdida consiguiente) de cualquier ndole o naturaleza que resultare del uso del presente Journal. El Journal puede contener imprecisiones tcnicas y errores de tipografa. El Journal se actualizar de vez en cuando y podr otras veces estar desactualizado. Microsoft y CMP no aceptan responsabilidad alguna por mantener la informacin de este Journal actualizada ni por el incumplimiento del hecho. Este Journal contiene material propuesto y creado por terceros. Hasta el alcance mximo permitido por la ley aplicable, Microsoft y CMP excluyen toda responsabilidad por cualquier acto ilegal que surgiera de un error, omisin o imprecisin en este Journal y Microsoft y CMP no se responsabilizan del material suministrado por terceros. Las siguientes marcas comerciales son marcas registradas de Microsoft Corporation: BizTalk, Microsoft, SharePoint, SQL Server, Visual Studio, Windows, Windows NT y Windows Server. Cualquier otra marca comercial es propiedad de sus respectivos propietarios. Todos los derechos del autor, marcas registradas y cualquier otro tipo de propiedad intelectual del material contenido en el Journal pertenecen y son licencia exclusiva de Microsoft Corporation. Queda totalmente prohibida la copia, reproduccin, transmisin, almacenamiento, adaptacin o modificacin de la forma o contenido del presente Journal sin previo consentimiento por escrito por parte de Microsoft Corporation y los autores individuales. 2005 Microsoft Corporation. Todos los derechos reservados.

Simon Guest

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

1

Arquitecturas de alta disponibilidad para hosting masivo

Por Shaun Hirschman, Mathew Baldwin, Tito Leverette y Michael Johnson

Sntesis Escalabilidad y alta disponibilidad son propiedades esenciales y a la vez opuestas para las infraestructuras de hosting. Ya sea ingeniero de programas de cdigo abierto, consumidor de soluciones comerciales o ingeniero TI de Microsoft, parece que no existe la solucin milagrosa. Al investigar diferentes aspectos de una infraestructura de hosting, podemos encontrar tecnologas existentes que se pueden agrupar para crear la solucin milagrosa. Este proceso tambin ayudar a detectar las diferencias que debemos reducir. La plataforma de la solucin milagrosa debe ofrecer una infraestructura que permita una gran cantidad de cuentas de clientes y debe ser escalable y con alto grado de redundancia. Este artculo se centrar en los componentes necesarios para la construccin de un entorno exclusivo que sea escalable, confiable, seguro y fcil de mantener y que al mismo tiempo ofrezca alta disponibilidad (HA, sus siglas en ingls). Los proveedores de aplicaciones solitarias, hasta hosters compartidos de alta densidad, se beneficiaran de esta solucin. Pero, Existe? De lo contrario, Cules son los desafos que nos bloquean en la actualidad? y Cunto podemos aproximarnos a esto?.Estos mdulos son fciles de imaginar y de rpida implementacin, en especial, si se venden paquetes bsicos a clientes que slo desean alojar muy pocas pginas y nada ms complicado. En la media que este tipo de plataforma creca, comenzaron a surgir varios problemas: necesidad de restauracin y backup, uso de un espacio costoso para un centro de datos, capacidad para el servidor, clientes con alta carga y administracin general. A los problemas de plataforma se sumaban una demanda cada vez mayor por parte de los clientes y progresos en la nueva tecnologa de Web. Surgieron tecnologas como PHP, Cold Fusion, ASP, JSP y ASP.NET que ofrecan plataformas ms complejas impulsadas por el deseo de los clientes de una funcionalidad ms rica y mejores negocios. Esto, a su vez, produjo nuevas aplicaciones que requeran almacenes de datos como SQL y otras tecnologas relacionadas. En la medida que se creaban nuevas aplicaciones, el potencial comercial que ofrecan estas aplicaciones se volvi ms evidente y ms solicitado. Los hosters, en el intento de maximizar los resultados y simplificar la gestin, continuaron con la gestin de todos servicios requeridos para soportar a sus clientes sobre un servidor autnomo. Esto cre una mayor carga en un nico servidor, obstaculizndolo y reduciendo la cantidad de sitios Web que poda servir. La demanda del consumidor aument de un modo ms rpido de lo que la tecnologa de hardware poda soportar. Los hosters tuvieron que escalar a nivel exterior, aislando y separando los servicios en varios servidores en vez de escalar de forma vertical con un hardware ms rpido.

Historia de la industria del hosting y problemas actuales Para comprender totalmente las complejidades de la plataforma de Web hosting, primero debemos comprender el modo en el que se inicio el mercado del hosting y cmo evolucion hasta su estado actual. Antes de que el hosting tradicional comenzara a tomar forma, los simples sitios de Web estticos eran populares y relativamente nuevos para el pblico en general. La infraestructura que se construy para respaldar este movimiento era igualmente bsica y se concentr en obtener la mayor cantidad posible de clientes en vez de brindar servicios de ltima generacin, como aplicaciones interactivas y alta disponibilidad. Comencemos con la descripcin de la arquitectura clsica que han utilizado en el pasado los hosters basados en Microsoft. Un nico servidor de Web autnomo, con servicios de FTP, que ejecuta IIS con contenido alojado localmente en el servidor. Cada sistema autnomo tiene un cierto costo hardware, software, licencias, redes, energa, espacio en gabinete y dems. Algunos hosters, an han llevado esto al extremo alojando todos los servicios en un servidor nico para una cantidad x de clientes. Por ejemplo, tienen servidores con IIS, SQL, software para servidor de correo de terceros y almacenamiento local para el contenido alojado.

EL OBJETIVO PRIMARIO AL DISEAR UNA PLATAFORMA ALOJADA ES OPTIMIZAR LA ESCALABILIDAD, DISPONIBILIDAD, DENSIDAD Y PARIDAD DE PRECIOS AL MISMO TIEMPO QUE SE SIGUE UN NIVEL DE SEGURIDAD LO MS GRANULAR POSIBLE AISLANDO LOS CLIENTES ENTRE S.La industria del hosting continu saturndose de compaas competitivas en respuesta a la alta demanda de servicios en la Web como sitios de Web dinmicos y carritos de compras para el comercio electrnico. Este mercado prspero oblig a los hosters a diferenciar sus servicios de los otros mediante la creacin de acuerdos de nivel de servicio (SLAs). No slo los hosters deben ofrecer sus servicios a un bajo costo, sino que tambin deben estar siempre disponibles. Esto se confirma con la creciente dependencia que poseen los clientes y negocios sobre la Web y sus demandas de aplicaciones ms interactivas y complejas. La produccin de servicios altamente disponibles, por lo general, da como resultado ms servidores para soportar la redundancia as como tambin nuevos requisitos de rendimiento, seguridad y gestin. De qu manera pueden los hosters escalar y respaldar estos servicios con la arquitectura de software y hardware ofrecida?

2

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Arquitecturas de alta disponibilidad para hosting masivoDebido a estos cambios en la industria, las empresas de tecnologa de software que ofrecan la base para estos servicios se dieron cuenta que sus actuales sistemas operativos no podan satisfacer las necesidades del los hosters. Todava se necesitaba un alto nivel de interaccin con el administrador del sistema para que las operaciones siguieran ejecutndose con la menor cantidad de problemas posible. Los ingenieros de la industria y los proveedores de servicios independientes tomaron conciencia de la carencia que haba en los servicios en relacin con software/hardware y emprendieron su propio objetivo desarrollando tecnologas que cubran las carencias al mismo tiempo que se beneficiaban. En ese momento los hosters comenzaron a considerar la creacin de plataformas que fueran ms escalables y que pudieran lograr una mayor densidad. Tambin deban ser de fcil gestin. Un buen comienzo al construir este tipo de arquitectura es analizar los varios servicios que el hoster necesita soportar y administrar. Consideraciones al planificar arquitecturas de alta disponibilidad para hostings masivos Cuando el hoster reflexiona y comienza a pensar en las tecnologas que podra agrupar y el modo de crear una plataforma para soportar varios servicios y sitios de Web, se le ocurren varios requisitos claves. Estos requisitos abarcan desde la cantidad de aplicaciones o usuarios hasta el tipo de funciones y servicios que deberan soportarse y su impacto sobre el sistema subyacente ASP.NET, PHP, SQL y dems y finalmente el costo por aplicacin o sitio alojado. El objetivo primario al disear una plataforma alojada es optimizar la escalabilidad, disponibilidad, densidad y paridad de precios al mismo tiempo que se sigue un nivel de seguridad lo ms granular posible aislando los clientes entre s. Separamos estos servicios en amplios segmentos, con las siguientes piezas principales de arquitectura: IIS clster(es), SQL clster(es), servicios de infraestructura de soporte, como servicios del Active Directory, System Center Operations Manager, almacenamiento centralizado, ya sea en una red de rea de almacenamiento o en un almacenamiento conectado a la red, clsteres SSL de descarga, clsteres FTP, y otros clsteres similares. La separacin de estos servicios en varios segmentos le permite al hoster escalar la arquitectura de diferentes modos. Un hoster podra escalar un clster de SQL de un modo diferente que un clster de Web y presentar un conjunto diferente de problemas de arquitectura. Otro factor que forma parte de la arquitectura es el requisito de legado, cuyo mejor ejemplo son las Extensiones del Servidor de FrontPage (FPSE). Miles de clientes todava las utilizan y son necesarias si la plataforma de hosting masivo espera atraerlos. Por lo general, estas extensiones las utilizan pequeos negocios para crear sitios simples. Todava se utilizan para herramientas de desarrollo como Visual Studio y Visual Web Developer por su funcionalidad de carga para HTTP, a pesar del desaliento por parte de Microsoft. Los componentes de legado, como FPSE, no pueden ser eliminados de un modo simple por grandes hosts sin una prdida de la base de clientes. Analicemos ahora algunos de estos clsteres dentro de la arquitectura. La pieza ms grande es el clster de Web y el segundo es el clster de SQL. Es importante recordar que un diferenciador clave entre lo que hacen los hosters frente a lo que hacen otras empresas como departamentos internos de TI, es que intentarn colocar la mayor cantidad posible de sitios o bases de datos en un clster. Por este motivo, ciertas soluciones empresariales no funcionan para ellos. Adems, no siempre controlan el tipo de aplicaciones que se colocan en un servidor y por lo tanto, no pueden definir la capacidad del mismo modo que lo pueden hacer las empresas tpicas. Figura 1: Modelo de distribucin de carga de la aplicacin

Firewall

Balanceador de la carga

Contenido esttico

Contenido dinmico

Modelos de distribucin de carga Debido a que hay mltiples usuarios de Web, los arquitectos de hosting deben considerar diversas opciones para distribuir la configuracin entre todos los servidores de Web. Esta configuracin depende del tipo de modelo de distribucin de carga que se elige. Existen varios modelos para distribuir la carga entre los mltiples usuarios de Web. Analizaremos dos que son comunes para las posibles situaciones de hosting: distribucin de carga de aplicacin y distribucin de carga conjunta. Distribucin de carga de aplicacin La distribucin de carga de aplicacin describe un modelo en el que la carga se distribuye entre mltiples nodos de usuarios de Web basndose en la funcin del servidor. Este modelo por lo general est basado en la solicitud y utiliza las capacidades de enrutamiento de la capa de aplicacin que varios balanceadores de carga de red soportan en la actualidad. Este modelo permite a los hosters dividir el grupo de servidores basndose en las cargas de trabajo del servidor. Al analizar una implementacin tpica de este modelo, veremos que los servidores se separan de aquellos que tratan contenido dinmico como ASP.NET o se disea un PHP para el contenido esttico (Figura 1). Se puede agregar an ms granularidad a esta configuracin si se dividen ms los servidores dinmicos de acuerdo a su funcin especfica. Esto implica la creacin de subgrupos de servidores ms pequeos para cada tipo de aplicacin. Todo el trfico de ASP.NET sera enrutado hacia un subgrupo de servidores de ASP.NET y todo el contenido de PHP sera enrutado hacia otro subgrupo de servidores. Debido a que los servidores de contenido dinmico normalmente necesitan ms recursos, el diseo permite al hoster utilizar para esos sitios una clase diferente de hardware del que se necesitara para el contenido esttico. La mayora de los hosters deben considerar el costo al disear sus plataformas; por lo tanto, el modelo de distribucin de carga de aplicacin tal vez no siempre sea posible simplemente porque este modelo aumenta la cantidad de servidores requeridos. La aplicacin de carga de distribucin tambin incrementa la complejidad al administrar los servidores y se basa en gran medida en los equipos de conexin de redes.

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

3

Arquitecturas de alta disponibilidad para hosting masivoFigura 2: Escenario del grupo de aplicacin uno-a-uno

100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%Aislamiento EscalaCompartido Uno a uno

Distribucin de carga conjunta Para mantener un costo mnimo y tambin para lograr que la administracin de la plataforma sea menos compleja, un hoster puede elegir implementar un modelo de distribucin de carga conjunta. Denominamos modelo de distribucin de carga conjunta a aqul en el que todos los servidores comparten exactamente la misma configuracin. Cada servidor en el centro de servidores tambin es capaz de servir tanto el contenido esttico como el dinmico. En los sistemas que ejecutan IIS, el diseo del grupo de aplicaciones es indispensable para maximizar la escala en este tipo de modelo. Ajustar Microsoft IIS para el hosting masivo Dentro de una compaa de hosting masivo que se centra en la plataforma de Microsoft, existe una constante presin de un nivel ms alto de densidad sobre cada servidor del grupo. Con una arquitectura alta disponibilidad compleja, el hoster aumenta su modelo de densidad; sin embargo, an aparecen obstculos en el desempeo, en particular, con los grupos de aplicaciones. En IIS, el diseo del grupo de aplicaciones es fundamental para lograr la mxima densidad. Si no se dedica tiempo a planificar de un modo apropiado el diseo del grupo de aplicaciones, esto puede causar problemas inesperados de estabilidad y rendimiento. Los grupos de aplicaciones tratan verdaderamente el aislamiento y existe una correlacin directa entre el nivel de aislamiento que se elige y la cantidad de aplicaciones que se colocan en el servidor. Al disear grupos de aplicaciones se debe comparar la necesidad de seguridad con la estabilidad deseada. Los hosters deben elegir entre dos escenarios de grupos de aplicaciones, un escenario de grupo de aplicaciones compartidas uno-a-muchos o un escenario uno-a-uno. Es importante observar que en la Figura 2, el escenario del grupo de aplicaciones uno-a-uno muestra una tendencia ms hacia el aislamiento pero lejos de la escala. Por otro lado, el escenario del grupo de aplicaciones compartidas, muestra una tendencia hacia niveles superiores de la escala mientras que se aleja del aislamiento. En el mejor de los casos, el hoster elegira una solucin que le permitiera maximizar la escala sin sacrificar el aislamiento y la seguridad. Anlisis de tendencias: Aislamiento vs. Escala El escenario de aislamiento uno-a-uno se define con un grupo

de aplicaciones asignado a una aplicacin nica o en un escenario de hosting de Web compartido para un sitio de Web nico. Esto permite que un hoster logre un alto nivel de aislamiento ya que cada aplicacin o sitio de Web se ejecuta dentro de un proceso nico y no comparte recursos con otros en el servidor. sta es una solucin ptima para un proveedor de software independiente o hoster que debe asegurar a sus clientes que otros en el mismo servidor no tendrn acceso a sus datos importantes. Sin embargo, este escenario es limitado en un escenario de hosting masivo. Si bien brinda el nivel deseado de aislamiento y seguridad debido a los requisitos de memoria, no cumple el objetivo de proporcionar a los hosters la escala que desean. Ya que cada grupo de aplicaciones ejecuta la memoria de sus consumidores y finalmente se produce un embotellamiento. La incorporacin de cdigo dinmico dentro de la plataforma aade un nuevo nivel de complejidad. Por ejemplo, las aplicaciones ASP.NET aumentan la cantidad de memoria necesaria para el grupo de aplicaciones. Esto se vuelve un problema para el hoster porque limita la cantidad de sitios de Web dinmicos que pueden ejecutarse en un servidor. Comienzan a observar que pueden escalar dentro de cientos de sitios en vez de miles de sitios, que es el punto de referencia para la mayora de los progresos en la tecnologa del hardware. Concretamente, la incorporacin de la arquitectura de 64-bits le ha permitido a varios hosters darse el lujo de agregar enormes cantidades de memoria a sus servidores. Si bien esto les permite ir ms all de obstculos potenciales, tambin se pueden descubrir otros problemas. Escenario del grupo de aplicaciones compartidas Un escenario del grupo de aplicaciones compartidas describe una situacin en la que ms de una aplicacin o sitio de Web reside en el mismo grupo de aplicaciones. Existen dos configuraciones diferentes para grupos de aplicaciones compartidas. La primera es uno-para-N en la que el proveedor de hosting dedica un nico grupo de aplicaciones a una cantidad predefinida de sitios de Web. La segunda es una configuracin uno-para-todos en la que el host coloca todos los sitios de Web en un nico grupo de aplicaciones. Un escenario del grupo de aplicaciones compartidas permite escalar mejor ya que no somete al sistema a las limitaciones de la memoria impuestas por un diseo de grupo de aplicaciones uno-a-uno.

4

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Arquitecturas de alta disponibilidad para hosting masivoExiste una preocupacin y es que las aplicaciones y sitios de Web en un grupo de aplicaciones compartidas podran potencialmente dar a algunos usuarios acceso a los datos de otros. Se deben realizar ciertas migraciones para garantizar que estas aplicaciones y sitios de Web estn asegurados. Por ejemplo, es necesario que cada sitio de Web tenga un usuario annimo nico y se debe aplicar una lista de control de acceso a los archivos de la Web. Tambin, las aplicaciones ASP.Net se deben configurar con seguridad de acceso al cdigo y se deben ajustar a un nivel medio de confianza. Estos pasos ayudarn a garantizar que las aplicaciones y los sitios de Web en el servidor sean seguros, an en un grupo de aplicaciones compartidas. Debido a que todas las aplicaciones se ejecutan bajo el mismo proceso de grupo de aplicaciones compartidas es que carecen del aislamiento que varios proveedores de hosting necesitan. Esto puede ser una preocupacin en escenarios de alta disponibilidad ya que un problema afecta a todos los otros sitios de Web y aplicaciones del mismo grupo. Por ejemplo, una aplicacin podra causar que un grupo de aplicaciones se reinicie o an peor, que se cierre completamente. Tambin es ms difcil para los administradores del sistema identificar un problema cuando hay varios sitios y aplicaciones en un nico grupo. Si bien hay herramientas disponibles que permiten al host aislar los problemas dentro del grupo de aplicaciones, esta tarea se logra con mayor facilidad cuando se utiliza un grupo de aplicaciones uno-a-uno para modelar un sitio de Web. Planificacin de un grupo de aplicaciones con alta disponibilidad El desafo de los hoster es lograr un equilibrio entre lograr altos niveles de aislamiento y maximizar la escala. Debido a esto, varios de ellos se ven obligados a utilizar el escenario de grupo de aplicaciones hbridas que mencionamos anteriormente. Un escenario tpico incluira mltiples grupos de aplicaciones, cada uno de los cuales cumple un propsito especfico. Por ejemplo, los sitios de Web que slo poseen contenido esttico, podran colocarse todos en un nico grupo de aplicaciones compartidas. Esto es posible ya que el contenido esttico no est asociado con los problemas de rendimiento y seguridad que surgen con el contenido dinmico. Todos los otros grupos de aplicaciones estaran dedicados a sitios que tengan contenido dinmico. Esto permite que el hoster asigne mayores recursos para estos sitios. Esta configuracin es ms frecuente en entornos de hosting compartido en los que una nica plataforma debe brindar servicio a clientes que poseen tanto contenido esttico como dinmico. placa. Las secciones que se detallan a continuacin dividen las diferentes arquitecturas de almacenamiento que son comunes entre las compaas de hosting. Almacenamiento directamente conectado (DAS) DAS es uno de los mtodos de almacenamiento ms comunes y clsicos que utilizan las compaas de hosting de Web. Se trata de servidores de Web autnomos en los que el contenido se ubica de forma local. El beneficio principal es que si un nico servidor autnomo deja de funcionar, toda la base del cliente no queda sin conexin. La desventaja es que los clientes estn sujetos a cualquier tipo de falla del hardware, no simplemente a una falla del subsistema del disco. Adems, este tipo de configuracin presenta problemas como lmites de densidad, problemas de migracin y falta de alta disponibilidad para los sitios de Web y distribucin de la carga.

LA INCORPORACIN DE LA ARQUITECTURA DE 64BITS LE HA PERMITIDO A VARIOS HOSTERS DARSE EL LUJO DE AGREGAR ENORMES CANTIDADES DE MEMORIA A SUS SERVIDORES. SI BIEN ESTO LES PERMITE IR MS ALL DE OBSTCULOS POTENCIALES, TAMBIN SE PUEDEN DESCUBRIR OTROS PROBLEMAS.

Almacenamiento conectado a la red (NAS) La mayora de los host que han elegido plataformas altamente escalables han optado por utilizar NAS como el almacenamiento remoto centralizado para todos sus clientes. En entornos de Windows altamente disponibles, NAS se accede mediante el Sistema Comn de Archivos de Internet (CISS), generalmente entre una red de almacenamiento dedicado. El contenido de Web de los clientes se almacena centralmente en el NAS con la ruta hacia el NAS almacenada como ruta lgica utilizando un sistema de archivos distribuido (DFS). La combinacin de NAS y DFS permite que un hoster basado en Windows distribuya los clientes entre mltiples subsistemas de almacenamiento NAS, impidiendo que un problema global, afecte a esos clientes. Optimizar CISS, TCP/IP y el NAS contribuye en gran medida respecto de lo escalable que es el NAS con la cantidad de sitios de clientes simultneos para los cuales puede estar sirviendo contenido. Si el NAS posee una escasa optimizacin, los hosts pueden presentar problemas que pueden afectar toda la base del cliente. Sin embargo, los hosts mitigan esto utilizando mltiples subsistemas de NAS para Duplicacin de la configuracin Otro requisito fundamental para el hosting masivo en entornos de alta diferentes segmentos de clientes y dedicando interfaces y redes de almacenamiento para este tipo de trfico. disponibilidad, es mantener el estado y la configuracin entre todos Varios subsistemas de NAS poseen capacidades de duplicacin y los usuarios de Web del grupo. Si bien hay otras configuraciones que deben existir en cada usuario, la ms importante es la del servidor de captura de imagen. Los hosters utilizan estas tecnologas para ofrecer un proceso consistente para la recuperacin y emergencias en Web. Algunos servidores de Web poseen soporte para un almacn de especial, si se considera que el sistema de almacenamiento podra configuracin centralizada. Para quienes no lo poseen, se debe contener cientos de miles de clientes. implementar alguna solucin de software para duplicar la Un problema con el subsistema de almacenamiento NAS puro es que configuracin entre los servidores. debido a que tecnologas como SQL no admiten el almacenamiento remoto de sus bases de datos entre los CISS, esto limita al hoster Almacenamiento del contenido respecto del tipo de servicio que puede ofrecer. Uno de los principios centrales para las plataformas de hosting masivo, altamente escalables que enfrentan los arquitectos es Red de rea de almacenamiento (SAN) determinar la ubicacin del contenido del cliente que ser Varios sistemas de almacenamiento de las empresas pueden operar almacenado. En la mayora de los casos, se trata contenido que est tanto una SAN como un NAS, con una diferencia clave que es el dentro de SQL o en el disco. Ya que el punto de inicio de la mtodo que se utiliza para conectarlos. En el caso de una SAN, los arquitectura es un clster configurado con miles de sitios, no es mtodos ms importantes son el Canal de Fibra (FC) y iSCSI. prctico ubicar el contenido en discos directamente conectados a la

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

5

Arquitecturas de alta disponibilidad para hosting masivoLas compaas de hosting pueden construir sistemas de correo y SQL escalables de alta disponibilidad, como por ejemplo Exchange, si utilizan las capacidades de una SAN como el almacenamiento centralizado para estos tipos de clsteres. Adems, cuanto ms avanzada es la SAN, ms opciones tiene la compaa de hosting para realizar tareas como gestin de recuperacin y captura de imgenes dentro del SQL o Exchange. Uno de los principales inconvenientes para un sistema de almacenamiento empresarial es el costo en el que incurre el hoster. Los hosters son cuidadosos al asegurar que el producto que van a implementar tenga un rendimiento de la inversin (ROI) lo suficientemente alto como para justificar el costo de un SAN. Deben brindar un alto grado de servicio para mantener la lealtad del cliente y lograr sus objetivos comerciales. Los proveedores de servicios buscan la forma de producir la plataforma de Web milagrosa que ayude a reducir el costo total de propiedad (TCO) y brindar a sus clientes una respuesta de forma efectiva y eficaz. Cuando hacemos referencia a una solucin de plataforma de Web compuesta de servicios de Web, almacenamiento de datos y almacenamiento de bases de datos, inevitablemente ocurre un problema dentro de alguno de estos componentes. Una solucin es tan slida como su punto ms dbil. Fundamentalmente, cada componente de una solucin debe ser escalable a nivel exterior y de forma ascendente y tambin debe ser rentable. Este artculo no trata las tecnologas (cdigo abierto o cdigo cerrado) que pueden cumplir el objetivo o lo han cumplido en algunas reas, sino que trata los problemas bsicos de arquitectura que no se tienen en cuenta como primordiales cuando se desarrollan tecnologas. En la actualidad, no es suficiente crear tecnologa porque s con el objeto de ocupar una posicin. Slo mediante la estrategia, planificacin y desarrollo de soluciones de gran escala podremos respaldar requisitos de gran escala. El mundo est creciendo, las necesidades son cada vez mayores y slo tiene sentido que las infraestructuras tambin.

NO EXISTE UN MODO RENTABLE DE CONSTRUIR UNA PLATAFORMA DE CLSTER DE SQL COMPACTA, DE ALTA DISPONIBILIDAD Y ESCALABLE. CADA TOPOLOGA DEL CLSTER TIENE SUS DESVENTAJAS JUNTO CON EL HECHO DE QUE LOS HOSTS NO TIENEN CONTROL SOBRE EL DISEO DE LA APLICACIN DE LOS CLIENTES.Clster de SQL SQL es un servicio importante que ofrecen varios hosters a la mayora de sus clientes. Sin embargo, es una de las reas claves que muchos hosts no implementan como un clster. Existen varias razones para esto y la ms importante es el costo y la licencia. No obstante, los hosts que eligen un cluster de SQL altamente disponible deben disear su arquitectura de modo que seleccionen el tipo correcto de metodologa de clster que soporte diversas bases de datos. A diferencia de otras empresas en las que el clster de SQL est compuesto de una cantidad relativamente pequea de bases de datos, las compaas de hosting implementarn cientos, sino miles, de bases de datos para un nico clster de base de datos. Este clster debe ser resistente tanto en rendimiento como en tiempo de actividad. Debido a que las compaas de hosting no tienen control sobre la forma en la que sus clientes escriben sus aplicaciones, se presentan algunos problemas nicos al disear un clster para un hosting masivo. En un entorno de hosting, cada cliente posee 1-n bases de datos asignadas a l. Estas bases de datos pueden almacenarse en un nico clster o distribuirse entre mltiples clsteres. El clster ms comn que un hoster construira para un hosting SQL masivo es el clster de SQL activo-pasivo estndar. Sin embargo, en la medida que los hosts entran en un hosting de software como servicio (SaaS), los requisitos del clster de SQL se convierten de redundancia del nodo a redundancia de datos. Esto agrega ms problemas ya que estos mismos sistemas an alojarn numerosas bases de datos. No existe un modo rentable de construir una plataforma de clster de SQL compacta, de alta disponibilidad y escalable. Cada topologa del clster tiene sus desventajas junto con el hecho de que los hosts no tienen control sobre el diseo de la aplicacin de los clientes. El clster de SQL ideal permitira a los hosts realizar una distribucin de carga, adems de duplicar la base de datos, sin tener que ocuparse de los problemas de colisin de datos mientras mantienen una gran cantidad de bases de datos entre los clsteres. Conclusin Los proveedores de servicios deben enfrentar continuamente desafos para cumplir con la creciente demanda de los clientes de nuevos servicios que ofrecen mayor valor para las pequeas y medianas empresas, desarrolladores, consumidores y diseadores.

Sobre los autores Shaun Hirschman ha trabajado en el rea del hosting por casi ocho aos y est muy en sintona con los desafos de la tecnologa y los negocios inherentes. Antes de unirse a Microsoft en el 2006, Shaun comenz en la industria del hosting como soporte tcnico y ascendi a la posicin de administrador senior de sistemas Windows. Posee un gran conocimiento tcnico y experiencia en los sistemas basados en Microsoft. En su mayora, le gusta experimentar con tecnologas de hardware y software de ltima generacin para apaciguar su deseo por aprender. Mathew Baldwin ha trabajado en el rea de servicios alojados en los ltimos diez aos. En el pasado, ha cumplido funciones como arquitecto, ingeniero de sistemas senior, solucionador de problemas regular y consultor para plataformas basadas en Microsoft con mltiples compaas de servicios alojados. Contribuy positivamente para lanzar al mercado la primera plataforma de hosting compartida, agrupada de alta disponibilidad Windows 2003 y trabaj estrechamente con Microsoft en varias iniciativas. En la actualidad trabaja como arquitecto senior para Affinity Internet. Tito Leverette ha trabajado en el rea de hosting por ms de ocho aos. Comenz su carrera con Interland Inc, actualmente Web.com. Antes de unirse a Microsoft, Tito fue arquitecto en el equipo de plataforma de Web de SunTrust Inc., el noveno banco ms grande de los Estados Unidos de Amrica. Tito posee aos de experiencia en el diseo, creacin e implementacin de infraestructuras de Web para grandes empresas as como tambin para clientes de hosting. Es graduado del Instituto de Tecnologa de Georgia (Georgia Tech). Michael Johnson dedic ms de siete aos como empleado en el rea de proveedor de servicios de Web donde desarroll y dise soluciones y aplicaciones altamente escalables sobre productos de Microsoft. En la actualidad trabaja como arquitecto experto de Web para Microsoft.

6

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Brindar informtica integral de alta productividadPor Marc Holmes y Simon Cox

Sntesis En la actualidad, realizar un clculo informtico complejo cientfico y de ingeniera significa mucho ms que simplemente comprar una gran supercomputadora. Si bien tradicionalmente HPC significa High Performance Computing (Informtica de Alto Rendimiento), creemos que la solucin integral real debera ser Informtica de Alta Productividad. A lo que queremos referirnos con Informtica de Alta Productividad es a toda la estructura de manipulacin de datos e informtica y tambin a las herramientas, tecnologas y plataformas necesarias para coordinar, procesar y monitorear este clculo integral. Muchos desafos estn asociados con la produccin de una solucin general de Informtica de Alta Productividad (HPC) para problemas de dominio cientficos y de ingeniera. En este artculo tratamos estos desafos basados en los requisitos tpicos de estos problemas, proponemos varias soluciones y demostramos el modo en el que han sido implementados para usuarios a travs de un modelo cientfico especfico del entorno, siguiendo el proceso desde el comienzo hasta el final. Nuestra solucin tcnica general se podr poner en prctica para cualquier solucin que requiera capas de interfaz y control para un servicio de HPC orientado al servicio distribuido.La solucin tiene en cuenta la cadena de valor total para las soluciones de HPC y utiliza la tecnologa de Microsoft para superar esta cadena de valor ms all de simples mejoras del rendimiento en el hardware, software y algoritmos que, como se describe, no siempre es una opcin posible. La clave de nuestra solucin es la capacidad de integrarse con otros sistemas mediante estndares abiertos. Requisitos para soluciones de informtica de alta productividad En los dominios de ingeniera y ciencia, las soluciones HPC pueden utilizarse para resolver problemas matemticos complejos en una diversidad de reas, como clculos estadsticos para epidemiologa gentica, clculos de dinmica de fluidos para la industria aeroespacial y modelado del medio ambiente global. Cada vez ms, el desafo est en integrar todos los componentes requeridos para componer, procesar y analizar los resultados de problemas de manipulacin de datos e informtica de gran escala. An con diferencias tan diversas en los problemas, los requisitos para las soluciones poseen las mismas caractersticas debido al contexto del dominio y la complejidad del problema en cuestin.

Diseada para una solucin a un problema especfico Debido a que las interacciones de la industria y los clculos son diversos, no hay proveedores de soluciones particulares para un problema determinado, lo que da como resultado soluciones altamente individualizadas que surgen de empresas o departamentos de investigaciones que necesitan estos clculos. Esta individualidad se compone de una pequea cantidad de equipos que realmente buscan resolver estos problemas y tal vez necesitan mantener la propiedad intelectual de los algoritmos u otros aspectos de procesos especficos. La individualidad en s misma no es un problema puede ser algo muy bueno pero debido a que las soluciones tcnicas son medios para lograr un objetivo, es probable que estas soluciones individuales no sean productizadas y por lo tanto, probablemente sean difciles de relacionar y poco claras. Procesos y clculos de larga ejecucin El avance tecnolgico de la infraestructura requerida para realizar procesamientos a gran escala y administrar cantidades masivas de datos ha brindado oportunidades para desempear procesos que anteriormente eran poco prcticos desde el punto de vista de la informtica. El desarrollo de nuevos algoritmos y la paralelizacin del cdigo para que se ejecuten de modo simultneo sobre varios clsteres informticos pueden tener un efecto radical, reduciendo el tiempo de procesamiento en diversos rdenes de magnitud. Por lo tanto, un procesamiento interminable, tal vez, podra ejecutarse en varias semanas o meses. Este xito ha permitido a las industrias lograr importantes resultados y aprovechar estas posibilidades para ofrecer ms orientacin a los desarrollos. Requisitos para la informacin documentada En reas de investigacin, existe una necesidad muy importante de registrar la informacin por varios motivos. Puede simplemente existir la necesidad de volver a ejecutar algoritmos para asegurar que se produzcan los mismos grupos de resultados como un ejercicio de tranquilidad, pero muy probablemente, esto ser requerido como parte de prueba y de backup cientfico para publicar una investigacin. Pueden tambin existir razones estatutarias para esta informacin documentada: en la industria aeroespacial, en el caso de una investigacin de accidente areo, los ingenieros que toman decisiones determinadas de ingeniera pueden ser responsables de la causa del accidente y estar sometidos a procesos penales. Por lo tanto, la necesidad de recrear estados especficos y grupos de resultados segn sea necesario y de seguir los pasos de decisin hacia estas elecciones es de extrema importancia. La complejidad de estas tareas es an mayor cuando uno considera que el ciclo de vida del diseo de un avin podra ser de 50 aos. Volmenes significativos de datos y movimiento de datos Deep Thought desempe una de las tareas ms grandes de HPC en

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

7

Informtica de alta productividadlos ltimos tiempos (de ficcin). Dada una pregunta simple (Cul es la respuesta a la vida, el universo y todo lo dems?), arroj una respuesta simple (42), aunque, despus de varios millones de aos de procesamiento y una pequea pausa desconcertadora al final del proceso. Existe, por supuesto, un modo simple de mejorar el valor de una solucin de HPC: Hacerla ms rpido. Sin embargo, para problemas de suficiente complejidad informtica, en cierto punto, pasa a ser poco provechoso continuar el intento de mejorar la solucin debido a las limitaciones de la tecnologa. Los esfuerzos para intentar mejorar la velocidad de los procesamientos se pueden representar mediante el ciclo que se muestra en el Figura 1. Para mejorar la velocidad de los procesamientos, un equipo de desarrollo debe:

Figura 1: Los esfuerzos para mejorar la velocidad del procesamiento se agrupan en tres zonas interrelacionadas, formando un ciclo.

Hardware

Utilizar ms o mejor hardware. Los beneficios de los procesadores

Algoritmos

Software

Sin embargo, la realidad es que es muy probable que los clculos significativos que requieren una gran cantidad de procesamiento impliquen importantes cantidades de datos a lo largo de todo el ciclo de vida del clculo. An, con la simplicidad del ingreso de datos y el resultado del estilo de Deep Thought, los grupos de datos operativos dentro del espacio de problema durante el clculo, pueden ser significativos. Se deben desarrollar estrategias para administrar estos datos y sus metadatos. Dada la necesidad de la informacin documentada, estas estrategias deben ser flexibles y eficaces, y deben estar integradas dentro procesos de flujo de trabajo utilizados para coordinar los clculos. Mejorar el valor de las soluciones de informtica de alta productividad Debido a la complejidad de los problemas de dominio y los requisitos descriptos anteriormente, la conclusin final es que las soluciones generalmente se disean para obtener resultados. Esto, es en cierto modo un logro y, en primer lugar, deja de lado el esfuerzo intelectual que implica el desarrollo de algoritmos informticos y soluciones conceptuales. Figura 2: Escenario de informtica general

ms rpidos, discos ms rpidos, mayor memoria, etc., podran estar limitados por la capacidad del software o los algoritmos para utilizar el hardware disponible. Tambin, est limitado por los ciclos de lanzamiento de hardware de nueva generacin y probablemente est muy limitado por el presupuesto. Utilizar ms o mejor software. Es ms probable que los algoritmos en s mismos sean un problema que el software subyacente, pero a veces, pueden existir mejoras en la manipulacin de datos u otras funciones para proporcionar un avance til. Esto tambin puede estar afectado por restricciones presupuestarias. Utilizar mejores algoritmos. Mejores algoritmos requieren invencin que simplemente puede no ser posible y es probablemente menos predecible que las mejoras de software o hardware, aunque cuando ocurre puede brindar la mejora ms importante de todas. Por lo tanto, el desafo ante mejoras continuas de plataforma sobre un nivel bsico es fcil de comprender pero difcil de lograr. Como resultado, los equipos que utilizan soluciones de HPC tienden a ser pragmticos respecto de la cantidad de tiempo que les lleva completar los clculos ya que comprenden que estn aprovechando al mximo las tecnologas disponibles y, como mencionamos anteriormente, pueden sentirse satisfechos por al menos haber completado la operacin. Una vez que se han reducido los tiempos informticos hasta ser lo ms prcticos posible, entonces, mejorar el valor de estas soluciones es cuestin de considerar el proceso total y las repercusiones de realizar clculos para reducir an ms el tiempo total en nuevas comprensiones cientficas o de la industria. Dada la naturaleza de la investigacin/ingeniera de los problemas, entonces el proceso total generalmente implica un flujo de trabajo humano antes o despus de la tarea informtica. Tambin se trata del desarrollo de un grupo de

Escenario de informticaAcceso Inicio de sesin Solicitud Carga Proceso Preproceso Anlisis Automtico

Inicializacin

Ingreso de datos

Proceso

En lnea

Usuario

Aprobacin

Postproceso

Descarga

8

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Informtica de alta productividadsoluciones para proporcionar interfaces y controles que posibiliten una ejecucin eficaz del proceso total, permitiendo a los investigadores e ingenieros realizar sus tareas de un modo ms rpido y eficaz. Definir el problema y la solucin Utilizar la cartera disponible de tecnologas de Microsoft nos permite crear una arquitectura ms completa para una solucin de HPC y posibilita la realizacin de funciones que brindan valor adicional a los equipos que utilizan la solucin. Adems, el uso de estas tecnologas puede construir de un modo integrado e interactuar con las infraestructuras existentes. Esta seccin del artculo describe una arquitectura posible y algunas caractersticas de esta arquitectura as como tambin el valor que proporcionan. Escenarios del problema Es difcil generalizar completamente una solucin de HPC debido a las necesidades especficas de un dominio individual y a los procesos comerciales que surgen como parte de los desafos de ingeniera que se presentan normalmente. Sin embargo, podramos considerar tres situaciones posibles para la solucin. La primera es la situacin bsica del usuario: finalizar una tarea de informtica. Las otras dos situaciones posibles son administracin y creacin y soporte para este proceso.

Ciencia ambiental de alta productividad integralEl proyecto de modelo del sistema Grid-ENabled Integrated Earth (GENIE) proporciona una estructura accesible por red que facilita la integracin, ejecucin y administracin de los modelos componentes para el estudio del sistema terrestre sobre escalas de tiempo milenarias. Los simulacros basados en la estructura GENIE deben seguir procedimientos de operaciones complicados entre diferentes modelos y recursos informticos heterogneos. El proyecto GENIE ha desarrollado una estructura para la composicin, ejecucin y administracin de modelos integrados del sistema terrestre. Los cdigos componentes (ocano, atmsfera, superficie terrestre, hielo marino, capas de hielo, biogeoqumica, y dems) de complejidad y resolucin variada pueden unirse de un modo flexible para formar una serie de modelos del clima, eficaces, que sean capaces de simular sobre escalas de tiempo milenarias. El proyecto rene un grupo distribuido de cientficos del medio ambiente con un inters en comn por el desarrollo y uso de los modelos GENIE para comprender el sistema terrestre. Los simulacros del sistema terrestre comprenden muchos datos as como tambin mucha informtica. La estructura GENIE se ha diseado para soportar la ejecucin de estos simulacros entre mltiples recursos informticos y datos distribuidos por un perodo de tiempo extenso. Aprovechamos la variedad de recursos heterogneos, incluyendo la Red Nacional del Reino Unido de recursos informticos en paralelo (que ejecuta Linux y Windows Compute Cluster Server) y el aprovechamiento de los ciclos de escritorio en sitios distribuidos. Nuestro almacn de datos de infraestructura informtica utiliza Oracle 10G para almacenar metadatos sobre nuestros simulacros y el servidor SQL para coordinar el seguimiento de persistencia de nuestros flujos de trabajo en ejecucin. (Ver Figura 1)

En Supercomputing 2006, en Tampa, Fla., mostramos el modo en el que la aplicacin de la metodologa de flujo de trabajo descripta en el articulo puede proporcionar los simulacros de GENIE con un entorno de Figura 1: La Ciencia Ambiental de alta productividad integral soporta: (a) Interfaz de Web para rpida composicin de simulacros y un clientes utilizando Windows Presentation Foundation, (b) Windows Workflow Foundation para crear y entorno de hosting eficaz para coordinar coordinar simulacros y (c) Infraestructura heterognea compuesta de Recursos Informticos de su ejecucin. Los cientficos que Windows y Linux y almacenamiento de datos de Oracle y SQL Server. participan en la colaboracin, estn investigando el modo en el que la Base de circulacin termosalina en el Atlntico datos Tiempo de ejecucin del la densidad del agua marina es NGS persistente flujo de trabajo DB controlada por la temperatura (termo) y Flujo de trabajo Servicios Oracle la salinidad (salina) y las diferencias de MS http(s) Configuracin del 10g SQL densidad impulsan la circulacin experimento Recopilacin Servicio de DB ocenica responde a los cambios de de secuencias IE 7 Web Recurso de comandos Procesamiento niveles de dixido de carbono en la Almacenamiento de archivos Geodise Cliente del Cliente de MS MQ atmsfera e intenta comprender, en explorador programacin Infraestructura heterognea particular, las estabilidad de las Control Trabajo cientfica Servicio de Eventos corrientes ocenicas ms importantes Servicio de Red (Matlab, Python, ...) Web de Windows y API/CMD Post Nacional bajo distintos contextos de cambios Windows Presentation Procesamiento Servicio de llamadas Microsoft CCS climticos. Foundation WS Communication WebGrupo Condor Clster de Linux Recursos informticos Globus SSH Interfaces

Foundation

Clientes alternativos

Microsoft Institute of High Performance Computing: Matthew J. Fairman, Andrew R. Price, Gang Xue, Marc Molinari, Denis A. Nicole, Kenji Takeda, and Simon J. Cox Colaboradores externos:: Tim Lenton (Facultad de Ciencias Ambientales, Universidad de East Anglia) y Robert Marsh (Centro Nacional de Oceanografa, Universidad de Southampton)

Simulacro

Flujo de trabajo

Interfaz de Web del cliente

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

9

Informtica de alta productividad

Figura 3: Escenario de autora generalEscenario de autora Desarrollar Actividades Autor Algoritmos Configuracin Publicar Catlogo

Figura 4: Escenario de administracin generalEscenario de administracin Administrar Monitoreo

Administrador

Cuenta

Usuario avanzado

Flujos de trabajo

Produccin

Escenario de informtica. El proceso informtico se divide en cuatro pasos fundamentales para un usuario tpico que aseguran la finalizacin de la tarea: acceso, solicitud, proceso y anlisis. (Ver Figura 2) Acceso:

Inicio de sesin: El usuario debe poder iniciar la sesin de la

solucin y deber identificarse como usuario vlido. Es posible que entonces puedan ver slo la informacin relevante a su funcin y/o grupo. Inicializacin: Antes de realizar una solicitud del trabajo, puede existir la necesidad de configurar un panel de control para ejecutar la tarea. Dada la naturaleza de la informtica de larga ejecucin, una ejecucin del proceso puede considerarse un proyecto. Solicitud:

los datos pueden ser propicios para ser computados dentro de porciones totalmente aisladas, como situaciones que pasara si o un anlisis paramtrico. Esta fase puede ocurrir durante un tiempo potencialmente significativo. Lo ideal sera que se proporcione algn comentario al usuario final durante este tiempo. Post-proceso: El paso final en el procesamiento en s es similar al del preprocesamiento en el sentido de que es posible que se complete algn trabajo con los datos obtenidos. Esto puede comprender movimientos de datos hacia almacenes, agregacin de datos de nodos separados, operaciones de depurado, tareas de visualizacin, etc. Anlisis:

Automtico: Si bien es probable que los resultados de la tarea

Carga: Un usuario debe poder cargar o acceder a grupos de datos

que estn previstos para ser utilizados como parte de un trabajo. Los grupos de datos pueden ser grandes, no homogneos o de origen externo, por lo tanto, se necesita un paso especfico en el flujo de trabajo para obtener estos datos y dividirlos entre el nodo del clster de manera que equilibre la cantidad prevista de trabajo. Insercin de datos: un usuario debe poder aadir parmetros y metadatos asociados para garantizar que el trabajo se ejecute exitosamente. Estos parmetros se capturan para reutilizacin y auditora. Aprobacin: despus de aadir parmetros y cualquier otra informacin requerida, es probable que se pida aprobacin antes de presentar el trabajo. Entonces, probablemente se producir algn tipo de flujo de trabajo de aprobacin, seguido de una presentacin del trabajo del usuario. Proceso

necesiten intervencin especializada para comprenderlos verdaderamente, es posible realizar un anlisis automtico, en particular, en el caso de un anlisis estadstico en el que los patrones son importantes y fciles de automatizar. Con conexin: El usuario debe poder realizar un anlisis bsico sin tener que solicitar todo el grupo de datos. Esto puede presentarse como herramientas con paradigmas de inteligencia comercial segmentacin y separacin, etc. Descarga: Por ltimo, el usuario debe poder recuperar los grupos de resultados para la manipulacin avanzada sin conexin, segn sea necesario. Escenario de autora: El escenario de autora trata los aspectos del proceso total para proporcionar capacidades para que un usuario final complete un trabajo de clculos. En trminos generales, el autor de un proceso debe poder desarrollar nuevas capacidades y procesos y publicarlos para el consumo de los usuarios finales. La Figura 3 muestra el escenario de autora para dos participantes: autores y usuarios avanzados. La diferencia entre estas funciones es que un autor probablemente desarrolle cdigo, mientras que un usuario avanzado posiblemente configure el cdigo existente. El escenario de autora puede describirse de la siguiente manera: Desarrollo:

Preproceso: El paso de preproceso para un trabajo puede realizar

diversas cosas. Probablemente traslade los grupos de datos a los nodos del clster y tal vez realice un grupo de procesamientos iniciales, como la generacin de medidas analticas para ser utilizadas en el procesamiento principal. Tambin puede inicializar estructuras de datos y evaluar todos los datos para su validacin antes de ejecutarlos. Proceso: Esta fase representa el procesamiento paralelo en s. Cada nodo ejecutar una porcin y puede ser necesario pasar resultados intermedios a otros nodos para que se complete el proceso total (trabajo de paso de mensajes). Otra opcin es que

Actividades: Un desarrollador puede querer construir actividades o

elementos del proceso diferenciados que puedan utilizarse como parte del proceso total de una tarea de informtica. Un ejemplo podra ser una actividad genrica para llevar a cabo un FTP del conjunto de resultados. Algoritmos: El desarrollador puede crear los algoritmos reales para que se utilicen en el paso de clculos del proceso del usuario final.

10

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Informtica de alta productividad Flujo de trabajo: Un desarrollador de usuarios avanzados puederepresentar los requisitos para una solucin de HPC y considerando el valor descripto al comienzo en la construccin de una solucin de HPC, podemos ahora considerar algunos escenarios de la solucin para cumplir con estos requisitos. Informtica de alto rendimiento con la edicin de Microsoft "Compute Cluster Server El servicio fundamental necesario para la solucin es la capacidad de los clsteres de la Informtica de Alto Rendimiento en s. La edicin de Microsoft Compute Cluster Server (CCS) ofrece capacidades de clsteres para cumplir con el paso Proceso del escenario del problema. (Ver Figura 5) CCS brinda capacidades de clsteres para una versin reducida de Windows Server 2003 que permiten, por ejemplo, el uso de procesamientos paralelizados, aprovechando varios procesadores para completar procesamientos particularmente complejos o intensivos como aquellos que se basan en estadsticas generales. El control de un clster de CCS es realizado por un nodo principal que se comunica con los nodos del clster para impartir instrucciones y coordinar una serie de tareas sobre un trabajo especfico. Los nodos del clster pueden estar en una red privada, para un desempeo ptimo, y probablemente sea una red de tiempo de espera mnimo para asegurar que el tiempo de espera de red no tenga un impacto sobre el tiempo del procesamiento. La seccin de recursos al final de este documento contiene vnculos hacia artculos tcnicos sobre la configuracin e implementacin del CCS. El nodo principal posee un programador de tareas que permite la insercin de una tarea de procesamiento dentro de una cola para que se ejecute cuando la cantidad necesaria o deseada de procesadores estn disponibles para completar la tarea. Se proporciona una base de datos pequea al nodo principal para mantener un seguimiento de la cola de tareas en curso. Se puede acceder al programador de tareas mediante una interfaz en el nodo principal, va lnea de comando, que se puede parametrizar o ejecutar con una definicin de XML de los parmetros, o va API (CCS API) para interaccin programtica. Un clster CCS puede controlar diferentes tipos de trabajos como los que se detallan a continuacin:

definir flujos de trabajo de clculos especficos mediante la unin de actividades y algoritmos para crear un paso de cmputos total compuesto de pre y post procesamientos as como tambin de la tarea de cmputos en s.

Publicacin:

Catlogo: Despus del desarrollo de actividades, algoritmos y

flujos de trabajo, el autor desear realizar un catlogo del desarrollo para que lo utilicen otros autores o usuarios finales. Configuracin: Es posible que se requiera la configuracin de algunas actividades o flujos de trabajo, como restriccin de acceso u otras normas que regulen el uso de la tarea desarrollada. Publicacin: Por ltimo, el autor debe presentar la tarea desarrollada cuando est lista para utilizar. Lo ideal sera que esto no requiera ningn esfuerzo de administracin informtica. Escenario de administracin. Finalmente, se necesita la administracin de la plataforma de HPC. En este caso, consideramos que las tareas principales para respaldar al usuario final comprenden el monitoreo y la contabilidad y excluyen otras tareas de administracin bsicas como configuracin del clster y otras actividades generales de infraestructura informtica. (Ver Figura 4) El escenario de administracin se puede describir de la siguiente manera: Publicacin:

Monitoreo: Por lo general, los clsteres son recursos compartidosadministrados por personal especializado. Ellos deben controlar que las instalaciones proporcionen funcionalidad y rendimiento, por ejemplo, analizar las colas de trabajo y las tendencias de consumo de recursos. Cuenta: Es recomendable justificar el uso de la utilizacin de recursos por parte de ciertas cuentas. Esto ayuda cuando los clsteres son financiados y utilizados por varios grupos. Facturacin: Es posible crear modelos de cargo al usuario para facturar su uso de un modo explcito.

Trabajo en serie: sta es una tarea de procesamiento habitual quesimplemente ejecuta un programa necesario. tareas/programas en potencia.

Escenario de la solucin Despus de haber detallado varios escenarios generales que pueden

Flujo de tareas: Varios trabajos en serie compuestos de mltiples

Figura 5: Microsoft Cluster Compute Server Edition satisface el paso del proceso.

Escenario de informticaAcceso Inicio de sesin Solicitud Carga Proceso Preproceso Anlisis Automtico

Inicializacin

Ingreso de datos

Proceso

En lnea

Usuario Aprobacin Postproceso Descarga

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

11

Informtica de alta productividad

Consideracin de la cadena de valorPor lo general, los usuarios de soluciones de informtica de alta productividad son altamente cualificados y son recursos muy preciados para los equipos de investigacin y desarrollo. Sus habilidades y experiencia profesional son necesarias para brindar aportes en los procesos, algoritmos para los clculos y el anlisis del producto resultante. Sin embargo, se debe permitir que estos recursos trabajen lo ms eficaz y eficientemente posible. La creacin de soluciones poco claras, de un modo u otro, afectaran esto de varios modos posibles: La compresin de la cadena de valor en lo que respecta a tiempo y costo debe ser la inquietud principal para la provisin de la solucin. Dados los problemas detallados con mejoras en la velocidad para el trabajo informtico, las mejoras deben identificarse fuera de este mbito y en otras reas del proceso. Candidatos ideales para la reduccin del costo en el proceso son, ampliamente, todos los aspectos de la cadena de valor con la probable excepcin de la creacin del algoritmo, que es la invencin y propiedad intelectual de la solucin. La reduccin de costos se divide en dos partes: el costo para utilizar la solucin y el costo de administracin. Mejorar el proceso para la publicacin y uso de algoritmos, y brindar soporte analtico podra reducir el costo total del proceso. A partir de la consideracin de la cadena de valor, un conjunto de soluciones debe estar compuesto de herramientas que proporcionen dos caractersticas fundamentales: simplificar la finalizacin de la tarea y oportunidades para la interaccin mejorada. Una cadena de valor mejorada Proporcionar una solucin basada en HPC utilizando una arquitectura similar a la descripta puede tener varios beneficios para la cadena de valor total. (Figura 2) Existen varias reas que podran estar afectadas inicialmente:

Es posible que el usuario deba tener cierto conocimiento del

sistema que va ms all de lo que habitualmente se esperara. Por ejemplo, necesito saber los principios bsicos de un control remoto para poder operar mi televisor, pero para mirar televisin, no necesito saber el voltaje requerido para activar su pantalla de LCD. Los expertos que han participado de una solucin individual pueden encontrar difcil liberarse de eso. Por ejemplo, si Alicia ha codificado un algoritmo para la solucin, puede encontrar que est muy involucrada en la operacin diaria de la solucin porque slo ella comprende el mejor modo de interactuar con el sistema para utilizar el algoritmo. Ella debera realmente dedicarse a crear algoritmos an mejores. El resultado despus de una o dos creaciones de mejoras no slo representa un alto costo en la operacin de la solucin, sino tambin un problema de riesgo ya que Alicia se ha vuelto un componente fundamental de la solucin. La solucin tambin puede ser un problema en lo que respecta a la administracin para los equipos fundamentales de informtica. Una solucin de HPC creada con gran destreza por expertos en dominio podra fcilmente ser anloga para las soluciones de hojas de clculo vinculadas del equipo de ventas que puede ser problemtico para cualquier desarrollo interno o para los equipos de soporte.

CostoTiempo reducido mediante la automatizacin

Publicar

Publicar

tiempo y gastos son posibles mediante el uso de interfaces intuitivas, validacin y otra lgica para garantizar la captura de informacin adecuada. Adems, los administradores o codificadores especializados pueden ya no ser necesarios en esta instancia del proceso. Publicar un trabajo de larga ejecucin. Tanto el tiempo como los gastos se pueden reducir debido a que la informacin es capturada El diagrama de la Figura 1 representa el proceso de alto nivel para la por el sistema y, por lo tanto, la publicacin del trabajo provisin y uso de una solucin de HPC. puede automatizarse completamente Figura 1: Cadena de valor original Costo de la informtica. El costo se reduce mediante la Cadena de valor original Ejecucin del flujo de trabajo (interactivo debido a regs de las especializacin de las funciones secuencias de comandos) Costo el monitoreo puede ocurrir desde Tiempo la perspectiva de un usuario de final y el costo total entre varios Crear flujo de trabajo Crear actividad Analizar trabajo trabajos puede reducirse Tiempo mediante el reconocimiento Tiempo mejorado de trabajos errneos o de Publicar Publicar espera fallas que pueden cancelarse antes de haber finalizado la Costo ejecucin. Este reconocimiento Ahorro neto = rea de la cadena original - rea de la cadena nueva mejorado es nuevamente proporcionado por el uso del monitoreo y mecanismos de feedback que se presentan a la Figura 2: Cadena de valor mejorada interfaz del usuario. Anlisis. El anlisis se puede Feedback anterior va visualizadores Cadena de valor nueva iniciar de un modo ms rpido si Costo reducido mediante la Simplificacin mediante especificacin del rol sistema consolidado la interfaz del usuario presenta Cost informacin durante la ejecucin Tiempo de del trabajo; puede estar Crear trabajo Analizar Crear flujo de algoritmo disponible algn anlisis Ejecucin del flujo de trabajo Tiempo trabajo automtico que reduce los costos Tiempo Ejecucin Ejec. iniciales antes de que se necesite del flujo de del de Costo reducido mediante la trabajo FT intervencin especializada. espera especificacin del rolEjecucin del flujo de trabajo

Planificacin para un trabajo de larga ejecucin. Las reducciones de

Publicar

12

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Informtica de alta productividad

Figura 6: Workflow Foundation puede brindar una capa de aplicacin completa que abarque la mayora de las reas en los pasos de Solicitud, Proceso y Anlisis.Escenario de informtica

Acceso Inicio de sesin

Solicitud Carga

Proceso Preproceso

Anlisis Automtico

Inicializacin

Ingreso de datos

Proceso

En lnea

Usuario Aprobacin Postproceso Descarga

instancias de un nico programa pero con una serie de parmetros diferentes, permitiendo varios resultados en el mismo perodo de tiempo como una tarea nica. Tarea de interfaz de paso de mensajes: El trabajo ms sofisticado sera el uso de una Interfaz de Paso de Mensajes (MPI) para paralelizar un algoritmo y dividir el trabajo del procesamiento entre varios procesadores que se coordinan para proporcionar aumentos de velocidad en procesamientos complejos y largos. Varios o todos estos tipos de trabajo se pueden encontrar dentro de un nico proceso de informtica. CCS debe poder ofrecer una plataforma slida para cualquiera de las tareas de pre- o postprocesamiento as como tambin la tarea principal de procesamiento. Lgica de aplicacin con Windows Workflow Foundation Ya que podemos considerar que el proceso informtico total es una instancia de un flujo de trabajo de mquinas y personas de larga duracin, podemos considerar a Windows Workflow Foundation (WF) como el punto de inicio para la construccin de una estructura y capa de aplicacin de la solucin de HPC. En realidad, HPC posee varios componentes que se pueden utilizar para proporcionar una capa de aplicacin completa para la solucin de HPC. Las reas particulares (pero no exhaustivas) que puede cubrir el WF se muestran en la Figura 6. WF forma una parte fundamental del marco de trabajo .NET 3.0 y ofrece un motor de flujo de trabajo completo que se puede alojar en varios entornos. La seccin de recursos de este artculo contiene varios vnculos para obtener ms informacin sobre el Windows Workflow Foundation. Algunas de las caractersticas principales del WF para considerar son las siguientes:

Anlisis paramtrico: Este tipo de trabajo podra ejecutar varias

servidor muy eficaces (por ejemplo, Microsoft Office SharePoint Server 2007), estos productos poseen actividades bsicas para utilizar dentro del WF. Finalmente, las actividades se pueden construir en la medida que sean necesarias para crear una biblioteca individualizada y cumplir con un requisito especfico. Motor de reglas: WF posee un variado motor de reglas de encadenamiento progresivo que se puede utilizar para la toma de decisiones dentro de un flujo de trabajo, pero tambin se puede ejecutar fuera de las instancias del flujo de trabajo. Las actividades se disean para que funcionen con este motor de reglas. Diseador y realojamiento: WF tambin posee una superficie de diseo completa de arrastrar y soltar que se utiliza dentro de Visual Studio 2005 pero tambin puede ser realojada dentro de, por ejemplo, una aplicacin de formularios de Windows. Servicios en tiempo de ejecucin: El tiempo de ejecucin del WF puede contar con servicios que han sido incluidos antes de la ejecucin del flujo de trabajo para interceptar la ejecucin de un flujo de trabajo y desempear acciones como persistencia o seguimiento. Los servicios tambin se pueden construir en la medida que sean necesarios. Lenguaje de Marcado de Aplicaciones Extensible (XAML): Por ltimo, WF utiliza en gran medida el XAML para describir flujos de trabajo y conjuntos de reglas, lo que significa que la serializacin es trivial y que realmente es posible la generacin de administradores de reglas y superficies de diseo individualizadas.

Dadas estas caractersticas, podemos ahora ver el modo en el que WF ofrece capacidad a la arquitectura. Bibliotecas de actividades Las bibliotecas de actividades son los bloques de construccin necesarios para la solucin del HPC. Algunos ejemplos son los siguientes:

Flujos de trabajo de estado y en secuencia: El tiempo de ejecucin

del WF puede administrar flujos de trabajo orientados al estado y secuenciales, por lo tanto, se pueden describir una gran variedad de procesos. Estos flujos de trabajo tambin pueden gestionar excepciones y reintentos. Bibliotecas de actividades: Los flujos de trabajo estn compuestos de actividades como toma de decisiones, ejecucin de bucles y ejecuciones en paralelo, as como tambin, actividades de cdigo arbitrario y varias de estas actividades estn listas para usar en el .NET 3.0. Adems, debido a que el WF se utiliza para productos de

Comunicacin del clster. Es posible crear una actividad

personalizada que utilice la interfaz de programacin de la aplicacin CCS para comunicarse con el programador de tareas y crear o cancelar trabajos en el clster. Esta actividad personalizada puede entonces ser utilizada por cualquier flujo de trabajo que necesite comunicarse con el programador de tareas y proporcionar un nivel ms alto de abstraccin para los usuarios avanzados quienes pueden necesitar crear nuevos flujos de trabajo o corregir los existentes sin conocimiento detallado de programacin.

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

13

Informtica de alta productividad

Arquitectura de ComponentesLa arquitectura principal se parece a la conocida arquitectura de aplicacin de n-capas y, en lneas generales, ste es de hecho el caso. La organizacin de la funcionalidad es bastante lgica. La Figura 1 muestra los componentes necesarios para la arquitectura. Figura 1: Componentes Capa de aplicacin La capa de aplicacin est compuesta por el tiempo de ejecucin del WF alojado como un servicio NT. Esta capa se utiliza principalmente para comunicarse con el programador de tareas del clster, pero ofrece una variedad de funciones:

Biblioteca de flujos de trabajo y actividades para controlar el clsterArquitectura de componentes (con protocolos de comunicacin)Interfaz de usuarioAutoraVisual Studio 2005 Extensiones WF SCC API

EjecucinMO SS 2007 WPF ASP NETFormularios de Windows

AdministracinPowerShell Administrador de operaciones de Microsoft

Ejecucin(PCT) FCW

Tiempo de ejecucin del flujo de trabajo Biblioteca de actividades Registro Persistencia (PCT) FCW (PCT) FCW

PCT

Formularios de Windows

y realizar movimientos de datos y otros pasos pre y post procesamiento. Motor de reglas y polticas para administrar el acceso a un clster y, potencialmente, proporcionar prioridades y capacidades de metaprogramacin y seguridad. Informacin de seguimiento para la ejecucin de trabajos brindando informacin documentada, segn sea necesario. Informacin de persistencia que permita escalar la solucin y proporcionar eficacia a los flujos de trabajo de larga duracin y, potencialmente, la capacidad de volver a ejecutar un flujo de trabajo desde un estado en particular. Servicio de datos El servicio de datos contiene bases de datos de soporte como almacenes persistentes y seguimiento para el tiempo de ejecucin del flujo de trabajo. En esta arquitectura, tambin es probable que exista un almacn que contenga resultados o agregados a resultados. Es posible que los archivos de entrada y salida de datos se traten como archivos para mover de un modo ms fcil los clsteres hacia los nodos de proceso respectivos. Finalmente, hay una base de datos que contiene un catlogo de los flujos de trabajo disponibles para su ejecucin. Servicio de cmputos El servicio de cmputos es el ms simple de la arquitectura y est compuesto de un clster de x nodos en una configuracin determinada. Comunicacin La comunicacin en todo el proceso de arquitectura se gestiona utilizando Windows Communication Foundation mediante un TCP (conexin remota) o un canal HTTP. Esto mantiene a la arquitectura escalable y desacoplada y ofrece beneficios para las interfaces de usuario diferentes, segn requisitos del usuario (autora, ejecucin, emisin de informes). Seguridad En una estructura distribuida orientada al servicio, que potencialmente pasa por varios dominios de seguridad, es fundamental la federacin de identidades para permitir el control de acceso a nivel del usuario y el inicio de sesin nico para todos los aspectos de la arquitectura de componentes. Las tecnologas que ofrecen estas capacidades son aquellas que estn basadas en certificados, federacin de directorio activo (junto con extensiones para integrarse con los sistemas Unix) y Windows CardSpace de Microsoft.

Servicio de datosServidor SQL Resultados DB Registro DB

Almacn de archivos Callogo de flujos de trabajo DB Persistencia DB

(PCT) FCW

Servicio de cmputosProgramador de tareas C, C++, MPI

Interfaz de usuario La experiencia de la interfaz de usuario puede dividirse en tres partes. Cada una desempea una funcin diferente de la solucin general:

La experiencia de usuario principal para planificar y ejecutar un

procesamiento puede proporcionarse mediante varias tecnologas. Algunos ejemplos podran ser Windows Forms, Windows Presentation Foundation, ASP.NET o Microsoft Office SharePoint Server. La eleccin de la tecnologa debe ser apropiada para las caractersticas de un entorno particular (por ejemplo, el uso de tecnologas de Web en las que se requiere amplia disponibilidad o WPF en el que se necesita una interaccin muy variada). La experiencia de autora del flujo de trabajo es proporcionada por Visual Studio 2005 que utiliza la superficie de diseo de autora del Windows Workflow Foundation (WF). El uso del modelo code beside (cdigo al lado) de los flujos de trabajo en desarrollo permite utilizar una nueva interfaz API de Control de Cdigo Fuente para enviar archivos XAML de WF hacia un depsito de bases de datos central, por ejemplo, para ejecutar en la interfaz de usuario. Para los administradores informticos, el Microsoft Operations Manager puede utilizarse para controlar el buen funcionamiento y el estado del clster de HPC, si bien para los usuarios finales de un sistema HPC, se pueden poner a disposicin observaciones ms comprensibles para el usuario mediante el uso de Windows PowerShell.

Actividades del trabajo de clster fuertemente tipeados, de ms

alto nivel que tratan archivos ejecutables especficos (en vez de arbitrarios). Actividades para los movimientos de datos en la red, posiblemente, utilizando WF para controlar los servicios de integracin del servidor SQL. Carga de datos y actividades FTP, para resultados del movimiento. Recuperacin en el caso de que ocurra alguna falla en el proceso. Actividades de notificacin para eventos durante el proceso. Actividades basadas en reglas para controlar la optimizacin automatizada del proceso o privilegios de acceso.

Los flujos de trabajo para escenarios informticos especficos se pueden juntar utilizando una combinacin de estas actividades genricas y alguna actividad especfica para posibilitar el escenario deseado. Las actividades del flujo de trabajo cumplen todas las reglas habituales de legado, por eso, vale la pena tener en cuenta que es posible confeccionar un entorno heterogneo para una interfaz general y luego seleccionarlo (en el momento del diseo o tiempo de ejecucin) para permitir la ejecucin de un determinado clster. Un ejemplo conveniente para esto sera crear una actividad que permita la ejecucin de un procesamiento MPI sobre una mquina local tal vez, utilizando dos procesadores para la evaluacin.

14

www.architecturejournal.net - Journal 11 THE ARCHITECTURE JOURNAL

Informtica de alta productividadeventos y rellamadas del clster y luego realizar actividades nuevas dentro de un flujo de trabajo. Por ejemplo, el servicio de monitoreo puede examinar una excepcin durante el procesamiento o se puede utilizar para cancelar un procesamiento que se est ejecutando sobre el clster. Se podran construir servicios adicionales junto con estos. Un ejemplo sera un servicio de facturacin que monitorea las duraciones del uso del procesador y factura a un usuario en consecuencia. Seguridad y poltica WF posee un motor de reglas de encadenamiento progresivo eficaz que puede utilizarse dentro de una instancia de flujo de trabajo. Se pueden crear reglas en cdigo, o de forma declarativa, y luego compilarlas junto con el flujo de trabajo para su ejecucin. Servicios WF ofrece varios servicios que pueden utilizarse en la medida que sean necesarios mediante la asignacin de la implementacin del servicio al tiempo de ejecucin del flujo de trabajo. Tres de los ms tiles para HPC son: Las reglas y las polticas pueden tener diversos usos:

Figura 7: Con el uso de la capa de aplicacin basada en WF, Windows Presentation Foundation (izquierda) y Microsoft Office Sharepoint Server (derecha) ofrecen experiencias de usuario diversas.

Identidad del usuario. Podra concederse acceso a recursos del

Servicio de seguimiento. Utiliza la nocin de perfiles de

seguimiento y un esquema de base de datos estndar para controlar las ocurrencias en un flujo de trabajo. Esto se puede ampliar en caso de ser necesario o reemplazar completamente con una implementacin personalizada. El servicio listo para usar, por lo general, es suficiente para proporcionar una auditora bien detallada de la ejecucin del flujo de trabajo. Servicio de persistencia. Utiliza un esquema de base de datos estndar para comprimir o expandir las instancias del flujo de trabajo, en la medida que lo necesite el tiempo de ejecucin, o segn lo especifique el host. La expansin de un flujo de trabajo en ejecucin sucede cuando ocurre un evento en ese flujo de trabajo, haciendo que el WF sea un controlador ideal para flujos de trabajo de larga duracin, como semanas, meses o grandes procesamientos. La persistencia tambin proporciona escalabilidad entre las mltiples aplicaciones de control y permite el uso de grupos de cambio para restaurar un flujo de trabajo a una posicin almacenada anteriormente y volver a ejecutarlo desde all. Potencialmente, esto posee beneficios significativos para procesamientos complejos de varias etapas y para volver a ejecutar procesamientos de investigacin cientfica en un determinado estado. Servicio de monitoreo del clster. Este servicio puede registrar

sistema o a tipos de recursos basndose en la identidad, o se podran agregar y eliminar pasos en un flujo de trabajo o servicios segn la identidad. Optimizacin. Se podra proporcionar cierta automatizacin para un proceso de negocio u optimizacin mediante el uso de reglas combinadas con inteligencia comercial u otros parmetros conocidos para finalizar o eliminar pasos en un flujo de trabajo, segn sea necesario. Metaprogramacin. CCS no posee en la actualidad un metaprogrmador, pero el WF podra utilizarse para designar la ejecucin de clsteres particulares segn los parmetros, como cantidad necesaria de procesadores o estado actual de los clsteres disponibles, o identidad del usuario. Por lo tanto, WF posee una flexibilidad y eficacia significativa. Tambin analizaremos ms adelante el modo en el que podemos utilizar las funciones del WF para ofrecer una experiencia de autora. Experiencia del usuario con Microsoft Office SharePoint Server Si utilizamos el WF para proporcionar la lgica de la aplicacin y el control del proceso significa que podemos utilizar cualquier tecnologa para almacenar la lgica de la aplicacin desde ASP.NET para Formularios de Windows hasta Windows Presentation Foundation (WPF). Las imgenes capturadas de la Figura 4 muestran el uso de

Figura 8: Escenario de informtica con Microsoft Office SharePoint ServerEscenario de informtica

Acceso Inicio de sesin

Solicitud Carga

Proceso Preproceso

Anlisis Automtico

Inicializacin

Ingreso de datos

Proceso

En lnea

Usuario Aprobacin Postproceso Descarga

THE ARCHITECTURE JOURNAL Journal 11 www.architecturejournal.net

15

Informtica de alta productividad

Figura 9: El Administrador de Operaciones de Microsoft puede monitorear el buen funcionamiento del sistema del clster CCS

Implementacin genrica?Si bien los aspectos de la arquitectura propuesta estn previstos para la reutilizacin, es poco probable que la arquitectura pueda ser muy genrica para simplemente ser reutilizada de escenario en escenario. Es ms probable que la arquitectura represente un enfoque shell o ball-and-socket: el desarrollo ser requerido en cada escenario pero con varios enfoques y componentes reutilizables. En siguiente Figura se muestra una proporcin especulativa (basada en la experiencia de desarrollo) para componentes genricos a especficos. Estas proporciones se podran explicar del siguiente modo: Interfaz de usuario 50-50. Los aspectos ms importantes de la interfaz de usuario controles de movimiento de archivos, controles sobre la ejecucin del trabajo y monitoreo con mucha probabilidad sean inmediatamente reutilizables y aplicables a varios escenarios. La especializacin ser necesaria, al igual que con la interfaz de usuario, para cualquier proceso determinado, en particular con escenarios tan diversos como los procesamientos HPC. Capa de aplicacin 80-20. La capa de aplicacin est compuesta de una serie de flujos de trabajos y actividades que se pueden volver a vincular y organizar para un proceso particular. Con cierto trabajo, es posible que varias de estas actividades y elementos lgicos puedan ser reutilizados con ciertos datos nuevos. Los ejemplos podran incluir actividades para el movimiento de archivos, integracin de CCS, poltica y metaprogramacin. Tambin, varias herramientas de autora podran ser vlidas para usuarios avanzados en cualquier escenario. Capa de HPC 10-90. Muy poco de la capa de HPC Implementacin estndar posee alguna reutilizacin ya que cada algoritmo Interfaz de ser nico. Sin embargo, usuario los procesos de 50% 50% instalacin y monitoreo son reutilizables y coinciden con los Aplicacin paradigmas existentes de 80% 20% Microsoft.

Escenario de Administracin Administrar Monitoreo

Administrador

Cuenta

WPF y Microsoft Office SharePoint Server (MOSS), utilizando respectivamente la misma capa de aplicacin basada en WF, aunque ofrecen experiencias de usuario muy diferentes. El uso de Microsoft Office SharePoint Server (MOSS) brinda un nivel de solucin que contempla reas en los pasos de Acceso, Solicitud y Anlisis (Figura 8). Los motivos son los siguientes: Colaboracin. La investigacin y otros usos tpicos de HPC giran en torno a actividades de colaboracin, y MOSS es extremadamente variado en funciones en lo que respecta a permitir la colaboracin en referencia con el concepto de sitios. Acceso. Los grupos de investigacin pueden estar separados geogrficamente, por lo tanto, una interfaz basada en la Web ayuda a garantizar que la plataforma est disponible para todos los usuarios. Se podra generar un valor comercial significativo si se proporciona a usuarios remotos acceso a una plataforma HPC. Extensibilidad. MOSS se puede ampliar de diversas formas, desde la bsqueda y catalogacin de informacin hasta la construccin de partes de Web que se inserten en la aplicacin principal. Esta extensibilidad tambin proporciona una plataforma de desarrollo y paradigma de usuario slidos y una estructura para toda la solucin. Flujo de trabajo. MOSS tambin es potenciado por WF, por lo tanto, la sinergia entre las dos tecnologas es muy clara. Una ventaja es que el tipo de habilidades que poseen los equipos que manejan flujos de trabajo HPC y que manejan otros flujos de trabajo comerciales es totalmente transferible. Para cubrir los niveles necesarios podemos aprovechar varias funciones de MOSS:

Capa de datos 40-60.

Acceso e Inicializacin. Las capacidades de usuario y de inicio de

Una vez ms, las estructuras de datos exclusivas sern necesarias para cualquier procesamiento determinado, pero las bases de datos de facturacin, persistencia y seguimiento, por ejemplo, sern todas aplicables de escenario a escenario.

HPC 10% 90%

Datos 40% 60%

sesin nico de MOSS proporcionarn efectivamente funcionalidad para el acceso estndar. La inicializacin puede facilitarse extremadamente mediante la creacin de sitios individualizados que representen tipos de trabajos de informtica. Por lo tanto, un usuario puede