#life
на сколько же это приятное ощущение, когда совершенно незнакомый человек относится к тебе как это было в глухих деревеньках, где каждый друг друга знает без зависти или злобы.
еще помню в 80-ые, когда соседка могла угостить крынкой теплого молока с ломотем хлеба, ото и покормить пока ты ждешь родителей...
или просто прохожий дядька поможет починить на скорую лясик просто потому что увидел...
Куда все это делось?
так или иначе, но сегодня это ощущения теплоты вернулось.
Именно в такие моменты кажется, что еще не все потеряно, хочется еще больше сделать полезного для мира
Всем обнимашек теплых, не грустите, напомните своим родителям, что они не одиноки
на сколько же это приятное ощущение, когда совершенно незнакомый человек относится к тебе как это было в глухих деревеньках, где каждый друг друга знает без зависти или злобы.
еще помню в 80-ые, когда соседка могла угостить крынкой теплого молока с ломотем хлеба, ото и покормить пока ты ждешь родителей...
или просто прохожий дядька поможет починить на скорую лясик просто потому что увидел...
Куда все это делось?
так или иначе, но сегодня это ощущения теплоты вернулось.
Именно в такие моменты кажется, что еще не все потеряно, хочется еще больше сделать полезного для мира
Всем обнимашек теплых, не грустите, напомните своим родителям, что они не одиноки
телеграм прокся
https://mtproto.ru/personal.php
Размещается в финляндии, вроде (судя по открытым данным). Но владелец из Санкт-Петербурга.
Владелец скрыт.
Сам использую пока, т.к. свой сервер прокси еще не поднял.
Постараюсь на днях закончить опыты и запустить ВПН+прокси для доступа к забугорным ресурсам.
Но стоить мне это будет почти 1к в месяц, если не получится образ системы уместить в 2ГБ диска и 1ГБ ОЗУ
наиболее старый канал с Проксями для телеги: https://t.me/ProxyMTProto
количество подписаты близко к количеству канала Дурова
https://mtproto.ru/personal.php
сразу скажу - это не похоже на официальный от Дурова сайт.
Размещается в финляндии, вроде (судя по открытым данным). Но владелец из Санкт-Петербурга.
Владелец скрыт.
Сам использую пока, т.к. свой сервер прокси еще не поднял.
Постараюсь на днях закончить опыты и запустить ВПН+прокси для доступа к забугорным ресурсам.
Но стоить мне это будет почти 1к в месяц, если не получится образ системы уместить в 2ГБ диска и 1ГБ ОЗУ
наиболее старый канал с Проксями для телеги: https://t.me/ProxyMTProto
количество подписаты близко к количеству канала Дурова
#news #security #life
Firefox готовит обнову с встроенным ВПН и "чистильщиком" трафика от вредоноса
(https://blog.mozilla.org/en/firefox/firefox-148-149-new-features/?utm_source=Securitylab.ru)
обещает 50ГБ трафика для некоторых стран в месяц. (Обнова 149 в 24 марта)
Теперь пользователь не будет показывать свой IP и будет в большей безопасности для некоторого рода атак.
Однако, всегда есть подвох - сам ФФ сможет собирать эту статистику более целенаправленно, а существующим системам ЧС и фильтрации придется снова дорабатывать свои системы.
Firefox готовит обнову с встроенным ВПН и "чистильщиком" трафика от вредоноса
(https://blog.mozilla.org/en/firefox/firefox-148-149-new-features/?utm_source=Securitylab.ru)
обещает 50ГБ трафика для некоторых стран в месяц. (Обнова 149 в 24 марта)
Теперь пользователь не будет показывать свой IP и будет в большей безопасности для некоторого рода атак.
Однако, всегда есть подвох - сам ФФ сможет собирать эту статистику более целенаправленно, а существующим системам ЧС и фильтрации придется снова дорабатывать свои системы.
The Mozilla Blog
An easier way to personalize Firefox
Firefox is for people who make their own choices online, from what stays private to the tools that help get things done. That commitment to choice shows up
#it_design_architect
CQRS и Event Sourcing: разделяем команды и запросы
CQRS (Command Query Responsibility Segregation) разделяет операции на две модели: Command (изменение состояния) и Query (чтение). Event Sourcing (ES) хранит не текущее состояние, а историю событий.
Как работают вместе:
Command → валидация → сохранение события (Event) в хранилище.
Event — неизменяемый факт (например, OrderPlaced, PaymentReceived).
Read Model формируется из событий для оптимизации запросов (денамик, кэши, разные СУБД).
Зачем:
- Разные масштабы: запросов может быть в 1000 раз больше.
- Полный аудит и воспроизведение состояния.
- Гибкость: можно поднять новую Read Model под новый UI без миграций.
Сложности:
- Eventual consistency — данные видны не мгновенно.
- Сложность инфраструктуры (Kafka, EventStore, отдельные сервисы).
Когда использовать:
- Системы с высокой нагрузкой на чтение и запись (биржи, логистика).
- Требования к аудиту (финансы, медицина).
- Если готовы платить за сложность.
CQRS+ES — мощный паттерн для сложных доменов, но не для CRUD-приложений. Начинайте с монолита, внедряйте только когда болят места.
CQRS и Event Sourcing: разделяем команды и запросы
CQRS (Command Query Responsibility Segregation) разделяет операции на две модели: Command (изменение состояния) и Query (чтение). Event Sourcing (ES) хранит не текущее состояние, а историю событий.
Как работают вместе:
Command → валидация → сохранение события (Event) в хранилище.
Event — неизменяемый факт (например, OrderPlaced, PaymentReceived).
Read Model формируется из событий для оптимизации запросов (денамик, кэши, разные СУБД).
Зачем:
- Разные масштабы: запросов может быть в 1000 раз больше.
- Полный аудит и воспроизведение состояния.
- Гибкость: можно поднять новую Read Model под новый UI без миграций.
Сложности:
- Eventual consistency — данные видны не мгновенно.
- Сложность инфраструктуры (Kafka, EventStore, отдельные сервисы).
Когда использовать:
- Системы с высокой нагрузкой на чтение и запись (биржи, логистика).
- Требования к аудиту (финансы, медицина).
- Если готовы платить за сложность.
CQRS+ES — мощный паттерн для сложных доменов, но не для CRUD-приложений. Начинайте с монолита, внедряйте только когда болят места.
CyberMerlin pinned «https://t.me/boost/cybermerlin_pub способ помочь каналу расширив функциональность, чтобы больше текста помещалось под картинками, стилизовать ссылки, публиковать истории, и прочие штуки. А также добавив больше мотивации работать 😉 —— A way to help the channel…»
#hardware #it_design_architect #business
ARM vs x86
Долгие годы x86 был стандартом для серверов и рабочих станций. ARM захватывает дата-центры благодаря эффективности и кастомизации.
x86 — legacy, тяжелые БД, ПО без ARM-версий.
ARM — облака, микросервисы, edge, CI/CD (быстрее и дешевле).
Переход на ARM в облаках даёт до 40% экономии при той же производительности. Но проверяйте совместимость зависимостей.
ARM vs x86
Долгие годы x86 был стандартом для серверов и рабочих станций. ARM захватывает дата-центры благодаря эффективности и кастомизации.
Характеристика |x86 (Intel/AMD) |ARM (Apple M, AWS Graviton, Ampere)
Энергопотребление |Высокое |Низкое
Производительность на ядро |Высокая |Растёт, сравнима с x86
Совместимость |Весь legacy-софт |Требуется пересборка (но Docker много где готов)
Стоимость |Выше |Ниже (особенно в облаках AWS/Azure)
x86 — legacy, тяжелые БД, ПО без ARM-версий.
ARM — облака, микросервисы, edge, CI/CD (быстрее и дешевле).
Переход на ARM в облаках даёт до 40% экономии при той же производительности. Но проверяйте совместимость зависимостей.
#lifehack
если кому нужен ВПН на андроиде
я его не проверял на безопасность!
пара знакомых похвастались, что используют его уже как год и не замечали проблем или несанкционированных действий на телефоне с их установкой (правильным будет сказать, что они и не из ИТ совсем)
если кому нужен ВПН на андроиде
jumpjumpvpnя его не проверял на безопасность!
пара знакомых похвастались, что используют его уже как год и не замечали проблем или несанкционированных действий на телефоне с их установкой (правильным будет сказать, что они и не из ИТ совсем)
#hardware #it_design_architect
ARM vs x86: почему и где ARM
ARM часто называют "быстрее", но это упрощение. Вопрос не в абсолютной скорости, а в эффективности под конкретную задачу.
- Многоядерность - ARM Graviton4 (96 ядер) легко масштабирует многопоточные нагрузки, где x86 требует больше энергии
- Энергоэффективность - ARM проектировался для мобильных устройств, отсюда низкое TDP и лучшая производительность на ватт
- Память - ARM-чипы (Graviton) часто имеют более высокую пропускную способность памяти, критичную для аналитических БД
- Цена/производительность - В облаках ARM-инстансы дешевле на 20–40% при сопоставимой или лучшей многопоточной производительности
ClickHouse Cloud при миграции на Graviton получил **до 64% прироста QPS** на аналитических запросах .
Почему ARM НЕ подходит для тяжелых БД?
- Software compatibility - x86-бинарники не запускаются на ARM. Требуется пересборка или эмуляция (Prism, Rosetta), что даёт потерю производительности
- SIMD-инструкции - x86 использует AVX-512 для ускорения БД-операций, ARM-аналог (SVE) пока менее распространён в софте
- Legacy-зависимости - Проприетарные СУБД, драйверы, старые расширения PostgreSQL могут не иметь ARM-сборок
- Одноядерная производительность - x86 (Intel/AMD) сохраняет лидерство в single-thread, что критично для OLTP с короткими транзакциями
Куда еще не суй ARM?
1. Старые Windows-приложения — Windows on ARM эмулирует x86, но игры с античитами (Valorant, LoL) и драйверы не работают
2. Специализированные HPC-задачи — некоторые научные пакеты оптимизированы десятилетиями под x86
3. Критичный legacy-софт — если нет исходников, пересобрать невозможно
4. Высокочастотный трейдинг — где важны микросекунды single-thread
но не стоит говорить, что и современные x86 отстой, у них мультипотоки на мультиядрах и операции с плавающими точками тоже не стоят на месте. Так что ARM - там где надо много легковесных обработок и хочется экономить на электричестве.
ARM vs x86: почему и где ARM
ARM часто называют "быстрее", но это упрощение. Вопрос не в абсолютной скорости, а в эффективности под конкретную задачу.
- Многоядерность - ARM Graviton4 (96 ядер) легко масштабирует многопоточные нагрузки, где x86 требует больше энергии
- Энергоэффективность - ARM проектировался для мобильных устройств, отсюда низкое TDP и лучшая производительность на ватт
- Память - ARM-чипы (Graviton) часто имеют более высокую пропускную способность памяти, критичную для аналитических БД
- Цена/производительность - В облаках ARM-инстансы дешевле на 20–40% при сопоставимой или лучшей многопоточной производительности
ClickHouse Cloud при миграции на Graviton получил **до 64% прироста QPS** на аналитических запросах .
Почему ARM НЕ подходит для тяжелых БД?
- Software compatibility - x86-бинарники не запускаются на ARM. Требуется пересборка или эмуляция (Prism, Rosetta), что даёт потерю производительности
- SIMD-инструкции - x86 использует AVX-512 для ускорения БД-операций, ARM-аналог (SVE) пока менее распространён в софте
- Legacy-зависимости - Проприетарные СУБД, драйверы, старые расширения PostgreSQL могут не иметь ARM-сборок
- Одноядерная производительность - x86 (Intel/AMD) сохраняет лидерство в single-thread, что критично для OLTP с короткими транзакциями
Куда еще не суй ARM?
1. Старые Windows-приложения — Windows on ARM эмулирует x86, но игры с античитами (Valorant, LoL) и драйверы не работают
2. Специализированные HPC-задачи — некоторые научные пакеты оптимизированы десятилетиями под x86
3. Критичный legacy-софт — если нет исходников, пересобрать невозможно
4. Высокочастотный трейдинг — где важны микросекунды single-thread
но не стоит говорить, что и современные x86 отстой, у них мультипотоки на мультиядрах и операции с плавающими точками тоже не стоят на месте. Так что ARM - там где надо много легковесных обработок и хочется экономить на электричестве.
#AI #business #dev
PI в разработке: реальность vs маркетинг
Помним, что AI еще не создан?
LLM-ассистенты (Copilot, Cursor, Claude) изменили индустрию, но их возможности часто переоценивают. Разберём, где они реально полезны, а где остаётся "маркетинговым пылесосом".
Что делает хорошо
Что не умеет
1. Архитектура масштаба — выбирать между Kafka и RabbitMQ, проектировать домены.
2. Сопровождение легаси — понимать 15-летние костыли и не сломать.
3. Оценка рисков — сколько займёт миграция БД, какие нужны нормативные требования.
4. Причинно-следственные связи — "почему упал прод в 3 часа ночи".
Когнитивная ловушка
Разработчики переоценивают РI-код, потому что:
- Иллюзия компетентности — код компилируется → кажется правильным.
- Снижение критического мышления — быстрее принять сгенерированное, чем анализировать.
Метрика полезности
- Новая функциональность (типовой стек) - +40% скорости
- исправления в незнакомом коде - –20% (время на проверку)
- Проектирование API - 0% (всё равно переделывать)
РI — мощный "автокомплит", а не архитектор. Он ускоряет то, что вы и так умеете, но не заменяет инженерное мышление. Критически проверяйте сгенерированный код и не теряйте навык писать сами.
PI в разработке: реальность vs маркетинг
Помним, что AI еще не создан?
LLM-ассистенты (Copilot, Cursor, Claude) изменили индустрию, но их возможности часто переоценивают. Разберём, где они реально полезны, а где остаётся "маркетинговым пылесосом".
Что делает хорошо
| Задача | Пример | Ограничение |
|---------------------------|---------------------------------|----------------------------------|
| Генерация шаблонного кода | CRUD-контроллеры, DTO, миграции | Требует точной постановки задачи |
| Написание тестов | Юнит-тесты по коду | Пропускает угловые случаи |
| Рефакторинг | Переименование,вынесение методов| Без контекста архитектуры |
| Документация | Комментарии, README по коду | Не проверяет актуальность |
| Поиск багов | Типичные уязвимости (SQLi, XSS) | Не находит бизнес-логику |
Что не умеет
1. Архитектура масштаба — выбирать между Kafka и RabbitMQ, проектировать домены.
2. Сопровождение легаси — понимать 15-летние костыли и не сломать.
3. Оценка рисков — сколько займёт миграция БД, какие нужны нормативные требования.
4. Причинно-следственные связи — "почему упал прод в 3 часа ночи".
Когнитивная ловушка
Разработчики переоценивают РI-код, потому что:
- Иллюзия компетентности — код компилируется → кажется правильным.
- Снижение критического мышления — быстрее принять сгенерированное, чем анализировать.
Метрика полезности
- Новая функциональность (типовой стек) - +40% скорости
- исправления в незнакомом коде - –20% (время на проверку)
- Проектирование API - 0% (всё равно переделывать)
РI — мощный "автокомплит", а не архитектор. Он ускоряет то, что вы и так умеете, но не заменяет инженерное мышление. Критически проверяйте сгенерированный код и не теряйте навык писать сами.
#health #psychology #lifehack
Кофеин: генетика, толерантность и DevOps-оптимизация =)
— самый распространённый ноотроп в IT. Но работает он у всех по-разному. Дело в генах.
Ген CYP1A2 определяет, как быстро печень расщепляет кофеин:
Тип | Частота | Эффект
- Быстрый метаболизатор | ~50% | Кофеин выводится за 2–4 часа. Можно пить до вечера без вреда для сна.
- Медленный метаболизатор | ~50% | Полураспад до 8–10 часов. Даже утренняя чашка может ухудшить качество сна.
У медленных метаболизаторов кофеин повышает риск гипертонии и тревожности. У быстрых — снижает риск нейродегенеративных заболеваний.
- Рецепторы аденозина (A1, A2A) адаптируются через 7–14 дней регулярного употребления.
- Чтобы вернуть чувствительность, нужна кофеиновая пауза (5–7 дней полного отказа).
- Постоянное повышение дозы приводит к истощению дофаминовой системы.
Оптимальная стратегия
1. Не пить первые 90 минут после пробуждения — утром кортизол и так высок, кофеин в это время снижает собственную выработку гормонов бодрости.
2. Прекратить приём за 8–10 часов до сна — для медленных метаболизаторов ещё раньше.
3. Циклировать: 5 дней кофеин, 2 дня без (или неделя паузы раз в 2–3 месяца).
4. L-теанин (зелёный чай, или добавка) снижает тревожность и сглаживает пики.
Симптомы передозировки (не игнорировать)
- Тремор рук
- Учащённое сердцебиение в покое
- Тревога без причины
- Бессонница при сильной усталости
Кофеин — мощный инструмент, но требует персонализации. Если вы пьёте пятую чашку и всё равно спите по 6 часов — возможно, вы медленный метаболизатор, и кофеин работает против вас.
Кофеин: генетика, толерантность и DevOps-оптимизация =)
— самый распространённый ноотроп в IT. Но работает он у всех по-разному. Дело в генах.
Ген CYP1A2 определяет, как быстро печень расщепляет кофеин:
Тип | Частота | Эффект
- Быстрый метаболизатор | ~50% | Кофеин выводится за 2–4 часа. Можно пить до вечера без вреда для сна.
- Медленный метаболизатор | ~50% | Полураспад до 8–10 часов. Даже утренняя чашка может ухудшить качество сна.
У медленных метаболизаторов кофеин повышает риск гипертонии и тревожности. У быстрых — снижает риск нейродегенеративных заболеваний.
- Рецепторы аденозина (A1, A2A) адаптируются через 7–14 дней регулярного употребления.
- Чтобы вернуть чувствительность, нужна кофеиновая пауза (5–7 дней полного отказа).
- Постоянное повышение дозы приводит к истощению дофаминовой системы.
Оптимальная стратегия
1. Не пить первые 90 минут после пробуждения — утром кортизол и так высок, кофеин в это время снижает собственную выработку гормонов бодрости.
2. Прекратить приём за 8–10 часов до сна — для медленных метаболизаторов ещё раньше.
3. Циклировать: 5 дней кофеин, 2 дня без (или неделя паузы раз в 2–3 месяца).
4. L-теанин (зелёный чай, или добавка) снижает тревожность и сглаживает пики.
Симптомы передозировки (не игнорировать)
- Тремор рук
- Учащённое сердцебиение в покое
- Тревога без причины
- Бессонница при сильной усталости
Кофеин — мощный инструмент, но требует персонализации. Если вы пьёте пятую чашку и всё равно спите по 6 часов — возможно, вы медленный метаболизатор, и кофеин работает против вас.
#qa
Performance Testing: нагрузка, стресс, заливка и другие
Нагрузочное тестирование — не единый сценарий. Разные виды отвечают на разные вопросы. Не путайте их.
| Тип | Цель | Вопрос | Пример |
- Load - Проверить поведение под ожидаемой нагрузкой | Держится ли SLA при 1000 RPS? | 30 минут пикового трафика
- Stress - Найти точку отказа | При каком RPS система ломается? | Постепенно увеличиваем до ошибок
- Soak - Выявить утечки памяти, деградацию | Стабильна ли система в течение часов/дней? | 8 часов на 80% пика
- Spike - Проверить резкий скачок трафика | Как система реагирует на внезапный всплеск? | 10 секунд 5000 RPS после тишины
Какие метрики смотреть
- Latency (p95, p99) — не только средняя
- Error rate — допустимый порог (обычно <0.1%)
- Throughput — сколько запросов в секунду реально проходит
- Resource usage — CPU, память, IO, сеть
Инструменты
- k6 — современный, код как скрипт, отлично для CI/CD
- JMeter — классика, много плагинов, но громоздкий
- Gatling — асинхронный, хорош для Java-стэка
- Vegeta — утилита для стрельбы HTTP, простой CLI
Распространённая ошибка
Тестировать на dev-окружении и экстраполировать на прод. Окружения отличаются по железу, сетевым задержкам, соседним сервисам. Всегда тестируйте на стенде, максимально близком к продакшену.
Запустить один раз JMeter — это не нагрузочное тестирование. Выбирайте сценарий под свою цель, собирайте метрики и обязательно тестируйте восстановление после падения.
Performance Testing: нагрузка, стресс, заливка и другие
Нагрузочное тестирование — не единый сценарий. Разные виды отвечают на разные вопросы. Не путайте их.
| Тип | Цель | Вопрос | Пример |
- Load - Проверить поведение под ожидаемой нагрузкой | Держится ли SLA при 1000 RPS? | 30 минут пикового трафика
- Stress - Найти точку отказа | При каком RPS система ломается? | Постепенно увеличиваем до ошибок
- Soak - Выявить утечки памяти, деградацию | Стабильна ли система в течение часов/дней? | 8 часов на 80% пика
- Spike - Проверить резкий скачок трафика | Как система реагирует на внезапный всплеск? | 10 секунд 5000 RPS после тишины
Какие метрики смотреть
- Latency (p95, p99) — не только средняя
- Error rate — допустимый порог (обычно <0.1%)
- Throughput — сколько запросов в секунду реально проходит
- Resource usage — CPU, память, IO, сеть
Инструменты
- k6 — современный, код как скрипт, отлично для CI/CD
- JMeter — классика, много плагинов, но громоздкий
- Gatling — асинхронный, хорош для Java-стэка
- Vegeta — утилита для стрельбы HTTP, простой CLI
Распространённая ошибка
Тестировать на dev-окружении и экстраполировать на прод. Окружения отличаются по железу, сетевым задержкам, соседним сервисам. Всегда тестируйте на стенде, максимально близком к продакшену.
Запустить один раз JMeter — это не нагрузочное тестирование. Выбирайте сценарий под свою цель, собирайте метрики и обязательно тестируйте восстановление после падения.
#wisdom
всю жизнь мы берем у себя же более позднего в долг
умение осознать это и найти решение - называется мудростью
всю жизнь мы берем у себя же более позднего в долг
умение осознать это и найти решение - называется мудростью
🤔1
#history
Китай и Монголия
С точки зрения истории и этногенеза китайская цивилизация сформировалась значительно раньше монгольской. Ядро китайского этноса — ханьцы — начало складываться ещё во II тысячелетии до н. э. в долине Хуанхэ (династии Ся и Шан), а уже к III веку до н. э. империя Цинь объединила их в единое государство. Это была оседлая, земледельческая цивилизация с древней письменностью и непрерывной государственной традицией.
Монгольская же общность сложилась позже. Предками монголов были разрозненные кочевые племена — хунну, сяньби, жужани (жужаньцы), шивэй, — на протяжении веков населявшие степи Центральной Азии. Само имя «монгол» и единая нация появились только в начале XIII века, когда Темучин (Чингисхан) объединил племена в 1206 году. Их культура была кочевой, формировалась к северу от Великой стены в постоянной борьбе за выживание.
Две общности развивались в непрерывном контакте — через войны, торговлю и взаимное влияние. В XIII веке монголы завоевали Китай, основав династию Юань (1271–1368). Однако, несмотря на политическое господство, они переняли китайские методы управления и со временем частично китаизировались, тогда как китайская культура, имевшая более глубокие корни, не была ассимилирована.
Таким образом, китайская нация как цивилизация сложилась более чем за три тысячелетия до появления единого монгольского государства. Китайцы не были предшественниками монголов, а монгольское завоевание не изменило цивилизационного ядра Китая, которое продолжает свою непрерывную историю с глубокой древности.
Китай и Монголия
С точки зрения истории и этногенеза китайская цивилизация сформировалась значительно раньше монгольской. Ядро китайского этноса — ханьцы — начало складываться ещё во II тысячелетии до н. э. в долине Хуанхэ (династии Ся и Шан), а уже к III веку до н. э. империя Цинь объединила их в единое государство. Это была оседлая, земледельческая цивилизация с древней письменностью и непрерывной государственной традицией.
Монгольская же общность сложилась позже. Предками монголов были разрозненные кочевые племена — хунну, сяньби, жужани (жужаньцы), шивэй, — на протяжении веков населявшие степи Центральной Азии. Само имя «монгол» и единая нация появились только в начале XIII века, когда Темучин (Чингисхан) объединил племена в 1206 году. Их культура была кочевой, формировалась к северу от Великой стены в постоянной борьбе за выживание.
Две общности развивались в непрерывном контакте — через войны, торговлю и взаимное влияние. В XIII веке монголы завоевали Китай, основав династию Юань (1271–1368). Однако, несмотря на политическое господство, они переняли китайские методы управления и со временем частично китаизировались, тогда как китайская культура, имевшая более глубокие корни, не была ассимилирована.
Таким образом, китайская нация как цивилизация сложилась более чем за три тысячелетия до появления единого монгольского государства. Китайцы не были предшественниками монголов, а монгольское завоевание не изменило цивилизационного ядра Китая, которое продолжает свою непрерывную историю с глубокой древности.
#devsecops #it_design_architect
Secret Management
Storing secrets (passwords, tokens, keys) in code or environment variables is a leading cause of leaks. For a systematic approach, use secret managers.
AVOID
-
-
- Hardcoding in source code
- Using the same keys across all environments
Based tools
Principles
- Rotation: Change keys regularly and immediately upon compromise.
- Least Privilege: Grant access only to the services that absolutely need it.
- Auditing: Track who requested a secret, when, and why.
- Never log secrets: Ensure secrets are masked in application logs.
Quick Start with Vault (Docker)
Secret Management
Storing secrets (passwords, tokens, keys) in code or environment variables is a leading cause of leaks. For a systematic approach, use secret managers.
AVOID
-
config.yml with passwords in Git-
.env in production (local use is fine)- Hardcoding in source code
- Using the same keys across all environments
Based tools
| Tool | Feature | When to use |
|-----------------------|------------------------------------------------|---------------------|
| HashiCorp Vault | Dynamic secrets, auto-processing, auditing |Any scale,multi-cloud|
| Sealed Secrets | Encrypts secrets in Git, decrypts in cluster | K8s, needs GitOps- |
| | |compatibility |
| External Secrets | Syncs secrets from Vault/AWS Secrets to K8s | K8s, avoids manifest|
|Operator | |changes |
| AWS Secrets Manager \ | Cloud-native, IAM integrated | Single-cloud |
|GCP Secret Manager | |environments |
| SOPS (Mozilla) | Encrypts secret files for Git storage | Non-K8s, needs |
| | |simplicity |
Principles
- Rotation: Change keys regularly and immediately upon compromise.
- Least Privilege: Grant access only to the services that absolutely need it.
- Auditing: Track who requested a secret, when, and why.
- Never log secrets: Ensure secrets are masked in application logs.
Quick Start with Vault (Docker)
docker run -d --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=root' vault
export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put secret/myapp password=s3cr3t
vault kv get secret/myapp
#devsecops #it_design_architect
Secret Management: эволюция инструментов
(продолжаем)
Классификация по назначению
| Категория | Назначение | Примеры |
- Password Manager - Хранение личных паролей, доступ для человека [Bitwarden, Vaultwarden]
- Infrastructure Secret Manager - Централизованное хранение секретов для сервисов (API-ключи, креды БД, TLS-сертификаты) [HashiCorp Vault, Infisical, Keywhiz, Knox, Confidant, CredStash]
- Config Encryption - Шифрование конфигурационных файлов в репозиториях [Ansible Vault, Chef Vault, hiera-eyaml, SOPS, Sealed Secrets]
Сравнение решений
- Личное / команда <10 человек - Bitwarden (SaaS) или Vaultwarden (self-hosted)
- Инфраструктурные секреты (API-ключи, пароли) - Vault (если есть ресурс на поддержку) или Infisical (легче)
- GitOps + Kubernetes - Sealed Secrets или External Secrets Operator + Vault
- IaC (Ansible, Terraform) - Ansible Vault / SOPS для файлов, Vault для динамических секретов
Secret Management: эволюция инструментов
(продолжаем)
Классификация по назначению
| Категория | Назначение | Примеры |
- Password Manager - Хранение личных паролей, доступ для человека [Bitwarden, Vaultwarden]
- Infrastructure Secret Manager - Централизованное хранение секретов для сервисов (API-ключи, креды БД, TLS-сертификаты) [HashiCorp Vault, Infisical, Keywhiz, Knox, Confidant, CredStash]
- Config Encryption - Шифрование конфигурационных файлов в репозиториях [Ansible Vault, Chef Vault, hiera-eyaml, SOPS, Sealed Secrets]
Сравнение решений
| Инструмент | Лицензия | Особенность | Когда использовать |
|------------|-----------------|---------------------------|-------------------------------|
| Bitwarden | AGPL | Облачный / самохостинг, | Личное или командное хранение |
| | |готовый UI | паролей |
| Vaultwarden| AGPL (Rust) | Легковесный self-hosted- | Если нужен свой менеджер |
| | |совместимый с Bitwarden |паролей на слабом железе |
| HashiCorp | BSL (ранее OSS) | Динамические секреты,PKI, | Стандарт для инфраструктурных |
|Vault | |аудит,интеграция с облаками| секретов в enterprise |
| Infisical | MIT | Альтернатива Vault с совре| Если нужен удобный UI и «Vault|
| | |менным UX,SaaS/self-hosted |lite» |
| Keywhiz / | Apache 2.0 / | Устаревшие, мало | Legacy-проекты, где уже |
|Knox / |MIT |развиваются |внедрены |
|Confidant | | | |
| CredStash | MIT | Простой менеджер для AWS | Небольшие AWS-only проекты |
| | |(DynamoDB + KMS) | |
| Ansible | GPL / Apache | Шифрование конфигов в | Когда секреты нужны только |
|Vault / Chef| |рантайме IaC |внутри плейбуков |
|Vault | | | |
| Sealed | Apache 2.0 | Git-native шифрование для | GitOps-пайплайны, где хранить |
|Secrets / | |K8s / файлов |секреты прямо в репозитории |
|SOPS | | | |
- Личное / команда <10 человек - Bitwarden (SaaS) или Vaultwarden (self-hosted)
- Инфраструктурные секреты (API-ключи, пароли) - Vault (если есть ресурс на поддержку) или Infisical (легче)
- GitOps + Kubernetes - Sealed Secrets или External Secrets Operator + Vault
- IaC (Ansible, Terraform) - Ansible Vault / SOPS для файлов, Vault для динамических секретов
#life
дитячий кинотеатр!
https://vkvideo.ru/playlist/-217672812_406/season_0
взрослым не рекомендуется, иначе будет взрыв мимимишечности!
дитячий кинотеатр!
https://vkvideo.ru/playlist/-217672812_406/season_0
взрослым не рекомендуется, иначе будет взрыв мимимишечности!
#devsecops #it_design_architect
Secret Management: Secret Referencing (External Secrets Operator / Vault)
(ending)
Instead of storing encrypted data, you store a reference to a secret located in a professional vault like HashiCorp Vault or AWS Secrets Manager.
Workflow:
1. Store: You put the actual secret in a central Vault or Cloud Secret Manager.
2. Reference: In Git, you commit an ExternalSecret manifest that points to the path in Vault.
3. Sync: Argo CD/Flux applies this reference to the cluster.
4. Fetch: The External Secrets Operator (ESO) detects the manifest, authenticates with Vault, fetches the value, and creates a local K8s Secret.
- Pros: Centralized management; rotation happens in the Vault without touching Git; high security (dynamic secrets).
- Cons: Requires a running Vault/Cloud provider; more complex initial setup.
Comparison
Secret Management: Secret Referencing (External Secrets Operator / Vault)
(ending)
Instead of storing encrypted data, you store a reference to a secret located in a professional vault like HashiCorp Vault or AWS Secrets Manager.
Workflow:
1. Store: You put the actual secret in a central Vault or Cloud Secret Manager.
2. Reference: In Git, you commit an ExternalSecret manifest that points to the path in Vault.
3. Sync: Argo CD/Flux applies this reference to the cluster.
4. Fetch: The External Secrets Operator (ESO) detects the manifest, authenticates with Vault, fetches the value, and creates a local K8s Secret.
- Pros: Centralized management; rotation happens in the Vault without touching Git; high security (dynamic secrets).
- Cons: Requires a running Vault/Cloud provider; more complex initial setup.
Comparison
| Feature | Encrypted in Git (Sealed Secrets) | Secret Referencing (ESO/Vault) |
|------------------------|------------------------------------|---------------------------------|
| Single Source of Truth | Yes (Git contains everything) | Partial (Git contains pointers) |
| Secret Rotation | Manual (needs Git commit) | Automatic (faster in prod) |
| Multi-cluster | Requires re-encryption per cluster | Cluster-agnostic |
| Audit Trails | Basic (Git history) | Advanced (Vault access logs) |
#wisdom
свобода - это не отсутствие ограничений от окружающих.
свобода - это твоя сила бесстрашно действовать согласно намеченному плану!
свобода - это не отсутствие ограничений от окружающих.
свобода - это твоя сила бесстрашно действовать согласно намеченному плану!