Pensamientos sobre Sistemas de Datos
Si bien las bases de datos, sistemas de queues, caches, etc son tipos de herramientas muy diferentes a todas las englobamos como “Sistemas de datos”.
Muchas veces para resolver problemas que requieran del tratamiento de datos necesitamos que varias de estas herramientas trabajen en conjunto y parte de nuestro código es el responsable de mantener la sincronización.
Los aspectos que más nos importan al momento de diseñar una solución son 3, Fiabilidad, Escalabilidad, y mantenibilidad.
Fiabilidad: El sistema debería funcionar correctamente inclusive en condiciones adversas.
– el sistema funciona de la forma en que espera el usuario?
– Fallas de Hardware
– Fallas de Software
– Errores Humanos
Escalabilidad: Si el sistema crece tanto en volumen, tráfico o complejidad, se debería poder lidiar con el crecimiento sin tener que rediseñar por completo.
– Que es Carga?
– Que es Performance?
– Que es Latencia?
– Escalar horizontalmente o verticalmente?
Mantenibilidad: A medida que pasa el tiempo, muchas personas trabajan en el proyecto, lo ideal es que puedan hacer cambios de forma productiva.
Operaciones:
– Monitorear la salud del sistema
– Encontrar la causa de problemas de rendimiento del sistema
– Mantener las plataformas y SO actualizados.
– Tener control del impacto que producen los sistemas entre sí
– Anticiparse a problemas como planificar capacidad para eventos concretos
– Seguir buenas prácticas de deployment y configuración (CI, CD, etc…)
– Mantener los sistemas de seguridad
– Definir y matener los procesos que convserven los ambientes estables
– Preservar los conocimientos de la organizacion a través del tiempo.
– Proveeer visibilidad del funcionamiento interno del sistema con monitoreo
– Proveer automatizaciones e integraciones con herramientas estándar
– Evitar depender de equipos informatos “claves”, de esta forma todos los equipos pueden ser puestos en mantenimiento por igual sin que el sistema sufra
– Proveer Buena documentación y un plan operaciones entendible
– Proveer buen funcionamiento por defecto y habilitar a los administradores sobreescribir cuando sea necesario
– Auto reparación cuando sea pertinente, también habilitar a los administradores a tomar control manual del sistema cuando sea necesari
Simplicidad, el arte de manejar lo Complejo
Capacidad de Evolución
Post en construcción…