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...