Al hablar de escalabilidad – híper o no -, lo primero que hay que tener en cuenta es que el desarrollo ha tomado el control de la infraestructura, porque las necesidades de hoy día, no solo en cuanto a rendimiento, si no a seguridad, almacenamiento, conectividad o facturación, nos impiden ser rentables con una aproximación estática. Existen tres factores clave por los que esto es así:
- Flexibilidad para definir y asignar recursos que se adapten a la necesidad del servicio en cada momento. Implica romper con el paradigma anterior de asignación de accesos específicos por aplicación o servicio. En las infraestructuras híper escalables modernas los recursos están alojados en múltiples localizaciones, pero hay una necesidad que permanece: hay que conocer la dirección del recurso al que accedemos, es decir, la IP y su nombre completo (FQDN). En una infraestructura tradicional, esta pareja IP-FQDN se asignaba a uno o varios recursos, muchas veces de forma manual y perduraba durante prácticamente toda la vida del servicio. En un mundo escalable, este servicio estará compuesto por centenares o incluso miles de microservicios que aparecen y desaparecen en intervalos que pueden durar desde meses a segundos.
- Elasticidad. De nada nos sirve contar con un sistema automatizado y flexible, si no disponemos de la capacidad de hacerlo crecer en un entorno compartido de forma coherente. Se trata de poder escalar los microservicios implicados a cualquier dimensión, en función de la demanda. Un factor crítico relacionado con la elasticidad es la seguridad. En las infraestructuras no escalables es relativamente sencillo. El reto está en las infraestructuras elásticas, por la diversidad, ubicación y por la propia elasticidad, que puede trascender de los límites del espacio de direccionamiento. Implementar medidas de seguridad que impliquen acciones manuales de configuración sería imposible, ya que eliminaría la agilidad que pretendemos conseguir. Aquí la automatización juega un papel fundamental.
- Convergencia. Los servicios son independientes del lugar donde residen. Y esto es quizá el mayor avance de las arquitecturas escalables, ya que permite la optimización y localización casi inmediata de recursos, es decir, disponer de la capacidad de independizar los servicios del lugar donde se ubican y “clonarlos”, ubicándolos en uno o múltiples centros de datos, en diferentes nubes públicas o privadas. Toda la aplicación converge en un sistema de especificaciones y reglas que se aplican al servicio general y a todos los microservicios que lo componen. De esta forma el usuario no percibe diferencia entre los deferentes proveedores de servicio que operan el mismo. Es el operador del servicio (automatizado por supuesto) el que en segundos es capaz de movilizarlo en función de los costes o el rendimiento deseado.
Para conseguir todo lo anterior es preciso contar con una inteligencia, un CEREBRO que permita gestionar los espacios de direccionamiento y nombres, pero no de forma estática y manual, si no completamente automatizada y sincronizada con el resto de la infraestructura. Poniendo esta información en perspectiva, los sistemas de IPAM (Gestión automatizada de IPs y nombres) están llamados a ser el cerebro de estas operaciones, ya que albergan la información de estos espacios de direccionamiento y nombres que dan origen a los propios servicios. Pero para dar el salto a la orquestación es preciso que cuente con la capacidad de automatizar e interactuar cualquier elemento en cualquier lugar. Un Cerebro que permita la híper escalabilidad.