🧙♂️ Leetcode Wizard
Сервіс на базі штучного інтелекту для вирішення задач на LeetCode з успіхом до 90%.
Здавалося б, це просто інструмент для вирішення задач, але ні — тепер можна глибше розібратися в рішеннях, зрозуміти суть алгоритмів і краще підготуватися до співбесід, які акцентуються на алгоритмічних задачах.
Посилання на ресурс - LeetCode Wizard🚀
Route 53🫥
Сервіс на базі штучного інтелекту для вирішення задач на LeetCode з успіхом до 90%.
Здавалося б, це просто інструмент для вирішення задач, але ні — тепер можна глибше розібратися в рішеннях, зрозуміти суть алгоритмів і краще підготуватися до співбесід, які акцентуються на алгоритмічних задачах.
Посилання на ресурс - LeetCode Wizard
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
CLI Linux
Ділюся інструментом, який допомагає зрозуміти команди командного рядка Linux. Просто вводите будь-яку команду, і Explainshell розбиває її на складові, пояснюючи кожну частину. Крутий ресурс для тих, хто хоче прокачати свої знання по роботі з командним рядком.
Посилання на ресурс - Explainshell📱
Route 53🫥
Ділюся інструментом, який допомагає зрозуміти команди командного рядка Linux. Просто вводите будь-яку команду, і Explainshell розбиває її на складові, пояснюючи кожну частину. Крутий ресурс для тих, хто хоче прокачати свої знання по роботі з командним рядком.
Посилання на ресурс - Explainshell
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Швидка верстка
Для тих, хто займається версткою і любить табуляцію, є крута шпаргалка, яка допомагає писати HTML і CSS значно швидше.
Можна замінити довгі рядки коду на короткі скорочення, які автоматично розширюються. Наприклад, замість того щоб писати
Усі корисні скорочення за посиланням — Emmet.
Route 53🫥
Для тих, хто займається версткою і любить табуляцію, є крута шпаргалка, яка допомагає писати HTML і CSS значно швидше.
Можна замінити довгі рядки коду на короткі скорочення, які автоматично розширюються. Наприклад, замість того щоб писати
<div class="container">
, достатньо ввести скорочення div.container
і натиснути Tab.Усі корисні скорочення за посиланням — Emmet.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
До речі, тут не тільки канал про класні ресурси, а і про те, як я стаю DevOps за 3 місяці. Цікаво було б вам отримувати щоденні або через день апдейти про те, що я вивчив за день і який матеріал пройшов?
Anonymous Poll
65%
Так
9%
Ні
26%
це було б ПОТУЖНО
Schedulers
Cron — це утиліта для автоматизації та планування завдань у UNIX-подібних системах. В сучасних дистрибутивах часто використовують systemd timers, які інтегруються з systemd (systemd - це головний процес у Linux, який керує запуском і роботою всіх служб і процесів системи) і надають більше гнучкості.
Що краще
Cron — простий і підходить для базових задач.
Systemd timers — краще для складних сценаріїв з інтеграцією в systemd.
Приклад планування задач
Для cron
Відкрити crontab для редагування командою (Цей файл не потрібно створювати вручну, він автоматично відкриється після команди
У відкритому файлі додайте рядок (запускає скрипт кожні 5 хвилин (*/5 — інтервал у 5 хвилин).
Збережіть файл і вийдіть з редактора.
Для systemd timers
Створюємо сервіс
Створюємо таймер
Активуємо таймер
tail
Для простих задач, як от регулярний запуск скриптів або просте планування, використовуйте cron. Якщо ж вам потрібна, інтеграція з іншими службами, точне логування або складніша автоматизація, вибирайте systemd timers.
Route 53🫥
Cron — це утиліта для автоматизації та планування завдань у UNIX-подібних системах. В сучасних дистрибутивах часто використовують systemd timers, які інтегруються з systemd (systemd - це головний процес у Linux, який керує запуском і роботою всіх служб і процесів системи) і надають більше гнучкості.
Що краще
Cron — простий і підходить для базових задач.
Systemd timers — краще для складних сценаріїв з інтеграцією в systemd.
Приклад планування задач
Для cron
Відкрити crontab для редагування командою (Цей файл не потрібно створювати вручну, він автоматично відкриється після команди
crontab -e)
crontab -e
У відкритому файлі додайте рядок (запускає скрипт кожні 5 хвилин (*/5 — інтервал у 5 хвилин).
*/5 * * * * /path/to/script.sh
Збережіть файл і вийдіть з редактора.
Для systemd timers
Створюємо сервіс
/etc/systemd/system/myscript.service
[Unit]
Description=My Script Service
[Service]
ExecStart=/path/to/script.sh
Створюємо таймер
/etc/systemd/system/myscript.timer
[Unit]
Description=Run my script every 5 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
[Install]
WantedBy=timers.target
Активуємо таймер
sudo systemctl enable --now myscript.timer
tail
Для простих задач, як от регулярний запуск скриптів або просте планування, використовуйте cron. Якщо ж вам потрібна, інтеграція з іншими службами, точне логування або складніша автоматизація, вибирайте systemd timers.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Regex
Регулярні вирази — це інструмент для пошуку, заміни та перевірки тексту. Вони корисні в програмуванні, автоматизації та аналізі даних.
Хочу поділитися ресурсом, де можна створювати, тестувати та розуміти регулярні вирази. Ресурс показує, як працюють ваші вирази, пояснює їх, і підтримує різні мови програмування.
Спробуйте тут - regex101.com
Також рекомендую статтю, яка пояснює, що таке регулярні вирази і як їх використовувати - Посилання на статтю
Route 53🫥
Регулярні вирази — це інструмент для пошуку, заміни та перевірки тексту. Вони корисні в програмуванні, автоматизації та аналізі даних.
Хочу поділитися ресурсом, де можна створювати, тестувати та розуміти регулярні вирази. Ресурс показує, як працюють ваші вирази, пояснює їх, і підтримує різні мови програмування.
Спробуйте тут - regex101.com
Також рекомендую статтю, яка пояснює, що таке регулярні вирази і як їх використовувати - Посилання на статтю
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Booting
Що відбувається, коли ви натискаєте кнопку ввімкнення комп'ютера, розглянемо процес на прикладі Linux.
Вмикаєш комп'ютер -> BIOS/UEFI прокидається і готує комп'ютер до роботи (шукає диск або флешку, звідки завантажити систему) -> GRUB вибирає ядро Linux і починає його запускати -> systemd запускає основні процеси і налаштовує систему -> запускаються налаштування для користувача (як твої улюблені команди і програми) -> комп'ютер готовий, можна входити і працювати.
Ознайомитися з більш детальним описом цього процесу можна - тут
Route 53🫥
Що відбувається, коли ви натискаєте кнопку ввімкнення комп'ютера, розглянемо процес на прикладі Linux.
Вмикаєш комп'ютер -> BIOS/UEFI прокидається і готує комп'ютер до роботи (шукає диск або флешку, звідки завантажити систему) -> GRUB вибирає ядро Linux і починає його запускати -> systemd запускає основні процеси і налаштовує систему -> запускаються налаштування для користувача (як твої улюблені команди і програми) -> комп'ютер готовий, можна входити і працювати.
Ознайомитися з більш детальним описом цього процесу можна - тут
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Архітектура Linux
Ядро (Kernel) - це основа Linux. Ядро керує всіма апаратними ресурсами, такими як процесор, пам'ять і пристрої введення/виведення. Ядро відповідає за управління процесами, пам'яттю та доступом до пристроїв.
Shell (Оболонка) - це інтерфейс, який дозволяє користувачу (нам) вводити команди та взаємодіяти з системою. Shell перекладає команди користувача в інструкції для ядра.
Є кілька видів оболонок - Bash (Bourne Again Shell), Zsh, Csh, та інші.
Файлова система - відповідає за зберігання даних на диску. У Linux є багато різних типів файлових систем (наприклад, ext4, XFS), і кожна має свої особливості. Важливі директорії
-
-
-
-
-
Системні бібліотеки - це по суті набір функцій, які програми використовують для доступу до можливостей ядра. Найпопулярніша - GNU C Library (glibc).
Демони (Daemons) - це фонові процеси, що виконують різні завдання, до прикладу мережеве обслуговування або управління принтерами. Вони завантажуються при запуску системи і працюють у фоні.
Утиліти - програми для виконання різних завдань (копіювання файлів, редагування тексту). Вони дозволяють виконувати щоденні операції у системі.
Приклади утиліт -
Все це працює разом, і забезпечує роботу Linux.
tail
Тепер ви знаєте, що відповідати на співбесіді, якщо у вас запитають - “Розкажіть про основні компоненти архітектури Linux та їх роль у системі.”
Route 53🫥
Ядро (Kernel) - це основа Linux. Ядро керує всіма апаратними ресурсами, такими як процесор, пам'ять і пристрої введення/виведення. Ядро відповідає за управління процесами, пам'яттю та доступом до пристроїв.
Shell (Оболонка) - це інтерфейс, який дозволяє користувачу (нам) вводити команди та взаємодіяти з системою. Shell перекладає команди користувача в інструкції для ядра.
Є кілька видів оболонок - Bash (Bourne Again Shell), Zsh, Csh, та інші.
Файлова система - відповідає за зберігання даних на диску. У Linux є багато різних типів файлових систем (наприклад, ext4, XFS), і кожна має свої особливості. Важливі директорії
-
/etc
конфігураційні файли системи.-
/bin
та /usr/bin
системні бінарні файли та програми.-
/var
змінні файли, наприклад, журнали і кеші.-
/dev
пристрої, типу жорсткі диски і USB.-
/proc
та /sys
віртуальні файлові системи для доступу до системної інформації.Системні бібліотеки - це по суті набір функцій, які програми використовують для доступу до можливостей ядра. Найпопулярніша - GNU C Library (glibc).
Демони (Daemons) - це фонові процеси, що виконують різні завдання, до прикладу мережеве обслуговування або управління принтерами. Вони завантажуються при запуску системи і працюють у фоні.
Утиліти - програми для виконання різних завдань (копіювання файлів, редагування тексту). Вони дозволяють виконувати щоденні операції у системі.
Приклади утиліт -
cp
mv
rm
ls
mkdir
(копіювання, переміщення, видалення, перегляд вмісту - це утиліти для роботи файлами)Все це працює разом, і забезпечує роботу Linux.
tail
Тепер ви знаєте, що відповідати на співбесіді, якщо у вас запитають - “Розкажіть про основні компоненти архітектури Linux та їх роль у системі.”
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
SSH
SSH (Secure Shell) — це протокол для безпечного підключення до віддалених комп'ютерів. Він шифрує всі дані, що передаються між користувачем і сервером, це захищаж від атак, типу “людина посередині”. SSH зазвичай використовується для роботи з командним рядком та передачі файлів між комп'ютерами.
Use case SSH
Генерація пари ключів SSH
Команда
Це створить два файли
Копіювання публічного ключа на сервер:
Для безпарольного доступу потрібно скопіювати публічний ключ на сервер, до якого ви хочете підключитися. Використовуйте команду
або вручну скопіюйте вміст файлу
Підключення до сервера за допомогою SSH
Після додавання публічного ключа ви можете підключитися до сервера без введення пароля
Tail
Більш детально познайомитися з протоколом можна - тут🐱
Route 53🫥
SSH (Secure Shell) — це протокол для безпечного підключення до віддалених комп'ютерів. Він шифрує всі дані, що передаються між користувачем і сервером, це захищаж від атак, типу “людина посередині”. SSH зазвичай використовується для роботи з командним рядком та передачі файлів між комп'ютерами.
Use case SSH
Генерація пари ключів SSH
Команда
ssh-keygen
, створює пару публічного та приватного ключів
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Це створить два файли
~/.ssh/id_rsa
(приватний ключ)~/.ssh/id_rsa.pub
(публічний ключ)Копіювання публічного ключа на сервер:
Для безпарольного доступу потрібно скопіювати публічний ключ на сервер, до якого ви хочете підключитися. Використовуйте команду
ssh-copy-id
ssh-copy-id username@remote_host
або вручну скопіюйте вміст файлу
id_rsa.pub
до файлу ~/.ssh/authorized_keys
на сервері.Підключення до сервера за допомогою SSH
Після додавання публічного ключа ви можете підключитися до сервера без введення пароля
ssh username@remote_host
Tail
Більш детально познайомитися з протоколом можна - тут
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
TMUX
Інструмент для роботи в терміналі, який дозволяє працювати з кількома термінальними сесіями в одному вікні.
Якщо пояснювати простіше, то за допомогою TMUX можна створювати нові сесії, перемикатися між ними або ділити вікно на кілька панелей. Найзручніше це коли можна відключитися від сесії, залишивши її працювати у фоні, а потім повернутися й продовжити з того ж місця. Це дуже корисно, коли працюєте по SSH або з довготривалими процесами на сервері.
Основне шо потрібно знати
Вікна дозволяють тримати окремі задачі в різних вкладках одного терміналу. Наприклад, в одному вікні редактор коду, в іншому логи.
Панелі допомагають розділити екран на кілька частин. Це дає змогу одночасно бачити різні процеси — наприклад, моніторинг стану сервера та виконання команд.
Сесії зберігають робочий стан після розриву з'єднання з сервером. Відключився - процеси продовжують працювати, і можна під'єднатися знову, не втрачаючи прогресу.
Tail
Всі основні команди та можливості TMUX можна знайти - тут🍳
p.s. - дякую за рекомендацію до посту, пропонуйте ще, будемо писати про те що цікаво, якщо є ідеї або хочете чимось поділитися, пишіть сюди - @Route53Support
Route 53🫥
Інструмент для роботи в терміналі, який дозволяє працювати з кількома термінальними сесіями в одному вікні.
Якщо пояснювати простіше, то за допомогою TMUX можна створювати нові сесії, перемикатися між ними або ділити вікно на кілька панелей. Найзручніше це коли можна відключитися від сесії, залишивши її працювати у фоні, а потім повернутися й продовжити з того ж місця. Це дуже корисно, коли працюєте по SSH або з довготривалими процесами на сервері.
Основне шо потрібно знати
Вікна дозволяють тримати окремі задачі в різних вкладках одного терміналу. Наприклад, в одному вікні редактор коду, в іншому логи.
Панелі допомагають розділити екран на кілька частин. Це дає змогу одночасно бачити різні процеси — наприклад, моніторинг стану сервера та виконання команд.
Сесії зберігають робочий стан після розриву з'єднання з сервером. Відключився - процеси продовжують працювати, і можна під'єднатися знову, не втрачаючи прогресу.
Tail
Всі основні команди та можливості TMUX можна знайти - тут
p.s. - дякую за рекомендацію до посту, пропонуйте ще, будемо писати про те що цікаво, якщо є ідеї або хочете чимось поділитися, пишіть сюди - @Route53Support
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Update
Вирішив усе ж таки робити час від часу апдейти свого шляху, бо переважна більшість проголосували за те, щоб я це робив. Тож буду ділитися своїми кроками в наступному форматі.
Що я вивчив минулого тижня в Kubernetes
🔺 Як Працювати з Pod, ReplicaSets та Deployments, створювати та управляти ресурсами через Kubernetes API.
🔺 Налаштовувати конфігурації додатків через ConfigMaps та Secrets, працювати зі змінними середовища, управляти ресурсами контейнерів (CPU, пам'ять).
🔺 Робити Pod з декількома контейнерами, використовувати Init Containers та спільні об'єми для обміну даними між контейнерами.
🔺 Моніторити додатки та налаштовувати probes для контролю здоров'я контейнерів (liveness та readiness).
🔺 Розробляти дизайн Pod із використанням labels, annotations, lifecycle hooks, щоб налаштовувати поведінку подів під різні сценарії.
🔺 Розумітися на мережевих концепціях, налаштовувати сервіси типу ClusterIP, NodePort, LoadBalancer, управляти Network Policies.
🔺 Працювати з Ingress для управління зовнішнім доступом до сервісів всередині кластера, налаштовувати правила маршрутизації трафіку.
🔺 Працювати з PersistentVolumes, PersistentVolumeClaims для збереження стану додатків, створювати storage класси для різних типів сховищ.
До речі, Kubernetes - це супервеликий інструмент, який охоплює багато аспектів роботи з контейнерами та інфраструктурою. Я продовжую зависати в своїй лабораторії по 5-7 годин на день, вивчаючи різні його можливості та функції. Скоро планую тестувати вивчене на практиці, щоб ще глибше зрозуміти його.
Tail
Якщо у вас є рекомендації щодо формату, зауваження або побажання, пишіть у коментарях або звертайтеся в особисті повідомлення. Ваш фідбек допоможе зробити цей формат ще більш корисним.
Route 53🫥
Вирішив усе ж таки робити час від часу апдейти свого шляху, бо переважна більшість проголосували за те, щоб я це робив. Тож буду ділитися своїми кроками в наступному форматі.
Що я вивчив минулого тижня в Kubernetes
До речі, Kubernetes - це супервеликий інструмент, який охоплює багато аспектів роботи з контейнерами та інфраструктурою. Я продовжую зависати в своїй лабораторії по 5-7 годин на день, вивчаючи різні його можливості та функції. Скоро планую тестувати вивчене на практиці, щоб ще глибше зрозуміти його.
Tail
Якщо у вас є рекомендації щодо формату, зауваження або побажання, пишіть у коментарях або звертайтеся в особисті повідомлення. Ваш фідбек допоможе зробити цей формат ще більш корисним.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Dockerfile -> Container
Щоб запустити додаток в контейнері, спочатку нам потрібно описати Dockerfile. Dockerfile - це текстовий файл, який містить інструкції для створення Docker Image. Він працює як рецепт, що визначає, які компоненти необхідно встановити та які команди виконати, щоб підготувати додаток до запуску.
🔺 У Dockerfile використовується концепція шарів (лєєрів). Кожен шар додається поверх попереднього і може включати різні інструкції
FROM - вказує базовий образ (наприклад,
RUN - виконує команди, наприклад, встановлення бібліотек і пакетів.
COPY/ADD - копіює файли з хоста в образ, наприклад, додавання вихідного коду програми.
CMD/ENTRYPOINT - визначає команду або сценарій, який повинен виконуватися, коли контейнер запущений.
WORKDIR - встановлює робочий каталог для команд RUN, CMD, ENTRYPOINT, COPY та ADD.
ENV - встановлює змінні середовища, які будуть доступні під час виконання контейнера.
EXPOSE - вказує, який порт буде використовувати контейнер для взаємодії з зовнішнім світом.
VOLUME - створює точку монтування для зовнішніх томів.
Всі командами Dockerfile, можна знайти в офіційній документації Docker - Dockerfile reference.
🔺 Всі ці шари (лєєри) утворюють так звану RootFS (root file system). RootFS - це сукупність усіх шарів, яка формує файлову систему, необхідну для запуску контейнера. Вона включає все необхідне середовище, залежності і файли додатку.
🔺 Концепція леєрів забезпечує дуже важливий механізм - кешування шарів (layers caching) для оптимізації процесу побудови Docker Image. Коли ви змінюєте Dockerfile і запускаєте команду docker build, Docker перевіряє, чи використовуються ті ж самі інструкції та чи були змінені шари. Якщо шари не змінювалися, Docker використовує кешовані версії цих шарів замість їх повторної побудови. Це оптимізація як і за часом та і по ресурсам.
🔺 І тепер, коли в нас є готовий Image, ми можемо запустити на його основі контейнер. Контейнер - це, простими словами, ізольований запущений процес. Docker забезпечує ізоляцію за допомогою функцій ядра операційної системи, таких як cgroups (control groups) і namespaces. Cgroups обмежують ресурси, які може використовувати контейнер (CPU, пам’ять), а namespaces створюють ізольоване середовище для кожного контейнера, так що вони не можуть взаємодіяти один з одним або з хост-системою.
Route 53🫥
Щоб запустити додаток в контейнері, спочатку нам потрібно описати Dockerfile. Dockerfile - це текстовий файл, який містить інструкції для створення Docker Image. Він працює як рецепт, що визначає, які компоненти необхідно встановити та які команди виконати, щоб підготувати додаток до запуску.
FROM - вказує базовий образ (наприклад,
ubuntu
), з якого починається створення образу.RUN - виконує команди, наприклад, встановлення бібліотек і пакетів.
COPY/ADD - копіює файли з хоста в образ, наприклад, додавання вихідного коду програми.
CMD/ENTRYPOINT - визначає команду або сценарій, який повинен виконуватися, коли контейнер запущений.
WORKDIR - встановлює робочий каталог для команд RUN, CMD, ENTRYPOINT, COPY та ADD.
ENV - встановлює змінні середовища, які будуть доступні під час виконання контейнера.
EXPOSE - вказує, який порт буде використовувати контейнер для взаємодії з зовнішнім світом.
VOLUME - створює точку монтування для зовнішніх томів.
Всі командами Dockerfile, можна знайти в офіційній документації Docker - Dockerfile reference.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
78 днів до Junior DevOps
За 78 днів я став Junior DevOps. Ось що я пройшов за цей час
Linux розібрався з основами роботи в цій операційній системі, її налаштуваннями та командним рядком.
AWS вивчив базові сервіси та їх налаштування.
Docker зрозумів, як створювати контейнери, керувати ними та автоматизувати процеси розгортання.
GitHub Actions та GitLab CI налаштовував CI/CD пайплайни, автоматизував деплой і тестування.
AWS (другий раунд, глибше) поглиблене вивчення сервісів та проходження квестів у Cloud.
Kubernetes здобув базові знання для управління кластером та налаштування сервісів.
Terraform освоїв основи інфраструктури як коду (IaC) і автоматизації розгортання.
Що я зрозумів
Почавши працювати, ви ніколи повністю не підготуєтесь до реальної роботи. Важливо створити міцну базу знань, але робота в DevOps - це постійна непередбачуваність. Ви можете бути більш готовими, ніж інші, але все одно зіткнетеся з несподіванками.
Реальна робота - це не лише про знання технологій (хоча це теж важливо), а про готовність приймати рішення, вміння шукати інформацію, задавати питання, проявляти активність, розуміти проблеми (таcки), які вирішуєте, і, звісно, постійно вчитися.
Так, я відчуваю, що мені не вистачає знань як в Linux так і в AWS. Але це не означає, що я не можу вирішувати проблеми та бути корисним бізнесу. Це говорить про брак досвіду, про який всі говорять (надивленність, практика). Не потрібно боятися не знати чогось, це нормально, особливо в DevOps, де домен дуже широкий. Але погано не вміти знаходити рішення - це ключове.
Рухаємося далі! Тепер накопичую досвід, наступна ціль — Middle позиція.
Route 53🫥
За 78 днів я став Junior DevOps. Ось що я пройшов за цей час
Linux розібрався з основами роботи в цій операційній системі, її налаштуваннями та командним рядком.
AWS вивчив базові сервіси та їх налаштування.
Docker зрозумів, як створювати контейнери, керувати ними та автоматизувати процеси розгортання.
GitHub Actions та GitLab CI налаштовував CI/CD пайплайни, автоматизував деплой і тестування.
AWS (другий раунд, глибше) поглиблене вивчення сервісів та проходження квестів у Cloud.
Kubernetes здобув базові знання для управління кластером та налаштування сервісів.
Terraform освоїв основи інфраструктури як коду (IaC) і автоматизації розгортання.
Що я зрозумів
Почавши працювати, ви ніколи повністю не підготуєтесь до реальної роботи. Важливо створити міцну базу знань, але робота в DevOps - це постійна непередбачуваність. Ви можете бути більш готовими, ніж інші, але все одно зіткнетеся з несподіванками.
Реальна робота - це не лише про знання технологій (хоча це теж важливо), а про готовність приймати рішення, вміння шукати інформацію, задавати питання, проявляти активність, розуміти проблеми (таcки), які вирішуєте, і, звісно, постійно вчитися.
Так, я відчуваю, що мені не вистачає знань як в Linux так і в AWS. Але це не означає, що я не можу вирішувати проблеми та бути корисним бізнесу. Це говорить про брак досвіду, про який всі говорять (надивленність, практика). Не потрібно боятися не знати чогось, це нормально, особливо в DevOps, де домен дуже широкий. Але погано не вміти знаходити рішення - це ключове.
Рухаємося далі! Тепер накопичую досвід, наступна ціль — Middle позиція.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Remote - SSH
Якщо ви не хочете вивчати вбудовані редактори типу nano або vim, можна підключатися до віддаленого сервера через редактор коду. Це реально дуже зручно, особливо коли вам потрібно працювати з віддаленим кодом. Це нічим не відрізняється від того, ніби він знаходиться на вашому локальному комп'ютері.
Для різних редакторів є різні розширення, які дозволяють налаштувати SSH-підключення. Я використовую VS Code.
Налаштування SSH-підключення в VS Code
Встановіть розширення Remote - SSH
✅ Відкрийте VS Code.
✅ Перейдіть до розділу розширень, натиснувши на іконку розширень у бічній панелі або використайте комбінацію клавіш
✅ У полі пошуку введіть Remote - SSH.
✅ Знайдіть розширення від Microsoft і натисніть Install.
Налаштуйте SSH-конфігурацію
✅ Відкрийте командну палітру, натиснувши
✅ Введіть Remote-SSH: Connect to Host... і виберіть цю опцію.
✅ У списку виберіть Add New SSH Host....
✅ Введіть SSH-команду для підключення, наприклад:
✅ Виберіть файл конфігурації для збереження (зазвичай це `~/.ssh/config`).
Налаштуйте файл SSH config (це опціонально, для зручності)
Ви можете відредагувати файл
Як підключитися до сервера
Знову відкрийте командну палітру (`Ctrl/Command+Shift+P`) або скористайтеся кнопкою в лівому нижньому кутку (Open a Remote Window). Вона не підписана, це кнопка в самому нижньому лівому кутку.
✅ Введіть Remote-SSH: Connect to Host....
✅ Виберіть ваш сервер зі списку.
✅ VS Code відкриє нове вікно і встановить з'єднання з віддаленим сервером.
Route 53🫥
Якщо ви не хочете вивчати вбудовані редактори типу nano або vim, можна підключатися до віддаленого сервера через редактор коду. Це реально дуже зручно, особливо коли вам потрібно працювати з віддаленим кодом. Це нічим не відрізняється від того, ніби він знаходиться на вашому локальному комп'ютері.
Для різних редакторів є різні розширення, які дозволяють налаштувати SSH-підключення. Я використовую VS Code.
Налаштування SSH-підключення в VS Code
Встановіть розширення Remote - SSH
Ctrl/Command+Shift+X
.Налаштуйте SSH-конфігурацію
Ctrl/Command+Shift+P
.ssh user@remote_host
.Налаштуйте файл SSH config (це опціонально, для зручності)
Ви можете відредагувати файл
~/.ssh/config
, щоб додати додаткові параметри. Проте, скоріш за все, після налаштування SSH-конфігурації ваш файл config
заповниться автоматично.Як підключитися до сервера
Знову відкрийте командну палітру (`Ctrl/Command+Shift+P`) або скористайтеся кнопкою в лівому нижньому кутку (Open a Remote Window). Вона не підписана, це кнопка в самому нижньому лівому кутку.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
AWS IAM 🖼️
В будь-якій компанії важливо безпечно керувати доступами до ресурсів. AWS IAM (Identity and Access Management) допомагає створювати користувачів, групи, налаштовувати ролі та політики безпеки, щоб чітко контролювати, хто і що може робити в AWS.
Least Privilege Мінімум прав - максимум безпеки
Принцип Least Privilege означає надавати користувачам тільки ті права, які потрібні для роботи. Більше доступу = більше ризику.
Користувачі, групи, політики
Користувачі та групи - краще створювати окремих користувачів для кожного члена команди та об'єднувати їх у групи (Developers, Admins, ReadOnly). А потім додавати політики доступу до груп, замість окремих користувачів, так простіше керувати.
Політики - можна використовувати готові політики AWS або створювати власні, щоб дозволити або заборонити конкретні дії. Наприклад, дозволити "s3:ListBucket" для S3🖼️ , але заборонити "s3:DeleteBucket".
Multi-Factor Authentication (MFA)
Потрібно активувати MFA, щоб захистити облікові записи. Як працює MFA, думаю, всі знають.
У консолі IAM виберіть користувача, натисніть "Manage MFA device" і дотримуйтесь інструкцій для налаштування, там все інтуїтивно зрозуміло.
Tail
Root аккаунт не використовуйте для рутини (створили з рута користувача-адміністратора, надали йому повний доступ, увімкнули двофакторну аутентифікацію, і користуєтесь цим акаунтом для адміністрування, про root забули, він лише для екстрених випадків).
Перевіряйте доступи регулярно і видаляйте зайві.
IAM Access Analyzer допоможе виявити надлишкові дозволи.
Route 53🫥
В будь-якій компанії важливо безпечно керувати доступами до ресурсів. AWS IAM (Identity and Access Management) допомагає створювати користувачів, групи, налаштовувати ролі та політики безпеки, щоб чітко контролювати, хто і що може робити в AWS.
Least Privilege Мінімум прав - максимум безпеки
Принцип Least Privilege означає надавати користувачам тільки ті права, які потрібні для роботи. Більше доступу = більше ризику.
Користувачі, групи, політики
Користувачі та групи - краще створювати окремих користувачів для кожного члена команди та об'єднувати їх у групи (Developers, Admins, ReadOnly). А потім додавати політики доступу до груп, замість окремих користувачів, так простіше керувати.
Політики - можна використовувати готові політики AWS або створювати власні, щоб дозволити або заборонити конкретні дії. Наприклад, дозволити "s3:ListBucket" для S3
Multi-Factor Authentication (MFA)
Потрібно активувати MFA, щоб захистити облікові записи. Як працює MFA, думаю, всі знають.
У консолі IAM виберіть користувача, натисніть "Manage MFA device" і дотримуйтесь інструкцій для налаштування, там все інтуїтивно зрозуміло.
Tail
Root аккаунт не використовуйте для рутини (створили з рута користувача-адміністратора, надали йому повний доступ, увімкнули двофакторну аутентифікацію, і користуєтесь цим акаунтом для адміністрування, про root забули, він лише для екстрених випадків).
Перевіряйте доступи регулярно і видаляйте зайві.
IAM Access Analyzer допоможе виявити надлишкові дозволи.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Давно не ділився безкоштовними ресурсами.
Ось непогана платформа, на якій є купа безкоштовних туторіалів з веб-розробки, баз даних, DevOps, машинного навчання, управління проєктами та багато іншого.
Можна використовувати як шпаргалку - посилання на ресурс🎁
Route 53🫥
Ось непогана платформа, на якій є купа безкоштовних туторіалів з веб-розробки, баз даних, DevOps, машинного навчання, управління проєктами та багато іншого.
Можна використовувати як шпаргалку - посилання на ресурс
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Безкоштовний курс по Linux
Якщо хочеш поглибити свої знання з Linux, раджу скористатися цією можливістю.
Ось посилання на курс - PortaOne Linux🎃
Route 53🫥
Якщо хочеш поглибити свої знання з Linux, раджу скористатися цією можливістю.
Ось посилання на курс - PortaOne Linux
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ-5 навичок, які повинен мати DevOps для роботи з Linux
1️⃣ Розуміння файлової системи
Знати, де розташовані основні системні файли та каталоги
Важливо розуміти, які файли можна змінювати, а які краще не чіпати.
2️⃣ Управління правами доступу (Permissions)
Вміти налаштовувати права доступу до файлів і директорій за допомогою команд
Розуміти, як працює система прав
3️⃣ Налаштування мережі
Основи конфігурації мережевих інтерфейсів, робота з файлами
Базове налаштування брандмауера (Firewall) за допомогою
Моніторинг мережевих підключень через
Використання Wireshark для аналізу трафіку в ріал таймі.
4️⃣ Перевірка стану системи
Моніторинг процесів за допомогою
Аналіз використання дискового простору через
5️⃣ Розуміння концепцій потоків
Знати про потоки вводу та виводу (stdin, stdout, stderr) і вміти користуватися перенаправленням
Описав приклади, шоб було розуміння, навіщо це потрібно знати - тут🥱
Tail
На мою думку, цих знань про Linux цілком достатньо для успішної роботи DevOps-інженером.
Route 53🫥
Знати, де розташовані основні системні файли та каталоги
/etc
для конфігурацій, /var
для логів, /usr
для встановлених програм і так далі.Важливо розуміти, які файли можна змінювати, а які краще не чіпати.
Вміти налаштовувати права доступу до файлів і директорій за допомогою команд
chmod
, chown
, chgrp
.Розуміти, як працює система прав
rwx
для користувачів, груп та інших, а також використовувати спеціальні бітові режими (`sticky bit`, setuid
, `setgid`).Основи конфігурації мережевих інтерфейсів, робота з файлами
/etc/network/interfaces
, /etc/netplan
або використання команд ifconfig
, ip
.Базове налаштування брандмауера (Firewall) за допомогою
ufw
або iptables
для контролю доступу.Моніторинг мережевих підключень через
netstat
, ss
і перегляд відкритих портів.Використання Wireshark для аналізу трафіку в ріал таймі.
Моніторинг процесів за допомогою
ps
, top
, htop
для відстеження споживання ресурсів, таких як пам’ять і процесорний час.Аналіз використання дискового простору через
df
і du
, перегляд активності жорсткого диска за допомогою iostat
або iotop
.Знати про потоки вводу та виводу (stdin, stdout, stderr) і вміти користуватися перенаправленням
>
, >>
, 2>
, |
.Описав приклади, шоб було розуміння, навіщо це потрібно знати - тут
Tail
На мою думку, цих знань про Linux цілком достатньо для успішної роботи DevOps-інженером.
Route 53
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM