"Наша база даних не масштабується".
База даних:
- 40 ГБ загального обсягу даних
- 12 запитів за секунду
- 0 індексів у стовпцях запитів
- N+1 запити всюди
- Середній час запиту 200 мс
Рішення:
- Осколок у 12 базах даних
- Додати репліки читання
- Реалізувати кешуючий шар
- Перехід на «web scale» NoSQL
Фактичне рішення:
- Додати 3 індекси
- Виправити запити N+1
- Час запиту 5 мс
- $40/місяць Postgres
У вас немає проблеми зі масштабуванням.
У тебе проблема з компетентністю.
Вакансія: «Інженер з DevOps»
Фактична робота:
- Ручне розгортання WAR-файлів у Tomcat
- SSH на сервери для перевірки журналів
- Перезапуск сервісів при їх збоях
- Оновлення правил міжмережевого екрану через тикети
- Відсутність інфраструктури як код
- Без CI/CD
- Немає хмар
Ви не наймаєте інженера з DevOps.
Ви наймаєте системного адміністратора, який знає про існування Docker.
Просто будьте чесними щодо ролі.
Системні адміністратори дуже цінні. Перестань прикидатися, що займаєшся DevOps, хоча це не так.
Ваш Dockerfile:
- З ubuntu:latest
- Встановлює 47 пакетів
- Виконується як корінь
- Розмір зображення 2,3 ГБ
- Відновлення займає 15 хвилин
- Сканування безпеки показує 89 вразливостей
Ваш додаток:
- Скрипт на Python
- 3 Залежності
- Може працювати на Alpine у зображенні 50MB
Ви не використовуєте контейнери.
Ви створюєте віртуальні машини за допомогою Dockerfiles.
Ось що відбувається, коли люди вивчають Docker з випадкових статей на Medium.