Про білд системи
В твітері хтось накинув на AWS CodePipelines / CodeBuild — мовляв це незручна фігня. А я як раз мав позитивний досвід, але перед тим, як його розказати, дам трохи вводних про свій досвід з подібними рішеннями.
Коли я починав професійну карʼєру, то був лише компілятор Delphi, який робив ехешнік, та й усе. Потім, з появою .NET, наче зʼявився msbuild (може і не одразу — виправте в коментах), але його генерувала IDE і досвід використання був таким самим, шо і з простим компілятором.
На якомусь етапі зʼявились білд сервери. В нас це був Teamcity, який ми запускали на компі офіс менеджерки, через шо в неї зависав ютуб. Там скрипти для збірки налаштовувались на сервері через UI.
Потім відкрилась можливість мати ці скрипти не на сервері, а прямо в репозиторію проекту. Як раз тут msbuild можна було використовувати, аби не лише білдити, а і запускати тести, деплоїти тощо. Проте це було дуже незручно (хто бачив, той знає).
Десь в той самий час розвивалась Ruby, а там був rake. Ідея була в тому, щоб замість XML використовувати саму мову для опису білда. Ідея залетіла, і стали зʼявлятись варіації на інших мовах. Для дотнету це були cake (C#), fake (F#) і декілька інших. Це все співпало з моїм захопленням F# і я став дуже активно просувати саме fake.
Це було прикольно і цікаво, єдина проблема була з онбордингом нових людей, яких спочатку воно дуже лякало. З часом наче переляк проходив, проте все одно було відчуття нішевості і нетакяквсішності (як зараз редіс в якості бази наприклад). Тому з часом я почав дивитись в сторону більш масмаркетових інструментів.
Десь тоді ж познайомився з CI рішеннями, типу circleCI, де білди описувались в yaml форматі, і це мені дуже сподобалось. Потім, звісно github actions та gitlab (не памʼятаю, як у них називаються actions). Це прямо супер зручна штука, і дуже добре, що вони зʼявились. Хоча написав це, і згадав, що не все мені там подобається — про це напишу окремий пост, якщо будуть лайки на цьому.
Так а шо ж з CodeBuild / CodePipelines? Мені подобається, що все можна описати в CDK стеку. Тобто можна в стеку описати необхідну інфру та пайплайн, який буде деплоїти сам стек, в якому це все описано. Хтось скаже "та я роблю те саме в github actions", і в принципі воно так і є, але тут ще й можна гнучкіше описати потрібну інфру. Друга перевага — що воно запускається всередині AWS, і не треба прокидувати різних API_KEYs тощо. Теж не критична проблема, а радше зручність.
А, ну і додам, що там є можливість використовувати в якості тригера upload на S3. Тобто, якщо у вас дуже засекьюрений білд сервер, до якого доступ лише через VPN, то для деплойменту він може просто викладати артефакти на бакет — а там вже його підходить code pipeline.
До речі, rake та його клони так називаються, бо вони є нащадками make — бородатого рішення для збірки, яким я (тут трохи соромно) ніколи нормально не користувався. Хоча насправді воно і досі актуальне, і дуже багато проектів і людей будують свої білд системи саме на ньому.
А що ви використовуєте? Накидайте якоїсь екзотики в коменти :)
Post #566
2.7K
- 👍 18
- ❤ 6
- 🤔 1
- 🤯 1
- 💅 1