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

DevOps нормальними словами - від Docker до RAG.
Пояснюю складне просто. Для тих, хто росте в IT.
Download Telegram
Встанови Linux! 🖼️
Ось причини, чому варто спробувати:

Зручна консолька 🖼️
В першу чергу це потужний інструмент для автоматизації різних задач (написання bash-скриптів) та ефективної роботи з файловою системою (cd ~/project; code . - це зручніше, ніж клікати у Провіднику).

Зовнішній вигляд 🎆
Linux пропонує багато варіантів робочих середовищ, які можна налаштувати відповідно власних потреб і вподобань. Ви можете обрати будь-яке з безлічі середовищ, як-от GNOME, KDE, XFCE тощо. Є Reddit-спільнота на позалипати.

Керовані оновлення 🖼️
В Linux ви самі контролюєте процес оновлення системи, що дозволяє уникнути небажаних оновлень і забезпечити стабільність роботи)

Абсолютна більшість серваків використовує Linux

Раджу для початку знайти недорогий ноутбук для експериментів. Це допоможе уникнути можливих проблем з основним комп’ютером та дасть змогу безпечно навчатися новим технологіям. В мене колись був старенький Thinkpad на i3, цього більш ніж достатньо.

Не бійтеся пробувати нове! Базові знання Linux корисні як для DevOps інженерів, так і для багатьох програмістів. Це база.

#linux

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
61
В догонку до попереднього поста, на медіумі непоганий пост із напевно самими корисними Linux-командами та їх комбінаціями. Це топ серед команд як на локальному пк, так і на сервері. Від себе додам важливість освоїти CTRL + R (пошук по історії команд). За частиною тексту команди можна її запустити в пару кліків, дуже економить час. 👍

#linux

DevOps Інженер 👨🏼‍💻
4👍2
Ubuntu 💻 - абсолютний фоварит серед дистрибутивів GNU/Linux. Він дУУУже популярний. Використовується як на користувальниських ПК, так і на серверах. Він простий і, на мою думку, найкраще підходить для знаймоства із Linux.

Також можна відзначити дистрибутиви: Fedora 🐧, Debian 🐧 та Linux Mint 🐧.

#linux

DevOps Інженер 👨🏼‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
43🔥1
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