openTank
87 subscribers
158 photos
24 videos
3 files
77 links
Тут я розказую про різні технічні штуки з якими я працюю або які просто цікаві
Download Telegram
Я живий, просто прокрастинував 🥲

Давно хотів написати серію постів про корисні інструменти, якими користуюся, і сьогодні розповім про 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