Матриця Рамсфелда як ефективний інструмент в процесі приняття рішень
Під час брифінгу, присвяченого війні в Іраку, Дональд Рамсфелд поділив інформацію на 4 категорії: відоме знане, відоме незнане, невідоме знане, невідо...
Git – це розподілена система контролю версіями файлів та спільної роботи, яка була розроблена у 2005 році Лінусом Торвальдсом. У перекладі з англійської назва «git» означає «негідник». Розробник пояснює таку назву з часткою сарказму: «Я егоїстичний негідник, а тому всі проєкти називаю на свою честь. Спочатку Linux, тепер – git».
Зараз Git є найпопулярнішим і безкоштовним інструментом, який є набором утиліт командного рядка. Він дозволяє відстежити історію розробки програмного забезпечення та працювати цілими командами з будь-якої точки світу над одним проєктом. Кожна зміна додається у вигляді комітів, що дозволяє відстежити, за необхідності скасувати зміну та повернутися до попередніх версій.
Крім комфортної роботи, гнучкості та можливості вести історію розробки, використання Git значно знижує появу помилок у розробці та втрату даних. Подібними SCM-системами управління версіями є Mercurial, Subversion, Darks, Bazaar. Однак, Git має ряд переваг:
Основні завдання Git:
Використання Git здійснюється за допомогою спеціальних хостингів та репозиторіїв.
GitHub був створений у 2008 році, а в 2018 році його викупила корпорація Microsoft за $7,5 млрд. GitHub являє собою хостинг вихідного коду, а також велику соцмережу розробників з 20 млн користувачів, які можуть переглядати коди один одного, допомагати в розробці та залишати коментарі, та 80 млн репозиторіїв по всьому світу. Користувачі можуть створювати свій репозиторій і публікувати свої роботи. Безкоштовне використання можливе лише для публічних проєктів з відкритим кодом. Платформа написана на Ruby on Rails і має велику кількість загальнодоступних проєктів із відкритим кодом.
Переваги GitHub:
GitLab є альтернативою GitHub, а також веб-сховищем з наданням безкоштовних відкритих і приватних сховищ. GitLab був розроблений двома українцями: Дмитром Запорожцем та Валерієм Сизовим, використовуючи Ruby та деякі частини Go. Пізніше архітектура була вдосконалена за допомогою Go, Vue.js та Ruby on Rails.
GitLab є повною платформою DevOps, що дозволяє планувати проєкт, керувати вихідним кодом, проводити моніторинг, забезпечити безпеку тощо. Він також пропонує хостинг для вікі та систему відстеження помилок. Використання GitLab значно скорочує життєвий цикл продукту та підвищує продуктивність. Це, зі свого боку, збільшує цінність клієнта.
Переваги GitLab:
BitBucket – аналог GitHub, який призначений для хостингу проєктів та їхньої спільної розробки. Сервіс був розроблений австралійською компанією Atlassian, яка створила Jira та Confluence. Він дозволяє безкоштовно створювати відкриті та закриті репозиторії на основі технологій Git, має можливість інтегруватися з Jira та Snyk та вбудованими можливостями CI/CD. Сервіс є чудовим рішенням для невеликих команд.
Переваги BitBucket:
Jenkins є системою з відкритим кодом на основі Java. Вона забезпечує автоматизацію елементів процесу розробки ПЗ без залучення людей і безперервної інтеграції ПЗ. Jenkins широко використовується в компаніях, де є потреба в автоматичному деплойменті додатків. Система безкоштовна, працює на Windows, macOS та інших Unix-подібних ОС, а також має інтеграцію з Docker та Kubernetes. Jenkins не містить репозиторію з вихідним кодом, а підключається до вже наявних через веб-хуки. Отже, це універсальний інструмент для CI/CD незалежно від вибраного хостингу віддалених репозиторіїв.
Переваги Jenkins:
QOps може ефективно працювати з усіма перерахованими сервісами.
GitHub і GitLab включають можливість встановлення ранерів, які в подальшому будуть виконувати команди з .yml файлу, включеного до репозиторію вихідних кодів при досягненні певної події. Як правило, такою подією є відправлення вихідних кодів (push) або злиття гілок (merge) у віддаленому репозиторії. При цьому синтаксис складання .yml файлів трохи відрізняється, хоча описує ту ж саму сутність поведінки ранера та управління процесом складання програми, тестування та подальшого розгортання. Обидві хостингові системи дозволяють встановлювати свої ранери в оточенні Windows, що поки не доступно для хостингу BitBucket.
Покажемо детальніше використання QOps з вищезгаданими системами. Для GitHub .yml файл є структурованим набором етапів, який складається з послідовних кроків. У наведеному нижче прикладі описується 3 етапи – init-build-reload.
Такий вигляд має цей пайплайн за умов його успішного виконання.
Для GitLab .yml файл являє собою такий самий структурований набір етапів. Відмінностями є інше найменування ключових слів і гнучкіша робота зі змінними. На жаль, розробники не використовують уніфікований формат .yml файлу та взаємна сумісність між ними не забезпечується.
При успішному виконанні вид пайплайну, що складається з тих самих етапів представлений нижче. Тут варто відзначити, що GitLab має більш розвинену інтерактивність. Наприклад, у пайплайні можна налаштувати ручне підтвердження від користувача.
Оскільки QOps зараз працює виключно в середовищі Windows, то автоматичний пайплайн, у разі вибору BitBucket для хостингу вихідних кодів, може бути розроблений при використанні Windows-версії Jenkins. Універсальність останнього та різноманітність плагінів дозволяє пов’язати будь-який віддалений репозиторій через веб-хуки. Структура пайплайна у разі налаштування через інтерфейс самого Jenkins записується у вигляді JSON-об’єкта, і для нашого прикладу містить ті самі 3 етапи – Configuration-Build-Reload.
Результат успішного виконання пайплайну в Jenkins показано нижче. При цьому інтерфейс цікаво зіставляє результати попередніх запусків.
Більше інформації ви знайдете за посиланням