VADMIND ---------------------------------------------------------- La Evolucion en la Administracion de Sistemas Distribuidos ---------------------------------------------------------- Por: Urivan Alyasid Flores Saaib saaib@ciberlinux.net INTRODUCCION ------------ En los a~os '60, el problema de administracion de sistemas distribuidos no existia dado que estos se encontraban centralizados y usualmente almacenados dentro de un edificio, sin embargo, con el paso del tiempo, el poder, la complejidad y la conectividad entre los sistemas de computo y redes evoluciono. En la actualidad, las organizaciones y empresas dependen en gran medida de los sistemas de computo y redes de comunicacion para su operacion. Dado que esta infraestructura puede estar geografica y funcionalmente distribuida, la administracion de estos se convierte en una tarea critica. ** En este documento describiremos como la plataforma de administracion remota para sistemas POSIX, VAdmind, permite que la administracion remota de sistemas distribuidos sea algo sencillo. ** Todas las cosas evolucionan, y al momento de hacerlo, cambios importantes y revolucionarios ocurren. Esto tambien se presenta en el area de computo y la administracion de sistemas en red. Las organizaciones se encuentran en un posicion en el que se trata de reducir los costos de operacion de sus sistemas distribuidos, y para lograrlo, es necesario entender como la administracion de los sistemas ha evolucionado, y que cambios importantes han sucedido. LA EVOLUCION DE LA ADMINISTRACION DISTRIBUIDA --------------------------------------------- Al principio, la administracion de sistemas distribuidos no era problema, pues los sistemas estaban centralizados y usualmente almacenados en grandes edificios. En esos tiempos los sistemas no estaban interconectados y la informacion se compartia a travez de cintas magneticos, esto permitio que la administracion de estos sistemas se mantuviera centralizada, siendo realizada de manera periodica durante las horas en que los sistemas eran menos usados. Los sistemas distribuidos comenzaron a entrar en produccion a inicios de los '70s con la introduccion de la mini-computadora. Estos sistemas se encontraban usualmente aislados y eran usados para funciones especializadas o departamentales, usualmente les brindaban mantenimiento los fabricantes de los sistemas y proveian una sola funcion, tales como: inventarios, procesamiento de texto, puntos de venta, etc. La revolucion de la computadora personal llego en los 80's. Tan pronto las PCs comenzaron a aparecer, se fueron adquiriendo para uso individual o departamental. Las computadoras y sus datos se encontraban en el mismo lugar, aislados de los sistemas de procesamiento principal y de las redes. Eventualmente los usuarios de PCs y organizaciones tuvieron la necesidad de extraer informacion de bases de datos centralizadas y poderlas integrar con sus hojas de calculo y otras aplicaciones, esto evoluciono hasta tener aplicaciones de mision critica basadas en el intercambio de datos a travez de un mecanismo de comunicacion. La computadora personal se convirtio en parte de la estrategia general y de esta manera, la administracion de sistemas cambio para siempre. Los centros de datos ya no solo estaban preocupados por la administracion de sus sistemas centralizados, sino que tuvieron que encarar la problematica de administrar cientos de computadoras en otros centros de datos e inclusive un mayor numero de computadoras personales distribuidas en diferentes zonas geograficas. Es aqui cuando algunas empresas comenzaron a desarrollar aplicaciones para la administracion de estos sistemas distribuidos. En esos tiempos las principales areas de importancia eran: actualizacion de aplicaciones, administracion de configuraciones e inventario de aplicaciones y equipo. Poco despues, otro fenomeno comenzo a ocurrir llamado "Red de Area Local" (LAN). Esta tecnologia permitia nuevos retos y posibilidaded; las aplicaciones y el equipo de computo podian ser compartidas y accesadas de una manera sencilla, las bases de datos podian ser instaladas en servidores de archivos compartidos. Estos cambios reducieron los problemas de distribucion de aplicaciones, equipos de computo y la administracion de configuraciones, pero trajo nuevos retos. Los equipos e informacion compartida requerian de un analisis de desempe~o para reducir los tiempos de respuesta y mejorar la productividad del trabajador. Nuevas aplicaciones aparecieron en el mercado denominadas cliente/servidor, que distribuian un poco del procesamiento centralizado que realizaban los servidores y supercomputadoras. Este nuevo paradigma fomento la creacion de nuevas areas de investigacion para la administracion de sistemas distribuidos: sincronizacion, monitoreo, rastreo de problemas entre otros. De manera similar, las redes se volvieron mas complejas al interconectar redes departamentales a travez de puentes, interruptores y enrutadores para crear redes de area amplia. El ambiente de los sistemas de computo, poco a poco se fue tornando en una tarea dificil de realizar, requiriendo grandes cantidades de recursos humanos de ingenieros para operar de manera efectiva los sistemas distribuidos. En los '90s, la explosion del WWW y la creacion de HTML evolucionaron los sistemas distribuidos. Lo que comenzo como un mecanismo para compartir documentos pronto se convirtio en un modelo de computo distribuido mundial. Las organizaciones comenzaron a usar el WWW para compartir informacion de productos de manera publica y privada, lo cual permitio la evolucion de los sistemas cliente/servidor a aplicaciones en navegador. La revolucion basada en el web creo nuevas posibilidades de integracion y de independencia de plataformas, las aplicaciones ahora podian ser desarrolladas sin importar demasiado la plataforma del cliente. Esto tambien introdujo la posibilidad de centralizar la administracion de servidores WWW y a disminuir la preocupacion en el desempe~o de la aplicacion en la plataforma del cliente. Un nuevo modelo de administracion de servicios distribuidos fue concebido. Clientes internos y externos ahora podrian conectarse a diferentes aplicaciones siendo albergadas en diferentes servidores, los cuales podrian estar fisicamente en diferentes sistemas de computo. Las herramientas de administracion de sistemas ahora podian ejecutar ciertas partes localizadas en diferentes sistemas de computo. Con la creacion de XML como mecanismo de codificacion de informacion, la idea de un sistema con infraestructura distribuida e independiente de plataforma tomaba forma. El uso de XML y HTTP permitia a cualquier sistema el poder enviar y recibir informacion estructurada para fines administrativos. VADMIND: La plataforma para uso y desarrollo de herramientas administrativas ---------------------------------------------------------------------------- Con el avance de las tecnologias actuales y en respuesta a la demanda de herramientas para la administracion de sistemas remotos con licencias abiertas (codigo abierto), surge la propuesta de desarrollar una plataforma con su arquitectura basada en capas, la cual, a travez de la utilizacion de XML, TCP/IP, lenguajes de programacion y sistemas operativos dinamicos, pudiera llevar el concepto de administracion remota en sistemas distribuidos (usuarios, configuraciones, inventarios, etc) a aquellas areas que requieran procesos de control especializados, y que con el solo hecho de tener un mecanismo de comunicacion en red, pudiesen desarrollarse rutinas de control de una manera rapida y eficaz. Con la maduracion y mejora constante de los sistemas operativos Linux y *BSD, estos han adquirido el nivel de calidad necesario para poder ser considerados por la industria actual como plataformas de produccion, ademas, con la creacion de ramas de estos sistemas en dispositivos moviles e incrustados, pensar en la posibilidad de administrarlos remotamente se vuelve una tarea sencilla con la plataforma VAdmind. LA ARQUITECTURA --------------- VAdmind propone las siguientes bases de la plataforma de uso y desarrollo: 1.- La comunicacion entre el Cliente y ale Servidor se realizara a travez de TCP/IP. 2.- La comunicacion entre el Cliente y el Servidor debera estar encapsulada en un esquema semantico XML (1.0) 3.- El Cliente y Servidor intercambiaran 2 lineas de texto XML minimo (autenticacion), siendo 4 el maximo (comandos). 4.- La comunicacion entre el Cliente y Servidor sera terminada por el Servidor (previa notificacion al Cliente) en caso de que el mecanismo de autenticacion sea invalido. 5.- La localizacion de la aplicacion Cliente sera independiente de la localizacion de la aplicacion Servidor. El Servidor: 6.- La funcionalidad administrativa debera estar contenida en archivos independientes del Servidor denominados modulos o plug-ins. 7.- Los comandos (modulos y funciones) a ejecutar deberan ser especificados en la cadena XML de comandos recibida por el Servidor. 8.- Los modulos seran cargados en tiempo de ejecucion. 9.- El Servidor debera proveer una estructura de datos sencilla y robusta en la cual almacenara la informacion que asi se definan como elementos de un comando en la cadena XML. Esta estructura debera ser accesible en cada una de las rutinas (referenciadas en el XML) de cada modulo (plug-in). 10.- Cada rutina debera proveer informacion indicadora del resultado de su ejecucion, la cual debera ser almacenada en la estructura provista por el servidor. 11.- El servidor debera ser capaz de recibir uno o mas comandos referenciados dentro de la cadena XML. El Cliente: 12.- Un Cliente podra establecer contacto con uno o mas Servidores distribuidos en diferentes sistemas. 13.- El lenguaje, plataforma e interfaz utilizados para desarrollar un Cliente no se definen c El proyecto VAdmind se propone como una plataforma de administracion remota de uso multiple para sistemas Linux. DESARROLLO DE MODULOS --------------------- Los planes a corto plazo para la creacion de modulos para VAdmind, consiste en tomar el codigo, limpiarlo y portarlo de la herramienta Webmin [http://www.webmin.com]