DevOps 👨🏼‍💻 Інженер
507 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
🔥4👍1
Для участі в розіграші Telegram Premium підпишись на канал і приймай участь вище. 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Яка файлова структура у Linux(UNIX) систем, що розташовані в /etc, /dev, /proc, /var директоріях?
Питання по Лінуксу зі співбесіди.

/etc - директорія для конфігураційних файлів системи.
Наприклад:
Файл /ets/passwd - налаштування користувачів системи.
За допомогою файлу /etc/hosts можна підправити DNS записи, це корисно для локального тестування.
А nginx-конфіги зачасту можна знайти у директорії /etc/ngnix/.

/dev - директорія для файлів пристроїв.
Наприклад:
/dev/sda — файл пристрою, який представляє перший жорсткий диск у системі.
/dev/null — спеціальний файл, що виконує роль "чорної діри", до якої можна спрямовувати непотрібні дані.

/proc - директорія відображення інформації про процеси та стан ядра.
Прикольна особливість Лінуксових систем, що вони дозволяють зчитувати інформацію про стан системи із файлів.
Команда cat /proc/cpuinfo виведе інформацію про процесор.

/var - директорія для змінних файлів.
Містить файли, що змінюються під час роботи системи. Наприклад, тут зберігаються логи - /var/log

#linux

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4🔥21
Що таке Terraform 🖼️?

Якщо ми хочемо взаємодіяти з ресурсами у хмарі (AWS 🖼️, GCP 🏛, Azure 🖼️), ми йдемо у UI або використовуємо CLI (тут ще 1000 таких або) АБО використовуємо Terraform. Тобто, Terraform це ще 1 надстройка над API хмари, як і її CLI, UI ну або, наприклад, Python ліба.

Terraform має багато власних плюшок - одна із них це state менеджмент, що потрібна для відстежування стану ресурсів у хмарі упродовж всього їх існування.
Наприклад, ми, за допомогою Terraform, створили машину розміром medium і через деякий час вирішили зекономити і зменшити її розмір на small. Ми вносимо цю зміну у конфігурацію і Terraform не стане видаляти стару машину і піднімати меншу. У своєму state він вже закріпив цю машину за її унікальним ID і тепер просто зменшить її розмір, відобразивши заплановані зміни на екрані)

Terraform - мій найулюбленіший DevOps-інструмент, оскільки при своїй простоті, він має ряд корисних властивостей, які я в тому числі буду описувати на цьому каналі. Базове розуміння цієї тули пришвидшить процес розробки, який включає в себе створення хмарної інфраструктури.

#terraform

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
932🔥1
Що таке Terraform provider?
Питання по Тераформу зі співбесіди.

У попередньому пості ми розглянули Terraform, як інструмент взаємодії із хмарами. Але насправді Terraform може взаємодіяти із будь-якою APIшкою. Деякі ентузіасти, наприклад, замовляють собі через нього піцу) Звісно є купа більш юзабельних прикладів.

В цьому сценарії Terraform провайдер виступає цим "мостом" між Terraform конфігурацією і бажаною API. Написати свій провайдер можна на Golang, а провайдери вищеописаних хмар - це потужні рішення, які зазавичай менеджить команда самого Terraform. Кожен провайдер включає ряд описаних ресурсів і дата сурсів для використання у конфігураціях, суть яких ми розглянемо пізніше.

#terraform

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
822👍1🔥1
Як підняти аплікейшн у контейнері? 🖼️

Під час роботи ми часто потребуємо програму "на пару раз". От нам раз на два місяці захотілось підключатись до бази через UI інтерфейс або для локальних тестів підняти MySQL базу. В мене таких прикладів регулярно до пʼяти на місяць.
Оскільки такі речі є разовими, я не люблю встановлювати і зберігати ці програми у себе на компʼютері, вважаю що можна зробити простіше та зручніше - підіймати ці програми у контейнерах. Для цього достатньо встановити одну утиліту - Docker.

Розглянемо на прикладі: потрібно підняти локально MySQL, щоб підключитись до неї і протестувати програму. Можна почати гуглити install mysql linux... АБО написати наступне у своєму терміналі

docker run --name='mysqlcontainer' -d -p 127.0.0.1:3306:3306 mysql/mysql-server

Тепер сервер доступний за адресою localhost:3306

Я вважаю цей метод більш зручним бо:
1) Легко вказати версію апки за допогою імейдж-тагу mysql/mysql-server:8.0
2) Не треба паритись: як встановити, включити і, за потреби, видалити програму. Достатньо видалити контейнер.
3) Універсальність рішення на більшості систем.

#docker

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1652
Яка різниця між Terraform resource та data source?
Питання по Тераформу 🖼️ зі співбесіди.

Створюючи Terraform конфігурацію, ми підключаємо до неї усі необхідні провайдери, наприклад "aws", "google" або "kubernetes". Кожен такий провайдер описує ряд ресурсів і дата сурсів для використання у конфігурації.

Найбільш поширеним є блок resource. Це обʼєкт у конфігурації, що дозволяє стоврювати, змінювати, відстежувати та видаляти віддаленний ресурс (GET, PUT, DELETE...) - в залежності від провайдеру це може бути екземпляр бази даних, kubernetes pod або юзер. В шапці блоку зазначається назва ресурсу, а в його тілі описуються відповідні характеристики наступним чином:


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


Data source відрізняється від resource тим, що для такого обʼєкту Terraform може застосовувати виключно операцію читання (GET). Це корисно у випадках, коли нам не підвласно створення ресурсу, але необхідно посилатись на нього у конфігурації. Наприклад, це може бути загальнодоступний знімок ОС або ресурс, створений іншим ресурсом.


data "aws_ami" "web" {
filter {
name = "tag:Component"
values = ["web"]
}
most_recent = true
}

resource "aws_instance" "web" {
ami = data.aws_ami.web.id
instance_type = "t2.micro"
}


#terraform

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍32
This media is not supported in your browser
VIEW IN TELEGRAM
Що таке AWS 🖼️ і як підняти свій перший EC2 інстанс?

AWS - це набір хмарних сервісів, що надають розробникам інструменти для розгортання і масштабування власних додатків. Одним із базових AWS сервісів є EC2 🖼️.

Цей сервіс дозволяє створювати віртуальні машини різного розміру із по-хвилинною оплатою.

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

Після тестування не забудьте видалити інстанс у вкладці Instances і за наявності диск у вкладці Volumes.

#aws

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍44
Як автоматично виконувати скрипти у заданий час? 🐧

Crontab - це утиліта, яка дозволяє планувати такі завдання. Це може знадобитись для автоматизації бекапів, модифікації бази даних та менеджменту логів.

Для початку достатньо прописати наступну команду і обрати бажаний текстовий редактор:
crontab -e

У кінці відкритого файлу необхідно написати інструкції на регулярне виконання скриптів у наступному форматі:
minute hour day-of-month month day-of-week command
30 17 * * 1 /path/to/command


Корисні ресурси:
crontab.guru - зручний онлайн-редактор розкладу формату cron
cronitor.io - моніторінг для crontab. Працює шляхом встановлення додаткової утиліти на машину.

#linux

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
122👍1🔥1
GitHub 📱 приліг, хай поправляється.
https://www.githubstatus.com
UPD. Кажуть, що починились.

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
41
This media is not supported in the widget
VIEW IN TELEGRAM
18🔥21
Для участі в розіграші трьох Telegram Premium підпишись на канал і приймай участь вище. 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Як створити користувача в AWS 🖼️?

Root-юзер - супер-адмін аккаунту, у якому ви знаходитесь після реєстрації в AWS. Моя рекомендація - не використовувати його повсякденно, а краще взагалі. Підключити MFA, зробити дії описані нижче і забути про нього.
Паролі не забувати, а покласти в "тумбочку", щоб після реєстрації на AWS, там хоч шось було. 😄

Які альтернативи?
На власному акаунті - створити IAM 🖼️ юзера. IAM - це один із сервісів AWS, що дозволяє менеджити доступ у хмарі.
Оскільки аккаунт наш - то можна видати полісі AdministratorAccess. Використання такого юзера - набагато безпечніше. До нього також треба піключити MFA.

На акаунті "не власному", я б із самого початку радив дивитись у бік AWS Identity Center, це тутешнє SSO і "бест практіс" Амазону. Його ми розглянемо пізніше.

#aws

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3👍2
Вітаю, останнім часом роздумую про контент на цьому каналі. Як його зробити найбільш корисним і цікавим вам і мені. Щоб більше розуміти картину, попрошу відповісти на опитування нижче. 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥1
Що таке Infrastructure as Code (IaC)?

Реалізація проекту потребує розгортання багатьох компонентів - мережа, сервери, бази даних... і купа іншого. І непогано було б це все якось "трекати", вести облік бажаних ресурсів.

IaC — це спосіб управління хмарною інфраструктурою використвуючи код.
Навіщо мені це?
1) Автоматичне розгортання ресурсів, описаних у коді
2) Можливість швидкого розгортання інфраструктури у різних середовищах одного типу (різні AWS аккаунти/регіони, k8s кластери)
3) Єдина точка правди. Ми маємо репозиторій 💻, де описується вся інфраструктура проєкту, будь які відхилення від коду, мають бути виправлені.
4) Версіонування 💻 інфраструктури, можливість відкатитися на "вчорашню" конфігурацію.

Реалізуючи проєкт "вручну", легко забути про якусь машину або видані доступа. Написавши їх через код, ми завжди будемо трекати їх статус і, за необхідності, видалимо при міграції.

Надалі ми розглянемо декілька різних за своїм принципом рішень, знайомлячись із CI/CD та GitOps, тож слідкуйте.

#terraform

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