UndeRcode 2.0 - DevOps/AI
698 subscribers
363 photos
84 videos
7 files
329 links
DevOps, AI, IT - все самое интересное

По всем вопросам: https://xn--r1a.website/Fam1nor
Download Telegram
Ловите 100+ опенсорс клонов популярных сервисов, собранных в одном месте — Clone Wars.

Внутри есть все: от Notion и Spotify до YouTube и TikTok. Можно изучить архитектуру, используемые технологии, стащить идею для пет-проекта или просто понять, как устроены продукты мирового уровня.

Сохраняем 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👀1
Дорогие подписчики!
Мы берем короткую творческую паузу, чтобы тщательно продумать будущее канала. Мы хотим не просто публиковать посты, а создавать по-настоящему качественный и полезный для вас контент

Сейчас анализируем статистику, изучаем тренды и думаем над новым форматом, который позволит нам расти вместе с вами

Оставайтесь с нами-впереди много интересного! Следите за анонсами
2🤝83🙏21
Всем привет, группа UnderCode 2.0 возвращается 06.11.
- Теперь в группе будет упор только на DevOps для новичков - 80% контента
- 10% про AI и другие 10% это новости и обзоры
- В группе будут экспертные статьи, разборы разных кейсов (практических), инцидентов
- Мини-курс для подписчиков, раз в неделю будет выходить статья по курсу с практикой, сделаем отдельный чат обсуждения практических работ, выходить начнет с 20.11,но чат появится до 9.11
🔥13👍3🗿21
☸️ kubectl алиасы: как сэкономить время и не сойти с ума

Если ты работаешь с Kubernetes, ты наверняка уже понял, что команда kubectl любит длинные конструкции.
Каждый раз писать
kubectl get pods -n kube-system

удовольствие так себе.

Чтобы не тратить время, можно создать алиасы короткие команды, которые делают то же самое.

🧩 Простой пример

Вместо:

kubectl get pods -n kube-system



Можно написать алиас:

alias kgp="kubectl get pods"



Теперь просто вводишь:

kgp



и видишь список подов.
Красота.

📦 Полезные алиасы для повседневной работы
alias k="kubectl"
alias kgp="kubectl get pods"
alias kgs="kubectl get svc"
alias kgn="kubectl get nodes"
alias kaf="kubectl apply -f"
alias kdf="kubectl delete -f"
alias kctx="kubectl config use-context"
alias kns="kubectl config set-context --current --namespace"


Теперь, например, вместо:
kubectl apply -f deployment.yaml


ты пишешь:
kaf deployment.yaml


🛠 Как добавить алиасы навсегда

Алиасы можно прописать в ~/.bashrc или ~/.zshrc:
nano ~/.bashrc


Добавь туда все нужные строки с alias и сохрани.
Затем обнови сессию:
source ~/.bashrc


Теперь они будут работать всегда, даже после перезагрузки.

🔥 Бонус: готовый алиас-файл

Готовый alias-файл на GitHub

Можно просто скачать и подключить:

curl -s https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases -o ~/.kubectl_aliases


source ~/.kubectl_aliases


После этого у тебя появятся сотни полезных коротких команд вроде kgp, kdp, kga и других.

💡 Итог

Алиасы - мелочь, но экономят часы времени на вводе постоянных 3ех метровых команд :).
Если работаешь с Kubernetes каждый день - настрой один раз и забудь про длинные команды.

#DevOps #K8s #Beginer #Tips
👍9🔥5
Всем привет, выхожу на связь. В связи с высокой нагрузкой запланированное не получилось. Следующая неделя должна быть последняя с высокой нагрузкой и активно начну пилить контент, прошу прощения.
Хочу делать интересные и качественные статьи, на них уходит много времени, а сейчас его попросту нет 🥲
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝12
Что на самом деле делает DevOps, а не как пишут во многих вакансиях

Если читать вакансии, DevOps это человек, который:
1️⃣Настраивает CI/CD
2️⃣Работает с Kubernetes
3️⃣Пишет Terraform
4️⃣Чинит серверы
5️⃣Дежурит ночью
и этот список можно продолжать практически до бесконечности. Не дохера ли всего делает 1 человек?

Звучит как суперспециалист. В реальности все проще и сложнее одновременно.

DevOps это не отдельная профессия. Это роль в команде. Хотя если быть прям на 100% честным это вообще Философия (можете почитать про это отдельно) в РФ и СНГ сложилось устоявшееся мнение DevOps-инженер, тут я придерживаюсь именно этой парадигмы. 😑

Если совсем просто:
DevOps отвечает за то, чтобы изменения в программе доходили до конечных пользователей продуктом. В наше время каждый занимается четко своим делом (в идеальном мире, да-да) разработчик разрабатывает, DevOps деплоит, тестировщик все ломает (шутка)

1️⃣Изменения это новый код.
2️⃣Момент, когда код уже работает для пользователей и генерирует полезную нагрузку, называется продакшен. Часто говорят просто прод. (Для тех кто не знал, что называют Продом)
3️⃣Про Деплой будет ниже, не бойтесь :)

Что DevOps делает на самом деле, DevOps в первую очередь следит за процессом.

1. Как изменения попадают к пользователям

Разработчик написал код.
Его нужно:
собрать
проверить
запустить на серверах

Этот процесс называется деплой.
Если деплой ручной и каждый раз разный, начинаются проблемы.

DevOps делает так, чтобы деплой был:
повторяемым
предсказуемым
без ручных действий

2. Как система работает после запуска

Когда программа уже запущена, важно понимать:
она вообще работает или нет, не тормозит ли не упала ли часть системы после внесения изменений в софт и так далее. (там все сложнее)

Для этого используют:
логи это записи о работе программы
метрики это цифры о нагрузке и состоянии
алерты это уведомления о проблемах

DevOps настраивает все это. Чтобы о проблеме узнавали быстро, а не от клиента или руководства.

3. Что будет если что то сломается

Любая система ломается.
Вопрос не если, а когда.

DevOps думает заранее:
что сломается первым
как быстро восстановить работу
кто получит уведомление
что делать по шагам

Это и есть инженерное мышление.

Чего DevOps обычно не делает

Но от него часто этого ждут.

DevOps обычно:
не пишет бизнес код
не заменяет разработчиков
не чинит все в одиночку
не обязан знать все технологии мира

Если в вакансии требуют все подряд, это не DevOps. Это признак хаоса в компании.

Почему DevOps часто крайний

DevOps находится между:
разработчиками
серверами
бизнесом

Если что то не работает:
Разработчики говорят: "Локально у нас все работало, задеплоили не дев и тест, там тоже ок, на проде чет свалилось, мы не знаем"
Бизнес спрашивает: "Почему простой и когда проблема будет устранена?"

И отвечать приходится DevOps. Не потому что мы виноваты или из-за нас что-то упало(такое тоже может быть, человеческий фактор еще никто не отменял). А потому что он видит всю картину.👀

Что важно понять новичку кто хочет погрузить в этот дивный и чудный мир:

DevOps это не набор инструментов. Это образ мышления, по другому и не скажешь. DevOps не только должен уметь думать как инженер, но еще и уметь разговаривать и доносить между командами правильно информацию, объяснять бизнесу простым языком сложные технические вещи и почему очередная "мудрая" вещь очередного "мудрого" Манагера полная хуита и не будет работать.

А так же, всегда должен уметь задавать вопросы себе, внутри команды, архитекторам и так далее при внедрение что либо нового в процесс.
как это будет работать у пользователей (если их это касается)
что будет если упадет (наша новая IMBA фича)
как мы узнаем о проблеме(хреново если с вертухи от Руководства)
как быстро восстановимся(Бекапы да, помним все про бекапы?)

Если есть это мышление, инструменты придут сами.

Что должен уметь DevOps
Разрабатывать и упрощать процессы
Делать систему стабильной
Помогать команде работать спокойно(пожалуй и очень часто для многих это самое сложное, а иногда это еще и самое важное)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝8🔥7👍3
Продолжение следует...
🤝2🤨1
Что должен уметь DevOps-новичок, чтобы не вылететь с испытательного 🤡

Короче, реальность такая: В вакансиях пишут 100500 стеков, а на деле тебя смотрят на живость мозга, ответственность и умение не срать под себя.

Вот что реально важно, а не то, что в требованиях.

📌 Не стек, а ожидания

Ты можешь не шарить в Kubernetes как бог, но если ты:

- понимаешь, зачем нужен деплой
- понимаешь, как работает CI/CD на базовом уровне
- можешь объяснить, что делает сервис простыми словами
- можешь разобраться в чужом коде или конфиге, прочитать документацию
- умеешь и не стесняешься задавать интересные, сложные вопросы

- это уже огромное преимущество.

Никто не ждет, что ты будешь экспертом во всём за 1 день.
Но реакция на проблему и способ мышления - это то, на что реально смотрят.

🗣 Коммуникация — это то, что цепляют в первую очередь

Звучит, как будто это про «Красиво говорить..».
Нет.

Это про то, чтобы ты мог:

- нормально объяснить, что случилось
- сказать «я не знаю, но сейчас разберусь»
- задать правильный вопрос, а не молчать
- донести до разработчика/бизнеса, свою идею, а так же отстаивать здравые идеи и не идти у всех на поводу (например объяснить почему деплой в пятницу идея говна кусок)
тебе очевидно, а они могут этого не понимать, им главное выкатить свежую фичу побыстрее..

Если ты тупишь, не изучаешь ничего и молчишь как рыба - прощай, испытательный.

✍️ Ответственность и документация

Тут всё просто:

- сломал - опиши, как починил
- накатил - запиши, как работает
- решил задачу - оставь след, чтобы другие могли повторить

Документация - не для галочки.
Она твоя страховка, когда что-то отваливается и все бегут с вопросами.

⚠️ Типичные причины увольнений

И вот за что реально сливают новичков:

🔥 игнорирование сообщений, тикетов, алертов
🔥 молчание, когда что-то сломалось
🔥 «Спорить и говорить я так всегда делал» вместо «Подумать и понять почему так делать плохо»
🔥 отказ читать логи/метрики, забить на мониторинг и надеется что сервис никогда не сдохнет..
🔥 недоразумения с командой из-за отсутствия коммуникации

Короче, если ты работаешь как скрипт - тебя выкинут.
Нужен живой инженер, который умеет думать, общаться и не боится ответственности.

🧠 Итог для тех, кто хочет остаться

DevOps это не про “настроил стек - и поехали”.
Это про:

✔️ думать как инженер
✔️ объяснять простыми словами сложное
✔️ брать ответственность
✔️ оставлять после себя след (документация)
✔️ не срать под себя, когда всё горит (стрессоустойчивость, кто не понял)

Если освоишь это - стек подтянется, проблемы станут задачами, а не ужасом.

#DevOps #UnderCode #Испытательный #IT #Начинающий
👍8🔥2💯2
Почему знание Kubernetes без Linux почти бесполезно 🤬

Ты можешь заучить все сущности k8s, понять Deploy/Service/Ingress, собрать Helm-чарты и всё равно в проде будешь ощущать себя как при попытке собрать шкаф без инструкции.

Почему?
Потому что Kubernetes это не отдельная магия, он построен на Linux. И если ты не шаришь за Linux K8s для тебя будет как дорогой автомобиль без двигателя.

Kubernetes - это обёртка над Linux 🐧

Под капотом K8s делает не какую-то особую магию.
Он просто рулит механизмами Linux, которые реально делают контейнеры возможными:

— Механизмы изоляции (namespaces) отделяют процессы друг от друга и дают каждому Pod свой процессный мир.

— Контроль ресурсов (cgroups) следит за CPU, памятью, диском чтобы один Pod не сожрал все доступные ресурсы.

— Сети, файловые системы и безопасность это всё Linux под капотом, а Kubernetes просто командует, как это использовать.


Именно поэтому в профессиональном мире часто говорят:

Kubernetes это просто Linux - но организованный и упакованный.

Без знаний Linux K8s выглядит как «чёрный ящик»

Вот что реально будет происходить, если ты игнорируешь изучение Linux:

Ты напишешь Pod манифест, он упадёт, а ты будешь тыкать kubectl logs и describe как попугай по кругу.
Но почему этот Pod упал?
Почему OOM-киллер его убил?
Почему kubelet не стартует?
Почему сеть не работает?

Ответы на эти вопросы лежат не в Kubernetes, а в том, как ядро Linux изолирует процессы и управляет ресурсами.

Где Kubernetes заканчивается, а Linux начинается

Kubernetes берет то, что есть в Linux, и организует это в кластер:

🔹 namespaces = изоляция процессов, сети и файловой системы, без которой контейнеры вообще были бы невозможны.

🔹 cgroups = реальное управление ресурсами для каждого контейнера.

🔹 OverlayFS (или иной слоистый FS) = механизм, на котором базируются контейнерные образы.

🔹 сетевые правила (iptables/nftables) = как пакеты текут внутрь и вне Pod-ов.


Без понимания этих штук Kubernetes просто магия, и ты будешь бесконечно дебажить:

“Почему у меня сеть не работает?”
“Почему контейнер съел всю память?”
“Почему kubelet упал?”

— потому что всё это Linux и его механизмы работы процессов, а не просто YAML-файлы.

Что учить в Linux, чтобы реально шарить в K8s

Не нужно становиться Linux-гуру за пару недель. Но эти темы точно должны быть в твоём базовом наборе:

Процессы и namespace
— понимать PID, как Linux изолирует процессы, откуда берется PID 1 в контейнере.


Ресурсы и cgroups
— зачем вообще limits/requests и как ядро на самом деле ограничивает CPU/память.


Сеть Linux
— как работает сеть на уровне узла, что такое network namespace и почему Pod-ы видят сеть по-другому.


Логи и система
— смотреть логи journalctl, понимать systemd unit файлы, видеть ошибки в kern.log и dmesg.

Немного честной правды

Kubernetes отлично автоматизирует многие вещи, но он не убирает Linux из уравнения.
Kubernetes просто автоматизирует то, что Linux уже умеет делать, и делает это в масштабе кластера.

Это значит:

✔️ ты можешь понимать YAML и Helm
✔️ но это не поможет, если ты не понимаешь, что происходит в узле под капотом

Понимание Linux переводит K8s из “черной магии” в предсказуемый инструмент, а не в рулетку для новичка.

Итог

Kubernetes это не отдельный мир.
Это обёртка над Linux, которая делает контейнеры управляемыми.

Если ты не шаришь за Linux —
ты будешь тыкать kubectl logs как слепой котёнок,
а проблемы будут повторяться, и ты будешь как белка в колесе 😅

Учишь Linux - Kubernetes перестаёт быть магией и становится инструментом под твоим контролем.

#DevOps #Linux #Kubernetes #UnderCode #ПроLinuxИK8s
🔥55👀11
В этом репозитории вы найдёте роадмап для изучения Kubernetes с нуля (от уровня новичка до продвинутого).

Внутри много ссылок на курсы, статьи, материалы по теме

Забираем на GitHub
🔥93🤗1
CS336: Language Modeling from Scratch

Ну и вдогонку ещё один курс от Стэнфорда по языковым моделям на 17+ лекций.

В отличие от CME 295, курс не концептуальный, а более практический. Студенты создают языковую модель полностью с нуля, от сбора данных до развёртывания.

CS336 более требовательный и требует писать больше кода, но как результат - что-то близкое к production level.

Начинать лучше с CME 295, это неплохая отправная точка для понимания основ Transformers и LLM

Сам курс
Плейлист с лекциями
5👍31
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл максимально залипательный способ прокачать system design и облачную архитектуруигра Server Survival

Это 3D tower defense, где вы играете за облачного архитектора: строите инфраструктуру, раскидываете файрволы, балансировщики, сторэджи, отбиваетесь от дудоса, следите за бюджетом и здоровьем сервисов.

По сути, интерактивный симулятор продакшн-нагрузки, только в формате игры 🥳

И да, проект опенсорс, код на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43😍1
Git Cheatsheet - коротко и по делу

Настройка
git config --global user.name "Name" — задать имя
git config --global user.email "email" — задать почту
git config --list — показать настройки

Старт
git init — создать репозиторий
git clone url — клонировать репо

Стейджинг и коммиты
git status — статус
git add . — добавить все изменения
git reset file — убрать из стейджа
git commit -m "msg" — коммит
git commit --amend — исправить последний коммит

Ветки
git branch — список
git branch name — создать
git checkout -b name — создать и перейти
git branch -d name — удалить

Merge и Rebase
git merge branch — слить ветку
git merge --abort — отменить
git rebase branch — перебазирование

История
git log --oneline — компактная история
git log --graph --all — граф
git diff — показать изменения

Откат
git restore file — вернуть файл
git reset --soft HEAD~1 — откатить коммит, сохранить изменения
git reset --hard HEAD~1 — откатить и удалить изменения
git clean -f — удалить лишние файлы

Удалённые репозитории
git remote -v — список
git push origin branch — запушить
git pull — получить изменения
git fetch — только забрать

Теги
git tag — список
git tag name — создать
git push origin --tags — отправить теги

Stash
git stash — сохранить изменения
git stash list — список
git stash apply — применить

Поиск и анализ
git blame file — кто менял строки
git grep "text" — поиск
git bisect — бинарный поиск бага

Продвинутое
git cherry-pick commit — взять коммит
git revert commit — отменить коммит через новый
git submodule add url — добавить сабмодуль

Полезно сохранить под рукой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3🤝2
Media is too big
VIEW IN TELEGRAM
Не мог не добавить
😁7
Всем таких HR, а не вот это все: “мы вам напишем, дайте нам пару дней” ну и так далее
👏3💯22
Дамы и господа, я через 15 минут запускаю стрим на Twitch — играю в Дотку
Давно не катал, устал, решил вспомнить молодость и немного “разгрузить голову”.

Кто хочет — залетайте, будет лампово.
В перерывах могу спокойно отвечать на вопросы по IT / DevOps (работа, стаки, собесы, Kubernetes, CI/CD — что угодно).

Ссылка на стрим: https://www.twitch.tv/faminor
Если будет желание — киньте в чат, кто откуда и чем занимаетесь, познакомимся.🤟

P/s давно не играл, супер крутой катки не увидите)
Please open Telegram to view this post
VIEW IN TELEGRAM
43
12 дашбордов для дежурных, которые успокаивают всех

В этой статье приведены примеры 12 дашбордов для Grafana, которые хорошо помогают быстро диагностировать проблему. Опыт и еще раз опыт.
👍42
Дамы и господа, я online стрим на Twitch — играю в Дотку
Давно не катал, устал, решил вспомнить молодость и немного “разгрузить голову”.

Кто хочет — залетайте, будет лампово.
В перерывах могу спокойно отвечать на вопросы по IT / DevOps (работа, стаки, собесы, Kubernetes, CI/CD — что угодно).

Ссылка на стрим: https://www.twitch.tv/faminor
Если будет желание — киньте в чат, кто откуда и чем занимаетесь, познакомимся.🤟

P/s давно не играл, супер крутой катки не увидите)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33🤗1
Заканчиваем этот год полезной тулзой для пользователей FirecrackerFireCrackManager.

Он позволяет создавать, запускать и останавливать легковесные виртуальные машины через REST API и веб-интерфейс. Проект поддерживает работу с дисками, сетями, снапшотами и образами. Подходит для сценариев, где требуется запуск большого количества VM с минимальными накладными затратами.

Написан на Go и ориентирован на автоматизацию и инфраструктурные задачи.
👍41
Хорошо, что люди выходят:) у многих будет больше шансов на подгон в новом году 🤫
😍4