Подати
заявку

CI/CD і контейнери: що це простими словами

У багатьох проєктах оновлення сайту досі виглядає так: розробник вручну копіює файли на сервер, щось забуває, сайт кілька хвилин показує помилку, а потім ніхто не може згадати, яка версія зараз працює. Чим більший проєкт і команда, тим дорожче обходяться такі викладки.

CI/CD — це автоматичний конвеєр: кожна зміна в коді проходить перевірки, збирається і викладається на сервер за однаковими правилами, без ручних дій. Контейнери (найчастіше Docker) пакують застосунок разом з усім потрібним для роботи, тож він однаково запускається на комп’ютері розробника, тестовому й робочому сервері. Ми налаштовуємо це для нових і наявних проєктів.

Що налаштовуємо в рамках CI/CD

Solution icon

Автоматичні перевірки

Після кожної зміни в коді автоматично запускаємо тести й перевірку стилю коду, щоб помилки знаходилися до того, як потраплять на сайт.

Solution icon

Автоматична викладка

Налаштовуємо викладку на тестовий і робочий сервер за натисканням кнопки або після схвалення змін, з однаковими кроками щоразу.

Solution icon

Пакування в контейнери

Переносимо застосунок у Docker-контейнери, щоб середовище розробника, тестовий і робочий сервер не відрізнялися і «у мене працює» більше не звучало.

Solution icon

Тестові середовища

Створюємо окремі копії проєкту для перевірки нових функцій, де замовник і тестувальник бачать зміни до їх виходу на робочий сайт.

Solution icon

Швидкий відкат

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

Як ми впроваджуємо CI/CD

Поступово, не зупиняючи розробку і не ламаючи звичний процес команди

circles

Розбираємося, як зміни зараз потрапляють на сервер: хто викладає, як часто, які кроки виконуються вручну і де найчастіше трапляються збої.

Наводимо порядок у репозиторії: усі зміни йдуть через Git, налаштовуємо гілки й правила, хто і як схвалює зміни.

Обираємо інструмент під проєкт — GitHub Actions, GitLab CI, Jenkins чи інший — і описуємо конвеєр: перевірки, збирання, викладку.

За потреби пакуємо застосунок і його служби в контейнери, виносимо паролі й налаштування з коду в захищене сховище.

Запускаємо конвеєр спершу для тестового середовища, перевіряємо на кількох реальних змінах і лише потім підключаємо робочий сервер.

Передаємо команді інструкцію, допомагаємо звикнути до нового процесу й поступово додаємо автоматичні тести для найважливіших сценаріїв.

Більше 750 проєктів за 11 років роботи

Ми поєднуємо аналіз, UX/UI, розробку, інтеграції, маркетинг і підтримку, щоб digital-продукт працював як бізнес-інструмент.

Інтернет-магазин

BMED

Інтернет-магазин

Zoo Expert

Інтернет-магазин

MARGO

Інтернет-магазин

TeoSmart

Інтернет-магазин

Stream Market

Інтернет-магазин

Мамин Дім

Веб-портал

UHELPIS

Інтернет-магазин

Idealist Coffee

Корпоративний сайт

Art Bullet

Корпоративний сайт

Ekvives

Інтернет-магазин

Elmira Medins

Веб-портал

Driver Work

Promodex - ваш надійний партнер

  • Ми разом з вами розробляємо стратегію веб-сайту
  • Над проектом працює команда з 5 осіб
  • Погодинна оплата, прозорі умови праці
  • Ми гарантуємо високу якість технічних характеристик

Хочете знати вартість?

Заповніть коротку заявку і ми зв'яжемося з вами

Що говорять клієнти

Створюємо цифрові продукти, які приносять результат та отримують високі оцінки по всьому світу.

5.0
clutch
Promodex's work increased the client's conversion rate by 35%, average receipt by 20%, and organic traffic by 50%. The team managed the project well, delivered on schedule, provided regular reports, and responded quickly. Overall, their professionalism and attention to detail set them apart.
5.0
clutch
Promodex completed the project on time. They conducted the development transparently and checked the progress at almost every stage. They independently studied the critical tasks at work and suggested a way to implement them.
5.0
clutch
Promodex successfully launched the client's website and received positive feedback from the end clients and employees. Furthermore, the team delivered all milestones on time, showcased experience, and understood the client's needs. Overall, the team's excellent communication skills were impressive.
5.0
clutch
Promodex delivered a functional online store that met the client's expectations. The team completed the project on time and within budget. The team communicated via in-person and virtual meetings, email, and messaging apps. Overall, the team's performance was outstanding.
5.0
clutch
Promodex delivered reliable services and met expectations. They completed tasks on time and produced high-quality outputs. Their estimated hours were a 99% match with the actual time spent on tasks, impressing the client. Moreover, their resources understood the client's requirements quickly.
5.0
clutch
Promodex successfully launched the e-commerce, and the client's sales increased, process management improved, and business expanded. The team had an impressive understanding of e-commerce needs. Promodex completed all stages on schedule and constantly interacted with the client.
5.0
it-rating
Дякую команді Promodex за гарно оформлений сайт mapstars.co на сучасних технологіях (react js, angular та ін.), гарні ефекти та трьома мовами: англійською, португальською та українською. Окрема подяка менеджеру Вікторії!
5.0
it-rating
Я дуже радий висловити свою подяку команді Promodex за надані послуги зі створення та подальшої підтримки сайту in-prem.ua. Вони продемонстрували високий професіоналізм в обслуговуванні покупців зі швидкими та професійними рішеннями будь-яких питань. Вони були завжди доступні для повного обслуговування мого сайту і навіть допомогли підняти ефективність роботи з інтерфейсом користувача. Я дуже рекомендую цю команду іншим власникам сайтів, які шукають висококласну підтримку своїх проектів.
5.0
it-rating
З повною довірою я замовляв розробку сайту з Promodex. Виконана робота перевищила всі мої очікування. Працівники компанії проявляли високий рівень професійної компетентності та акуратності. Якість наданих послуг повністю задовольняла мене. Отриманий результат дуже мені подобався та дозволив легко та зручно керувати сайтом. Я рекомендую Promodex як надійного та професійного партнера для роботи над розробкою сайтів.
5.0
it-rating
Я дякую команді компанії Promodex за розробку та просування мого сайту plangromad.com.ua. Вони чудово розуміють, як ефективно та швидко підняти сайт у пошукових системах. Набагато краще, ніж інші IT-компанії, про які я й досі чула. Їхні сучасні технології, професіоналізм та надійність роблять їх ідеальним вибором для вашого бізнесу. Я рекомендую працювати з ними!
5.0
it-rating
Команда працює чудово. Робили дизайн, потім верстку. Наразі робимо перерву у співпраці, але обов'язково повернемося. Особливо хочу відзначити проектного менеджера, Вікторію та дизайнера, Максима. Рекомендую.
5.0
it-rating
В даний час вкрай непросто знайти маркетологів та розробників у рамках однієї компанії. Переді мною стояло завдання знайти команду, яка зможе реалізувати якісне SEO-просування, але при цьому й зможе реалізувати технічні завдання, які потрібні для ефективного SEO. Ми зіткнулися з проблемою під час роботи з іншими SEO-компаніями, оскільки вони видавали технічне завдання на доопрацювання сайту, і нам самим потрібно було знайти команду, яка їх запровадить. Це займало багато часу і гальмувало просування сайту. Команда Promodex робить все під ключ, і це їхня величезна перевага на ринку!
5.0
Google
Promodex забезпечують нам техпідтримку сайту, SEO та гео-просування. Команда швидко закриває технічні задачі, допомогла покращити структуру та контент під пошук, а також навела лад із присутністю в Google Maps. Видимість у Google зростає, звернення стали більш релевантними. Комунікація чітка й оперативна - рекомендуємо.
5.0
Google
Promodex розробили для нас інтернет-магазин на OpenCart для українського виробника одягу, взуття та аксесуарів для танців. Зробили зручний каталог і навігацію, сайт швидко працює та коректно відображається на мобільних. Комунікація чітка, задачі виконували оперативно — рекомендуємо.
5.0
Google
Promodex швидко розробили для нас платформу онлайн-фітнесу OnlineGym з особистим кабінетом і мобільним додатком. Реалізували підписку, програму харчування та відстеження прогресу тренувань. Все працює зручно й стабільно — рекомендуємо
5.0
Google
Раніше майже весь трафік у нас був брендовий — приходили ті, хто вже знав, що шукає. Задача була почати з'являтися за категорійними запитами, а це робота повільніша, ніж усім хотілося б. Перші три місяці графік був настільки рівний, що я двічі перепитував, чи не витрачаємо ми гроші дарма — у відповідь показували проміжні показники, а не просто просили потерпіти. З четвертого місяця категорійні сторінки почали ранжуватися, а до шостого дохід з органіки виріс на 42%. Платна реклама тепер працює паралельно, але зі значно меншим бюджетом — насамперед тому, що ми перестали викуповувати трафік за власними брендовими запитами.
5.0
Google
Promodex надають технічну підтримку нашого інтернет-магазину з 19.03.2024. За майже 300 годин виконали задачі різної складності дуже швидко та надійно — не було жодних “завислих” чи невиконаних задач. Комунікація чітка, реакція оперативна, сайт працює стабільно. Рекомендуємо як сильну команду з підтримки OpenCart.
5.0
Google
Promodex розробили нам сайт для Car Textile і ведуть SEO. Працюємо по всій Україні (опт/роздріб), тому важливо було зробити нормальний каталог і щоб сайт знаходили в Google. Все реалізували швидко: структура, зручність, технічна оптимізація, поради по ключових запитах і контенту. Результат відчутний - більше релевантних звернень і поступовий ріст у пошуку. Дякуємо команді та рекомендуємо!

750+

проєктів

30+

людей у команді

11

років на ринку

50+

нагороди

Працюємо над проєктами, які рухають бізнес уперед

Нам довіряють свою рекламу клієнти з України, США та Європи

SantehPlast
ProfLine
ProKennex
Stream Market
Rechtsberatung
WebAwards
Online Gym Project
Key4GG
Ekvives
Zoo Expert
Mida
Idealist Coffee Co.
Servired
OrtoSmart
Mevis
Monday Sport
ArtBullet
Інпрем
IRIJ Jewelry Company
Galaktyka
Pobedov
IT Рейтинг України
Metec
Chaser Lab
Ikura
TA Group
Posudmeister
Blago
Автоматизація викладки й контейнеризація проєктів

Як це працює на практиці

Уявімо, що розробник виправив помилку в кошику інтернет-магазину. Без автоматизації він вручну переносить файли на сервер і сподівається, що нічого не зламав. З налаштованим конвеєром усе відбувається інакше:

  1. розробник надсилає зміну в репозиторій Git;
  2. система автоматично запускає перевірки й тести;
  3. якщо все гаразд, зміна потрапляє на тестовий сервер, де її можна подивитися;
  4. після схвалення зміна виходить на робочий сайт, за правильного налаштування — без перерви для відвідувачів;
  5. якщо щось пішло не так, попередню версію повертають однією дією.

Абревіатура тут проста. CI — безперервна інтеграція, тобто постійна автоматична перевірка змін. CD — безперервна доставка, тобто автоматична викладка перевірених змін.

Що це дає бізнесу

  • Менше збоїв після оновлень. Помилки ловляться на етапі перевірок, а не покупцями на робочому сайті.
  • Частіші й менші оновлення. Нові функції виходять, щойно готові, а не накопичуються для великої ризикованої викладки.
  • Незалежність від однієї людини. Викладка не залежить від того, чи у відпустці розробник, який «знає, як це робиться».
  • Зрозуміла історія змін. Завжди видно, що, коли і ким було викладено, і до якої версії повернутися.
  • Простіше підключати нових людей. Новий розробник запускає проєкт локально за кілька команд, а не збирає середовище вручну.

Навіщо потрібні контейнери

Контейнер — це «коробка», в якій лежить застосунок разом з потрібною версією мови, бібліотеками й налаштуваннями. Docker дозволяє запускати таку коробку на будь-якому сервері однаково. Це прибирає цілий клас проблем, коли на тестовому сервері все працювало, а на робочому — ні через іншу версію PHP чи відсутню бібліотеку.

Контейнери також спрощують переїзд між серверами й хмарними провайдерами та дозволяють запускати кілька копій застосунку, коли зростає навантаження. Для великих систем з багатьма контейнерами використовують Kubernetes, але для більшості проєктів він надмірний.

Є й зворотний бік. Контейнери додають ще один шар, який потрібно розуміти й обслуговувати: стежити за оновленнями базових образів, місцем на диску, журналами. Тому ми не переносимо в контейнери все підряд, а починаємо з тих частин, де різниця середовищ уже створює проблеми, і пояснюємо команді, як із цим працювати.

Кому це потрібно, а кому — поки ні

Автоматизація окупається, коли над проєктом працює кілька розробників, оновлення виходять часто, а ціна помилки на робочому сайті висока: інтернет-магазини, онлайн-сервіси, портали, мобільні застосунки з власним сервером.

Для невеликого корпоративного сайту, який оновлюється кілька разів на рік, складний конвеєр не потрібен. Але навіть тут варто мати код у Git і просту автоматичну викладку: це недорого і рятує від випадкових помилок.

Окремий випадок — коли розробку веде кілька підрядників або частину робіт виконує ваша власна команда. Спільні правила викладки тоді особливо корисні: кожен бачить, що змінили інші, а суперечки «хто зламав сайт» вирішуються за історією змін.

Варіанти: від простого до повного

  • Проста автоматична викладка. Код з репозиторію сам потрапляє на сервер після схвалення. Найменше зусиль, вже прибирає ручне копіювання файлів.
  • Конвеєр з перевірками й тестовим сервером. Додаються автоматичні тести та окреме середовище для перевірки. Оптимальний варіант для більшості комерційних проєктів.
  • Повна контейнеризація. Усі частини проєкту працюють у контейнерах, інфраструктура описана кодом, наприклад через Terraform чи Ansible. Дає найбільше гнучкості, але потребує більше часу на налаштування й досвіду для обслуговування.

Що підготувати з вашого боку

  • доступ до репозиторію з кодом або сам код, якщо він поки не в Git;
  • доступи до серверів чи хмарного облікового запису, де працює проєкт;
  • інформацію про те, хто зараз розробляє і викладає зміни;
  • список зовнішніх сервісів і ключів доступу, які використовує застосунок.

Типові помилки при впровадженні

  • Тримати паролі й ключі доступу просто в коді репозиторію.
  • Намагатися одразу побудувати «ідеальний» конвеєр з Kubernetes для невеликого сайту.
  • Налаштувати автоматичну викладку без можливості відкату.
  • Мати тестовий сервер, який настільки відрізняється від робочого, що перевірка на ньому нічого не доводить.
  • Забути про міграції бази даних: код оновився, а структура таблиць залишилась старою.

Як зрозуміти, що автоматизація працює

Результат видно не в налаштуваннях, а в повсякденній роботі. Через деякий час після впровадження варто подивитися на кілька речей:

  • як часто після оновлень доводиться терміново щось виправляти на робочому сайті;
  • скільки часу минає від готової зміни до її появи на сайті;
  • чи може викласти оновлення будь-хто з команди, а не лише одна людина;
  • скільки часу займає повернення попередньої версії, якщо щось пішло не так.

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

Що впливає на вартість

  • Стан проєкту: чи є код у Git, чи є тести, наскільки складно запустити проєкт з нуля.
  • Кількість частин: один сайт чи кілька сервісів, фонові обробники, мобільний застосунок.
  • Кількість середовищ: лише робочий сервер чи також тестові й демонстраційні копії.
  • Глибина автоматизації: проста викладка, конвеєр з перевірками або повна контейнеризація з описом інфраструктури кодом.

Часті запитання

Чи доведеться зупиняти розробку на час впровадження? Ні. Налаштовуємо конвеєр паралельно з поточною роботою і перемикаємо команду, коли він перевірений.

Чи можна впровадити CI/CD у старий проєкт? Так, хоча іноді спершу потрібно навести порядок у коді та залежностях. Для дуже застарілих систем це зазвичай частина поступової модернізації.

Чи потрібна хмара для контейнерів? Ні. Docker-контейнери чудово працюють і на звичайному орендованому сервері. Хмара корисна, коли потрібно швидко додавати ресурси, — про це на сторінці хмарної інфраструктури.

Чи потрібно одразу писати автоматичні тести? Не обов’язково. Конвеєр корисний і без них: він прибирає ручну викладку і дає швидкий відкат. Тести додаємо поступово, починаючи з найдорожчих для бізнесу сценаріїв — оформлення замовлення, оплати, реєстрації.

Хто підтримуватиме конвеєр після налаштування? Ваша команда за нашою інструкцією або ми в межах технічної підтримки.

Чому Promodex

Ми самі розробляємо сайти й застосунки з 2015 року, запустили 750+ проєктів і тому налаштовуємо автоматизацію з погляду команди, яка потім із нею працюватиме. Усе робить власна команда в Києві, без аутсорсу. У результаті ви отримуєте процес викладки, який розуміє вся команда, а не лише одна людина, і прозорий опис того, що й навіщо налаштовано.

Готові створити щось вражаюче?
Нагороди та відзнаки
3 місце IT Rating
Web developers companies
2 місце IT Rating
eCommerce development companies
5 місце IT Rating
SEO companies
3 місце IT Rating
Web developers companies in New York
1 місце WEBAWARDS
Online store developers
2 місце WEBAWARDS
Magento CMS developers
1 місце WEBAWARDS
Online store developers
5 місце Clutch
Top small business web design companies
7 місце Clutch
Top WordPress developers
2 місце Clutch
Top 30 web development companies
19 місце Clutch
List of the top Wyoming web design companies
4 місце Clutch
Top web designers in Casper
22 місце Clutch
Top web developers in Wyoming
4 місце 99 Firms
40 Best web design companies
1 місце Digital Agency Network
Best digital marketing agencies in Delaware
4 місце UpCity
BigCommerce development companies
55 місце UpCity
Ecommerce development companies
1 місце UpCity
Website development companies
5 місце OpenCart
OpenCart experts
20 місце DESIGNRUSH
Top web design companies in the USA
5 місце DESIGNRUSH
Top design firms in the USA
5 місце Top Developers
Top 10+ OpenCart development companies