openTank
87 subscribers
158 photos
24 videos
3 files
77 links
Тут я розказую про різні технічні штуки з якими я працюю або які просто цікаві
Download Telegram
Ті, хто мають безкоштовний інстанс віртуальної машини в Oracle Cloud, можливо вже помітили (особисто мені вчора показали🙂), що з січня 2023 року політика Oracle змінилася, і вони тепер можуть видалити вашу віртуальну машину, якщо вона використовує замало ресурсів.

Проте, є рішення. Хтось небайдужий створив програму, яка періодично навантажує CPU, RAM і мережу.

Я, як користувач такого сервера та послідовник докеризації, вирішив створити свою версію з блекджеком і шлюхами підтримкою Docker.
Знайшов пул-реквест, який реалізує все це, зробив форк, додав переклад на англійську мову і закинув на свій GitHub.

Якщо коротко, то ось команда яка скачає сурси, зробить білд в докері і розгорне це все в контейнері:

git clone https://github.com/awitwicki/NeverIdle.git
cd NeverIdle
docker-compose up -d

#oracle #oraclecloud #docker #dockercompose
😁21
Я живий, просто прокрастинував 🥲

Давно хотів написати серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про TeamCity.

Це система CI/CD, яка автоматизує процеси тестування і розгортання коду. Основу складають конфігурації збірок, де можна покроково визначити інструкції: що робити, за яких умов, з якими параметрами (наприклад, токен для Telegram і креденшіали до тестової бази даних).

Ось приклад, як я налаштував це для одного зі своїх проєктів:

Я розгорнув TeamCity на своєму сервері в Docker і створив конфігурацію для збірки свого Telegram-бота, підключив Git-репозиторій, налаштував кроки для збірки. TeamCity щохвилини перевіряє репозиторій, і якщо є зміни, запускає workflow з новим кодом і моїми налаштуваннями.

У підсумку, після коміту в master-гілку, автоматично створюється новий Docker-імедж бота, який розгортається на сервері, а я отримую повідомлення в Telegram про успішне оновлення проекту на проді.

#CICD #workflow #docker
👍61
Якщо підходити до цього більш професійно, то після збірки і перед розгортанням проєкту можна додати автоматичне тестування, публікацію артефактів TeamCity (файлів, які можна використовувати в інших конфігураціях або кроках). Також можна робити своі темплейти білд конфігів і засновувати нові конфігі на них, тоді можна буде легко додати якийсь крок з додатковим тестом, і це піде до всіх білд конфігів які засновані на цьому темплейті.

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

Цей інструмент є безплатним але є ліміт по кількості агентів. Можна його запустити у себе локально. Я собі створив репозиторій де прописав пару додаткових нюансів в конфігураціі щоб запускати тімсіті в докері, і щоб він мав доступ до цього докеру і міг там розгортати мої проекти.

#CICD #workflow #docker
👍21
Продовжуємо серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про Airflow.

Якщо коротко то Airflow це cron на максималках.
Якщо більш детально то це платформа для автоматизації, управління і моніторингу складних робочих процесів (workflows). Airflow дозволяє створювати складні пайплайни, враховуючи залежності між завданнями, їх повторення, а також надає можливість моніторити та керувати їх виконанням через веб-інтерфейс.

Типові сценарії використання:
* ETL-процеси (завантаження, перетворення та збереження даних).
* Автоматизація аналітичних та машинних алгоритмів.
* Інтеграція різних сервісів та обробка даних з кількох джерел.
* Регулярний запуск скриптів для моніторингу або обслуговування систем.

У мене він моніторить нові відосіки на ютуб каналі і скидає в телеграм чат, а також будує щотижневі звіти з бази даних для клієнта і закидає на гугл таблиці (це все звісно в докері 🌚)

#workflow #airflow #docker
👍4🤔1
Їдемо далі

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