TL; DR: las medidas de tamaño se pueden dividir aproximadamente en tres categorías diferentes que definiría como profundidad en lo que administra frente a lo que externaliza o consume como servicio, la amplitud de servicios admitidos y la altura en número de instancias, servidores y clientes . Las medidas de complejidad dependen en gran medida de la arquitectura de sistemas seleccionados
, la estructura organizativa de las personas que lo apoyan y los conjuntos de habilidades requeridos. Donde la profundidad y las habilidades van de la mano, agregan tanto tamaño como complejidad.
Medidas del tamaño
Nota: La mayoría de los siguientes requisitos de tamaño también pueden aumentar la complejidad a través de la arquitectura de sistemas, los conjuntos de habilidades y las necesidades de estructura de la organización.
Profundidad de infraestructura
Qué cantidad de la infraestructura está subcontratando a otros en mayores niveles de profundidad:
- ¿Simplemente utiliza Software as a Service para todo lo que hace?
- ¿Funciona completamente en la nube pública, privada o híbrida o utiliza algunos PaaS?
- ¿Usas Infraestructura como Servicio?
- ¿Utiliza Infraestructura Hospedada y Administrada en espacio DC alquilado?
- ¿Es dueño o alquila el hardware?
- ¿El proveedor gestiona el monitoreo de la infraestructura?
- ¿El proveedor gestiona la administración básica del sistema?
- ¿El proveedor gestiona fallas de hardware y mantenimiento?
- ¿El proveedor gestiona el trasiego y la instalación del servidor?
- ¿El proveedor gestiona las redes internas?
- ¿El proveedor gestiona la conectividad y enrutamiento de Internet?
- ¿Tiene solo centros de datos con manos remotas contratadas?
- ¿Aloja todo en las instalaciones o en sus propios centros de datos?
Amplitud de infraestructura
¿Cuáles son los diferentes tipos de servicios que admite?
- Calcular recursos
- Servidores de metal desnudo
- Capa de virtualización (VMWare)
- Capa de contenedor (docker, k8, mesos)
- Capa sin servidor (lambda, funciones)
- Recursos de almacenamiento
- Aparatos de almacenamiento independientes
- RAID en servidores
- Grandes grupos de bases de datos relacionales independientes
- Bases de datos de series de tiempo
- Clústeres de tiendas de objetos
- Recursos de red
- Recursos de observabilidad
- Servidores de registro del sistema
- Sistemas de métricas y gráficos
- Buscar grupos
- Recursos de automatización
- Recursos de copia de seguridad / recuperación
- Servicios compuestos complejos
Altura de Infraestructura
- ¿Cuál es la escala para cada recurso que necesita? ¿Opera los servicios en un solo servidor / instancia o necesita usar grupos de máquinas?
- ¿Cuál es el nivel de redundancia que necesita?
- ¿Cuáles son sus requisitos de disponibilidad?
- ¿Cuáles son sus requisitos para la latencia y el rendimiento de los servicios?
- ¿Necesita infraestructura distribuida geográficamente? (negocios internacionales, requisitos de latencia o cumplimiento de regulaciones como GDPR, leyes de localización de datos, etc.)
- ¿Necesita múltiples centros de datos en cada geografía?
Medidas de complejidad
Solo muy brevemente ...
Arquitectura del sistema
Cuando se trata de la complejidad de la infraestructura, sigue bastante de cerca la complejidad de los sistemas distribuidos compatibles con la infraestructura. Debe tener en cuenta dos tipos de sistemas:
- Sistemas distribuidos que soportan servicios individuales.
- Sistema distribuido creado por interdependencias de los servicios.
Complejidad de sistemas distribuidos
Cada servicio que admite su infraestructura puede tener en sí mismo un nivel diferente de complejidad con diferentes niveles de requisitos en la infraestructura. Los servicios de soporte de sistemas pueden variar a través de:
- De un solo hilo.
- Multihilo (memoria compartida, disco compartido)
- Sistemas paralelos con fragmentación de datos
- HA Failover (primario / en espera) (frío, cálido, caliente)
- Clúster HA (N + M)
- Clusters en tiempo real
Interdependencia de servicios
Permítanme comenzar con un ejemplo. Digamos que su infraestructura informa los resultados de las pruebas en el clúster ElasticSearch. Su localizador depende de los datos de monitoreo y prueba proporcionados por ElasticSearch. La distribución geográfica del clúster ElasticSearch hace que dependa de la conectividad de red de su centro de datos. Ahora, uno de sus proveedores de Internet decidió realizar un mantenimiento no anunciado el sábado por la noche, el rendimiento disminuye, su tráfico se redirige al proveedor de respaldo, el tráfico de monitoreo se da prioridad al tráfico de datos del cliente, la ingesta de eventos de monitoreo se ralentiza y su localizador se vuelve loco.
Cada vez que dos servicios, dos partes de la infraestructura dependen entre sí, crean un nuevo sistema distribuido único, cuya complejidad debe juzgarse de forma independiente. Dicha dependencia puede eliminarse o reducirse. Recuerde que el sistema es tan redundante y tan disponible como la intersección de todos los servicios de los que depende.
Otros ejemplos de factores que aumentan la complejidad:
- Dependencias de servicios externos.
- Intenta mitigar la falla de la dependencia del servicio.
- Proveedores múltiples
- Almacenamiento en caché de datos
Estructura organizativa
Este es un capítulo en sí mismo ... a las personas a menudo se les pasa por alto parte del sistema general de infraestructura de TI. Raramente pensamos en los factores de redundancia, disponibilidad y latencia cuando se trata de personas, pero al igual que con las computadoras, estos mismos problemas afectan a las organizaciones que mantienen la infraestructura y su complejidad a veces puede superar fácilmente la complejidad de los sistemas informáticos. Las personas involucradas en el mantenimiento de su infraestructura pueden abarcar múltiples zonas horarias, idiomas, ubicaciones geográficas, empresas, escalas salariales y códigos legales. Cualquiera de esos factores son signos de aumento en la complejidad.