Migracion BSD
De BSD Chile
Los pasos de una migración
Este artículo se concentra en los pasos de una conversión exitosa de una plataforma a *BSD. El enfoque principal es FreeBSD, aunque los argumentos sean parecidos para NetBSD y OpenBSD. [[Ogautherot]]
El mercado
En nuestra sociedad, los computadores son cada vez más presentes y ejecutan cada vez más tareas. Al mismo tiempo, la evolución de su potencial es impresionante y, en general, más allá de nuestro entendimiento. El resultado son máquinas sobrepotenciadas usadas de forma muy ineficiente. ¿Quién necesita un Pentium4 @ 3GHz con 1GB de RAM para leer sus emails? Aunque parezca satírica la pregunta, la respuesta racional es un usuario de Windows Vista.
Una de las razones principales para llegar a esta situación es una industria electrónica en búsqueda permanente de crecimiento y una industria de software que presume que, con tiempo, sus aplicaciones encontrarán una plataforma capaz de soportarlas... y fue el caso durante más de 20 años. Eso dió luz a máquinas virtuales multiplataformas (de tipo Java) o monoplataformas (de tipo .Net, principalmente dedicadas a MS Windows). Algunos sistemas, como el BeOS, trataron de mostrar esta realidad en su verdadera luz buscando puro rendimiento pero fueron matados comercialmente por "subversivos".
El mercado informático actual se comparte entre el gigante Microsoft Windows y un grupo de actores menores como Linux, Solaris o los BSD. En el momento de elegir una plataforma informática, Windows tiene claras ventajas, más políticas o comerciales que técnicas: "No se despidió a nadie por haber elegido la plataforma que se usa en 90% del mercado" siendo una de las más famosas citaciones. No obstante, este argumento no está basado en una visión imparcial de la situación y puede inducir costos o riesgos adicionales. Además, la escasa presencia de los otros sistemas puede, a su vez, volverse una ventaja, particularmente a nivel de seguridad.
Criterios
En el momento de elegir una plataforma, se debe evaluar el punto de vista de los varios interesados, con sus criterios a veces antagonistas:
- En el área de tecnología, los desarrolladores buscan el mejor soporte para el desarrollo, con el mejor ambiente y la mejor documentación.
- Los diseñadores buscan la plataforma que ofrece la más simple arquitectura y el mejor soporte de los lenguajes de programación y de las aplicaciones comerciales relevantes.
- Los gerentes buscan la plataforma con el mejor potencial al menor costo, con la mejor cobertura de hardware para simplificar el proceso de compra de los equipos.
- El área de producción busca la plataforma que ofrece la más alta disponibilidad, la más alta estabilidad y el menor soporte.
- Los usuarios buscan la plataforma más simple y más robusta, ya que no les interesa como funciona. Idealmente, prefieren la que les permite recibir emails de sus amigos, particularmente estas presentationes .pps con historias graciosas o profundas.
- El jefe de los usuarios busca la plataforma que permite a su grupo tener el mejor rendimiento de tiempo, en tiempo de respuesta como en disponibilidad. Indirectamente, buscan las aplicaciones más optimizadas para que su ejecución sea rápida.
- Los clientes buscan el sistema que permite a la fila avanzar lo más rápido posible y contestar todas sus preguntas.
- Finalmente, el encargado de seguridad informática busca la plataforma que lo deja dormir tranquilamente por la noche.
Los BSD tienen respuestas a la mayoría de estos criterios.
- Los BSD están en el "mercado" desde los años '70 y tienen una fuerte reputación en los ambientes *NIX. Son líderes en la implementación de estándares y una referencia en el mundo de las redes.
- Los BSD son sistemas livianos y escalables, que el grupo de TI puede ajustar a sus necesidades. En el caso de servidores, se activan solamente los servicios relevantes. Para terminales de usuarios, el sistema se puede reducir a una memoria Flash, con minimales riesgos de ataques.
- Las metodologías de desarrollo aseguran un alto nivel de calidad y de seguridad. Son famosos por su alta disponibilidad y calidad de diseño. No es por casualidad que se encuentran en cortafuegos y servidores de alto tráfico conectados directamente a Internet - entre otros, la raíz de los DNS en el mundo. Un sistema seguro y estable requiere poco soporte.
- Los BSD se concentran principalmente en una arquitectura simple y ortogonal. El diseño de los pilotos del kernel sigue reglas bastante estrictas para asegurar rendimiento y seguridad.
- Todos los principales lenguajes de programación están soportados en los "ports", lo que esconde las especifidades del sistema.
- Los sitios web dedicados a los BSD son una fuente importante de información tanto a nivel usuario como de la arquitectura, lo que asegura un alto nivel de documentación. Las herramientas son las clásicas del mundo "open source", que también son usadas profesionalmente.
- Los *BSD soportan la mayoría de las aplicaciones open source y "freeware" comerciales. De no ser el caso, la capa de emulación Linux permite extender la cobertura - por ejemplo, Acrobat Reader.
- FreeBSD soporta una gran variedad de formatos de archivos mediante aplicaciones open source (kpdf, OpenOffice.org, etc.) o productos comerciales (Acrobat Reader, JRE, etc.). Los "ports" ofrecen también una gran cantidad de aplicaciones para numerosas actividades.
- El soporte de hardware está documentado en la página web de http://www.freebsd.org . En general, cubre los principales elementos de los fabricantes, si tienen un mínimo de 6 meses en el mercado. En cierta medida, permiten también una migración relativamente simple a otras arquitecturas que los PCs (soporte Mac, Alpha, etc.)
- Los BSD son libres de costo directo y permiten un uso y reuso libre del sistema. En caso de comercialización otras plataformas imponen un licenciamiento (por ejemplo, MS Windows - con restricciones geográficas) o una divulgación de secretos de fabricación (en el caso de adaptación de software bajo licencia GNU).
Motivación
Antes que todo, una migración es una visión, un deseo de mejora y de racionalización de las infraestructuras. Las razones pueden ser por seguridad, rendimiento, complejidad, o simplemente de gusto... Hay miles de razones posibles. Sin embargo, se debe evitar argumentos de tipo "el pasto es más verde afuera": el estudio debe ser imparcial ya que una omisión en un estudio puede esconder un costo adicional importante que cancela toda ganancia y el interés de la operación. La visión debe ser realista.
Una migración es una decisión grave que tiene mayores consecuencias. Cambiar de plataforma significa invertir en un estudio de mercado, en capacitación, en pérdida temporal de rendimiento de los equipos de soporte, en pruebas, en comparaciones, a veces en nuevos productos, etc. Es un proceso que dura, en general, entre meses y años. Por eso, la institución que toma la decisión debe entender claramente los costos antes de empezar.
El proceso se debe preparar pensando que un sistema informático es una herramienta al servicio de sus usuarios y debe asegurar alta disponibilidad y rendimiento. Argumentos comerciales intervienen en una segunda etapa.
Valor, costo y precio
En el momento de efectuar un cambio, varias métricas sirven de criterio para decidir si vale la pena. Lo primero que uno considera es el valor, es decir lo que uno gana. En el caso de una migración de MS Windows a los BSD, los argumentos principales son la seguridad, la estabilidad, la simplicidad, la ortogonalidad y la escalabilidad. Seguridad por las reglas de diseño y la calidad del código fuente. Estabilidad por la tasa de fallas muy baja, gracias a una inspección permanente del código fuente y un acercamiento racional de las funcionalidades: hay numerosos sitios web que corren sobre FreeBSD con un uptime en años. Simplicidad y ortogonalidad por su estructura estándar que aplica a todas las funcionalidades: las configuraciones del sistema de base se encuentran en /etc y los ports en /usr/local/etc. Con un poco de práctica, el sistema es muy intuitivo. Finalmente, la escalabilidad porque el sistema soporta tanto un i386 con 32M de memoria como servidores con múltiples procesadores y varios gigabytes de RAM.
Sin embargo, esta ganancia se convierte en valor solamente si el sistema a reemplazar tiene fallas que afectan negativamente el negocio que deben soportar: un usuario que se conecta ocasionalmente a su PC para ver una página web y que un reinicio del computador no afecta no tendrá mayor incentivo para cambiar - en este caso, un PC con MS Windows preinstalado es seguramente suficiente. Allí interviene el segundo criterio, que es el costo de la decisión. Cada cambio implica inversiones en:
- Costo efectivo del sistema actual, como base de comparación. Eso incluye las licencias instaladas de sistema operativo, aplicaciones, herramientas de seguridad, etc.
- Investigación de mercado para saber qué alternativa puede resolver los problemas actuales.
- Evaluación de los cambios a aplicar al sistema actual. Estos cambios pueden aplicar a todos los usuarios o solamente a una parte. En el último caso, el grupo de soporte necesita una doble competencia.
- Capacitación a todos los niveles: diseñadores, desarrolladores, soporte, usuarios, etc.
- Inversión en los nuevos productos, si son comerciales. En el caso de FreeBSD, este argumento es mínimo, ya que el ecosistema es relativamente limitado.
- Manejo de riesgo, si no se puede conseguir soporte externo. En el caso de Microsoft, los contratos de soporte son caros pero el editor se compromete. FreeBSD tiene un excelente soporte vía foros y listas de emails pero los accionistas no tienen a quién apretar en caso de falla.
- Finalmente, pérdida de inversiones pasadas. Si un producto comercial queda obsoleto a causa de una migración a un sistema incompatible, el costo de las licencias pagadas no se recupera - por ejemplo, las licensias para MS SQL. Esta última razón es más política que técnica pero se debe tomar en cuenta durante la fase de evaluación.
El tema de las licencias se debe tomar con cuidado. En muchos casos, el valor en si del sistema operativo no es significativo y el hecho de ser gratis no es un criterio suficiente para una selección. Durante años, fue más barato comprar un PC con MS Windows preinstalado que armar su propia máquina o comprar una sin sistema. Nota: el costo global de licensiamiento de una aplicación, a veces, no es proporcional a la base instalada, debido a licencias de volumen con precio degresivo o acuerdos OEM. Por eso, comparar el precio de una licencia MS Windows del comercio con el precio de una distribución Linux como base de un proceso de decisión no es realista ya que muy poca gente paga el precio completo.
La tercera métrica es el rendimiento. Una migración de alto valor por un costo mínimo se ve valiosa. Al revés, si el valor es marginal pero el costo alto, no vale la pena. Lo que interesa al área de finanzas es la relación entre la reducción de costo a largo plazo y el precio pagado por el usuario final: una migración es rentable solamente si permite aumentar la margen destacada o, por lo menos, bajar el costo sin comprometer la calidad de servicio. Una migración es exitosa si permite mejorar el rendimiento de la infraestructura y de los usuarios.
La estimación de estas 3 métricas es muy importante en la fase de evaluación del proyecto.
Base disponible de desarrolladores y soporte
El aspecto de los desarrolladores es a menudo una lucha entre el personal técnico y los inversionistas. El personal técnico busca los mejores profesionales para obtener el mejor producto. Estos profesionales son más caros pero suelen tener un mayor rendimiento. Los inversionistas buscan el mejor rendimiento financiero, lo que implica muchas veces buscar la oferta más baja. Sin embargo, esta oferta tiene a veces costos agregados por atraso o calidad que compensan las ganancias - lo barato es caro. Buenos profesionales operando en su área de maestría pueden llegar a tener un costo más bajo al final del proyecto. La particularidad de los aficionados de *BSD es que suelen ser tecnólogos y entender en detalle las consecuencias de sus elecciones. El ambiente Microsoft trata de esconder los aspectos de sistema, lo que permite desarrollar más fácilmente pero favorece código redundante o no optimizado.
El aspecto de soporte es también un dilema: cuando se firma un contrato, se compra principalmente la tranquilidad de saber que alguien conseguirá las respuestas necesarias en caso de problema, mientras uno espera que no se presentará el caso. Al final, se compra un seguro. Los proveedores lo entienden perfectamente y, por eso, tienen varios modelos con:
- un precio fijo, independiente de las fallas que se presenten (editores de software de alta tecnología y sistemas UNIX comerciales lo hacen) o
- un precio de base con un número limitado de "incidentes" y un costo por incidente adicionales cuando se supera el máximo. En el caso de los sistemas operativos como MS Windows o Linux, es el modelo preferencial. El uso de los foros de usuarios suele ayudar a tener bajo control la cuenta a fin de año.
En el caso de los *BSD, la oferta de soporte comercial suele ser muy limitada pero la calidad en los foros es, en muchos casos, superior a los contratos de soporte comercial.
Consideraciones hardware
Otro aspecto de la decisión es el soporte hardware. Todos los periféricos que salen ahora vienen con los pilotos para MS Windows: un fabricante no tiene incentivo para ignorar 90% del mercado instalado... A nivel cliente, la plataforma Windows es la que da la mayor confianza para el soporte de los pilotos a largo plazo.
En el caso de Linux o de los *BSD, es necesario verificar de antemano que los pilotos son disponibles. Los fabricantes no suelen tener grupos de desarrollo dedicados a estos sistemas y la comunidad cuenta mucho con la buena voluntad de los proveedores para entregar la documentación necesaria. Pero, en general, los elementos más comunes tienen un buen soporte.
Consideraciones energéticas
Un PC, hoy en día, es una potente estación de trabajo - tanto que otros sistemas operativos de alto rendimiento, como Solaris o MacOS, están adoptando esta plataforma. Sin embargo, no es la más eficiente: arquitectura compleja del procesador, consumo eléctrico importante (un puro Xeon @ 2GHz gasta alrededor de 100W típicos donde un PowerPC 970 requiere sólo 40W a 50W por la misma frecuencia). Sun ofrece un servidor completo basado en 8 cores de arquitectura Sparc @ 1GHz con un consumo de 300W, parecido a un PC monoprocesador tradicional con un Pentium4.
Con un valor de 0,07USD/kWh (tarifa Chilectra), esta misma máquina cuesta 0,5USD/día o 182USD/año en servicio permanente (24h/día, 365días/año). Este costo no toma en cuenta el aire acondicionado que se puede requerir en el local. En el caso de terminales funcionando en horarios de oficina (5 días/semana, 10h diarias), la cuenta se eleva a 54USD/año por terminal. Si una plataforma de 20W (PowerPC 405/603e con disco duro y tarjeta gráfica) puede rendir el mismo servicio, la cuenta baja a 3,64USD/año sin la molestia de los ventiladores o el calor.
El criterio calorífico se potencia con el enfriamiento mecánico de los procesadores rápidos: una CPU con ventiladores asegura una transmisión eficaz de las calorías al medio ambiente y 7 PCs equivalen a un calefactor eléctrico de 2KW. Allí es donde una solución de bajo consumo tiene su ventaja en una oficina en verano.
Aspectos de software
Después de esta introducción de los conceptos, veamos en más detalles el lado software, empezando por el sistema operativo.
¿Porqué elegir Microsoft Windows?
¿Cómo entender el valor de un sistema sin conocer las ventajas de la competencia? Aunque este estudio enfoca los pasos propios a una migración hacia los *BSD, no prentende ser una demonstración de superioridad universal. Windows está en el mercado desde hace 15 años y subió de un estado "juguete" con la versión 3.0 a una plataforma industrial con XP. Su mayor fuerza es el rango de aplicaciones disponibles: toda aplicación informática tiene por lo menos una versión o contraparte para Windows. Hasta el mundo del diseño electrónico, antes dedicado a las estaciones de trabajo UNIX, migra progresivamente a Windows. Otra ventaja es que los usuarios conocen el ambiente por haberlo usado, por lo menos, alguna vez en su vida.
Otra fuerza es el ritmo de entrega de las versiones - cada 3 años en general - que ofrece un mercado estable, sin contar la relativa compatibilidad entre versiones: una aplicación para Windows 98 se ejecuta probablemente bajo Windows XP. Las competencias a continuación requieren, en general, por lo menos una recompilación.
Un falso argumento es que muchos desarrolladores conocen el sistema y pueden dar soporte. Si es cierto que los estudiantes de informática que salen de la universidad sin conocer la programación de Windows son muy escasos, eso no significa que puedan tomar cualquier aplicación y modificarla. Para tomar el ejemplo de terminales de información, la mayoría se construyen alrededor de un motor que no está documentado. En este caso, el motor esconde el acceso material, lo que rinde la lógica de la aplicación relativamente portable a su editor (portar la aplicación a otra plataforma significa principalmente portar el motor propietario) pero impide que terceros la modifiquen.
La desventaja de Windows es que es un sistema monolítico, con drivers jerarquicos complejos, una gran sensibilidad a virus y otras malezas que requiere numerosas herramientas de protección. Significa que una parte del potencial de una máquina desaparece en gestión de sistema y se pierde para la aplicación.
El caso Linux
El ideal de Linux es ser un sistema abierto y versatil. Se encuentra en servidores, en estaciones de trabajo y en sistemas embebidos. Su fuerza viene de las varias distribuciones que crean un ecosistema comercial y los rinde más visibles. En los últimos años, las aplicaciones comerciales para Linux florecieron rápidamente.
Su rendimiento es también netamente superior al de Windows: un ejemplo es una granja de compilación de Ikos, Inc., que ejecuta software de compilación para FPGA de Xilinx. La granja original usa Windows NT y la versión para Windows de una aplicación Xilinx. Una granja fue convertida a Linux RedHat 9 (mismo hardware, segunda partición en el mismo disco duro, misma versión de la aplicación Xilinx para Windows pero bajo el emulador WINE) y permitió terminar en 8 horas un tabajo que duraba 12 con Windows NT, con la misma entrada. Lo increible de este caso de uso es que un emulador llega a ser más veloz que el sistema original.
Su debilidad es la disponibilidad de aplicaciones, aunque la selección es cada vez más amplia y viene a menudo del mundo UNIX. La selección de la distribución también es importante y puede afectar el rendimiento (Linspire, que es uno de los más amigables, es también uno de los más lentos). El ritmo de versiones entregadas (1 a 2 al año según la distribución), requiere actualizaciones regolares para mantener las bibliotecas al día - eso suele pasar por una descarga o compra de la nueva versión cuando sale.
MacOS
A nivel de evolución, MacOS es seguramente el más movido de estos últimos años. Primero, por su sistema de base, que fue desarrollado bajo el nombre de Darwin (inicialmente un clon de FreeBSD) y segundo por su cambio de plataforma, abandonando el PowerPC por una plataforma Intel.
Aunque no tuvo el éxito que se merece, Apple fue un gran contributor a la industria informática de los últimos 20 años, con la interfaz gráfica revolucionaria del MacIntosh. Hasta el día de hoy, las nuevas versiones de los sistemas operativos siguen el modelo que Apple trajo al mercado. Desde el principio, MacOS tiene una reputación de sistema amigable, intuitivo, liviano y de alta calidad. Su mayor freno son las aplicaciones, que solían ser caras y escasas pero eso está cambiando progresivamente, con ofertas Open Source y nuevos contributores comerciales.
Solaris
Solaris es un UNIX puro, basado por parte en BSD y con soporte comercial. Su fuerza es la elección de plataformas hardware, de tipo servidores RISC o PC. Es un sistema probado y escalable. Con la llegada de OpenSolaris, el soporte hardware se extiende rápidamente, tanto en las plataformas Sparc como x86.
Su debilidad es la intrusión de Linux, que tiende a reemplazarlo en sus nichos.
Los *BSD
¿Quién puede decir que no usó nunca BSD? La realidad es que son muy pocos porque BSD está por todas partes, no tanto como sistema operativo completo sino que como contribuciones a la industria: stack TCP/IP (él de Windows está basado en la versión BSD), OpenSSH, OpenSSL, etc. Sistemas operativos de ambientes de seguridad (JunOS de Juniper, IPSO de Nokia) están basados también en FreeBSD.
Estos sistemas pasan bastante desaparecidos por falta de marketing: BSD era originalmente una distribución de software destinado a reuso. Software con licencia BSD se puede extender y vender libremente, mientras la licencia GNU de Linux obliga a publicar las modificaciones, con la misma licencia, como "obras derivadas".
Actualmente, los *BSD se usan principalmente en ambientes de redes, como cortafuego, router, servidores web y email pero su potencial es mucho más amplio. Estos sistemas vienen de una tradición de calidad y de creatividad y que apuntan siempre a 3 metas principales: simplicidad, escalabilidad y rendimiento. En el caso de OpenBSD, todo código integrado al sistema pasa por una análisis profunda, que causa un desarrollo más lento pero correcto desde el principio - el sistema ideal para servidores sensibles.
Como en el caso de Linux, la principal debilidad es la disponibilidad de aplicaciones, aunque el parque se extiende regolarmente. También, la falta de marketing y de evangelistas provoca un desarrollo lento y limitado de su ecosistema.
Los pasos
Una migración exitosa es un proceso largo porque cambia tanto las costumbres como los ambientes. Una infraestructura informática es una herramienta que se dedica a su rol de soporte, que el cambio no debe afectar negativamente.
Inventario de las aplicaciones
Ésta es la parte crítica que puede impedir todo el proceso: ¿Debe mi estación de trabajo ejecutar MS Office? Entonces, se debe evaluar una solución de tipo Win4Lin/Win4BSD o abandonar la migración inmediatamente: no hay mejor emulador de MS Windows que... MS Windows. Win4Lin es un emulador de Windows que se ejecuta en ambientes de tipo Linux o FreeBSD y soporta MS Office, si no se puede usar la alternativa multiplataforma que es OpenOffice. La misma lógica aplica a servidores web (por ejemplo, Apache verso IIS), base de datos (MySQL y PostgreSQL verso MS SQL), etc.
Si las aplicaciones son disponibles en ambos ambientes, el sistema operativo ya no es una limitante y se puede cambiar más fácilmente - hasta los datos se pueden trasladar sin drama. Por eso, es casi siempre más seguro elegir una aplicación multiplataforma para asegurar la libertad de elección en el futuro.
Las aplicaciones propietarias son a menudo buenos candidatos para ser portadas pero debe ser una decisión estratégica en la organización: si el grupo de desarrollo se sabe MFC y .NET de memoria, debe aprender un nuevo ambiente para poder soportar la nueva plataforma.
Migración hacia aplicaciones multiplataforma
Por ejemplo, en el caso de bases de datos, el estándar principal es SQL. La versión de Microsoft es relativamente frecuente en el mercado pero peca por falta de soporte en ambientes otros que Windows. Una buena práctica consiste en usar las funciones estándares de SQL y evitar, en la medida de lo posible, las extensiones propietarias. En el caso de un cambio de plataforma, permite acelerar el proceso de adaptación.
La selección de una aplicación debe tomar en cuenta también los mecanismos de respaldo. Por ejemplo, PostgreSQL y MySQL ofrecen comandos que generan un script SQL para restaurar la estructura de una base de datos y su contenido. Todas tienen una probabilidad de falla, unas más que otras, y es importante evaluar la integridad de los datos en estos casos de borde.
Esta migración se debe iniciar lo antes posible para que el usuario se acostumbre a su nuevo ambiente. Esto permite reducir el paso final a un puro cambio de máquina, relativamente transaparente.
Formatos de datos
Una migración no es olvidar el pasado. Al revés, una empresa no puede archivar para siempre sus datos pasados - un día u otro, va a necesitar acceso a algunos documentos y probablemente modificarlos. Por lo tanto, se debe planificar esta habilidad, posiblemente en forma de un servidor de compatibilidad. A menudo, estos servidores son una causa de stress ya que sobreviven más allá de su largo de vida normal, requieren contratos de soporte especiales y caros. Una migración debe tratar de evitar esta situación cuando es posible y soportar los formatos históricos.
Los formatos de datos no dependen del sistema operativo sino que de las aplicaciones que se usaron para generarlos. Sin embargo, hay formatos que son altamente "tintados" por el escaso soporte de plataformas distintas. Por ejemplo, el uso de archivos .doc (MS Word) como formato de intercambio entre usuarios rinde casi imposible el uso de plataformas otras que MS Windows por la pobre compatibilidad con otros editores - el soporte en OpenOffice.org es solamente parcial. También, Firefox sufre a veces tratando de desplegar páginas compuestas con MS FrontPage. Cada mundo tiende a tener sus manias pero los que invierten en respetar estándares abiertos son más respetuosos de sus usuarios. Con cerca de 90% del mercado, las tecnologías de Microsoft llegan a ser estándares "de facto". Sin embargo, en numerosos casos, son desvíos de estándares abiertos que se justifican solamente por prácticas comerciales dudosas. Eso es la consecuencia de una posición de casi monopolio.
Al contrario, grupos como OpenOffice.org o empresas como Adobe con su PDF publican formatos abiertos y documentados, que permiten leer y generar archivos en forma controlada.
Lo importante aquí es saber exactamente la lista exhaustiva de los formatos de datos que se manejan en el ambiente que se debe cambiar y cuales son las herramientas del ambiente de destino que los soportan: el hecho de tener aplicaciones compatibles en ambos mundos simplifica mucho la tarea. En estricto rigor, es la situación ideal y menos riesgosa de efectuar la migración.
Conversión de datos
Estas aplicaciones no siempre existen y, en este caso, los datos se deben convertir para el ambiente de destino. Por ejemplo, si el sistema original está basado en una base de datos MS SQL, el contenido y los procesos asociados se deberá convertir a MySQL o PostgreSQL para permitir la transición. Si la interfaz de las aplicaciones usa las bibliotecas ODBC, esta transición es relativamente simple. En general, esta transparencia se paga en forma de ligera pérdida de rendimiento. El hecho de implementar la conversión de los datos en la interfaz de las aplicaciones permite esconder la tarea y limita el riesgo de pérdida de datos.
Capacitación del equipo de desarrollo
El levantamiento de una nueva plataforma pasa por la capacitación de los interesados. En general, empieza en el área de desarrollo donde, a menudo, un aficionado se encarga del soporte local. Sin embargo, el éxito de la migración depende de la dedicación de todos y eso pasa por la capacitación del área entera.
El grupo de desarrollo necesita entender el funcionamiento de la plataforma, sus especificidades y limitaciones. Por ejemplo, si una estructura de tipo Windows permite esconder el rol de los usuarios con una gestión compleja, los *BSD heredan una estructura simple de usuarios y grupos que permite gestionar desde el principio los derechos. La consecuencia es que el desarrollo termina con una fase predecible de instalación, donde Windows puede reservar sorpresas, no tanto por limitaciones de sistema sino por el uso inadecuado frecuente de estos sistemas - ¿cuantos usuarios tienen privilegios de administrador cuando leen sus emails? También, los *BSD soportan ambientes gráficos parecidos al de Windows, que no deberían provocar mayores sorpresas: las distribuciones proponen varios IDE (Anjuta, KDevelop, Eclipse, etc.) que deberían parecer familiares.
La mayor diferencia está en las bibliotecas de desarrollo: Microsoft impone su propio ambiente (MFC, .Net) que existe solamente para Windows. Al contrario, los *BSD favorecen ambientes abiertos, como QT, GTK, SDL, etc. Estos ambientes tienen, además, la gracia de ser compatibles con Windows, si se presenta la necesidad de hacer marcha atrás.
Capacitación del equipo de soporte
El soporte es probablemente la fase más crítica de la migración: Windows permite una gestión gráfica del sistema donde los *BSD usan todavía archivos de texto. Para facilitar al principio, se puede instalar Webmin (un gestor de sistema a través de un servidor web). Sin embargo, con un poco de práctica, uno aprende a localizar los archivos relevantes y editarlos.
Los *BSD son sistemas robustos dedicados a funciones de alta disponibilidad y permiten, salvo cambios profundos en el núcleo, actualizar sus componentes sin reinicio. Varios servidores en el núcleo del sistema pueden recargar su archivo de configuración o reactivar servicios de red con un simple comando "kill -hup", es decir sin parar la aplicación.
Soporte externo para la plataforma
El soporte es la fase crítica a nivel político. En general, se busca a un proveedor experimentado que pueda responder en caso de falla o duda. Criterios importantes son el tiempo de respuesta y la tarifa. Sin embargo, la credibilidad del soporte está en la longevidad de la oferta, que no se puede determinar de antemano.
En esta fase, la oferta de soporte se debe medir en forma global:
- Si el proveedor desaparece, ¿cuántas alternativas tengo?
- Si desaparecen todos y debo cambiar de sistema, ¿qué alternativas tengo?
Allí, la similitud de FreeBSD y Linux puede ser una limitación del riesgo, ya que las aplicaciones suelen ser comunes, o fáciles de portar, con varias empresas famosas que pueden ofrecer sus servicios - IBM, HP, Novell, etc.
Capacitación de los usuarios
El nivel de capacitación de los usuarios depende principalmente de la actividad que deben realizar. Para terminales monofuncionales (con una simple aplicación), el sistema es transparente y no se requiere ninguna capacitación. Para un uso más avanzado, se deberá presentar también KDE, GNOME o el gestor de ventanas utilizado.
Lo demás del sistema es transparente y no afecta al usuario.
Paso a la nueva plataforma
El cambio final de plataforma debe ser rápido para evitar un doble soporte. Se trata principalmente de trasladar los archivos a la nueva máquina y levantar las aplicaciones que el usuario necesita. Como el ambiente cambia, el equipo de soporte se debe preparar a contestar dudas y quejas pero no se anticipa una ola larga.
El nivel de preguntas a esperar es: ¿Dónde está el botón "Inicio" para apagar mi PC?... y explicar que el ambiente tiene otro botón dedicado a esta función. A nivel de aplicaciones, si la migración fue efectuada progresivamente, debería ser relativamente transparente.
Recomendaciones
Todo cambio puede involucrar aspectos legales inesperados. Esta sección resume los mayores.
Licencias
El tema de las licencias es a la vez el menos considerado y el más riesgoso: cuando uno compra una aplicación comercial, paga el derecho de uso del programa con una larga lista de obligaciones y prohibiciones. Esta forma de operar es aceptada y respetada desde que se empezó a publicar software comercial.
En el mundo libre, los derechos de los usuarios dependen altamente de la voluntad de su autor y hay varias formas de licencias actualmente en circulación. Tanto que un consorcio dedico recursos a evaluar los términos de varias licencias para tratar de agruparlas. Entre las más famosas, contamos con GNU, BSD, Mozilla, Apache, etc. En general, tienen uno de 2 enfoques:
- Modificaciones del código fuente se consideran "obra derivada", bajo la misma licencia. A veces, este efecto se describe como "efecto viral", típicamente del mundo GNU.
- Modificaciones del código fuente quedan bajo el control de su autor, posiblemente con una referencia a su licencia inicial, típicamente del mundo BSD.
Mientras la aplicación no sale de la organización que la desarrolló, las 2 licencias son sensiblemente transparentes. Sin embargo, en el caso de comercialización del producto, la licencia GNU puede ser una limitante mayor. Además, los partidarios de la licencia GNU empiezan a presionar empresas que no cumplen con los términos de la licencia. Por eso, es muy importante verificar el origen de cada biblioteca que se integra a un producto comercial.
Aplicaciones instaladas
En eso, la licencia BSD es mucho más flexible y favorece el reuso comercial. Todo el sistema de base (básicamente, todo lo que está fuera de /usr/local en el caso de FreeBSD) cumple con esta licencia. Sin embargo, aplicaciones disponibles en los "ports" no cumplen necesariamente. Por eso, es necesario verificar lo que se instala en la fase de desarrollo.
Consecuencias legales
Aunque el uso de software libre parezca sin riesgo mayor, puede afectar reglas de negocio como las directivas Sarbannes-Oxley.
