DigitalDocs, nuestro software de gestión de procesos documentales, cuenta desde hace unos años con una versión que corre en servidores exclusivos, pero no propios, en un centro de datos (junto a cientos de otros servidores similares) en la zona central de USA, bajo el modelo de infraestructura como servicio o IaaS.
IaaS implica que el cliente -nosotros- hace uso de recursos físicos que brinda un proveedor, los cuales son accedidos vía Internet.
Los recursos físicos IaaS más comunes son los servidores, pero también existen otros, como por ejemplo, las unidades de almacenamiento (storage).
Una solución IaaS simplifica algunos problemas tales como el costo de tener que comprar dicho equipamiento y la conexión a Internet de alta velocidad, a contraprestación de una tarifa mensual. También agiliza el escalamiento horizontal, en caso de requerir más poder de procesamiento, ya que contratar más infraestructura suele ser un proceso sencillo.
Sin embargo, IaaS no ayuda con otros problemas que ya existían antes de movernos a la nube, tales como la actualización de componentes del sistema operativo (patching), backups, o incluso, la falla física del hardware. En este último caso, si bien el proveedor del servicio es responsable de reemplazar los componentes dañados con otros de iguales características a los contratados, no responde por el contenido almacenado y el tiempo para estar online nuevamente no suele ir a la par de las necesidades de los consumidores finales, es decir, nuestros propios clientes.
Un paso hacia adelante: El cambio a PaaS (Plataforma como servicio)
La diferencia entre PaaS y IaaS se basa en ofrecer software -como el sistema operativo y middleware– en lugar de hardware, como un servicio. Esto, traducido en términos menos genéricos, implica que en lugar de contratar un servidor físico al cual hay que adicionarle un costo por la licencia del sistema operativo (excepto los open source), lo que se contrata es una máquina virtual (VM) con una licencia del S.O. incluída, y con ciertas ventajas adicionales como ser los backups automáticos de la VM (imagen completa del estado del equipo), parches automáticos y -según el proveedor y nivel contratado- también redundancia.
Nota: PaaS no refiere sólo a máquinas virtuales, también puede ser otro tipo de software, como por ejemplo un motor de bases de datos.
Las VMs suelen correr en equipos físicos muy potentes llamados hosts, con cientos de GB de memoria y CPU bestiales, capaces de ejecutar varias máquinas virtuales en simultáneo.
Cuando estos hosts tienen un problema, el proveedor puede mover las VMs a otro equipo físico y permitir la continuidad del servicio, lo cual es una clara ventaja ante el modelo IaaS.
PaaS además ofrece escalamiento vertical, es decir agregar más potencia de procesamiento o memoria de forma casi instantánea a la VM, muy al contrario de IaaS donde resulta complejo, costoso, o incluso imposible modificar las características de un servidor para agregar memoria, o mejorar la CPU. IaaS generalmente permite el escalamiento horizontal, es decir, agregar más equipos, pero no alterar a los que ya están funcionando.
Migración de DigitalDocs a Microsoft Azure
Luego de evaluar las opciones del mercado, tanto de segunda como primera línea, en el año 2019, nos decidimos por migrar DigitalDocs a la nube de Microsoft, Azure.
Las ventajas que nos brinda esta plataforma son, entre otras, las siguientes:
- Administración de recursos sencilla mediante un portal bien organizado.
- Control de costos por componente, por conjunto de recursos y por suscripción.
- Administración del consumo altamente visual, con facilidad de ver proyectado el costo hacia el futuro y en moneda local.
- Entorno y soporte .NET nativo, lo cual es un plus para DigitalDocs ya que está desarrollado con esa tecnología.
- Facilidad para establecer políticas de redundancia de datos, alertas de diversos tipos, delegación de permisos, etc.
- Disponibilidad de tecnologías de última generación como Cognitive Services y Machine Learning a pocos clicks de distancia.
- Redundancia de bases de datos, discos y máquinas virtuales de forma relativamente sencilla y transparente para el cliente.
Arquitectura de DigitalDocs en Azure
DigitalDocs corre en máquinas virtuales con Windows 2019 Datacenter Server. La base de datos utilizada es Azure SQL Database y los volúmenes de almacenamiento (discos donde DigitalDocs guarda las imágenes digitalizadas ) NO residen en la VM, sino que se consumen como otros servicios dentro de la nube de Microsoft.
Base de datos
Azure SQL Database es consumida como un servicio y la ventaja de este modelo es que nos permite desentendernos del servidor físico que la ejecuta, así como de los backups y sus políticas, que se realizan de forma automática y periódica.
Las bases de datos SQL en Azure vienen configuradas con TDE (Transparent Data Encryption) por defecto, lo que significa que los datos están siempre encriptados en reposo. Tanto el servidor lógico que corre SQL Server como las bases de datos contenidas están protegidas con reglas de Firewall independientes.
La base de datos que utiliza DigitalDocs está configurada para no permitir accesos desde el exterior, ni siquiera desde la misma subred interna de Azure vía su dirección IP.
La base de datos es accedida a través de lo que la plataforma denomina un punto de enlace privado (private endpoint), lo cual imposibilita una eventual filtración de información o acceso desde el exterior.
Volúmenes de almacenamiento
Los volúmenes de almacenamiento de DigitalDocs son discos SSD administrados (managed disks) y poseen un esquema de redundancia local: un disco es replicado 3 veces dentro del mismo centro de datos y cualquier solicitud de escritura solamente retorna con estado exitoso si se pudo escribir en las 3 réplicas de igual forma.
Los discos utilizados tienen habilitada la encriptación mediante el servicio SSE (Storage Service Encryption), lo cual brinda seguridad ante el acceso no autorizado y es totalmente transparente para el consumidor.
Máquina virtual
La máquina virtual es objeto de una captura diaria de estado (snapshot), que incluye los discos del sistema operativo y de datos. La misma se almacena en una bóveda virtual dentro de la nube para tener un resguardo completo de VM ante un posible desastre.
Ventajas de este modelo
Más allá de las explicaciones técnicas, es importante destacar que este modelo brinda ventajas que serían muy costosas de obtener en un ambiente local (on-premise) o IaaS, tales como:
- Redundancia de datos: protege ante eventuales fallas de un componente físico y utiliza los medios redundantes restantes para continuar proveyendo el servicio.
- Reducción de costos de IT: al efectuar resguardos de datos automatizados y proveer una política clara y configurable de backups.
- Seguridad: al utilizar tecnologías de encriptación de datos tanto en la base de datos como en los volúmenes de almacenamiento de las imágenes y diferentes niveles de Firewalls.
- Escalamiento automático: en caso de requerir más potencia de procesamiento debido a una suba en la demanda, se puede aumentar el poder de procesamiento de la VM o base de datos sin interrumpir el servicio.
- Nivel de servicio del 99,995% para la base de datos y 99,9% para las VMs y sus discos, provistos por el proveedor.
Futuro de DigitalDocs en la nube
Los próximos pasos en la evolución de DigitalDocs en la nube apuntan a la no-dependencia de máquinas virtuales para su funcionamiento y la integración con la tecnologías del futuro como visión, aprendizaje automático, procesamiento de lenguaje natural, etc.
La independización del esquema de máquinas virtuales se llevará a cabo migrando a una arquitectura de micro-servicios (serverless), los cuales se ejecutan directamente en la nube, sin un servidor lógico detrás.
La nube se encarga de iniciar componentes, balancear, diagnosticar problemas y terminar micro-servicios administrados, o incluso de escalarlos cuando la demanda es alta.
El potencial que brindan las plataformas cloud es inmenso y eso hace que las posibilidades de mejora, expansión y experiencia del usuario de DigitalDocs Cloud se enriquezcan exponencialmente.