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

DevOps нормальними словами - від Docker до RAG.
Пояснюю складне просто. Для тих, хто росте в IT.
Download Telegram
This media is not supported in the widget
VIEW IN TELEGRAM
18🔥6👍2
Привіт, новий розіграш трьох 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