1.1.
Arquitectura cliente/servidor
Publicado por P. Ruiz en 13 agosto, 2013
La arquitectura cliente/servidor persigue el objetivo de procesar la información de un
modo distribuido. De esta forma, los usuarios finales pueden estar dispersos en un
área geográfica más o menos extensa (un edificio, una localidad, un país, …) y
acceder a un conjunto común de recursos compartidos.
Además, el acceso debe ser transparente (el cliente puede desconocer la ubicación
física del recurso que pretende utilizar) y, preferiblemente, multiplataforma, es decir,
independiente del sistema operativo, del software de aplicación e incluso del hardware.
En definitiva, cuando hablamos de la implantación de una arquitectura cliente/servidor,
nos referimos a un sistema de información distribuido.
Además de la transparencia y la independencia del hardware y del software, una
implantación cliente/servidor debe tener las siguientes características:
Las características de una implantación cliente/servidor deben ser:
Transparencia.
Independencia.
Protocolos asimétricos.
Recursos compartidos.
Servicio.
Encapsulamiento.
Integridad.
Acoplamiento débil.
Escalabilidad.
Debe utilizar protocolos asimétricos, donde el servidor se limita a escuchar, en
espera de que un cliente inicie una solicitud.
El servidor ofrecerá recursos, tanto lógicos como físicos a una cantidad
variable y diversa de clientes (por ejemplo, espacio de almacenamiento, bases
de datos, impresoras, etc.)
El servidor ofrecerá también una serie de servicios, que serán usados por los
clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los
detalles de su implementación (por ejemplo, aceptar el requerimiento de un
cliente sobre una base de datos o formatear los datos obtenidos antes de
transmitirlos al cliente).
Se facilitará la integridad y el mantenimiento tanto de los datos como de los
programas debido a que se encuentran centralizados en el servidor o
servidores.
Los sistemas estarán débilmente acoplados, ya que interactúan mediante el
envío de mensajes.
Se facilitará la escalabilidad, de manera que sea fácil añadir nuevos clientes a
la infraestructura (escalabilidad horizontal) o aumentar la potencia del servidor
o servidores, aumentando su número o su capacidad de cálculo (escalabilidad
vertical)
Elementos de la arquitectura cliente/servidor.
De lo dicho hasta ahora, podemos deducir que los principales elementos que
conforman la arquitectura cliente/servidor son los siguientes:
El servidor
Cuando hablamos de una forma genérica, si mencionamos a un servidor, nos
referimos a un ordenador, normalmente con prestaciones elevadas, que ejecuta
servicios para atender las demandas de diferentes clientes.
Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un servidor es
un proceso que ofrece el recurso (o recursos) que administra a los clientes que lo
solicitan (consultar la definición de cliente más abajo).
En ocasiones, los servicios también reciben el nombre de demonios (daemons en
inglés).
Se trata de una terminología que proviene del mundo Unix/Linux.
Es muy frecuente que, para referirse a un proceso servidor, se utilice el término back-
end.
Según el tipo de servidor implantado, tendremos un tipo de arquitectura
cliente/servidor diferente.
Por último, mencionar que en algunas ocasiones, un servidor puede actuar, a su vez,
como cliente de otro servidor.
El cliente
Igual que antes, al hablar de forma genérica sobre un cliente, nos referimos a un
ordenador, normalmente con prestaciones ajustadas, que requiere los servicios de un
equipo servidor.
Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un cliente es un
proceso que solicita los servicios de otro, normalmente a petición de un usuario.
En entornos cliente/servidor, suele utilizarse el término front-end para referirse a un
proceso cliente.
Los mensajes quedan almacenados, permitiendo que el emisor o el receptor estén
inactivos por un tiempo. Así, las comunicaciones pueden ser persistentes y
asíncronas.
Este mecanismo se denomina Message-Oriented Middleware (MOM)
Normalmente, un proceso cliente se encarga de interactuar con el usuario, por lo que
estará construido con alguna herramienta que permita implementar interfaces gráficas
(GUI). Además, se encargará de formular las solicitudes al servidor y recibir su
respuesta, por lo que deberá encargarse de una parte de la lógica de la aplicación y de
realizar algunas validaciones de forma local.
El Middleware
Es la parte del software del sistema que se encarga del transporte de los mensajes
entre el cliente y el servidor, por lo que se ejecuta en ambos lados de la estructura.
El middleware permite independizar a los clientes y a los servidores, sobre todo,
gracias a los sistemas abiertos, que eliminan la necesidad de supeditarse a
tecnologías propietarias.
Por lo tanto, el middleware facilita el desarrollo de aplicaciones, porque resuelve la
parte del transporte de mensajes y facilita la interconexión de sistemas heterogéneos
sin utilizar tecnologías propietarias.
Además, ofrece más control sobre el negocio, debido a que permite obtener
información desde diferentes orígenes (uniendo tecnologías y arquitecturas distintas) y
ofrecerla de manera conjunta.
Podemos estructurar el middleware en tres niveles:
El protocolo de transporte, que será común para otras aplicaciones del sistema.
El sistema operativo de red
El protocolo del servicio, que será específico del tipo de sistema
cliente/servidor que estemos considerando.
El funcionamiento básico
Aunque es probable que a estas alturas ya te hagas una idea sobre el funcionamiento
general del modelo cliente/servidor, vamos a concretarlo a continuación:
1. Lo primero que debe ocurrir es que se inicie el servidor. Esto ocurrirá durante el
arranque del sistema operativo o con la intervención posterior del administrador
del sistema. Cuando termine de iniciarse, esperará de forma pasiva las
solicitudes de los clientes.
2. En algún momento, uno de los clientes conectados al sistema realizará una
solicitud al servidor.
3. El servidor recibe la solicitud del cliente, realiza cualquier verificación necesaria
y, si todo es correcto, la procesa.
4. Cuando el servidor disponga del resultado solicitado, lo envía al cliente.
5. Finalmente, el cliente recibe el resultado que solicitó. A continuación realiza las
comprobaciones oportunas (si son necesarias) y, si era ese el objetivo final, se
lo muestra al usuario.
Si descomponemos este modo de funcionamiento en elementos estructurales, será
más fácil comprender los conceptos implicados. De esta forma, podemos obtener una
definición de la arquitectura por niveles, estructurada como sigue:
Un nivel de presentación, que aglutina los elementos relativos al cliente.
Un nivel de aplicación, compuesto por elementos relacionados con el servidor.
Un nivel de comunicación, que está formado por los elementos que hacen
posible la comunicación entre el cliente y el servidor.
Un nivel de base de datos, formado por los elementos relacionados con el
acceso a los datos.
1.2. Concepto de Sistema Operativo de Red
Publicado por P. Ruiz en 13 agosto, 2013
Un Sistema Operativo de Red es una especialización del concepto genérico de
sistema operativo que se centra en ofrecer un comportamiento de “sistema único” a
una implementación cliente/servidor.
En este sentido, el cliente realizará llamadas a determinados servicios como si fuesen
locales (por ejemplo, un procesador de textos que necesita imprimir, no diferencia si la
impresora a la que se dirige es local o remota). El Sistema Operativo de Red detecta la
necesidad de acceder a un recurso de red y envía la solicitud al servidor adecuado.
Por último, cuando recibe la respuesta, la hace llegar al proceso cliente.
Lógicamente, un Sistema Operativo de Red debe ofrecer transparencia tanto a los
procesos que actúan como clientes como a los que actúan como servidores, y debe
hacerlo en los siguientes aspectos:
La autenticación: el mismo nombre de usuario y la misma contraseña deben
servir para acceder a recursos en todo el sistema.
La confidencialidad en la transmisión de los datos: utilizando algún mecanismo
de cifrado para el intercambio de información entre el cliente y el servidor.
El espacio de nombres: los convenios sobre los nombres de los recursos
deben ser independientes de los sistemas operativos que los alojan.
La ubicación: cada recurso debe conocerse sólo por su nombre, sin importar el
sistema donde se ejecutan.
El protocolo que nos permite ejecutar un servicio en el cliente como si se
tratara de un procedimiento local, encapsulando todo el proceso de
comunicación, se denomina RPC (del inglés, Remote Procedure Calls).
La administración: se debe facilitar un mismo mecanismo de gestión para todos
los recursos.
Los protocolos: deben tener una API (Application Programming Interface)
idéntica en todos los sistemas.
El acceso a los recursos: como hemos dicho más arriba, debe producirse como
si estuviese ubicado en el mismo sistema donde se encuentra el cliente.
La replicación: se debe conseguir que no existan diferencias entre dos copias
del mismo recurso ubicadas en dos sistemas diferentes.
El tratamiento de los fallos: se deben ofrecer mecanismos de detección de los
fallos, redundancia de los recursos en función de su importancia y reconexión
cuando el fallo ha sido solventado.
El tiempo: Los relojes de todos los dispositivos de la infraestructura deben estar
sincronizados.
1.3. Tipos de arquitecturas cliente/servidor
Publicado por P. Ruiz en 13 agosto, 2013
Ahora que conocemos los fundamentos de la tecnología cliente/servidor, debemos
analizar la interacción entre sus componentes para poder establecer cómo
implementarla de la forma más adecuada.
En este sentido, deberemos realizar un análisis previo de los requerimientos en cuanto
a los eventos que pueden producirse y las restricciones a las que se verá sometida la
instalación, el tipo y volumen de información que va a procesarse, el tipo de bases de
datos a utilizar y su tamaño (si son necesarias), la estimación sobre el tráfico de la red
y el tiempo de respuesta, la ubicación física tanto de los datos que se van a manejar
como de los procesos que la van a procesar, etc.
Para dar respuesta a estas situaciones, estableceremos dos tipos de clasificación
diferentes: El primero atenderá al tamaño del lado servidor comparado con el tamaño
del lado cliente. El segundo hará referencia al tipo de servicio que se ofrece.
Clasificación según el tamaño del lado cliente y
del lado servidor
Una de las características del modelo cliente/servidor es que permite balancear la
potencia de cálculo aplicada hacia el lado servidor o hacia el lado cliente, según
convenga.
Por ejemplo, si el número de clientes fuese elevado, y la mayoría del proceso se
realizara en el lado servidor, no necesitaríamos clientes muy potentes, pero
probablemente necesitaríamos ampliar la potencia de cálculo del lado servidor y, como
situación complementaria, tendríamos que valorar el aumento de tráfico en la red.
Por otro lado, con clientes más potentes, buena parte del cálculo puede realizarse en
el lado cliente, accediendo al servidor de forma esporádica. Esto derivaría en un
servidor con menos necesidades de recursos, un menor tráfico en la red y un mayor
coste de los equipos en el lado cliente.
Por lo tanto, como puede deducirse, disponemos de dos alternativas:
Cliente pesado, servidor ligero (en inglés, Thick Client, Thin Server): Aquí, tanto
el nivel de presentación como el nivel de aplicación se ejecutan en el lado
cliente. Incluso podrían procesarse contenidos multimedia con un alto consumo
de recursos. El servidor se utiliza para tareas como el hospedaje del SGBD
(Sistema Gestor de Bases de Datos) o incluso para otras tareas menores,
como administrar las tareas de impresión. En este tipo de esquemas, incluso
podría interrumpirse de forma momentánea el servicio de red sin perjudicar de
forma significativa a los clientes.
Servidor pesado, cliente ligero (en inglés, Thick Server, Thin Client): El lado
cliente se emplea sólo para el nivel de presentación (muchas veces utilizando
simplemente un navegador web) y el lado servidor se encarga de ejecutar la
aplicación. En este tipo de esquemas podríamos disponer, incluso, de clientes
sin disco duro. Otra de las ventajas de esta opción es que ofrecen una mayor
seguridad frente a intentos de acceso indebido.
Normalmente, la segunda alternativa presenta una mayor flexibilidad y un menor
coste, siempre que se hayan resuelto los posibles problemas que mencionábamos
antes.
Clasificación según el tipo de servicio que se
ofrece
Obviamente, son muchos los servicios que se pueden ofrecer en una arquitectura
cliente/servidor y sería muy extenso realizar una clasificación detallada de los tipos de
servidor atendiendo a todos los servicios que pueden ofrecer. Por ese motivo, aquí nos
limitaremos a incluir sólo los más importantes:
Servidores de archivos: Se suelen utilizar para crear almacenes de
documentos en un lugar centralizado de la red (Copias de seguridad,
imágenes, plantillas de documentos, etc.)
En una transacción, una serie de operaciones que están relacionadas entre sí
se efectúan como un todo (por ejemplo, la actualización de los datos de
diferentes tablas en la base de datos).
Si una parte de la operación fracasa, fracasa la transacción completa.
Esto asegura la integridad de los datos almacenados.
Servidores de bases de datos: Normalmente están asociados a la utilización de
aplicaciones cliente/servidor donde un proceso cliente requiera datos al
servidor de bases de datos.
Lógicamente, el acceso a los datos será compartido por diferentes clientes de forma
simultánea (aplicándose los mecanismos de protección necesarios sobre los datos
ante la concurrencia de diferentes clientes y la existencia de distintos niveles de
privilegio).
Este tipo de estructuras suelen basarse en el concepto de transacción.
Servidores de impresión (Print Server): Facilitan la compartición de impresoras
y administra los trabajos de impresión en la red. De esta forma se permite a los
clientes que utilicen una impresora sin importar su ubicación física. Un servidor
de impresión utiliza una cola para almacenar, de forma ordenada, los trabajos
que recibe. Esta cola puede ser administrada con diferentes privilegios en
función del cliente que realice la solicitud. Es común que un servidor de
impresión englobe también a un servidor de fax, ya que se gestionan de forma
similar.
Servidores de transacciones: Aplican el concepto de transacción mencionado
en las bases de datos a la llamada de funciones o métodos almacenados en el
servidor, de modo que el intercambio a través de la red se limita a un solo
mensaje de solicitud o respuesta. De esta forma, se agrupan una o más
acciones en una unidad lógica que se ejecuta como un todo, garantizándose la
integridad del proceso. Estas aplicaciones pretenden dar soporte a
procedimientos y reglas en sistemas de misión crítica y se denominan OLTP
(Online transaction processing, Procesamiento de transacciones en línea).
En la programación orientada a objetos (OOP, Object Oriented Programming),
las aplicaciones están formadas por objetos que interactúan entre ellos a
través de sus métodos.
Se basa en técnicas como la encapsulación, la herencia y el polimorfismo.
En la actualidad es la forma más extendida de programar aplicaciones.
Por ejemplo, un cajero automático es un buen ejemplo de aplicación de
procesamiento de transacciones.
Servidores de objetos: Dan soporte al procesamiento distribuido. Una
determinada aplicación puede estar construida por diferentes objetos que
pueden estar hospedados en diferentes puntos de la red. De esta forma, un
objeto puede hacer uso de los métodos de otros objetos sin importar dónde
estén almacenados. La comunicación entre objetos se realiza mediante un
componente llamado Object Request Broker (ORB), que sirve de intermediario
entre las solicitudes y los resultados obtenidos.
Servidores web: Su función consiste en devolver un determinado documento
cuando un cliente lo solicita. La comunicación utiliza el protocolo HTTP (que
está basado en RPC).
1.4. Ventajas e inconvenientes de la
arquitectura cliente/servidor
Publicado por P. Ruiz en 13 agosto, 2013
Aunque, por lo visto hasta ahora, puede parecer que en el modelo cliente servidor todo
son ventajas, en realidad también encontramos algunos inconvenientes. A
continuación haremos un breve repaso de ambos.
Ventajas de la arquitectura cliente/servidor
Como ya habrás deducido, el modelo cliente/servidor está especialmente indicado en
redes medias o grandes que necesiten un alto nivel de fiabilidad.
Las principales ventajas que ofrece son:
Administración centrada en el servidor. Los clientes tienen poca
trascendencia en el esquema y sus necesidades de administración son
menores.
Centralización de los recursos. Los recursos comunes a todos los usuarios
se administran en el servidor. Así se evitan situaciones como la redundancia o
inconsistencia de información en las bases de datos.
Mejora de la seguridad. Al disponer de un mecanismo central de
autenticación, las posibilidades de acceso indebido se reducen
considerablemente.
Escalabilidad de la instalación. Se pueden añadir o suprimir clientes sin que
el funcionamiento de la red se vea afectado.
Inconvenientes de la arquitectura cliente/servidor
Aunque, después de lo dicho hasta ahora parezca difícil de creer, una infraestructura
cliente/servidor también tiene sus inconvenientes:
Coste elevado. Tanto la instalación como el mantenimiento son más elevados
debido al perfil muy técnico del lado servidor.
Dependencia del servidor. Toda la red está construida al rededor del servidor
y si éste deja de funcionar o lo hace con un rendimiento inadecuado, afectará a
toda la infraestructura.
Afortunadamente, este último inconveniente está superado, al menos en parte, gracias
a sistemas como los servidores redundantes, la tolerancia a fallos y los sistemas de
almacenamiento en modo RAID.
1.5. Grupos de trabajo como alternativa al
modelo cliente/servidor
Publicado por P. Ruiz en 13 agosto, 2013
Un grupo de trabajo es la forma más simple de compartir recursos entre diferentes
ordenadores de una red de dimensiones reducidas. En él, todos los equipos se
encuentran al mismo nivel de importancia y ninguno de ellos tiene control sobre los
otros.
En este tipo de estructuras cada ordenador dispone de sus propias cuentas de
usuario, administradas de forma local.
Un grupo de trabajo puede ser la solución más acertada cuando hablamos de redes de
pocos ordenadores, que se encuentra en la misma red, donde cada uno de ellos
ofrece recursos en función de sus propias características y donde la seguridad no es
relevante.
Sin embargo, los grupos de trabajo tienen importantes limitaciones:
La seguridad no se encuentra centralizada.
Es complicado realizar cambios en la configuración (hay que aplicarlos en cada
ordenador implicado).
Las cuentas de usuario son locales y sólo podemos utilizarlas en el ordenador
donde se han creado.
El administrador local de un equipo puede hacer cambios en la configuración
que afecten al resto de los usuarios.
Normalmente, en una red configurada como grupo de trabajo no participan más de
veinte ordenadores.
Debido a todo esto, los grupos de trabajo deben ser una alternativa que debemos
valorar en determinadas situaciones, pero la mayoría de las veces deberemos
inclinarnos por un modelo cliente/servidor.
1.6. Sistemas operativos más frecuentes en
una infraestructura cliente/servidor
Publicado por P. Ruiz en 13 agosto, 2013
Como ya sabemos, en el modelo cliente/servidor existen dos roles diferentes: el del
lado servidor y el del lado cliente. Por este motivo, en el momento de realizar una
clasificación de los sistemas operativos más frecuentes, estamos obligados a
diferenciar el rol que ocuparán dentro de la infraestructura.
En el lado servidor, los sistemas más habituales son:
Microsoft Windows Server (principalmente las versiones 2003 y 2008)
GNU/Linux Server (son frecuentes las distribuciones (RedHat, Ubuntu Server,
CentOS, SuSE Linux Enterprise Server, …)
UNIX (IBM AIX, HP-UX)
Solaris/OpenSolaris
Apple OS X Server
Antes de relacionar los sistemas operativos que se despliegan en la parte cliente,
debemos decir que todos los sistemas anteriores pueden actuar, si fuese necesario,
como clientes en una infraestructura cliente/servidor, aunque no estén
específicamente diseñados para ello. Incluso pueden actuar como servidores para un
grupo de clientes y, para llevar a cabo su cometido, actuar al mismo tiempo como
clientes de otro, u otros servidores.
No obstante, los sistemas que solemos llamar “de escritorio” son los que están
diseñados para constituir la parte cliente en este tipo de entornos. Los más frecuentes
son estos:
Microsoft Windows (XP, Vista, 7, 8, …)
GNU/Linux Desktop (Ubuntu Desktop, Fedora, Debian, SuSE Linux)
Apple OS X
1.7. Comprobación de los requisitos
técnicos
Publicado por P. Ruiz en 13 agosto, 2013
El primer paso para la implantación de una infraestructura cliente/servidor será la
comprobación de que se cumplen tanto los requisitos hardware como software.
En el aspecto del hardware, uno de los aspectos más importantes será la
comunicación. Deberemos establecer si se utilizará una red de área local (LAN, Local
Area Network) o una red de área extensa (WAN, Wide Area Network), si todos los
dispositivos de comunicaciones (cableados o inalámbricos) se encuentran activos y
debidamente configurados y, finalmente, si existe conectividad entre los diferentes
puntos de la red.
También deberá prestarse atención a los ordenadores que estarán implicados. Para
comenzar diferenciaremos entre los que van a asumir el rol de servidores y los que
actuarán como clientes. En ambos casos deberemos estudiar tanto la potencia
necesaria como la compatibilidad con el sistema operativo y el resto de elementos que
pretendemos instalar, aunque la situación será mucho más determinante al referirnos
al servidor o servidores.
El IEEE define la interoperabilidad como la habilidad de dos o más sistemas o
componentes para intercambiar información y utilizarla posteriormente.
En ocasiones, dispondremos de un equipamiento previo sobre el que, en el mejor de
los casos, podremos realizar ciertas modificaciones y/o actualizaciones. En estos
casos, deberemos ajustar las características de nuestra implantación a los recursos
existentes. En otras situaciones, tendremos libertad para diseñar todos los aspectos
de nuestra instalación, adquiriendo el material necesario para ponerla en práctica. Sea
cual sea la situación que se produzca, determinará en gran medida el resto de las
decisiones que tomemos.
Lógicamente, también estudiaremos la compatibilidad a nivel de hardware y software
con el resto de los elementos implicados: Sistemas gestores de bases de datos,
impresoras, faxes, dispositivos de copias de seguridad, etc.
Uno de los aspectos más importantes que debemos atender cuando estudiamos los
requisitos de una infraestructura cliente/servidor es la interoperabilidad. Es decir,
debemos conseguir que todos los elementos que participan interactúen de forma
adecuada para obtener los resultados que esperamos de ellos.
Por lo tanto, algunas de las preguntas que deberemos hacernos son las siguiente:
¿Qué sistema operativo me ofrecerá mejor rendimiento en el lado servidor?.
Por ejemplo, dado un determinado ordenador, deberemos averiguar si un
sistema operativo tendrá un mejor comportamiento que otro. Para ello,
podremos comprobar sus requisitos mínimos y recomendados.
¿La interoperabilidad entre el sistema operativo del lado servidor y los servicios
que debe ofrecer son adecuados?. Por ejemplo, si estamos planificando la
instalación de un servidor de datos, deberemos averiguar si el sistema
operativo que pensamos elegir funciona correctamente con el sistema gestor
de bases de datos que hemos pensado utilizar.
¿Qué sistema operativo me ofrecerá mejor rendimiento en el lado cliente?. Las
mayoría de las veces, los ordenadores del lado cliente serán los que tengan
una capacidad de cálculo más ajustada y, además, son los que más tardan en
actualizarse o sustituirse dentro de la estructura de una empresa.
¿La interoperabilidad entre el lado cliente y el lado servidor es adecuada? Es
lógico que deba existir un buen entendimiento entre el lado cliente y el lado
servidor para que la instalación sea verdaderamente productiva.
Afortunadamente, en los últimos tiempos esto ha mejorado considerablemente,
resultando sencillo hacer que redes heterogéneas funcionen con toda
naturalidad. Merecen una mención especial las situaciones donde lo que se
implanta es un servidor de aplicaciones. Cada vez son más frecuentes los
programas diseñados para funcionar en un entorno cliente/servidor que utilizan
una interfaz web para interactuar con el usuario. En estos casos prácticamente
será responsabilidad del navegador ofrecer el grado correcto de
interoperabilidad con el servidor.
¿Los sistemas operativos elegidos soportan todo el hardware necesario?,
¿disponen de los drivers adecuados? Es muy frecuente que algunos sistemas
operativos, sobre todo en el lado servidor, no dispongan de todos los drivers
necesarios para todos los modelos de impresoras, escáneres, u otros
dispositivos que podamos necesitar en el presente o en el futuro. Por esto, la
elección del sistema operativo puede verse condicionada por los dispositivos
que ya tenemos o, al contrario, la adquisición de nuevos dispositivos estará
supeditada al sistema operativo por el que nos hayamos decantado.
¿Los costes arrojados por el diseño son asumibles para la empresa? Un error
común es sobredimensionar todo el diseño para asegurarnos de que cumple
con todas las necesidades presentes y futuras, pero esto nos puede llevar a
plantear un coste excesivo. Por este motivo, debemos hacer el estudio con el
máximo rigor y ofrecer un resultado ajustado a las necesidades reales.
1.8. Requisitos de los sistemas operativos
más comunes en el lado servidor
Publicado por P. Ruiz en 13 agosto, 2013
El objetivo de eliminar la interfaz gráfica y los servicios que no sean imprescindibles en
un sistema operativo del lado servidor es aumentar su rendimiento, reducir sus tareas
de mantenimiento y reducir la superficie de exposición a los ataques a la seguridad.
Lógicamente, el inconveniente es su mayor incomodidad para los administradores
menos expertos.
Como hemos visto antes, existe una gran diversidad de sistemas operativos en red del
lado servidor (y eso que sólo nombrábamos los más representativos). Por este motivo,
sería muy extenso incluir aquí los requisitos de cada uno de ellos. Además, dependerá
de la versión concreta que vayamos a instalar (por ejemplo, en Windows 2008 Server
encontramos las ediciones Stardard, Enterprise, Datacenter, Essential Business, etc, y
en cada una de ellas pueden variar ligeramente los requisitos).
Por otra parte, los requisitos irán variando en el futuro con las nuevas versiones que
aparezcan.
Por todo esto, aquí nos limitaremos a incluir dos ejemplos y te animo a que investigues
un poco para obtener la información referente al sistema y a la versión concreta que
pretendas instalar en cada momento.
Los ejemplos elegidos son Windows 2008 Server y Ubuntu Server 12.04. Sin embargo,
debemos mencionar que la configuración más estándar de Windows Server incluye
interfaz gráfica (aunque existe la versión Core, que sólo contiene los servicios
necesarios para la función que realiza y no tiene interfaz gráfica).
Por su lado, la configuración predeterminada de Ubuntu Server no incluye ni interfaz
gráfica ni servicios que no sean imprescindibles.
Por lo tanto, para igualar la comparación entre los requisitos de ambos sistemas,
supondremos una instalación de Ubuntu Server con interfaz gráfica.
Requisitos mínimos para Windows 2008 Server
Los requisitos genéricos para Windows 2008 Server son estos:
Requisitos
Requisitos mínimos
recomendados
1 Ghz en x861.4 Ghz en
Procesador x86-64
2 Ghz o más
Memoria RAM 512 MB(a costa de un 2 GB o másEdición
rendimiento reducido y la estándar
pérdida de algunas
características) Máximo en
x86: 6 GB
Máximo en
x86-64: 32
GB
Ediciones Enterprise
y DataCenter:
Máximo en
x86: 64 GB
Máximo en
x86-64: 2
TB
Super VGA (800 x
Tarjeta gráfica Super VGA (800 x 600)
600) o más
0 GB o másSi el
ordenador tiene más
de 16 GB de RAM
necesitará espacio
Espacio en disco 10 GB
complementario
para paginación y
volcado de
memoria.
DVD-ROM o
Unidades DVD-ROM
superior
Otros Monitor Super VGA (resolución 800 x 600 o más),
dispositivos teclado y ratón
Requisitos mínimos para Ubuntu Server
Como ya hemos dicho, en este caso, incluiremos los requisitos que debe cumplir el
hardware donde queramos instalar Ubuntu Server con interfaz gráfica.
Requisitos recomendados
Procesador Procesador x86 a 1 GHz
Memoria
1 GB
RAM
Tarjeta
Super VGA (800 x 600)
gráfica
Espacio en
Disco Duro de 15 GB (swap incluida).
disco
Una de las siguientes:Lector de CD-ROM, puerto USB
Unidades o tarjeta de red.
Monitor Super VGA ( resolución 800 x 600 o más),
Otros teclado y rató[Link] conexión a Internet no es necesaria,
pero puede ser útil.
dispositivos
Como puedes ver, en este caso, los requerimientos de Ubuntu son ligeramente
inferiores a los de Windows. Sin embargo, en ambos son muy inferiores a las
prestaciones medias de un servidor actual, por lo que no deberían representar ningún
inconveniente.
1.9. Elaboración de la documentación sobre
la instalación e incidencias
Publicado por P. Ruiz en 13 agosto, 2013
Uno de los aspectos que más se descuidan cuando se procede a implantar una
infraestructura cliente/servidor es la documentación del proceso. Sin embargo,
debemos pensar que un sistema operativo en red es algo vivo que irá creciendo y
adaptándose a las necesidades del entorno en el que se encuentra. Por este motivo,
no debemos pensar en la instalación como algo que haremos una vez y de lo que nos
podemos olvidar, sino que realizaremos diferentes modificaciones a lo largo del
tiempo.
De lo dicho anteriormente, se puede deducir que, cuanto mas precisa sea la
documentación que generemos, menos problemas tendremos para retomar el trabajo
de instalación o configuración un tiempo después de haberlo dado por concluido.
En este sentido, una de las primeras cuestiones a las que debemos enfrentarnos es a
la nomenclatura. Es buena idea asignar a cada equipo de nuestra red un identificativo
único, que puede estar relacionado, por ejemplo, con la función que realiza, su
ubicación dentro de la empresa, área en la que se emplea, etc. El objetivo es poder
referirnos a cada elemento de la red de una forma abreviada y cómoda.
Por ejemplo, un servidor podría tener asignado un identificador como SRV01-CONTA
(Servidor nº 1 del departamento de Contabilidad).
La idea es disponer de un documento con el perfil de la instalación para cada uno de
los equipos incluidos en nuestra infraestructura (sean servidores o no)
En este sentido, cada uno de estos documentos debería tener, además del
identificador que hemos comentado antes, los siguientes datos:
Datos de hardware: Deberán describir, de una forma precisa, las
características del ordenador que estamos definiendo. Incluirá su ubicación, el
tipo de procesador que incorpora, el tipo y cantidad de memoria, su disco duro,
su tarjeta de red, tarjeta gráfica, [Link]én debemos dejar constancia de los
dispositivos conectados al ordenador, como impresoras, faxes, escáneres, etc.
Datos sobre las impresoras de red que estarán accesibles desde el equipo. Al
menos deberemos contemplar su dirección IP, su nombre y su ubicación física.
La descripción del sistema operativo instalado. Debe ser lo más detallada
posible y, como mínimo, incluirá su nombre y versión, la fecha y la hora de
instalación, el usuario que actúa como administrador y su contraseña, las
licencias instaladas, [Link] instalamos sistemas operativo privativos,
como es el caso de Windows, un dato que no siempre se incluye en la
documentación, pero que es muy importante para futuras operaciones de
actualización es la clave de producto (Product Key, en inglés). Se trata de la
secuencia de números y letras, normalmente organizadas en grupos y
separadas por guiones, que suele venir adherida al embalaje del medio de
almacenamiento en el que se distribuye el producto.
Parches y actualizaciones que se hayan instalado: Anotaremos el nombre de
cada parche o actualización que instalemos en el sistema operativo, con la
fecha de la instalación y una descripción de su objetivo.
Si instalamos cualquier programa complementario, como antivirus, cortafuegos,
programa de cifrado, etc., deberemos dejar constancia de ello, indicando el
nombre del programa (preferiblemente con la versión), la fecha en la que lo
hemos instalado y una descripción.
Otro aspecto que será muy importante documentar es la configuración de la
[Link] frecuente que los servidores dispongan de una dirección IP fija, por lo
que procederemos a anotar dicha dirección IP y máscara de subred, así como
la puerta de enlace, el servidor DNS que estamos utilizando y, en su caso, el
nombre del dominio o grupo de trabajo en el que se integra el equipo.
También dejaremos constancia de los clientes que se conectan al servidor. Si
hemos seguido el patrón que hemos comentado al principio de este apartado,
dichos clientes estarán identificados por un código identificativo, y dispondrán
de su propia documentación sobre la instalación. Por esto, aquí nos
limitaremos a tomar nota únicamente de su identificador.
También es común que un servidor se apoye en otros servidores de la red para
llevar a cabo su cometido (por ejemplo, servidores de datos o servidores de
impresión). Por lo tanto, anotaremos qué servidores se utilizan y describiremos
los motivos.
Con el fin de que la explicación sea más clara, se ha ido fragmentando en diferentes
apartados, pero no debemos olvidar que se tratará de un documento único.
Es importante que pensemos en este documento como algo orientativo, que deberá
adecuarse a las características de la instalación concreta que se esté realizando,
incluyendo o eliminando cualquier dato necesario.
Además, aunque no lo hemos dicho de forma expresa, podría deducirse que hemos
hablado de un documento impreso en papel. Sin embargo, sería interesante
contemplar la posibilidad de convertirlo en un documento electrónico de forma que, por
ejemplo, toda la información de la implementación esté, en realidad, contenida en una
base de datos.
1.10. Ventajas del uso de máquinas virtuales
para la instalación de sistemas operativos
en red
Publicado por P. Ruiz en 13 agosto, 2013
Una aplicación de virtualización es un software que utiliza una serie de técnicas
avanzadas para abstraer las características físicas del ordenador donde se instala y
crear máquinas virtuales que producen la ilusión de ser plataformas hardware
independientes.
Por consiguiente, cada máquina virtual actúa como un ordenador independiente, sobre
el que podremos instalar un nuevo sistema operativo con sus correspondientes
aplicaciones y configuraciones.
Las distintas máquinas virtuales que definamos sobre la misma máquina física, podrán
ejecutar diferentes sistemas operativos, compartiendo todas ellas los recursos
existentes. De esta forma, podremos disponer de varios ordenadores virtuales
ejecutándose, a la vez, en el mismo ordenador físico.
Lógicamente, el número máximo de máquinas virtuales que podremos ejecutar de
forma paralela estará limitado por los recursos disponibles en la máquina real.
El ordenador físico suele llamarse también anfitrión (host), hypervisor o monitor de la
máquina virtual (VMM – Virtual Machine Monitor), mientras que también podemos
referirnos a las máquinas virtuales como sistemas invitados (guest).
Dada la excelente relación entre el precio y las prestaciones de los ordenadores
actuales, es relativamente frecuente que el sistema operativo del ordenador anfitrión
no sea capaz de aprovechar por sí mismo todas la capacidad del hardware donde está
instalado, de forma que éste puede quedar infrautilizado. La tecnología de
virtualización puede conseguir que mejore el aprovechamiento que hacemos de los
recursos disponibles.
Cómo funciona la virtualización.
Lógicamente, lo primero que tendremos que hacer será instalar el software de
virtualización apropiado sobre nuestro sistema operativo anfitrión.
A continuación, ejecutaremos el software de virtualización para definir una máquina
virtual.
Finalmente, iniciaremos la máquina virtual o procederemos sobre ella como si se
tratara de un ordenador real. Como alternativa a este paso, algunas aplicaciones de
virtualización disponen de herramientas para virtualizar un ordenador existente
(normalmente basado en arquitectura x86) y obtener una máquina virtual
completamente operativa. Esta virtualización incluirá al procesador, la memoria RAM,
el disco duro y los controladores de red del ordenador original. Cuando termine el
proceso, dispondremos de una máquina virtual que es totalmente equivalente al
ordenador físico del que partíamos. Una herramienta capaz de llevar a cabo esta tarea
es VMware vSphere.
El software de virtualización asignará los recursos físicos a las máquinas virtuales de
forma dinámica y transparente, de manera que obtengan sólo los recursos que
necesitan. Esto deriva en un uso más racionalizado de los recursos. Así, por ejemplo,
podríamos tener una máquina virtual en la que hemos definido una memoria RAM de
4GB. Si en un momento dado sólo está utilizando 1GB, los 3GB restantes estarán
disponibles para el sistema anfitrión y para el resto de los sistemas invitados. Si en
lugar de haber definido una máquina virtual, hubiésemos realizado la misma
instalación sobre un ordenador real, la memoria que no se utilizara quedaría
simplemente desperdiciada.
Si pensamos que la lógica de este último ejemplo se aplica a todos los recursos que
emplea la máquina virtual, podremos entender fácilmente cómo consigue la
virtualización optimizar el uso del hardware disponible.
Dado que una máquina virtual está encapsulando un ordenador completo, su
compatibilidad con todos los sistemas operativos, controladores de dispositivo y
aplicaciones para arquitecturas x86 será total, lo que nos permitirá probar diferentes
sistemas y configuraciones sin perjudicar la configuración del anfitrión y sin necesitar
ordenadores complementarios.
Ventajas de la virtualización
Aunque ya pueden deducirse algunas de las ventajas que ofrece la virtualización,
vamos a tratar de recogerlas todas a continuación de un modo más sistemático:
1. Sacar más partido de los recursos existentes, permitiendo el uso compartido de
los mismos. Antes de virtualizar, es frecuente que el índice de uso de los
recursos no supere el 50%, de hecho, es muy común que no supere el 15%.
2. Reducir los costes de los centros de datos reduciendo
su infraestructura física. Esto deriva en una necesidad menor de espacio y una
reducción en el consumo de energía y en las necesidades de refrigeración, lo
que, además de suponer un ahorro, contribuye a la mejora del medio ambiente
en consonancia con las nuevas tendencias en Green Computing (conocido
también como Green-IT) que podríamos traducir al español Tecnologías
Verdes.
3. Reducir el tiempo dedicado a la administración, ya que se dispone de
herramientas más avanzadas. Además, podemos tener agrupada toda la
capacidad de proceso en varios servidores físicos, entre los que se produce un
balanceo dinámico de las máquinas virtuales, administrando de forma
centralizada toda la capacidad de cálculo, memoria, almacenamiento, red, etc.,
y garantizando que cada máquina virtual se ejecuta sobre el host más
adecuado en cada momento.
4. Otra forma de reducir el tiempo de administración es fragmentar los servicios
porque, en lugar de tener un gran servidor que centralice todos los servicios de
la empresa, podemos definir pequeños servidores virtuales, especializados
cada uno de ellos en un servicio concreto (un servidor web, un servidor de
impresión, un servidor de centralita telefónica, etc.). De este modo, se
simplifica la administración de cada uno de ellos y se evitan las posibles
interrelaciones no deseadas.
5. Relacionado con lo anterior, podemos mencionar el aislamiento entre las
diferentes máquinas virtuales, que repercutirá en que un fallo en una de ellas
no afecte al resto.
6. Aumentar la disponibilidad, ya que se puede disponer de mecanismos de copia
de seguridad y clonación de máquinas virtuales completas para migrarlas a un
hardware diferente, eliminando tiempos de inactividad y recuperándose de
forma inmediata de cualquier problema. En ocasiones, la migración de un
sistema a otro puede hacerse incluso en caliente (sin parar el host y sin dejar
de ofrecer servicio).
7. Aumentar la flexibilidad de la implantación, para responder de una forma más
rápida a los posibles cambios que deban realizarse. Por ejemplo, podemos
añadir recursos a los servidores virtualizados de una forma rápida y sencilla.
8. Disponer de un método para crear entornos de prueba que nos permitan
analizar nuevas soluciones antes de que puedan afectar al resto de la
infraestructura.
9. Administrar y gestionar sistemas de escritorio seguros que estén accesibles a
los usuarios de forma local o remota desde casi cualquier ordenador del lado
cliente.
Después de todo lo dicho, no debemos extrañarnos de que, cada vez más, empresas
de todos los tamaños utilicen la virtualización para implementar sus infraestructuras de
red.
Software de virtualización
Cuando hablamos de software de virtualización, disponemos de un amplio abanico de
posibilidades entre las que podemos encontrar opciones muy diferentes, que se
adaptarán en mayor o menor medida al uso que pensemos hacer de ellas.
Por este motivo, a continuación vamos a hacer un repaso de las herramientas más
frecuentes, indicando sus características más destacadas:
VMware: VMware Inc. es,
probablemente la empresa de referencia en el mundo de la virtualización.
Dispone de dos líneas de producto diferentes:
o Las versiones de escritorio: Pueden utilizar como sistema operativo
anfitrión a cualquiera de los tres sistemas operativos de escritorio más
extendidos Microsoft Windows, GNU/Linux y Apple Mac OS X. En las
máquinas virtuales que creemos, podremos instalar cualquier sistema
operativo que sea compatible con la arquitectura x86 o x86-64. Vmware
comercializa tres productos diferentes en este segmento:
VMware Workstation, que es la versión comercial, para sistemas
de escritorio que se instala sobre Microsoft Windows y
GNU/Linux.
VMware Fusion, que ofrece una funcionalidad similar en
sistemas de Apple que se ejecuten sobre procesadores Intel.
VMware Player, es la versión gratuita, con menos funcionalidad,
orientada a un uso no comercial. Al principio no permitía crear
nuevas máquinas virtuales (sólo usar las creadas con alguna
versión de pago), pero esa limitación desapareció en la versión
3.0.1
o Las versiones empresariales: Están orientadas a implantaciones de
mayor envergadura. Dos de las tres soluciones que propone la empresa
se ejecutan directamente sobre el ordenador, ya que disponen de su
propio sistema operativo, embebido dentro del producto, lo que deriva
en un mayor rendimiento del producto. Se comercializan tres soluciones
distintas:
VMware ESX, se instala directamente sobre el hardware, ofrece
un alto rendimiento y facilita el uso, más o menos directo, del
hardware por parte de los sistemas virtuales. Además, incorpora
vCenter que aglutina un conjunto de servicios complementarios
para mejorar la fiabilidad y la usabilidad. Entre sus
componentes, podemos destacar:
Vmotion, que permite cambiar una máquina virtual, que
se está ejecutando, de un host ESX a otro.
Storage Vmotion, que puede trasladar una máquina
virtual, que se está ejecutando, de un dispositivo de
almacenamiento a otro.
DRS (Distributed Resource Scheduler, en español,
Planificador de Recursos Distribuidos), que facilita el
balanceo automático de carga de un cluster ESX
utilizando Vmotion.
HA (High Availability, en español, Alta disponibilidad).
Consigue que, en caso de fallo de uno de los hosts del
cluster, los servidores virtuales que se estaban
ejecutando en él se reinicien automáticamente en un
host distinto.
VMware ESXi es un producto similar a VMware ESX, pero se ha
eliminado la Consola de Servicio, ahorrando una considerable
cantidad de almacenamiento en disco y en memoria RAM, pero
esto hace que la administración de los hosts deba realizarse a
través de un servidor de VirtualCenter. Además, desde el verano
de 2008, existe una versión de pago y otra con licencia
freeware, a la que también se le han eliminado algunas
características, como Vmotion y Storage Vmotion. Se diseño
para ejecutarse desde dispositivos SSD, pero puede instalarse
en cualquier disco duro. Desde el verano de 2008, VMware ESXi
es gratuita.
Vmware Server es una versión que se encuentra un tanto
obsoleta. Se ofrece con licencia freeware para uso no comercial
y se trata de la única solución orientada al ámbito empresarial,
que se instala sobre un sistema Linux o Windows anfitrión, por lo
que su rendimiento es menor que el de las versiones
comentadas anteriormente. Anteriormente, Vmware Server era
conocido como Vmware GSX Server.
Dada la variedad de versiones que podemos encontrar en Vmware, las hemos
organizado en la siguiente tabla, donde aparecen clasificadas en función de
que necesiten, o no, un sistema operativo anfitrión e indicando en cada versión
si es gratuita o de pago:
Windows Server 2008 R2 Hyper-V: es la respuesta de Microsoft en el mundo
de los servidores de virtualización. Se puede instalar como un rol dentro de
Windows Server 2008, o como un producto independiente. En este último caso,
lo que obtenemos es un Windows Server 2008 con sus funcionalidades muy
limitadas. En la actualidad, Hyper-V también forma parte de Windows
8. La versión independiente es
gratis, pero sólo dispone de una interfaz de línea de comandos (CLI) desde la
que se deben configurar el host, el hardware y el software a través de órdenes.
Afortunadamente, se dispone de un menú (ejecutable desde la línea de
comandos) y algunos scripts que pueden descargarse gratuitamente. A pesar
de todo, la configuración se realiza normalmente utilizando consolas de
administración (MMC, Microsoft Management Console), que se descargan y se
ejecutan en algún PC con Windows 7 o Windows Server 2008 de la red.
Oracle VM VirtualBox: es un software de virtualización creado originalmente
por una empresa llamada Innotek. Ésta empresa fue adquirida inicialmente por
Sun Microsystems que, a su vez, ahora es propiedad de
Oracle. Según diversas encuestas, VirtualBox
es la opción preferida por la mayoría de los usuarios de sistemas de
[Link] se instala como cualquier aplicación sobre un sistema
operativo anfitrión, que puede ser cualquier versión actual de escritorio de
Microsoft Windows (a partir de XP), cualquier distribución de GNU/Linux, Apple
Mac OS X, Solaris (incluido OpenSolaris) e incluso FreeBSD. Una vez
instalada la aplicación, permite la ejecución, sobre ella, de casi cualquier
sistema operativo compatible con la arquitectura [Link] todas las máquinas
virtuales usan controladores de dispositivos virtuales, son independientes del
hardware del anfitrión, por lo que son fáciles de transportar a un host diferente
cuando sea [Link] de la versión 4, había dos versiones diferentes de
VirtualBox: la versión OSE (Open Source Edition) que se distribuía con licencia
GPL y la versión PUEL (Personal Use and Evaluation License) que era gratuita
para uso personal y de evaluación, sin limitación de tiempo. La principal
diferencia entre ellas era que la versión PUEL tenía soporte para USB.A partir
de la versión 4, tanto el código fuente como el código binario se publican con
licencia GPLv2 y, la parte que sigue con licencia PUEL, es el soporte para
dispositivos USB 2.0, RDP, las funciones PXE para tarjetas de red Intel y el
mecanismo Extension Pack, que es el que permite que terceras partes incluyan
sus propias funciones en el producto. La gran ventaja es que ahora las
distribuciones pueden incluir paquetes precompilados de VirtualBox en sus
repositorios.
Parallels Desktop for Mac: Se trata de un producto de la empresa Parallels,
Inc., que ofrece virtualización en ordenadores Apple con procesadores Intel y
sistema operativo Mac OS X. Su
modo de funcionamiento es bastante parecido al de los productos anteriores,
asignando recursos del equipo anfitrión a la máquina virtual, que funciona
como si fuese un equipo independiente. Como en otras aplicaciones de
virtualización, aquí también se emplean controladores de dispositivos virtuales,
obteniendo una total independencia del hardware del equipo anfitrió[Link]
Parallels Desktop podremos ejecutar casi cualquier sistema operativo
compatible con la arquitectura x86.
Windows Virtual PC: Originalmente, Virtual PC fue creado por una empresa
llamada Connectix para sistemas Apple basados en procesadores PowerPC.
Posteriormente, Connectix produce una versión para
Windows. En 2003, Microsoft
adquiere el producto y en 2006 se convierte en un producto gratuito. El mismo
año dejaron de aparecer versiones para Apple, cuando esta empresa dejó de
utilizar procesadores PowerPC en favor de la arquitectura Intel. En la
actualidad, Windows Virtual PC sólo es compatible con hosts basados en
Windows 7 y posteriores y sólo permite máquinas virtuales con sistemas
operativos Windows XP SP3 o posteriores. En principio, se pueden crear
máquinas virtuales que ejecuten distribuciones GNU/Linux, pero carecen de
soporte oficial y carecen de controladores avanzados (llamados Virtual
Machine Additions).
Xen: es un software de virtualización creado originalmente en el Laboratorio de
Informática de la Universidad de Cambridge, pero desde 2010 es mantenido
por la comunidad Xen, que lo desarrolla y lo mantiene bajo licencia
GPLv2. Xen se instala directamente
sobre el hardware del host, ya que su hipervisor se basa en una versión
modificada de Linux, NetBSD y Solaris. Además, es compatible con
arquitecturas hardware basadas en procesadores IA-32, x86-64, Itanium y
ARM. Entre sus características avanzadas se encuentra la posibilidad de
migrar máquinas virtuales entre diferentes hosts sin tener que [Link]
cuanto a las máquinas virtuales (llamadas aquí dominios de usuario) tenemos
dos opciones:
o Cuando el procesador del ordenador anfitrión soporta virtualización x86
(por ejemplo Intel VT-x o AMD-V) se pueden instalar versiones
estándares de sistemas operativos libres o propietarios (incluido
Microsoft Windows)
o En caso contrario, necesitaremos un sistema operativo especialmente
modificado para ser virtualizado, que incluya drivers para soportar las
características avanzadas de Xen. Esta opción, mucho más restrictiva,
ofrece también un rendimiento mucho mayor.
Xen utiliza una técnica llamada paravirtualización que alcanza un rendimiento
elevado (las penalizaciones de rendimiento están entre el 2 y el 8 por ciento,
mientras que en otras soluciones rondan el 20).
OpenVZ: es un software de virtualización exclusivo para sistemas GNU/Linux.
Es decir, tanto los sistemas anfitriones como los invitados deben ser
GNU/Linux, aunque puede tratarse de diferentes
distribuciones. Al tratarse de un
sistema tan acotado, una de sus principales ventajas es que ofrece un mejor
rendimiento y una mayor escalabilidad. Además de simplificar la administración
de la instalación. OpenVZ está basado en Virtuozzo, un producto comercial de
la empresa SWsoft, Inc., pero se trata de software libre publicado bajo licencia
GPLv2.
Conclusión.
Hemos hablado de diferentes soluciones de virtualización, quizás las más difundidas,
pero se nos han quedado en el tintero un buen número de ellas. A pesar de todo, creo
que han sido suficientes para entender que las posibles soluciones son diversas y que
será fácil encontrar alguna que se adapte a nuestras necesidades.
En lo referente al resto de este texto, para que puedas poner en práctica todos los
contenidos que iremos desgranando, utilizaremos máquinas virtuales basadas en
VirtualBox. De esta forma, podrás hacer todas las pruebas que consideres necesarias
sin que se vea afectado tu entorno de trabajo habitual y sin que tengas que dedicar un
ordenador para realizar las tareas que vayamos explicando.