DevOps на фрилансе: как заработать без корпоративных войн 💻
Миф о том, что DevOps живут только в больших компаниях, давно пора развенчать. Сейчас даже маленькие стартапы ищут специалистов на аутсорс — им нужна автоматизация, но держать штатного девопса накладно.
На фрилансе DevOps-инженер становится универсальным солдатом. Тут нет роскоши специализироваться только на AWS или только на CI/CD. Придётся вникать во все этапы: от настройки инфраструктуры до мониторинга и поддержки. Зато растёшь как специалист в три раза быстрее.
Деньги на фрилансе часто лучше, чем в штате. Особенно если брать долгосрочные проекты у зарубежных клиентов. Но есть нюанс — оплата нестабильная. Сегодня три проекта и золотые горы, завтра затишье на месяц.
К слову о проектах. На старте берите любые заказы, даже скучные и малооплачиваемые. Главное — набить портфолио и получить первые отзывы. Дальше сработает сарафанное радио: клиенты начнут приходить по рекомендациям.
Самое сложное на фрилансе — не технические задачи, а общение с клиентами. Придётся учиться говорить "нет" невыполнимым требованиям, грамотно оценивать сроки и доходчиво объяснять, почему автоматизация стоит таких денег.
А ещё помните про документацию. На фрилансе она спасает жизнь: проще продлить контракт с клиентом, когда он видит порядок в проекте. Да и другим девопсам после вас будет проще — карма в мире IT штука важная.
🏴☠️ @happy_devops
Миф о том, что DevOps живут только в больших компаниях, давно пора развенчать. Сейчас даже маленькие стартапы ищут специалистов на аутсорс — им нужна автоматизация, но держать штатного девопса накладно.
На фрилансе DevOps-инженер становится универсальным солдатом. Тут нет роскоши специализироваться только на AWS или только на CI/CD. Придётся вникать во все этапы: от настройки инфраструктуры до мониторинга и поддержки. Зато растёшь как специалист в три раза быстрее.
Деньги на фрилансе часто лучше, чем в штате. Особенно если брать долгосрочные проекты у зарубежных клиентов. Но есть нюанс — оплата нестабильная. Сегодня три проекта и золотые горы, завтра затишье на месяц.
К слову о проектах. На старте берите любые заказы, даже скучные и малооплачиваемые. Главное — набить портфолио и получить первые отзывы. Дальше сработает сарафанное радио: клиенты начнут приходить по рекомендациям.
Самое сложное на фрилансе — не технические задачи, а общение с клиентами. Придётся учиться говорить "нет" невыполнимым требованиям, грамотно оценивать сроки и доходчиво объяснять, почему автоматизация стоит таких денег.
А ещё помните про документацию. На фрилансе она спасает жизнь: проще продлить контракт с клиентом, когда он видит порядок в проекте. Да и другим девопсам после вас будет проще — карма в мире IT штука важная.
🏴☠️ @happy_devops
❤6
Токсичная команда: инструкция по выживанию в IT-аду 🔥
Бесячие коллеги и неадекватное начальство встречаются не только в Джире. В реальной жизни токсичная команда убивает мотивацию, выжигает любовь к профессии и превращает крутых специалистов в прожжённых циников.
Красные флаги видны с первых дней. Тут и публичные разносы на митингах, и запрет на удалёнку без причины, и бесконечное переключение между задачами. А ещё культ переработок, когда тебя считают предателем за уход домой в шесть вечера.
Микроменеджмент — отдельная песня. Когда каждый коммит проверяют под лупой, а таймтрекер дышит в затылок. В такой атмосфере разработчики теряют инициативу и превращаются в бездумных кодеров от звонка до звонка.
Политика в команде выедает мозг похлеще любого легаси-кода. Интриги, подковёрные игры, стукачество тимлиду. Каждый норовит подсидеть коллегу или свалить на него свои факапы. А грешки записывают и припоминают при первой возможности.
Выживать в таком дурдоме долго нельзя — профессиональное выгорание придёт быстрее, чем новый релиз. Пробуйте поговорить с руководством или HR. Не помогает — ищите новую работу. Рынок большой, а нервы не восстановить никакими деньгами.
Помните главное — адекватные команды существуют. Где ценят специалистов, уважают личные границы и следят за work-life balance. Не тратьте жизнь на токсичное болото, которое маскируется под "особенности корпоративной культуры".
🏴☠️ @happy_devops
Бесячие коллеги и неадекватное начальство встречаются не только в Джире. В реальной жизни токсичная команда убивает мотивацию, выжигает любовь к профессии и превращает крутых специалистов в прожжённых циников.
Красные флаги видны с первых дней. Тут и публичные разносы на митингах, и запрет на удалёнку без причины, и бесконечное переключение между задачами. А ещё культ переработок, когда тебя считают предателем за уход домой в шесть вечера.
Микроменеджмент — отдельная песня. Когда каждый коммит проверяют под лупой, а таймтрекер дышит в затылок. В такой атмосфере разработчики теряют инициативу и превращаются в бездумных кодеров от звонка до звонка.
Политика в команде выедает мозг похлеще любого легаси-кода. Интриги, подковёрные игры, стукачество тимлиду. Каждый норовит подсидеть коллегу или свалить на него свои факапы. А грешки записывают и припоминают при первой возможности.
Выживать в таком дурдоме долго нельзя — профессиональное выгорание придёт быстрее, чем новый релиз. Пробуйте поговорить с руководством или HR. Не помогает — ищите новую работу. Рынок большой, а нервы не восстановить никакими деньгами.
Помните главное — адекватные команды существуют. Где ценят специалистов, уважают личные границы и следят за work-life balance. Не тратьте жизнь на токсичное болото, которое маскируется под "особенности корпоративной культуры".
🏴☠️ @happy_devops
👍11❤1
Вы ждали — мы сделали!
Приглашаем вас на IT-link Осень 2024 — уникальную площадку, где встретятся лучшие эксперты и профессионалы IT-индустрии.
Более 1000 участников и более 40 спикеров из таких крупнейших IT-компаний, как Сбер, VK, Яндекс, Авито, Т-Банк, ВТБ и МТС, соберутся вместе, чтобы обсудить самые актуальные темы, обменяться опытом и новыми идеями.
Участников конференции ждут 4 площадки:
1) Analytics;
2) Product&Design;
3) Development;
4) Интерактивная площадка: «Как завалить проект, не написав ни строчки кода»;
Встретимся с вами:
Станьте частью глобального IT-сообщества вместе с IT-link Осень 2024
И помните участие бесплатное, количество мест строго ограничено!
Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
Work-life balance в IT: жизнь за пределами терминала 🌴
IT выжимает соки как никакая другая индустрия. Утренний стендап, деплой в прод, срочный хотфикс, вечерний созвон с заказчиком. А между ними — тонна тикетов, код-ревью и уведомления из чатов. К вечеру мозг превращается в кисель.
Сверхурочные стали нормой. Многие айтишники гордятся тем, что пашут по 12 часов. Носят трудоголизм как медаль за отвагу. Но правда в том, что уставший разраб делает больше ошибок и тратит на задачи в два раза больше времени.
Работать на износ — путь в никуда. Профессиональное выгорание накроет быстрее, чем успеешь сказать "git push". А восстановление займёт месяцы. Целая индустрия психологов кормится с выгоревших айтишников — и это не шутка.
Баланс найти реально. Начните с малого: выделите время на обед без ноутбука, выходите на прогулку среди дня, не беритесь за сложные задачи после шести вечера. Отключите уведомления из рабочих чатов на телефоне. Научитесь говорить "нет" лишним созвонам.
И запомните — никакой аврал не стоит здоровья. Продакшен упадёт и без вас, мир не рухнет. Отдохнувший девопс принесёт команде больше пользы, чем загнанный трудоголик со стажем работы 24/7.
🏴☠️ @happy_devops
IT выжимает соки как никакая другая индустрия. Утренний стендап, деплой в прод, срочный хотфикс, вечерний созвон с заказчиком. А между ними — тонна тикетов, код-ревью и уведомления из чатов. К вечеру мозг превращается в кисель.
Сверхурочные стали нормой. Многие айтишники гордятся тем, что пашут по 12 часов. Носят трудоголизм как медаль за отвагу. Но правда в том, что уставший разраб делает больше ошибок и тратит на задачи в два раза больше времени.
Работать на износ — путь в никуда. Профессиональное выгорание накроет быстрее, чем успеешь сказать "git push". А восстановление займёт месяцы. Целая индустрия психологов кормится с выгоревших айтишников — и это не шутка.
Баланс найти реально. Начните с малого: выделите время на обед без ноутбука, выходите на прогулку среди дня, не беритесь за сложные задачи после шести вечера. Отключите уведомления из рабочих чатов на телефоне. Научитесь говорить "нет" лишним созвонам.
И запомните — никакой аврал не стоит здоровья. Продакшен упадёт и без вас, мир не рухнет. Отдохнувший девопс принесёт команде больше пользы, чем загнанный трудоголик со стажем работы 24/7.
🏴☠️ @happy_devops
💯7❤1
HuggingFace для занятых: нейронки без лишней мороки 🤖
HuggingFace — это как GitHub для ML моделей. Но вместо кода тут нейронки, а вместо веток — разные версии весов. И поиск тут работает в разы удобнее: сразу видно метрики, примеры использования и сценарии применения.
Pipeline — главный инструмент для быстрого старта. Он инкапсулирует три этапа работы с моделью: подготовку данных, инференс и пост-обработку. На практике выглядит так:
Каждая модель на HuggingFace — как пакет на PyPI, только круче. Открываете карточку модели и видите:
🟣 Точность на тестовых данных
🟡 Размер модели и требования к железу
🔵 Готовые примеры кода
🟢 Список языков и форматов данных
🔘 Рейтинг от комьюнити
Для продакшена стоит использовать кэширование и батчинг:
Искать модели просто: заходите в Models, выбираете задачу (Text Classification, Translation, Speech Recognition) и сортируете по рейтингу. Топовые модели всегда наверху, с ними точно не промахнетесь.
Для тяжелых моделей есть ускорители:
А для тонкой настройки под свои задачи HuggingFace предлагает Trainer API — но это уже тема для отдельного поста.
🏴☠️ @happy_devops
HuggingFace — это как GitHub для ML моделей. Но вместо кода тут нейронки, а вместо веток — разные версии весов. И поиск тут работает в разы удобнее: сразу видно метрики, примеры использования и сценарии применения.
Pipeline — главный инструмент для быстрого старта. Он инкапсулирует три этапа работы с моделью: подготовку данных, инференс и пост-обработку. На практике выглядит так:
from transformers import pipeline
# Базовый пайплайн для классификации
classifier = pipeline('sentiment-analysis')
# Продвинутый пайплайн с указанием модели и устройства
classifier = pipeline(
task='sentiment-analysis',
model='blanchefort/rubert-base-cased-sentiment',
device=0 # 0 для GPU, -1 для CPU
)
Каждая модель на HuggingFace — как пакет на PyPI, только круче. Открываете карточку модели и видите:
Для продакшена стоит использовать кэширование и батчинг:
# Кэшируем модель локально
from transformers import set_caching_enabled
set_caching_enabled(True)
# Батчинг для оптимизации
texts = ["Первый текст", "Второй текст", "Третий текст"]
results = classifier(texts, batch_size=32, truncation=True)
Искать модели просто: заходите в Models, выбираете задачу (Text Classification, Translation, Speech Recognition) и сортируете по рейтингу. Топовые модели всегда наверху, с ними точно не промахнетесь.
Для тяжелых моделей есть ускорители:
# Квантизация для уменьшения веса модели
classifier = pipeline('sentiment-analysis',
model='blanchefort/rubert-base-cased-sentiment',
torch_dtype='auto', # автоматически выберет оптимальный формат
device_map='auto' # распределит по доступным устройствам
)
А для тонкой настройки под свои задачи HuggingFace предлагает Trainer API — но это уже тема для отдельного поста.
🏴☠️ @happy_devops
Please open Telegram to view this post
VIEW IN TELEGRAM
huggingface.co
Hugging Face – The AI community building the future.
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
❤7
Как пережить собеседование и не потерять веру в себя
Каждый технический специалист проходил через эти два часа ада — когда прожженный сеньор с той стороны экрана методично препарирует твои знания. И даже опытные девопсы признаются: перед собеседованием трясутся коленки, а мозг предательски забывает базовые команды.
За красивыми словами о культурном фите и командных ценностях прячется жесткая реальность: нас оценивают, сравнивают и часто отвергают. А после очередного rejection letter самооценка падает ниже уровня продакшена в пятницу вечером.
Но собеседование — не экзамен на профпригодность. Это диалог двух профессионалов. Интервьюер ищет не энциклопедию на ножках, а человека, который умеет думать и решать проблемы. Не знаешь точный флаг kubectl? Расскажи, как будешь искать решение. Забыл синтаксис ansible? Объясни логику работы.
Записывайте каждое собеседование. Не ответы — ощущения. Где начали нервничать? Какие вопросы поставили в тупик? Что можно было сказать иначе? Превратите каждый фейл в точку роста.
И помните: любой сеньор когда-то путал local с global scope, а идемпотентность вызывала у него нервный тик. Опыт приходит со временем, а умение учиться на ошибках — бесценный скил для девопса.
Ну и лайфхак напоследок: после сложных вопросов выдыхайте. Буквально. Глубокий вдох поможет мозгу переключиться и найти решение. А rejection letter сохраните — через год перечитаете и посмеетесь.
🏴☠️ @happy_devops
Каждый технический специалист проходил через эти два часа ада — когда прожженный сеньор с той стороны экрана методично препарирует твои знания. И даже опытные девопсы признаются: перед собеседованием трясутся коленки, а мозг предательски забывает базовые команды.
За красивыми словами о культурном фите и командных ценностях прячется жесткая реальность: нас оценивают, сравнивают и часто отвергают. А после очередного rejection letter самооценка падает ниже уровня продакшена в пятницу вечером.
Но собеседование — не экзамен на профпригодность. Это диалог двух профессионалов. Интервьюер ищет не энциклопедию на ножках, а человека, который умеет думать и решать проблемы. Не знаешь точный флаг kubectl? Расскажи, как будешь искать решение. Забыл синтаксис ansible? Объясни логику работы.
Записывайте каждое собеседование. Не ответы — ощущения. Где начали нервничать? Какие вопросы поставили в тупик? Что можно было сказать иначе? Превратите каждый фейл в точку роста.
И помните: любой сеньор когда-то путал local с global scope, а идемпотентность вызывала у него нервный тик. Опыт приходит со временем, а умение учиться на ошибках — бесценный скил для девопса.
Ну и лайфхак напоследок: после сложных вопросов выдыхайте. Буквально. Глубокий вдох поможет мозгу переключиться и найти решение. А rejection letter сохраните — через год перечитаете и посмеетесь.
🏴☠️ @happy_devops
🔥5
Кстати. У нас есть островок здравого смысла в этом безумном море — чат "HappyDevops Club" для тех, кто устал от всякой мишуры и хочет нормального общения.
У нас в чате уже больше трехсот инженеров, которые не боятся делиться опытом и признавать ошибки. Никаких "я гуру, а вы все нубы" — только честные разговоры о том, как оно в реальной жизни. От монолитов до микросервисов, от legacy до облаков, от стартапов до энтерпрайза.
А еще у нас можно просто потрещать за жизнь. Потому что DevOps — не только про CI/CD и Kubernetes. Иногда нужно обсудить, куда податься после очередного сокращения, как не психануть от токсичного менеджера или где найти толковых джунов в команду.
У нас нет священных коров и запретных тем. Хочешь обсудить, почему новый фреймворк — это переоцененный хайп? Вперед! Считаешь, что все делают мониторинг неправильно? Докажи! Узнал классный хак для отладки продакшена? Делись!
В общем, заходи, если надоело одиноко гуглить ошибки посреди ночи. Тут всегда найдется кто-то, кто уже сталкивался с твоей проблемой и знает, как ее решить. Или хотя бы составит компанию в страданиях.
🏴☠️ ЧАТ @happy_devops | https://news.1rj.ru/str/+HlvAVVBNC2Y5ZmRi
У нас в чате уже больше трехсот инженеров, которые не боятся делиться опытом и признавать ошибки. Никаких "я гуру, а вы все нубы" — только честные разговоры о том, как оно в реальной жизни. От монолитов до микросервисов, от legacy до облаков, от стартапов до энтерпрайза.
А еще у нас можно просто потрещать за жизнь. Потому что DevOps — не только про CI/CD и Kubernetes. Иногда нужно обсудить, куда податься после очередного сокращения, как не психануть от токсичного менеджера или где найти толковых джунов в команду.
У нас нет священных коров и запретных тем. Хочешь обсудить, почему новый фреймворк — это переоцененный хайп? Вперед! Считаешь, что все делают мониторинг неправильно? Докажи! Узнал классный хак для отладки продакшена? Делись!
В общем, заходи, если надоело одиноко гуглить ошибки посреди ночи. Тут всегда найдется кто-то, кто уже сталкивался с твоей проблемой и знает, как ее решить. Или хотя бы составит компанию в страданиях.
🏴☠️ ЧАТ @happy_devops | https://news.1rj.ru/str/+HlvAVVBNC2Y5ZmRi
Ссылку пофиксили, извините 🙈
На всякий случай https://news.1rj.ru/str/+HlvAVVBNC2Y5ZmRi
На всякий случай https://news.1rj.ru/str/+HlvAVVBNC2Y5ZmRi
Telegram
HappyDevops Club
Поднять продакшен может каждый, не каждый может удержать
Пошаговый гайд по масштабированию в продакшене: от теории к практике 🚀
Разберем каждый этап масштабирования с реальными примерами и псевдокодом. Погнали!
Вертикальное масштабирование. Начинаем с простого — увеличиваем мощность серверов. Мониторим нагрузку через Prometheus:
Когда метрики в красной зоне — апгрейдим железо. Но это временное решение, пора думать о горизонтальном масштабировании.
Балансировка нагрузки — наш следующий шаг. Простой конфиг Nginx для Round Robin:
Теперь запросы равномерно распределяются между серверами. При падении одной ноды трафик автоматически уйдет на живые сервера.
База данных — самое интересное. Начинаем с репликации в PostgreSQL:
Когда и этого мало — включаем шардинг. Пример логики маршрутизации:
Асинхронная обработка творит чудеса. Выносим тяжелые задачи в очереди:
Кэширование — must have для высоких нагрузок. Redis спасает от лишних запросов к базе:
Оптимизация кода не менее важна. Например, в Go используем горутины для параллельной обработки:
И наконец, graceful degradation. Отключаем тяжелые фичи при высокой нагрузке:
Все эти техники работают в комплексе. Мониторим метрики, находим узкие места, применяем подходящие решения. Масштабирование — это марафон, а не спринт. Главное — начать с простых оптимизаций и постепенно наращивать сложность.
PS: Ссылка на картинку в хорошем разрешении
🏴☠️ @happy_devops
Разберем каждый этап масштабирования с реальными примерами и псевдокодом. Погнали!
Вертикальное масштабирование. Начинаем с простого — увеличиваем мощность серверов. Мониторим нагрузку через Prometheus:
# CPU под нагрузкой больше 80%
rate(node_cpu_seconds_total{mode="system"}[1m]) > 0.8
# RAM забит под завязку
node_memory_MemFree_bytes / node_memory_MemTotal_bytes < 0.1
Когда метрики в красной зоне — апгрейдим железо. Но это временное решение, пора думать о горизонтальном масштабировании.
Балансировка нагрузки — наш следующий шаг. Простой конфиг Nginx для Round Robin:
upstream backend {
server app1.example.com:8080;
server app2.example.com:8080;
server app3.example.com:8080;
}Теперь запросы равномерно распределяются между серверами. При падении одной ноды трафик автоматически уйдет на живые сервера.
База данных — самое интересное. Начинаем с репликации в PostgreSQL:
-- На мастере
CREATE PUBLICATION app_pub FOR ALL TABLES;
-- На реплике
CREATE SUBSCRIPTION app_sub
CONNECTION 'host=master dbname=app'
PUBLICATION app_pub;
Когда и этого мало — включаем шардинг. Пример логики маршрутизации:
def get_shard(user_id):
shard_num = user_id % TOTAL_SHARDS
return f"shard_{shard_num}"
def save_data(user_id, data):
shard = get_shard(user_id)
shard_db = get_database(shard)
shard_db.save(data)
Асинхронная обработка творит чудеса. Выносим тяжелые задачи в очереди:
# Вместо прямой отправки
def process_order(order):
send_notification() # блокирующая операция
generate_invoice() # тоже долго
update_warehouse() # и это тоже
# Используем очереди
def process_order(order):
queue.publish('notifications', order_id)
queue.publish('invoices', order_id)
queue.publish('warehouse', order_id)
return 'Processing started'
Кэширование — must have для высоких нагрузок. Redis спасает от лишних запросов к базе:
def get_user_data(user_id):
# Сначала смотрим в кэш
cached = redis.get(f"user:{user_id}")
if cached:
return json.loads(cached)
# При промахе идем в базу
data = database.query(user_id)
redis.set(f"user:{user_id}", json.dumps(data), ex=3600)
return data
Оптимизация кода не менее важна. Например, в Go используем горутины для параллельной обработки:
func processItems(items []Item) {
resultChan := make(chan Result, len(items))
for _, item := range items {
go func(i Item) {
result := heavyProcessing(i)
resultChan <- result
}(item)
}
// Собираем результаты
var results []Result
for range items {
results = append(results, <-resultChan)
}
}И наконец, graceful degradation. Отключаем тяжелые фичи при высокой нагрузке:
def search_products(query):
if is_high_load():
# Простой поиск по точному совпадению
return basic_search(query)
else:
# Полнотекстовый поиск с фильтрами
return full_search(query)
def is_high_load():
return cpu_usage > 80 or response_time > 500
Все эти техники работают в комплексе. Мониторим метрики, находим узкие места, применяем подходящие решения. Масштабирование — это марафон, а не спринт. Главное — начать с простых оптимизаций и постепенно наращивать сложность.
PS: Ссылка на картинку в хорошем разрешении
🏴☠️ @happy_devops
🔥5❤3👍3
Увольнение: трагедия или новые возможности?
Никто не застрахован от сообщения в корпоративном мессенджере: «Привет, есть время на созвон?» И вот ты уже собираешь вещи со стола, а доступы к серверам испаряются один за другим. В нашей индустрии увольнение перестало быть чем-то постыдным — это часть игры, особенно когда очередной стартап решает, что джуниор девопс вполне потянет работу целого отдела.
Первые дни после увольнения мозг генерит два типа мыслей. Первая: «Да как они посмели, я же их продакшен с колен поднимал!» Вторая: «А точно я не самозванец, и кому теперь нужен девопс без проектов?» Обе мысли ведут в никуда.
Любой минус можно развернуть в плюс. Пока у других тикеты горят, у вас появилось время на рефлексию. Какие технологии реально приносили пользу? Где костыли поддерживали мертвый код? Что хотелось изучить, но вечно не хватало времени?
Старая работа схлопнулась как кластер в пятницу — и освободила место для чего-то нового. Для тех проектов, где вас оценят не за готовность сидеть ночами, а за умение выстраивать процессы. Где можно будет внедрять современные практики, а не поддерживать легаси «потому что так исторически сложилось».
Используйте это время с умом. Пересоберите свой личный «образ»: обновите резюме, прокачайте скиллы, разберите завалы в личном гитхабе. И не спешите хвататься за первый попавшийся оффер. Ищите проект, где сможете расти, а не латать дыры в инфраструктуре.
🏴☠️ @happy_devops
Никто не застрахован от сообщения в корпоративном мессенджере: «Привет, есть время на созвон?» И вот ты уже собираешь вещи со стола, а доступы к серверам испаряются один за другим. В нашей индустрии увольнение перестало быть чем-то постыдным — это часть игры, особенно когда очередной стартап решает, что джуниор девопс вполне потянет работу целого отдела.
Первые дни после увольнения мозг генерит два типа мыслей. Первая: «Да как они посмели, я же их продакшен с колен поднимал!» Вторая: «А точно я не самозванец, и кому теперь нужен девопс без проектов?» Обе мысли ведут в никуда.
Любой минус можно развернуть в плюс. Пока у других тикеты горят, у вас появилось время на рефлексию. Какие технологии реально приносили пользу? Где костыли поддерживали мертвый код? Что хотелось изучить, но вечно не хватало времени?
Старая работа схлопнулась как кластер в пятницу — и освободила место для чего-то нового. Для тех проектов, где вас оценят не за готовность сидеть ночами, а за умение выстраивать процессы. Где можно будет внедрять современные практики, а не поддерживать легаси «потому что так исторически сложилось».
Используйте это время с умом. Пересоберите свой личный «образ»: обновите резюме, прокачайте скиллы, разберите завалы в личном гитхабе. И не спешите хвататься за первый попавшийся оффер. Ищите проект, где сможете расти, а не латать дыры в инфраструктуре.
🏴☠️ @happy_devops
👍5❤3🔥1
Типичные грабли шардирования: выбираем правильный ключ 🔑
В позавчерашнем примере мы шардили базу по user_id и это кажется логичным и очевидным решением. Все данные одного юзера в одном месте, джойны не разъезжаются по базам — красота! Но это только на первый взгляд. В реальности такой подход приносит кучу проблем.
Представим соцсеть, где user_id используется как ключ шардирования. У одних пользователей тысячи постов и миллионы подписчиков, у других — пара репостов котиков. В итоге один шард разрывается от нагрузки, пока остальные скучают без дела. Получаем классический hot shard — и вся идея равномерного распределения летит в трубу.
А еще есть запросы вроде "показать популярные посты за неделю" или "найти общих друзей". Придется опрашивать все шарды, собирать результаты и сортировать на лету. Латенси растет, ресурсы тратятся впустую — а все из-за неудачного выбора ключа.
Как выбрать ключ с умом? Отталкиваемся от паттернов доступа к данным. Для ленты новостей отлично подойдет шардинг по дате создания поста — свежий контент всегда под рукой. В e-commerce хорошо работает географический шардинг — заказы обычно привязаны к региону доставки.
В играх с открытым миром шардируем по координатам игровых зон. В системах логирования — по временным интервалам. В микросервисной архитектуре часто шардируют по tenant_id, чтобы данные одного клиента были изолированы.
Универсальное правило — ключ должен обеспечивать равномерное распределение данных и минимизировать cross-shard запросы. Если 80% запросов укладываются в один шард — значит ключ выбран правильно.
И не бойтесь сложных схем! Составной ключ из
PS Ссылка на картинку в хорошем разрешении
🏴☠️ @happy_devops
В позавчерашнем примере мы шардили базу по user_id и это кажется логичным и очевидным решением. Все данные одного юзера в одном месте, джойны не разъезжаются по базам — красота! Но это только на первый взгляд. В реальности такой подход приносит кучу проблем.
Представим соцсеть, где user_id используется как ключ шардирования. У одних пользователей тысячи постов и миллионы подписчиков, у других — пара репостов котиков. В итоге один шард разрывается от нагрузки, пока остальные скучают без дела. Получаем классический hot shard — и вся идея равномерного распределения летит в трубу.
А еще есть запросы вроде "показать популярные посты за неделю" или "найти общих друзей". Придется опрашивать все шарды, собирать результаты и сортировать на лету. Латенси растет, ресурсы тратятся впустую — а все из-за неудачного выбора ключа.
Как выбрать ключ с умом? Отталкиваемся от паттернов доступа к данным. Для ленты новостей отлично подойдет шардинг по дате создания поста — свежий контент всегда под рукой. В e-commerce хорошо работает географический шардинг — заказы обычно привязаны к региону доставки.
В играх с открытым миром шардируем по координатам игровых зон. В системах логирования — по временным интервалам. В микросервисной архитектуре часто шардируют по tenant_id, чтобы данные одного клиента были изолированы.
Универсальное правило — ключ должен обеспечивать равномерное распределение данных и минимизировать cross-shard запросы. Если 80% запросов укладываются в один шард — значит ключ выбран правильно.
И не бойтесь сложных схем! Составной ключ из
{region_id, created_at} или {category_id, product_id} часто работает лучше, чем один простой параметр. Главное — тщательно проанализировать характер нагрузки перед выбором стратегии шардирования.PS Ссылка на картинку в хорошем разрешении
🏴☠️ @happy_devops
❤4👍2
Katacoda — песочница для DevOps без головной боли 🚀
Учиться на продакшене — так себе идея. А развернуть локально Kubernetes, Terraform или OpenShift порой сложнее, чем написать собственный оркестратор. Katacoda решает эту проблему: берёт на себя всю инфраструктуру и даёт нам готовую среду прямо в браузере.
В основе лежит запуск Docker-контейнеров с предустановленным набором инструментов. Выбираешь сценарий на сайте, кликаешь "Start Scenario" — и через 30 секунд у тебя готовая среда с терминалом:
Главная фишка — интерактивные туториалы с автопроверкой. Система следит за каждой командой и подсказывает, если что-то идёт не так. Вот как выглядит проверка деплоймента:
За счёт веб-интерфейса отпадает нужда в мощной машине — весь тяжёлый lifting берёт на себя облако. Можно даже пробовать сложные штуки вроде распределённых систем или микросервисной архитектуры. Разворачивай хоть Kafka, хоть Elasticsearch — ничего не сломаешь.
И главное — не придётся объяснять начальству, почему твои эксперименты с Istio положили половину тестовой среды. А когда всё получится — просто перенесёшь рабочие конфиги в свою инфраструктуру.
🏴☠️ @happy_devops
Учиться на продакшене — так себе идея. А развернуть локально Kubernetes, Terraform или OpenShift порой сложнее, чем написать собственный оркестратор. Katacoda решает эту проблему: берёт на себя всю инфраструктуру и даёт нам готовую среду прямо в браузере.
В основе лежит запуск Docker-контейнеров с предустановленным набором инструментов. Выбираешь сценарий на сайте, кликаешь "Start Scenario" — и через 30 секунд у тебя готовая среда с терминалом:
# Проверим, что окружение поднялось
echo "Привет из Katacoda!"
# launch.sh инициализирует кластер Kubernetes
cat launch.sh
#!/bin/bash
minikube start --wait=false
minikube status
export KUBECONFIG=/etc/kubernetes/admin.conf
# Подождём, пока все поды поднимутся
kubectl wait --for=condition=Ready pod --all -n kube-system --timeout=180s
# Проверим, что кластер работает
kubectl get nodes
Главная фишка — интерактивные туториалы с автопроверкой. Система следит за каждой командой и подсказывает, если что-то идёт не так. Вот как выглядит проверка деплоймента:
# Создадим тестовый деплоймент
kubectl create deployment web --image=nginx
kubectl expose deployment web --port=80
# Katacoda проверит результат
verify_deployment() {
POD_NAME=$(kubectl get pods -l app=web -o name)
if [ -z "$POD_NAME" ]; then
echo "Под не создан. Попробуй ещё раз!"
return 1
fi
echo "Отлично! Деплоймент работает"
}
verify_deployment
За счёт веб-интерфейса отпадает нужда в мощной машине — весь тяжёлый lifting берёт на себя облако. Можно даже пробовать сложные штуки вроде распределённых систем или микросервисной архитектуры. Разворачивай хоть Kafka, хоть Elasticsearch — ничего не сломаешь.
И главное — не придётся объяснять начальству, почему твои эксперименты с Istio положили половину тестовой среды. А когда всё получится — просто перенесёшь рабочие конфиги в свою инфраструктуру.
🏴☠️ @happy_devops
Katacoda
Katacoda - Interactive Learning Platform for Software Engineers
Learn the latest technologies with our hands-on labs
🔥6👍4👎1
Книга "Apache Kafka" от O'Reilly — не просто очередной гайд по популярной технологии. За сухим названием прячется настоящая библия распределенных систем и потоковой обработки данных.
Авторы не стали пересказывать документацию — они препарировали Kafka до винтика. От базовых концептов через внутреннее устройство к масштабированию и отказоустойчивости. А главное — без воды и абстрактных рассуждений. Сразу в бой: архитектура, паттерны, граничные случаи и подводные камни.
Отдельный респект за главу про консистентность и гарантии доставки сообщений. На пальцах разложили, почему at-least-once delivery — не серебряная пуля, и как выбирать между надежностью и производительностью. Да и вообще, книга отлично показывает trade-offs в распределенных системах.
Код в книге без сахара — только хардкор и продакшен-грейд решения. Сразу видно, что авторы реально работали с Kafka в боевых условиях, а не теоретизировали в башне из слоновой кости. Каждый пример снабжен разбором граничных случаев и советами по отладке.
А еще они не постеснялись написать про косяки и ограничения Kafka. Вместо маркетинговых лозунгов — честный разговор о том, где эта технология реально рулит, а где лучше поискать другие варианты.
Короче, must read для тех, кто работает с high-load и распределенными системами. Даже если вы не используете Kafka, принципы и паттерны из книги пригодятся в любой современной архитектуре.
🏴☠️ @happy_devops
Авторы не стали пересказывать документацию — они препарировали Kafka до винтика. От базовых концептов через внутреннее устройство к масштабированию и отказоустойчивости. А главное — без воды и абстрактных рассуждений. Сразу в бой: архитектура, паттерны, граничные случаи и подводные камни.
Отдельный респект за главу про консистентность и гарантии доставки сообщений. На пальцах разложили, почему at-least-once delivery — не серебряная пуля, и как выбирать между надежностью и производительностью. Да и вообще, книга отлично показывает trade-offs в распределенных системах.
Код в книге без сахара — только хардкор и продакшен-грейд решения. Сразу видно, что авторы реально работали с Kafka в боевых условиях, а не теоретизировали в башне из слоновой кости. Каждый пример снабжен разбором граничных случаев и советами по отладке.
А еще они не постеснялись написать про косяки и ограничения Kafka. Вместо маркетинговых лозунгов — честный разговор о том, где эта технология реально рулит, а где лучше поискать другие варианты.
Короче, must read для тех, кто работает с high-load и распределенными системами. Даже если вы не используете Kafka, принципы и паттерны из книги пригодятся в любой современной архитектуре.
🏴☠️ @happy_devops
✍8
База данных для тех, кто устал от выбора базы данных
На дворе двадцатые годы, а мы до сих пор страдаем при выборе базы данных. MySQL? PostgreSQL? MongoDB? А может Redis? И каждый вендор кричит, что именно его решение — самое быстрое, масштабируемое и вообще единственно верное.
Сайт dbdb.io — находка для измученных душ. Это интерактивная энциклопедия баз данных, где собрана вся ключевая информация без маркетингового шума. Здесь каждая база разложена по полочкам: архитектура, особенности хранения данных, производительность и ограничения.
Круто, что создали его не маркетологи, а профессора из Университета Карнеги-Меллона. Они собрали исчерпывающую информацию о 250+ базах данных — от динозавров вроде IBM DB2 до молодых проектов типа CockroachDB.
За каждой статьей стоят пруфы: научные статьи, технические спецификации, реальные бенчмарки. Никакого "мы самые быстрые" без пруфов. И самое вкусное — интерактивные сравнения. Можно выбрать несколько баз и сравнить их по десяткам параметров. Прям мечта для технического обоснования!
И совет напоследок: не ведитесь на хайп. Загляните на dbdb.io перед тем, как притащить очередную модную NoSQL базу в продакшен. Сэкономите себе пару седых волос.
🏴☠️ @happy_devops
На дворе двадцатые годы, а мы до сих пор страдаем при выборе базы данных. MySQL? PostgreSQL? MongoDB? А может Redis? И каждый вендор кричит, что именно его решение — самое быстрое, масштабируемое и вообще единственно верное.
Сайт dbdb.io — находка для измученных душ. Это интерактивная энциклопедия баз данных, где собрана вся ключевая информация без маркетингового шума. Здесь каждая база разложена по полочкам: архитектура, особенности хранения данных, производительность и ограничения.
Круто, что создали его не маркетологи, а профессора из Университета Карнеги-Меллона. Они собрали исчерпывающую информацию о 250+ базах данных — от динозавров вроде IBM DB2 до молодых проектов типа CockroachDB.
За каждой статьей стоят пруфы: научные статьи, технические спецификации, реальные бенчмарки. Никакого "мы самые быстрые" без пруфов. И самое вкусное — интерактивные сравнения. Можно выбрать несколько баз и сравнить их по десяткам параметров. Прям мечта для технического обоснования!
И совет напоследок: не ведитесь на хайп. Загляните на dbdb.io перед тем, как притащить очередную модную NoSQL базу в продакшен. Сэкономите себе пару седых волос.
🏴☠️ @happy_devops
✍5🔥4👍3
SSH-конфиг: 10 трюков для продвинутых админов ⚡️
SSH — инструмент, с которым девопс проводит полжизни. Грамотный конфиг сделает эту жизнь приятнее. Собрал настройки, которые реально экономят время в повседневной работе.
Host позволяет создавать шаблоны для групп серверов. Звездочка в имени хоста автоматически подставит нужный домен и пользователя для всех подходящих машин:
ProxyJump открывает прямой путь к серверам за бастионами. Одна строчка заменит три-четыре команды для прыжков между хостами:
ForwardAgent избавит от копирования ключей на промежуточные серверы. SSH-агент прокинет локальные ключи по всей цепочке хостов:
LocalForward сделает удаленные сервисы локальными. База данных, Redis, Prometheus — всё станет доступно как localhost:
ControlMaster экономит время на повторных подключениях. Первая сессия станет мастером для всех следующих — они подключатся мгновенно:
Compression спасет при работе через медленный VPN. Сжатие трафика ускорит отклик в несколько раз:
IdentitiesOnly прекратит путаницу с ключами. SSH будет использовать только указанный ключ, игнорируя все остальные:
ServerAliveInterval сохранит соединение активным. Незаметные пинги не дадут серверу закрыть сессию по таймауту:
Match добавит гибкости в настройки. Запретите рут-доступ в нерабочее время или смените порт для определенных IP:
RemoteForward расшарит локальные сервисы наружу. Два способа пробросить порт 80 на удаленный сервер — через конфиг или через ключ:
Конфиг собирается в
🏴☠️ @happy_devops
SSH — инструмент, с которым девопс проводит полжизни. Грамотный конфиг сделает эту жизнь приятнее. Собрал настройки, которые реально экономят время в повседневной работе.
Host позволяет создавать шаблоны для групп серверов. Звездочка в имени хоста автоматически подставит нужный домен и пользователя для всех подходящих машин:
Host web-*
HostName %h.prod.company.com
User deployer
ProxyJump открывает прямой путь к серверам за бастионами. Одна строчка заменит три-четыре команды для прыжков между хостами:
Host target
ProxyJump jumphost1,jumphost2
ForwardAgent избавит от копирования ключей на промежуточные серверы. SSH-агент прокинет локальные ключи по всей цепочке хостов:
Host staging
ForwardAgent yes
AddKeysToAgent yes
LocalForward сделает удаленные сервисы локальными. База данных, Redis, Prometheus — всё станет доступно как localhost:
Host db
LocalForward 5432 db.internal:5432
ControlMaster экономит время на повторных подключениях. Первая сессия станет мастером для всех следующих — они подключатся мгновенно:
Host *
ControlMaster auto
ControlPath ~/.ssh/ctrl-%C
Compression спасет при работе через медленный VPN. Сжатие трафика ускорит отклик в несколько раз:
Host slow
Compression yes
CompressionLevel 9
IdentitiesOnly прекратит путаницу с ключами. SSH будет использовать только указанный ключ, игнорируя все остальные:
Host github.com
IdentitiesOnly yes
IdentityFile ~/.ssh/github
ServerAliveInterval сохранит соединение активным. Незаметные пинги не дадут серверу закрыть сессию по таймауту:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Match добавит гибкости в настройки. Запретите рут-доступ в нерабочее время или смените порт для определенных IP:
Match exec "date +%H | grep -q '1[7-9]'"
PermitRootLogin no
RemoteForward расшарит локальные сервисы наружу. Два способа пробросить порт 80 на удаленный сервер — через конфиг или через ключ:
Host devbox
RemoteForward 8080 localhost:80
GatewayPorts yes
# или через ключ при подключении:
ssh -R 8080:localhost:80 devbox
Конфиг собирается в
~/.ssh/config с правами 600. И помни — SSH из коробки даст тебе намного больше, чем кажется на первый взгляд.🏴☠️ @happy_devops
👍11❤3🔥3
Психологическое здоровье в IT: табу, которое пора нарушить
Выгорание среди айтишников достигло масштабов эпидемии, а мы продолжаем делать вид, что все нормально. За закрытыми дверями офисов и в домашних кабинетах разработчики, девопсы и тестировщики борются с тревогой, депрессией и стрессом — и часто остаются один на один со своими проблемами.
В нашей индустрии не принято говорить о психологическом здоровье. Мы шутим про опасный код в пятницу, про костыли в легаси и про очередной срыв дедлайна. А потом глотаем таблетки от головной боли и заедаем стресс энергетиками.
А ведь базовые практики заботы о себе не требуют сверхчеловеческих усилий. Включите в календарь 10-минутные перерывы между созвонами. Настройте уведомления — пусть рабочий мессенджер молчит после семи вечера (если вы не на oncall конечно). Выделите час в день на прогулку или спортзал. Научитесь говорить "нет" авральным задачам, которые на самом деле не горят.
Компании тратят миллионы на железо и софт, но экономят на психологической поддержке сотрудников. А ведь стоимость потери классного специалиста из-за выгорания в разы выше, чем цена превентивных мер — корпоративного психолога, тренингов по управлению стрессом или просто человечного отношения к сотрудникам.
Каждый раз, когда мы замалчиваем проблемы с ментальным здоровьем, мы укрепляем стену непонимания. Пора начать открыто говорить об этом и строить здоровую культуру, где забота о себе — не слабость, а осознанный выбор профессионала.
🏴☠️ @happy_devops
Выгорание среди айтишников достигло масштабов эпидемии, а мы продолжаем делать вид, что все нормально. За закрытыми дверями офисов и в домашних кабинетах разработчики, девопсы и тестировщики борются с тревогой, депрессией и стрессом — и часто остаются один на один со своими проблемами.
В нашей индустрии не принято говорить о психологическом здоровье. Мы шутим про опасный код в пятницу, про костыли в легаси и про очередной срыв дедлайна. А потом глотаем таблетки от головной боли и заедаем стресс энергетиками.
А ведь базовые практики заботы о себе не требуют сверхчеловеческих усилий. Включите в календарь 10-минутные перерывы между созвонами. Настройте уведомления — пусть рабочий мессенджер молчит после семи вечера (если вы не на oncall конечно). Выделите час в день на прогулку или спортзал. Научитесь говорить "нет" авральным задачам, которые на самом деле не горят.
Компании тратят миллионы на железо и софт, но экономят на психологической поддержке сотрудников. А ведь стоимость потери классного специалиста из-за выгорания в разы выше, чем цена превентивных мер — корпоративного психолога, тренингов по управлению стрессом или просто человечного отношения к сотрудникам.
Каждый раз, когда мы замалчиваем проблемы с ментальным здоровьем, мы укрепляем стену непонимания. Пора начать открыто говорить об этом и строить здоровую культуру, где забота о себе — не слабость, а осознанный выбор профессионала.
🏴☠️ @happy_devops
🔥8👍1
Инструмент для отладки Dockerfile: buildg 🛠
В мире, где каждый второй проект — это монолит, раскиданный по сотне контейнеров, отладка Dockerfile превращается в квест. Добавил пару RUN команд, собрал образ, а он не работает. Собрал заново — та же история. И вот ты уже час гадаешь, что пошло не так.
buildg — новый инструмент на базе BuildKit для интерактивной отладки Dockerfile. Он позволяет ставить брейкпоинты на любую строчку, проверять состояние файловой системы после каждой команды и запускать терминал прямо внутри сборки.
Выглядит это так:
Запускаем buildg debug, ставим брейкпоинт на третью строчку командой break 3, и погнали! После остановки можно зайти внутрь командой exec и посмотреть содержимое файлов. Никаких echo и printf — чистая интерактивная отладка, как в нормальном дебаггере.
Особенно приятно, что buildg работает с VS Code, Neovim и Emacs через Debug Adapter Protocol. Теперь можно отлаживать Docker-файлы в любимом редакторе с полноценным GUI. И да, он поддерживает rootless режим — никаких sudo прав не требуется.
В комплекте идет поддержка всех фич BuildKit: кэширование, SSH-агент, секреты. А для тех, кто использует nerdctl — buildg уже встроен как подкоманда.
💻 https://github.com/ktock/buildg
🏴☠️ @happy_devops
В мире, где каждый второй проект — это монолит, раскиданный по сотне контейнеров, отладка Dockerfile превращается в квест. Добавил пару RUN команд, собрал образ, а он не работает. Собрал заново — та же история. И вот ты уже час гадаешь, что пошло не так.
buildg — новый инструмент на базе BuildKit для интерактивной отладки Dockerfile. Он позволяет ставить брейкпоинты на любую строчку, проверять состояние файловой системы после каждой команды и запускать терминал прямо внутри сборки.
Выглядит это так:
FROM ubuntu AS dev
RUN echo hello > /hello
RUN echo world > /world
Запускаем buildg debug, ставим брейкпоинт на третью строчку командой break 3, и погнали! После остановки можно зайти внутрь командой exec и посмотреть содержимое файлов. Никаких echo и printf — чистая интерактивная отладка, как в нормальном дебаггере.
Особенно приятно, что buildg работает с VS Code, Neovim и Emacs через Debug Adapter Protocol. Теперь можно отлаживать Docker-файлы в любимом редакторе с полноценным GUI. И да, он поддерживает rootless режим — никаких sudo прав не требуется.
В комплекте идет поддержка всех фич BuildKit: кэширование, SSH-агент, секреты. А для тех, кто использует nerdctl — buildg уже встроен как подкоманда.
🏴☠️ @happy_devops
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ktock/buildg: Interactive debugger for Dockerfile, with support for IDEs (VS Code, Emacs, Neovim, etc.)
Interactive debugger for Dockerfile, with support for IDEs (VS Code, Emacs, Neovim, etc.) - ktock/buildg
🔥6✍2👍2
AI-инструменты для разработки: от идеи до готового приложения за пару часов 🚀
Революция в веб-разработке набирает обороты — новые AI-сервисы превращают описание проекта в рабочий код буквально на лету. Давайте разберем самые крутые из них.
bolt.new — браузерная студия для быстрого прототипирования. Тут все работает прямо в браузере: описываете желаемый результат, правите дизайн, загружаете референсные картинки. С React-проектами справляется отлично, хотя с Vue и Nuxt пока дружит не очень. Готовый код можно скачать или сразу отправить в продакшн.
v0.dev — прямой конкурент bolt в создании лендингов, но со своими козырями. Главная фишка — использование библиотеки компонентов shadcn, благодаря которой ваш UI будет выглядеть современно и стильно. Недавно добавили интеграцию с GitHub-репозиториями, а деплой на Vercel делается буквально в пару кликов.
lovable.dev — тут мы переходим в высшую лигу. Это не просто генератор, а полноценная full-stack среда разработки в браузере. Поддержка баз данных Supabase, синхронизация с GitHub, полный доступ к исходникам — все включено. Описываете идею приложения или игры, и lovable превращает её в готовый продукт.
Cursor — это уже серьезная IDE для тех, кто готов работать с кодом на естественном языке. Говорите, что нужно сделать или изменить в проекте, а он пишет код. Умеет работать с документацией, искать решения онлайн, создавать и фронтенд, и бэкенд, интегрироваться с API. Нужны базовые знания о структуре проекта, но результат того стоит.
Windsurf — младший брат Cursor, но с амбициями. Работает локально, справляется с несколькими файлами одновременно, а недавно получил интеграцию с MCP (model context protocol). Это позволяет AI напрямую общаться с базами данных, серверами и файлами — звучит как фантастика, но работает уже сейчас.
Собрать рабочее приложение с этими инструментами проще простого: накидываете прототип в bolt.new, подгружаете скриншот любимого сайта для вдохновения, а финальную доводку делаете в Cursor или Windsurf. Деплой на Netlify или Vercel займет пару кликов.
И главное — все эти сервисы дают бесплатные тарифы для экспериментов. Идеально для создания прототипов или обучения современной веб-разработке.
🏴☠️ @happy_devops
Революция в веб-разработке набирает обороты — новые AI-сервисы превращают описание проекта в рабочий код буквально на лету. Давайте разберем самые крутые из них.
bolt.new — браузерная студия для быстрого прототипирования. Тут все работает прямо в браузере: описываете желаемый результат, правите дизайн, загружаете референсные картинки. С React-проектами справляется отлично, хотя с Vue и Nuxt пока дружит не очень. Готовый код можно скачать или сразу отправить в продакшн.
v0.dev — прямой конкурент bolt в создании лендингов, но со своими козырями. Главная фишка — использование библиотеки компонентов shadcn, благодаря которой ваш UI будет выглядеть современно и стильно. Недавно добавили интеграцию с GitHub-репозиториями, а деплой на Vercel делается буквально в пару кликов.
lovable.dev — тут мы переходим в высшую лигу. Это не просто генератор, а полноценная full-stack среда разработки в браузере. Поддержка баз данных Supabase, синхронизация с GitHub, полный доступ к исходникам — все включено. Описываете идею приложения или игры, и lovable превращает её в готовый продукт.
Cursor — это уже серьезная IDE для тех, кто готов работать с кодом на естественном языке. Говорите, что нужно сделать или изменить в проекте, а он пишет код. Умеет работать с документацией, искать решения онлайн, создавать и фронтенд, и бэкенд, интегрироваться с API. Нужны базовые знания о структуре проекта, но результат того стоит.
Windsurf — младший брат Cursor, но с амбициями. Работает локально, справляется с несколькими файлами одновременно, а недавно получил интеграцию с MCP (model context protocol). Это позволяет AI напрямую общаться с базами данных, серверами и файлами — звучит как фантастика, но работает уже сейчас.
Собрать рабочее приложение с этими инструментами проще простого: накидываете прототип в bolt.new, подгружаете скриншот любимого сайта для вдохновения, а финальную доводку делаете в Cursor или Windsurf. Деплой на Netlify или Vercel займет пару кликов.
И главное — все эти сервисы дают бесплатные тарифы для экспериментов. Идеально для создания прототипов или обучения современной веб-разработке.
🏴☠️ @happy_devops
bolt.new
Bolt AI builder: Websites, apps & prototypes
Prompt, run, edit & publish apps
✍1🔥1
Продуктивность без выгорания: инсайды от опытных DevOps 🚀
Сочетать DevOps и нормальную жизнь — задачка не из простых. В пять вечера закрываешь последний тикет, а в шесть утра прилетает алерт из прода. И пока одни коллеги выгорают, другие умудряются и с работой справляться, и на хобби время находить, и даже в отпуск ездить.
В чем же их секрет? А в том, что они перестали быть заложниками "надо срочно" и "все горит". Внедрили практику тайм-блоков — два часа на инфру, час на мониторинг, полчаса на код-ревью. Пока время не вышло — никаких переключений. А главное — научились говорить "нет" внезапным таскам, которые прилетают поверх планов.
Еще один лайфхак — короткие спринты в стиле помодоро. Полчаса работаем, потом десять минут отдыхаем. За перерыв успеваем и кофе выпить, и размяться, и даже пост в личный блог накатать. После четырех таких циклов — полноценный перерыв на обед или прогулку.
А еще эти ребята помешаны на автоматизации. Любую задачу, которая отнимает больше получаса в день — автоматизируют. Один раз потратить день на скрипт, зато потом месяцами экономить время на рутине. Создают шаблоны для типовых операций, пишут алиасы под частые команды, ведут библиотеку готовых решений.
И самое главное — после работы реально отключаются. Никаких уведомлений в мессенджерах, никакой почты по ночам. Если что-то критичное — в команде есть дежурный инженер. А остальные в это время занимаются своей жизнью: спортом, хобби, семьей. И знаете что? Именно такой подход делает их эффективнее тех, кто пытается быть онлайн 24/7.
🏴☠️ @happy_devops
Сочетать DevOps и нормальную жизнь — задачка не из простых. В пять вечера закрываешь последний тикет, а в шесть утра прилетает алерт из прода. И пока одни коллеги выгорают, другие умудряются и с работой справляться, и на хобби время находить, и даже в отпуск ездить.
В чем же их секрет? А в том, что они перестали быть заложниками "надо срочно" и "все горит". Внедрили практику тайм-блоков — два часа на инфру, час на мониторинг, полчаса на код-ревью. Пока время не вышло — никаких переключений. А главное — научились говорить "нет" внезапным таскам, которые прилетают поверх планов.
Еще один лайфхак — короткие спринты в стиле помодоро. Полчаса работаем, потом десять минут отдыхаем. За перерыв успеваем и кофе выпить, и размяться, и даже пост в личный блог накатать. После четырех таких циклов — полноценный перерыв на обед или прогулку.
А еще эти ребята помешаны на автоматизации. Любую задачу, которая отнимает больше получаса в день — автоматизируют. Один раз потратить день на скрипт, зато потом месяцами экономить время на рутине. Создают шаблоны для типовых операций, пишут алиасы под частые команды, ведут библиотеку готовых решений.
И самое главное — после работы реально отключаются. Никаких уведомлений в мессенджерах, никакой почты по ночам. Если что-то критичное — в команде есть дежурный инженер. А остальные в это время занимаются своей жизнью: спортом, хобби, семьей. И знаете что? Именно такой подход делает их эффективнее тех, кто пытается быть онлайн 24/7.
🏴☠️ @happy_devops
👍8❤4
This media is not supported in your browser
VIEW IN TELEGRAM
LLM Resource Hub — бесплатная база знаний для работы с языковыми моделями 🤖
На днях энтузиасты собрали в единый хаб все ключевые материалы по большим языковым моделям. База напоминает университетскую библиотеку, где каждый стеллаж заполнен специализированной литературой — от базовых учебников до продвинутых исследований.
В первом разделе собраны готовые нейронки с документацией и примерами использования. Во втором — тщательно отобранные видеоуроки, которые помогут разобраться даже в самых сложных концепциях машинного обучения. Дальше идут курсы от преподавателей MIT, Stanford и Berkeley — те самые, что обычно доступны только студентам этих вузов.
Отдельного внимания заслуживает коллекция научных статей и технических заметок. Создатели базы отобрали публикации, которые уже проверены временем и помогли не одному поколению ML-инженеров. К каждой статье прилагаются датасеты и код — бери и применяй в своих проектах.
Материалы на английском, зато свежие — многие обновляются каждую неделю. База постоянно пополняется статьями из ведущих ML-конференций, исследованиями от крупных лабораторий и кодом для решения типовых задач в работе с большими моделями.
Создатели проекта не гонятся за хайпом, а собирают только проверенные инструменты и знания. Каждый ресурс проходит тщательный отбор, прежде чем попасть в базу. Такой подход гарантирует качество материалов и экономит время на поиск действительно полезной информации.
🏴☠️ @happy_devops
На днях энтузиасты собрали в единый хаб все ключевые материалы по большим языковым моделям. База напоминает университетскую библиотеку, где каждый стеллаж заполнен специализированной литературой — от базовых учебников до продвинутых исследований.
В первом разделе собраны готовые нейронки с документацией и примерами использования. Во втором — тщательно отобранные видеоуроки, которые помогут разобраться даже в самых сложных концепциях машинного обучения. Дальше идут курсы от преподавателей MIT, Stanford и Berkeley — те самые, что обычно доступны только студентам этих вузов.
Отдельного внимания заслуживает коллекция научных статей и технических заметок. Создатели базы отобрали публикации, которые уже проверены временем и помогли не одному поколению ML-инженеров. К каждой статье прилагаются датасеты и код — бери и применяй в своих проектах.
Материалы на английском, зато свежие — многие обновляются каждую неделю. База постоянно пополняется статьями из ведущих ML-конференций, исследованиями от крупных лабораторий и кодом для решения типовых задач в работе с большими моделями.
Создатели проекта не гонятся за хайпом, а собирают только проверенные инструменты и знания. Каждый ресурс проходит тщательный отбор, прежде чем попасть в базу. Такой подход гарантирует качество материалов и экономит время на поиск действительно полезной информации.
🏴☠️ @happy_devops
🔥4
Приземление данных и технологический суверенитет — два мощных тренда, круто изменивших глобальную IT-индустрию за последние пару лет. Большие корпорации оказались между молотом и наковальней: с одной стороны давят регуляторы и государства, с другой — падает эффективность бизнеса из-за новых ограничений.
Мир разделяется на цифровые регионы. Все строят свои экосистемы, защищают персональные данные граждан, развивают локальные технологии. На первый взгляд звучит здраво — пора слезать с иглы западного софта и железа. Локализация выглядит панацеей от санкционных рисков и цифрового колониализма.
Только в реальности все сложнее. Глобализация дала нам GitHub и опенсорс, совместные научные проекты и единые стандарты. Технологические барьеры между странами тормозят инновации и обмен опытом. Разработчикам приходится изобретать велосипед заново, вместо того чтобы брать готовые решения и развивать их дальше.
К тому же "железный занавес" в интернете работает так себе. Обойти блокировки не сложно, а вот бизнесу приходится тратить ресурсы на соответствие новым правилам. Компании вынуждены строить зеркальную инфраструктуру, дублировать данные, плодить сущности — и все ради формального соответствия требованиям. В итоге страдает конкурентоспособность национальных игроков.
Похоже, баланс между открытостью и защитой интересов придется искать еще долго. Пока одни страны закрываются и строят свои "национальные интернеты", другие продвигают идеи цифровой глобализации 2.0 — с новыми правилами игры и честной конкуренцией. А инженерам стоит внимательно следить за регуляторикой и готовиться к новым сценариям развертывания инфраструктуры. И да, учить китайский — никогда не знаешь, где придется поднимать следующий кластер.
Ваня на своем канале «Деплой» рассуждает на туже тему, и делает это очень мощно. В его фирменном стиле он раскладывает тему приземления данных по полочкам. Очень грамотный пост.
Мир разделяется на цифровые регионы. Все строят свои экосистемы, защищают персональные данные граждан, развивают локальные технологии. На первый взгляд звучит здраво — пора слезать с иглы западного софта и железа. Локализация выглядит панацеей от санкционных рисков и цифрового колониализма.
Только в реальности все сложнее. Глобализация дала нам GitHub и опенсорс, совместные научные проекты и единые стандарты. Технологические барьеры между странами тормозят инновации и обмен опытом. Разработчикам приходится изобретать велосипед заново, вместо того чтобы брать готовые решения и развивать их дальше.
К тому же "железный занавес" в интернете работает так себе. Обойти блокировки не сложно, а вот бизнесу приходится тратить ресурсы на соответствие новым правилам. Компании вынуждены строить зеркальную инфраструктуру, дублировать данные, плодить сущности — и все ради формального соответствия требованиям. В итоге страдает конкурентоспособность национальных игроков.
Похоже, баланс между открытостью и защитой интересов придется искать еще долго. Пока одни страны закрываются и строят свои "национальные интернеты", другие продвигают идеи цифровой глобализации 2.0 — с новыми правилами игры и честной конкуренцией. А инженерам стоит внимательно следить за регуляторикой и готовиться к новым сценариям развертывания инфраструктуры. И да, учить китайский — никогда не знаешь, где придется поднимать следующий кластер.
Ваня на своем канале «Деплой» рассуждает на туже тему, и делает это очень мощно. В его фирменном стиле он раскладывает тему приземления данных по полочкам. Очень грамотный пост.
Telegram
Деплой
Здесь дополнительный контент с видосов, рефлексия на IT-сферу и просто наши мысли.
Клуб Деплой++: https://boosty.to/in.office
О нас: https://clck.ru/3HYpHS
Комментарии: @dev_yttg_chat
В канал пишет: @StressoID
Реклама: @deploymarina
Клуб Деплой++: https://boosty.to/in.office
О нас: https://clck.ru/3HYpHS
Комментарии: @dev_yttg_chat
В канал пишет: @StressoID
Реклама: @deploymarina
❤1😁1💯1