Как я перестал волноваться и полюбил ротацию секретов. Часть 2
БД коннекты: режим nightmare
Какие проблемы могут возникнуть при пересоздании коннектов на лету:
➡️ Незакрытые транзакции (а значит отмененные, но возможно не сразу);
➡️ Риски обрыва соединений и резкого всплеска нагрузки на базу при массовом переподключении;
➡️ Риски потери коннектов и зависания их на стороне БД вплоть до connection timeout вашей любимой БД.
БД коннекты: режим nightmare
Какие проблемы могут возникнуть при пересоздании коннектов на лету:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Базовый код для выполнения реконнектов (не использовать в проде без понимания всех последствий!), который лишь показывает идею, реальных нюансов сильно больше:
package main
import (
"context"
"database/sql"
"fmt"
"sync"
"time"
"io/ioutil"
_ "github.com/jackc/pgx/v5/stdlib"
)
type DBManager struct {
db *sql.DB
lock sync.Mutex
password string
}
func NewDBManager() *DBManager {
password := getPasswordFromSecretStore()
db, err := connectDB(password)
if err != nil {
panic(fmt.Sprintf("Failed to connect to DB: %v", err))
}
manager := &DBManager{
db: db,
password: password,
}
go manager.watchPasswordChanges()
return manager
}
func connectDB(password string) (*sql.DB, error) {
dsn := fmt.Sprintf("postgres://myuser:%s@localhost:5432/postgres?sslmode=disable", password)
return sql.Open("pgx", dsn)
}
func (m *DBManager) watchPasswordChanges() {
for {
time.Sleep(1 * time.Second)
newPassword := getPasswordFromSecretStore()
if newPassword != m.password {
fmt.Println("Password changed, reconnecting...")
m.reconnect(newPassword)
}
}
}
func (m *DBManager) reconnect(newPassword string) {
m.lock.Lock()
defer m.lock.Unlock()
db, err := connectDB(newPassword)
if err != nil {
fmt.Println("Failed to reconnect to DB:", err)
return
}
oldDB := m.db
m.db = db
m.password = newPassword
if oldDB != nil {
oldDB.Close()
}
}
func getPasswordFromSecretStore() string {
content, err := ioutil.ReadFile("mysecret") // /var/run/secrets/credentials - пример пути в поде
if err != nil {
panic(err) // Не делайте так в проде)
}
text := string(content)
return text
}
func main() {
manager := NewDBManager()
ctx := context.Background()
for {
var now time.Time
if err := manager.db.QueryRowContext(ctx, "SELECT NOW()").Scan(&now); err != nil {
fmt.Println("Query failed:", err)
} else {
fmt.Println("DB time:", now)
}
time.Sleep(time.Second)
}
}
Когда автоматизация ротации секретов это реальная необходимость
➡️ Критерии для полной автоматизации:
🟠 Регуляторные требования
- Финансы
- Медицина
- Госсектор
🟠 Уровень риска
- Критичность инфраструктуры
- Стоимость компрометации
Ротация секретов — это не только про безопасность, но и про надежность. Чем меньше ручного труда, тем меньше вероятность фатальных ошибок.
Отсылаю вас к недавней истории, где именно из-за ошибки со сменой секретов сделали больно. Однако явных подтверждений этому нет, это все домыслы :)
Поделитесь своими историями внедрения «правильного» управления секретами в инфраструктуре⬇️
- Финансы
- Медицина
- Госсектор
- Критичность инфраструктуры
- Стоимость компрометации
Ротация секретов — это не только про безопасность, но и про надежность. Чем меньше ручного труда, тем меньше вероятность фатальных ошибок.
Отсылаю вас к недавней истории, где именно из-за ошибки со сменой секретов сделали больно. Однако явных подтверждений этому нет, это все домыслы :)
Поделитесь своими историями внедрения «правильного» управления секретами в инфраструктуре
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня попробуем вернуться в 2007 (но это неточно).
Если фразы Crawling in My Skin и Your Tears Don't Fall где-то в глубине пробуждают память о беспечном (или не очень беспечном) детстве, то этот пост точно для вас.
Что вы слушаете во время работы?
➡️ Если вы engineering manager, вероятно, у вас не так много времени остается между встречами на сфокусированную работу.
➡️ Если вы инженер, иногда удается выкроить 2–3 часа полного фокуса, когда не хочется отвлекаться: войти в состояние потока, поразбираться с причинами инцидентов, потюнить алерты, оптимизировать код инфры, дописать уже наконец скрипт автоматизации, который давно собирались доделать, или поразгребать технический долг.
Расскажу, что помогает мне сосредоточиться на работе⬇️
Если фразы Crawling in My Skin и Your Tears Don't Fall где-то в глубине пробуждают память о беспечном (или не очень беспечном) детстве, то этот пост точно для вас.
Что вы слушаете во время работы?
Расскажу, что помогает мне сосредоточиться на работе
Please open Telegram to view this post
VIEW IN TELEGRAM
Никаких lofi girl, хотя lofi gopher тоже иногда хорошо заходит.
Пойдем по нарастающей — от того, что у всех на слуху (а у меня и сейчас, в 2025-м), и относительно легкого для восприятия, к тому, что кому-то покажется крайне суровым.
Мотивацией к написанию этого поста стало посещение совместного концерта Trivium и Bullet for My Valentine. Назвали они это Poisoned Ascendancy Tour. Почему? The Poison — наитоповейший альбом BFMV, а Ascendancy — не менее шикарный альбом Trivium.
Пойдем по нарастающей — от того, что у всех на слуху (а у меня и сейчас, в 2025-м), и относительно легкого для восприятия, к тому, что кому-то покажется крайне суровым.
Мотивацией к написанию этого поста стало посещение совместного концерта Trivium и Bullet for My Valentine. Назвали они это Poisoned Ascendancy Tour. Почему? The Poison — наитоповейший альбом BFMV, а Ascendancy — не менее шикарный альбом Trivium.
⚡4🔥3❤1👍1
Из той эпохи могу еще назвать то, что до сих пор играет в наушниках во время работы или на пробежке.
Все группы вам наверняка известны и в представлении не нуждаются. Описываю их, что называется, in no particular order:
🟠 Linkin Park. Честер Беннингтон — rest in peace. А что думаете про их новый альбом и новую вокалистку?
🟠 System of a Down. Сержа Танкяна, конечно, еще никто, на мой субъективный взгляд, не смог перепеть или повторить успех группы. Армяне везде. Барев дзес всем причастным!
🟠 Avenged Sevenfold. Отборнейший металкор. Википедия причисляет их к множеству жанров, но синдром утенка никто не отменял, так что для меня они остаются именно металкором.
Думаю, вы уловили суть. Многие через это проходили.
Все группы вам наверняка известны и в представлении не нуждаются. Описываю их, что называется, in no particular order:
Думаю, вы уловили суть. Многие через это проходили.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Как прекрасно включить себе в очередной раз что-то из старичков и разбираться с очередным дашбордом в Grafana, писать правила алертинга или разбирать причины деградации в одном из тысяч микросервисов. А может, ковырять манифесты в Kubernetes, разбираясь, почему новый Helm-чарт сломал продакшен.
В следующем посте поговорим про темы, которые тоже давно не отпускают. Знаете шутки в стиле «я слушаю всё подряд»? Возможно кто-то поменяет свое мнение или скажет, что автор не в себе, раз ему такое нравится.
В следующем посте поговорим про темы, которые тоже давно не отпускают. Знаете шутки в стиле «я слушаю всё подряд»? Возможно кто-то поменяет свое мнение или скажет, что автор не в себе, раз ему такое нравится.
А каких жанров тяжёлой музыки НЕ существует? 🎸🔥
Выберите один вариант (или придумайте свой в комментариях):
Выберите один вариант (или придумайте свой в комментариях):
Anonymous Poll
29%
Goblin-core — рычит, ворчит, крадёт медь.
13%
Symphonic Grindwave — бах и 300 BPM, но со скрипкой.
21%
Blackened Jazzcore — саксофон во тьме времен.
18%
Nuclear Folk Metal — радиоактивная балалайка
18%
Dungeon Slam — брейкдауны и подземелье
👍5🔥1
Итак, по результатам опроса видим, что Goblin-core лидирует среди несуществующих поджанров.
По сути, это вполне реальное направление. Можно поспорить, корректно ли настолько гранулированно дробить жанры, если вся тяжелая музыка легко классифицируется в несколько основных направлений, но да ладно. Это как обсуждать, нужен ли отдельный деплоймент для каждого микросервиса, если можно было бы развернуть всё в одном pod'е.
Мы остановились на том, что помогает сосредоточиться на копании в конфигах. Поэтому помимо относительно легких для восприятия групп, даже для неподготовленных ушек, сегодня обсудим более экстремальные направления, которые звучат так, словно твой кластер вот-вот развалится.
По сути, это вполне реальное направление. Можно поспорить, корректно ли настолько гранулированно дробить жанры, если вся тяжелая музыка легко классифицируется в несколько основных направлений, но да ладно. Это как обсуждать, нужен ли отдельный деплоймент для каждого микросервиса, если можно было бы развернуть всё в одном pod'е.
Мы остановились на том, что помогает сосредоточиться на копании в конфигах. Поэтому помимо относительно легких для восприятия групп, даже для неподготовленных ушек, сегодня обсудим более экстремальные направления, которые звучат так, словно твой кластер вот-вот развалится.
😁2
⚠️ Внимание: контент строго 18+. Некоторые клипы категорически запрещены к просмотру, если вы впечатлительны или подвержены приступам эпилепсии из-за часто меняющихся картинок и мигающего света. Я серьезно. Это примерно как запустить kubectl delete namespace — последствия могут быть необратимыми. You have been warned.
Я не буду углубляться во всё подмножество направлений, а сосредоточусь только на тех, что, на мой субъективный вкус, наиболее интересны.
Я не буду углубляться во всё подмножество направлений, а сосредоточусь только на тех, что, на мой субъективный вкус, наиболее интересны.
- Dimmu Borgir, Progenies of The Great Apocalypse
- Anorexia Nervosa, Sister September
- Cradle of Filth, From the Cradle to Enslave (да, еще можно Nymphetamine Fix сюда поставить)
- Dying Fetus, Your Treachery Will Die With You
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Здесь хочется остановиться подробнее и разбить детальнее, потому что именно deathcore много лет не отпускает. И хотя может показаться, что здесь ничего нового не придумали со времен великолепных Suicide Silence (конечно же You Only Live Once) и харизматичного Митча Лакера (RIP), тем не менее некоторые группы смогли вдохнуть новую жизнь в некогда стагнировавший жанр.
- Mental Cruelty, Forgotten Kings
- Lorna Shore, To the Hellfire — это просто конфетка, словно с первого раза сложный сервис выкатили в прод и он сразу работает как надо. Бывало у вас такое?
- Fleshgod Apocalypse, The Violation
- As God As My Witness, Damnation's My Benefit — очень качающие белорусы
- SIGNS OF THE SWARM, CESSPOOL OF IGNORANCE
- Slaughter to Prevail, Kid of Darkness — Саня жжет! Простой российский паренек рвет deathcore-сцену. Вы наверняка их видели, если хоть иногда заходите послушать что-то пожестче. Словно pod, которая стабильно переживает все рестарты.
- Carnifex, Lie to my face
- EXTERMINATION DISMEMBERMENT, CORPSEPIT. Есть гораздо более жесткие клипы, впечатлительным не смотреть. Снова белорусы радуют.
- Mortician, Rabid
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1
В дальнейших постах продолжим обсуждать vault и посмотрим на жизнь в Нидерландах под разными углами. Stay tuned.
🐈 Если вас интересует конкретная тема, или вы хотите задать вопрос — напишите мне в боте или в комментариях под этим постом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Kubernetes и кот Лихачева бот
Бот канала Kubernetes и кот Лихачева
🔥3
Заметил, какой большой отклик у вас вызвали посты про онбординг в новую компанию и технические собеседования. Для тех, кто пропустил:
Решил следующий прямой эфир посвятить карьерным вопросам и позвать на него настоящего эксперта — Елену Муся, основателя и CEO HuntProfi, кадрового и консалтингового агентства, которое занимается подбором IT-специалистов.
Вместе с Еленой мы:
А ещё поделимся фейлами, кринж-историями и выясним, почему «мы вам перезвоним» — это худший паттерн найма.
Будет весело, полезно и без «а как бы вы спроектировали свой Netflix?». Подключайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Прямой эфир через 3 часа
Сегодня встречаюсь с Еленой Муся, чтобы поговорить про технические собеседования.
➡️ Запись будет, но только в виде отдельных фрагментов. Чтобы обсудить всё без цензуры, подключайтесь онлайн.
Пока есть время, можете прислать свои вопросы через бота. Или задавайте их прямо на эфире голосом — включать микрофоны можно и нужно.
Маркус уже тоже ждёт эфира. Подключайтесь в 18:00!🐈
Сегодня встречаюсь с Еленой Муся, чтобы поговорить про технические собеседования.
Пока есть время, можете прислать свои вопросы через бота. Или задавайте их прямо на эфире голосом — включать микрофоны можно и нужно.
Маркус уже тоже ждёт эфира. Подключайтесь в 18:00!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Подключайтесь к трансляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🎉1