TeamCity vs CircleCI: що краще?
Коли над продуктом працює багато розробників та DevOps-фахівців, кожен з них робить свій внесок у створення та редагування коду. Вони змушені вручну координувати всі зміни та інформувати про них. Тож з розширенням команди зростає ймовірність помилок у коді та збоїв у роботі.
Щоб полегшити ці процеси, було створено практику безперервної інтеграції та доставки (CI/CD). CI передбачає регулярне об’єднання всіх робочих копій коду в одну кілька разів на день. Ця практика автоматично збирає зміни коду, готує їх до відправки на продакшен, проводить тестування та підготовку до релізу. Завдяки цьому мінімізуються людські помилки під час перевірки коду, економиться час і підвищується загальна якість коду.
У нашому матеріалі ми розглянемо два інструменти CI/CD: CircleCI та TeamCity. Розберемося, коли який застосунок варто використовувати, та які переваги і недоліки має кожен з них.
Що таке TeamCity?
TeamCity — це безплатний інструмент, написаний компанією JetBrains на Java і створений для забезпечення CI. Він є класним вибором для тих команд, що хочуть більше контролювати та захищати свій код. Цей інструмент використовує шаблони, ієрархію проєктів і звіти, щоб допомогти зберегти якісний та надійний код.
Його часто вибирають команди за широкий функціонал «з коробки», а також підтримку Docker. Він є кросплатформним і працює на всіх останніх версіях Windows, Linux, macOS та інших варіаціях Unix (Solaris, FreeBSD, IBM z/OS та HP-UX).
TeamCity має такі функції:
- докладні звіти та моніторинг змін коду;
- миттєвий зворотний зв’язок про збої в тестуванні;
- повідомлення про багаторазове використання налаштувань, щоб уникнути дублювання коду;
- підтримка всіх мов програмування. TeamCity інтегрується з .NET краще за всі інші інструменти CI;
- масштабованість та висока доступність;
- приватний сервер і хмарний хостинг;
- необмежена кількість конфігурацій білдів протягом 60 днів, щоб спробувати безперервну інтеграцію.
Серед основних недоліків варто згадати складність роботи з інструментом. Хоча TeamCity добре відомий своїм гарним інтерфейсом, він все ще може бути складним і непосильним для новачків. Команді може знадобитися серйозне навчання, перш ніж використовувати цю платформу.
Також варто зазначити, що перехід з однієї версії TeamCity на іншу — це довгий процес, який доводиться виконувати вручну на сервері.
За використання платформи трьома комітерами треба платити від $180/рік. Проте цей інструмент має безоплатні рівні:
- 14-денна безплатна пробна версія хмарної платформи;
- безплатний локальний рівень з повним доступом до всіх функцій продукту, але обмежений 100 конфігураціями збірки та трьома агентами збірки. Додавання ще одного агента збірки та 10 конфігурацій збірки коштує $299.
TeamCity також надає знижку 50% для стартапів та безплатні ліцензії для проєктів open-source. Ліцензія для хмар починається від $45 на місяць і залежить від кількості активних коммітерів.
TeamCity найкраще підходить для великих корпорацій та самодостатніх команд, готових створювати власні плагіни за потреби.
Що таке CircleCI?
CircleCI — одна з найбільш використовуваних CI/CD-платформ у світі, яка щодня обробляє понад мільйон білдів. Серед компаній, які використовують цей інструмент, є Spotify, Coinbase, Samsung та Docker. Він пропонується як software-as-a-service, але також може бути встановлений на обладнанні або в приватній хмарі.
CircleCI працює в середовищах Windows, macOS, Linux і Docker, а також на процесорах ARM, які встановлені на багатьох мобільних пристроях (смартфонах, планшетах тощо). Ця платформа також відома своєю багатофункціональною аналітичною панеллю, яка дозволяє відстежувати та аналізувати завдання (jobs) в режимі реального часу.
CircleCI має такі функції:
- відстеження плану виконання завдань;
- оптимізація ресурсів;
- нативна підтримка систем контролю версій GitHub та Bitbucket;
- визначення та організація виконання завдань;
- створення паралельних білдів для швидшого виконання процесу;
- сповіщення на електронну пошту про завершення виконання завдання;
- варіанти масштабування на основі продуктивності.
Проте CircleCI не є легким в роботі. Щоб почати працювати з ним, потрібно знати мову YAML. Хоча це поширена технологія для побудови конвеєрів CI/CD, інші інструменти пропонують візуальний дизайн як альтернативний метод управління воркфлоу без використання коду.
Також зі зростанням проєкту будуть зростати і витрати на CircleCI. Цей інструмент має модель «оплата у міру використання» (pay-as-you-go). Можна почати використовувати безоплатно, якщо у твоїй команді не більше 5 людей, і вам потрібно не більше 6 тисяч хвилин білдів на місяць. Як тільки ліміт перевищується, ціна змінюється на $15 на місяць і більше.
Фінальна вартість використання буде залежати від додаткового часу, який фактично витрачається на білд, і кількості користувачів. Для великих компаній CircleCI коштуватиме щонайменше $2000 на місяць.
CircleCI найкраще підходить для технічно підкованих команд, які прагнуть пришвидшити процеси CI/CD.
У чому різниця?
Хоча CircleCI і TeamCity мають спільну мету — оптимізацію процесу розробки ПЗ, — між ними є кілька ключових відмінностей, які можуть вплинути на вибір інструмента для проєкту.
- хостинг
TeamCity — це самостійне рішення, яке дозволяє командам мати повний контроль над своєю інфраструктурою та розгортати її як на власних серверах, так і у хмарних середовищах. CircleCI, своєю чергою, пропонує тільки хмарний хостинг, забезпечуючи зручне та масштабоване рішення для команд.
- гнучкість
TeamCity надає широкі можливості гнучкості та кастомізації, тому команди легко зможуть адаптувати конвеєр CI/CD до вимог проєкту. На відміну від нього, CircleCI фокусується на простоті та зручності використання, пропонуючи простий конфігураційний файл та попередньо визначені воркфлоу.
- масштабованість
CircleCI є високомасштабованим інструментом і може ефективно обробляти великі робочі навантаження, тому він підходить для проєктів будь-якого розміру. TeamCity також пропонує хорошу масштабованість, але він може потребувати додаткової конфігурації та оптимізації для роботи з великими робочими навантаженнями та масштабними розгортаннями.
- простота налаштування
CircleCI пропонує швидкий процес налаштування, що дозволяє командам розпочати роботу з мінімальними зусиллями. TeamCity вимагає трохи складнішої інсталяції: його потрібно встановити та налаштувати в інфраструктурі команди. Проте після інсталяції цей інструмент стає висококонфігурованою та потужною платформою CI/CD.
- ціноутворення
CircleCI використовує модель ціноутворення, що базується на використанні, тобто бізнес платить залежно від кількості контейнерів та їхнього використання. А TeamCity використовує ліцензійну модель, де компанії купують ліцензію на основі кількості агентів білдів та користувацьких ліцензій. Тому цей інструмент є більш придатним для великих організацій з фіксованим бюджетом.
Післяслово
Вибір між TeamCity і CircleCI залежить від конкретних потреб проєкту та пріоритетів. Якщо у твоїй команді цінується гнучкість конфігурацій, глибока інтеграція з інфраструктурою та повний контроль над процесами, TeamCity буде чудовим рішенням. Проте, якщо потрібна швидкість розгортання, простота використання та потужна підтримка CI/CD у хмарі, варто звернути увагу на CircleCI.
Обидва інструменти мають свої сильні сторони, але найголовніше — вибрати той, який найкраще інтегрується у DevOps-практику компанії та відповідає потребам і завданням проєкту.
Щоб навчитися працювати з CI/CD, рекомендуємо пройти наш курс «CI/CD. Практикум». За 3 тижні ми допоможемо тобі навчитися налаштовувати пайплайни та опанувати чотири найпопулярніші інструменти CI/CD.