Ті, хто мають безкоштовний інстанс віртуальної машини в Oracle Cloud, можливо вже помітили (особисто мені вчора показали🙂), що з січня 2023 року політика Oracle змінилася, і вони тепер можуть видалити вашу віртуальну машину, якщо вона використовує замало ресурсів.
Проте, є рішення. Хтось небайдужий створив програму, яка періодично навантажує CPU, RAM і мережу.
Я, як користувач такого сервера та послідовник докеризації, вирішив створити свою версію зблекджеком і шлюхами підтримкою Docker.
Знайшов пул-реквест, який реалізує все це, зробив форк, додав переклад на англійську мову і закинув на свій GitHub.
Якщо коротко, то ось команда яка скачає сурси, зробить білд в докері і розгорне це все в контейнері:
Проте, є рішення. Хтось небайдужий створив програму, яка періодично навантажує CPU, RAM і мережу.
Я, як користувач такого сервера та послідовник докеризації, вирішив створити свою версію з
Знайшов пул-реквест, який реалізує все це, зробив форк, додав переклад на англійську мову і закинув на свій GitHub.
Якщо коротко, то ось команда яка скачає сурси, зробить білд в докері і розгорне це все в контейнері:
git clone https://github.com/awitwicki/NeverIdle.git
cd NeverIdle
docker-compose up -d
#oracle #oraclecloud #docker #dockercompose😁2❤1
Я живий, просто прокрастинував 🥲
Давно хотів написати серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про TeamCity.
Це система CI/CD, яка автоматизує процеси тестування і розгортання коду. Основу складають конфігурації збірок, де можна покроково визначити інструкції: що робити, за яких умов, з якими параметрами (наприклад, токен для Telegram і креденшіали до тестової бази даних).
Ось приклад, як я налаштував це для одного зі своїх проєктів:
Я розгорнув TeamCity на своєму сервері в Docker і створив конфігурацію для збірки свого Telegram-бота, підключив Git-репозиторій, налаштував кроки для збірки. TeamCity щохвилини перевіряє репозиторій, і якщо є зміни, запускає workflow з новим кодом і моїми налаштуваннями.
У підсумку, після коміту в master-гілку, автоматично створюється новий Docker-імедж бота, який розгортається на сервері, а я отримую повідомлення в Telegram про успішне оновлення проекту на проді.
#CICD #workflow #docker
Давно хотів написати серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про TeamCity.
Це система CI/CD, яка автоматизує процеси тестування і розгортання коду. Основу складають конфігурації збірок, де можна покроково визначити інструкції: що робити, за яких умов, з якими параметрами (наприклад, токен для Telegram і креденшіали до тестової бази даних).
Ось приклад, як я налаштував це для одного зі своїх проєктів:
Я розгорнув TeamCity на своєму сервері в Docker і створив конфігурацію для збірки свого Telegram-бота, підключив Git-репозиторій, налаштував кроки для збірки. TeamCity щохвилини перевіряє репозиторій, і якщо є зміни, запускає workflow з новим кодом і моїми налаштуваннями.
У підсумку, після коміту в master-гілку, автоматично створюється новий Docker-імедж бота, який розгортається на сервері, а я отримую повідомлення в Telegram про успішне оновлення проекту на проді.
#CICD #workflow #docker
👍6❤1
Якщо підходити до цього більш професійно, то після збірки і перед розгортанням проєкту можна додати автоматичне тестування, публікацію артефактів TeamCity (файлів, які можна використовувати в інших конфігураціях або кроках). Також можна робити своі темплейти білд конфігів і засновувати нові конфігі на них, тоді можна буде легко додати якийсь крок з додатковим тестом, і це піде до всіх білд конфігів які засновані на цьому темплейті.
Тімсіті складається з сервера і агентів. Сервер містить в собі всі конфіги, а білди запускаються на агентах, їх може бути багато. Наприклад це можуть бути різні машини на різних архітектурах процесору якщо це потрібно для версіювання білду під різні системи.
Цей інструмент є безплатним але є ліміт по кількості агентів. Можна його запустити у себе локально. Я собі створив репозиторій де прописав пару додаткових нюансів в конфігураціі щоб запускати тімсіті в докері, і щоб він мав доступ до цього докеру і міг там розгортати мої проекти.
#CICD #workflow #docker
Тімсіті складається з сервера і агентів. Сервер містить в собі всі конфіги, а білди запускаються на агентах, їх може бути багато. Наприклад це можуть бути різні машини на різних архітектурах процесору якщо це потрібно для версіювання білду під різні системи.
Цей інструмент є безплатним але є ліміт по кількості агентів. Можна його запустити у себе локально. Я собі створив репозиторій де прописав пару додаткових нюансів в конфігураціі щоб запускати тімсіті в докері, і щоб він мав доступ до цього докеру і міг там розгортати мої проекти.
#CICD #workflow #docker
👍2❤1
Продовжуємо серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про Airflow.
Якщо коротко то Airflow це cron на максималках.
Якщо більш детально то це платформа для автоматизації, управління і моніторингу складних робочих процесів (workflows). Airflow дозволяє створювати складні пайплайни, враховуючи залежності між завданнями, їх повторення, а також надає можливість моніторити та керувати їх виконанням через веб-інтерфейс.
Типові сценарії використання:
* ETL-процеси (завантаження, перетворення та збереження даних).
* Автоматизація аналітичних та машинних алгоритмів.
* Інтеграція різних сервісів та обробка даних з кількох джерел.
* Регулярний запуск скриптів для моніторингу або обслуговування систем.
У мене він моніторить нові відосіки на ютуб каналі і скидає в телеграм чат, а також будує щотижневі звіти з бази даних для клієнта і закидає на гугл таблиці (це все звісно в докері 🌚)
#workflow #airflow #docker
Якщо коротко то Airflow це cron на максималках.
Якщо більш детально то це платформа для автоматизації, управління і моніторингу складних робочих процесів (workflows). Airflow дозволяє створювати складні пайплайни, враховуючи залежності між завданнями, їх повторення, а також надає можливість моніторити та керувати їх виконанням через веб-інтерфейс.
Типові сценарії використання:
* ETL-процеси (завантаження, перетворення та збереження даних).
* Автоматизація аналітичних та машинних алгоритмів.
* Інтеграція різних сервісів та обробка даних з кількох джерел.
* Регулярний запуск скриптів для моніторингу або обслуговування систем.
У мене він моніторить нові відосіки на ютуб каналі і скидає в телеграм чат, а також будує щотижневі звіти з бази даних для клієнта і закидає на гугл таблиці (це все звісно в докері 🌚)
#workflow #airflow #docker
👍4🤔1
Їдемо далі
Nginx Proxy Manager
чудовий інструмент яким я менеджерю трафік на своі проекти. Ідея полягає в тому що він перекеровує підключення на різні порти. Тобто все приходить на 1 місце а йде вже там де треба, попутно можна обгорнути трафік в https і зробити http сервіси захищеними, і ще й настроїти автовідновлення ssl сертифікату (letsencrypt).
В моєму випадку я маю домен і 3 веб сторінки в докер контейнерах.
Без цього інструмента використання моіх проектів виглядало би так:
А з проксі я настроїв перекеровувати піддомен, в такому випадку вистачить просто вписати адресу в браузері:
Переваги які я маю з цього це і ссл сертифікат який автоматично додається, і на сервері маю відкрити тільки 1 порт в файрволі замість всіх під кожен проект. І ще багато настройок доступів (по айпі наприклад).
#docker
Nginx Proxy Manager
чудовий інструмент яким я менеджерю трафік на своі проекти. Ідея полягає в тому що він перекеровує підключення на різні порти. Тобто все приходить на 1 місце а йде вже там де треба, попутно можна обгорнути трафік в https і зробити http сервіси захищеними, і ще й настроїти автовідновлення ssl сертифікату (letsencrypt).
В моєму випадку я маю домен і 3 веб сторінки в докер контейнерах.
service1 - port 1000
service2 - port 1001
service3 - port 1002
Без цього інструмента використання моіх проектів виглядало би так:
opentank.com:1000
opentank.com:1001
opentank.com:1001
А з проксі я настроїв перекеровувати піддомен, в такому випадку вистачить просто вписати адресу в браузері:
service1.opentank.com
service2.opentank.com
service3.opentank.com
Переваги які я маю з цього це і ссл сертифікат який автоматично додається, і на сервері маю відкрити тільки 1 порт в файрволі замість всіх під кожен проект. І ще багато настройок доступів (по айпі наприклад).
#docker
👍2