En el mundo PYME y en el sector SaaS existen diferentes perspectivas sobre el nivel de complejidad de la adopción y administración de Nube.
Dentro de ellas, es el temor a la administración ineficiente de recursos y el sobre costo que significa dejar esa decisión. Por ejemplo, al crear soluciones (etapa de desarrollo) cuando aún no tenemos un product market fit de nuestro producto, tenemos solo hipótesis del nivel transaccional que pudiera alcanzar la solución en esquema multitenant (infraestructura compartida). Por tanto, al diseñar consultas o interacciones a diferentes componentes, podemos crear la expectativa de que la solución puede alcanzar cierto nivel de costo entre computo-storage-networking.
En este sentido, la experiencia adquirida en Kata Software y de la mano de nuestro aliado estratégico Microsoft, nos ha brindado las bases para llevar un adecuado seguimiento y entendimiento de como usamos realmente nuestros componentes y, con base en ello, poder determinar algunas guías que pueden ser de utilidad al momento de diseñar y operar soluciones administración de nube:
- ¿Qué uso tendrá nuestra plataforma, es B2B o B2C? Con ello es posible determinar horarios de uso aproximados.
- ¿El uso de la plataforma es en horario de oficina, o es horario continuo? Con ello determinar el uso de escalados vertical u horizontal según el componente utilizado, es decir, directo desde la administración del recurso y basado en días de semana y horas de uso o en su defecto vía scripts PowerShell y automation Account que permitan cambiar el tamaño de recursos según se identifique.
- ¿El ambiente es productivo o de pruebas? Con esto determinar una política máxima de tamaño de recursos para ambientes de pruebas (tamaño mínimo) y en producción determinar el uso que, conforme se amplía la base de usuarios, requiera mayor capacidad de procesamiento.
- ¿Opera en fines de semana? Con esto determinar si las reglas de escalado deben o no correr esos días, aplica de la misma forma para días festivos.
- Utilizar, si así lo soporta la solución, el escalado de cómputo basado en métricas de uso de recursos (CPU, memoria).
- Incorporar métricas (alertas) que nos permitan identificar cuando existan picos transaccionales y con ello revisar si debemos ampliar o modificar los umbrales existentes.
Es importante que, en el diseño de nuestras soluciones, los equipos de producto realicen pruebas de estrés y de carga sobre las operaciones para determinar cómo se comportará y, de esta forma, determinar el máximo que soporte según la configuración definida y número de instancias activas.
En este sentido, es importante hacer uso de las herramientas de monitoreo como Service Health en caso de fallo del servicio en la región, métricas que brinde el recurso y alertas que se deban incorporar para validar el performance, incluso considerar una App. Adicionalmente, la función del equipo de monitoreo es crítica para accionar ante cualquier eventualidad, con instrucciones claras de umbrales y acciones a ejecutar, así como revisar el comportamiento a fin de mes para proyectar el consumo futuro de los servicios.
Otras acciones a considerar para la correcta administración de Azure:
- Revisar y definir área responsable de la administración de Azure.
- Limitar el número de personas con permisos de creación y modificación de servicios.
- Crear la separación de ambientes a nivel suscripción y/o grupo de recursos.
- Los ambientes NO productivos deben usar servicios Developer o del menor tamaño posible dado que no se debe cumplir con algún SLA.
- Los equipos de Producto deben tener su propia suscripción.
- Definir procedimiento de alta de infraestructura.
- Periódicamente (inicialmente diario) revisar Cost Managament para identificar el consumo por servicio, suscripción, etc.
- Evaluar si es aplicable uso de Azure Reservations (Reservas) con base a contratos pactados, puede representar hasta un 35% de ahorro en costo.
- Evaluar uso de Azure Hybrid Benefit, en aquellas empresas que compraron licencias de servidores Windows o SQL puede representar un ahorro en costo de Nube.
- Documentar las pautas de creación de infraestructura, que incluya el etiquetado de recursos (ambiente, nombre, etc.) que servirán como agrupación para reportes de consumo.
La suma de varias de estas acciones ha permitido a Kata Software disminuir el costo de Nube de una de sus plataformas YTD cerca de un 19% 2021 vs 2022. Además, uno de nuestros productos logró un ahorro en el hosting de septiembre 2021 vs diciembre 2022 de cerca de 8K USD mensuales. Estas mismas acciones permitieron que en algunos proyectos se consiguiera definir políticas y controles que lograron bajar el costo de hosting cerca de 20k USD anuales.