DevOps 👨🏼‍💻 Інженер
506 subscribers
30 photos
6 videos
58 links
Контакт: @yevvhen

DevOps нормальними словами - від Docker до RAG.
Пояснюю складне просто. Для тих, хто росте в IT.
Download Telegram
Привіт, новий розіграш трьох Telegram Premium (на 3 місяці)💲. Для участі треба підписатись на цей канал.
Дякую всім хто слідкує, сподіваюсь цей контент приносить користь у роботі або розумінні сфери в цілому. Реакції 👍, коменти 💬 та активні дискусії 💬 - краща мотивація для написання постів.

Всім гарних вихідних) 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
33👍143
DevOps 👨🏼‍💻 Інженер pinned «Привіт, новий розіграш трьох Telegram Premium (на 3 місяці)💲. Для участі треба підписатись на цей канал. Дякую всім хто слідкує, сподіваюсь цей контент приносить користь у роботі або розумінні сфери в цілому. Реакції 👍, коменти 💬 та активні дискусії 💬 - краща…»
Змінні у Terraform, як і коли використовувати?

Не дивно, що змінні - це іменовані комірки для даних.
Коли їх використовувати?🤔 Уяви, що твій Terraform-код має підлаштовуватись під декілька інфраструктур різного розміру та призначення. У випадку EC2 машини, в змінні краще винести розмір, а, наприклад, AMI зачасту може бути статичним.

👨‍💻 Приклад:
variable "instance_type" {
type = string
default = "t2.micro"
}

resource "aws_instance" "web" {
ami = "ami-a1b2c3d4"
instance_type = var.instance_type
}


Відноситись до змінних варто, як до аргументів функції у програмуванні. Це все тому, що ми пізніше навичимось ділити наш код на модулі, де змінні і виступатимуть такими "аргументами".

#terraform
DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5🔥1
📞 Гарно почати ранок - це виставити правильний мікрофон перед дейліком.
DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
😁99👍2
DevOps 👨🏼‍💻 Інженер
This media is not supported in the widget
VIEW IN TELEGRAM
73👍3
Так, трохи підзабив 🏖️, тож реабілітуюсь 🏋️‍♀️ розбираємось у відмінностях declarative та imperative підходів.

Declarative та Imperative - два підходи до написання коду (конфігурацій). Щоб зрозуміти із яким типом ви працюєте зараз, задайте собі питання:
Я зараз описую що саме повинна зробити программа (її output, declarative), чи яким чином діяти програмі (увесь process, imperative), щоб задовільнити мою потребу?


Наприклад: bash-скрипт - то imperative, бо ми кажемо нашому скрипту:
Спочатку сходи туди, перевір те і запусти інше

А от Terraform - це чистий declarative. Ми йому кажем:
Ось список бажаних ресурсів, і вже ти мені їх створиш, модифікуєш чи видалиш, коли я цього захочу

В цьому випадку весь Imperative реалізували розробники Terraform та його провайдерів 😉

#terraform
DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥1
На черзі повторення 🧑‍🎓. Яка Unix-тула дозволяє планувати виконання скриптів за розкладом?
Anonymous Quiz
10%
🚽timeline
77%
🤑cron
7%
🛁sched
6%
🛍runtab
12
Vertical та Horizontal scaling 🗣️

Навіщо інтернет магазину тримати одну кількість активних серверів вночі та на чорну п'ятницю? Саме для цього важливо притримуватись принципу масштабованості.

Вертикальне масштабування (Scaling Up) - це збільшення розміру вже існуючого сервера. Тобто додавання RAM або CPU та інше.
Горизонтальне масштабування (Scaling Out) - це додавання нових серверів до системи для розподілу навантаження між ними.
Я асоціюю ці поняття із містом та селищем - в місті будують місткі хмарочоси🏙 (вертикальне), а в селищі маленькі хатки🏡 (горизонтальне).

Надалі розглянемо як пов'язана тема масштабування із типом аплікейшену (Stateful або Stateless [пост про різницю цих понять])

#cloud #aws
DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍82
Давно не бачились 😊
Поки я собі придумую подальші пости, ось мій досвід переїзду на k9s, тулу що візуалізує k8s кластер.
Навіщо це треба? Підвищити продуктивність під час роботи із куб-кластерами.
В цілому прога 8/10. Все працює швидко, класні хоткеї, переключення між кластерами, фільтри - все супер. Але мені не сподобалась документація проєкту і робота з логами контейнерів. Логи, як на мене, виглядають дуже нестабільно.
Але 100% раджу спробувати, тим паче якщо використовуєте аналоги. Тут взаємодія із кластером без мишки, кастомні dotfiles, TUI та інше.

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116
Дійшли руки до власної homelab. 🧑‍🎓

Під homelab я маю на увазі створений в домашніх умовах k8s кластер із 1+ нодою. В моєму випадку нодою виступає старий, але дуже вірний, ThinkPad X250. Він, та трохи мережевого обладнання, використовують маленький EcoFlow як ДБЖ. Так - оверкіл, але чому ні, k8s тут теж оверкіл. 🤓
Для мене це щось нове - біганина від столу до шафи 10 разів на годину, бо чомусь не працює SSH або не резолвиться DNS сервера.

P.s. Пости у більш звичному цьому каналу форматі будуть продовжуватись в тому ж темпі. Жартую, реально будуть. 😄
P.P.s. Ось як це компактно розмітилось у шафі.

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍6🔥2😁1
Ви знали, що "-p 80:80" у Docker, за замовчуванням, прив'язує порт до "-p 0.0.0.0:80:80"?
Це означає, що порт контейнера відкритий для всіх мережевих інтерфейсів, які можуть до нього достучатись (пристрої локальної мережі). Нещодавно я протестив це в кав'ярні і зміг отримати доступ до порта з іншого пристрою 😕.

Що ще гірше, це може пройти повз ufw (firewall). Найпростіше рішення - відкривати порти таким чином: -p "127.0.0.1:80:80". Також, припускаю, що це може бути пофікшено на стороні мережі, щоб пристрої не могли спілкуватися один з одним напряму 🔒.

📌Як підняти Docker-контейнер локально?
📎
Як написати Dockerfile?

DevOps Інженер 👨🏼‍💻
15👍4
Спостерігаються проблеми із пулом імейджів з DockerHub. Як колись казав, нашвидший метод дізнатись, що проблема не локальна - reddit. Ну і звичайно статус пейджа самого сервісу, але там, зазвичай інфа зʼявляється пізніше.

📌Як і де зберігати Docker-імейджі (альтернативи DockerHub)?

DevOps Інженер 👨🏼‍💻
111
This media is not supported in the widget
VIEW IN TELEGRAM
16
Ну і за традицією, розіграш ТГ-Преміумів 🎁 для підписників. Всім дякую, хто слідкує. Бажаю спокійного і продуктивного року.

Також всіх запрошую до чату каналу 💬. Бачу, що серед слідкуючих є як досвідчені, так і початківці. Тому це може стати гарним місцем для обміну досвідом. Вітаються як загальні питання так і окремі кейси.
Please open Telegram to view this post
VIEW IN TELEGRAM
111
Головна новина за рік відсутності на каналі. 🎆

GCP нарешті релізнули нативну темну тему. Мені здалося якщо вони наважились це зробити, я просто не міг не наважитись запостити про це 😄. Далі більше!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍128
Не про ДевОпс. 🚽

Не маючи на меті будувати культ продуктивності, а бажаючи спокійно проводити вихідні, практикую таку просту фішку. Ввечері пʼятниці записую 2-5 екшен айтеми, що робитиму в першу чергу на ранок понеділку. 🧑‍🎓

1. Написати першому;
2. Поздвонити другому;
3. Уточнити в третього;
4. Не забути пофіксити четверте.

Особливий кайф ловлю від того, що сам то почав робити, а не десь прочитав, але сподіваюсь комусь така схема теж стане в нагоді. В моєму випадку це знімає думки про таски і блокери на вихідних, бо мозок розуміє, що план дій вже є і достатньо його дотриматись. Вважаю, що фішка ефективна, бо результат відчуваєш вже на наступний день (суботу), а не як з довлготривалими трекерами/планнерами.

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1231
Перший реквест до self-hosted AI моделі 💬

Використовуючи GenAI щодня, досі не доходили руки захостити якусь модель локально. А зробити це насправді не так і складно. Ось дуже базовий приклад як можна зробити перший запит до локальної моделі:
docker run -d --rm --name ollama -p 11434:11434 ollama/ollama && \
sleep 3 && \
docker exec ollama ollama pull llama3.2:1b && \
curl -s http://localhost:11434/api/generate \
-H 'Content-Type: application/json' \
-d '{
"model": "llama3.2:1b",
"prompt": "Explain what a Kubernetes operator does in 3 sentences.",
"stream": false
}' | jq -r '.response' && \
docker stop ollama >/dev/null


Після цього Docker підніме runtime image ollama/ollama, вже в ньому завантажить модель llama3.2:1b і зробить до неї запит.
Під час тестувань помітив, що відповіді українською доволі обмежені, певно через те що використовується невелика модель, здатна працювати на звичайних пристроях.
Будь-які виправлення, пропозиції і обговорення - велком.

Корисні лінки:
Як і навіщо піднімати аплікейшн у контейнері? 🖼️
DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Персональний помічник в контейнері 👨‍💻

Нещодавно натрапив на NanoClaw. Це такий собі lightweight-варіант Claw із більш просунутою ізоляцією завдяки використанню контейнерів. Важливо відмітити що контейнери використовуються тільки для agent execution layer, тобто для виконання AI логіки. "Контрол плейн" NanoClaw - це звичайний Node.js процес на вашому ПК.
Але мене більше зацікавило інше - NanoClaw це AI тула, що розрахована на керування власним функціоналом за допомогою AI. Спуливши репку у вас буде тільки core-функціонал, який ви зможете розширювати шляхом промптів в Claude Code, будуючи свого унікального помічника. Тобто експлоіт на вашому ПК, код якого ви не будете перевіряти. Але насправді концепція відчувається, як щось із майбутнього, як щось, куди це все має прийти.

Для використання необхідний Claude Code💬. Хоча інструмент і дає більшу ізоляцію, я б його не ризикнув запускати у власній мережі на постійній основі, можливо поки що.

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2