Чи підходить Elastic Beanstalk для компакт-дисків класу?


11

Я працюю з проектом, який використовує Дженкінса для створення та розгортання мікросервісів для Elastic Beanstalk. Ми розгортаємо гілку інтеграції в тестове середовище, випускаємо гілки в інсценувальне середовище, а потім остаточну майстерність для виробництва. У мене є декілька проблем з тим, як зробити це таким чином: по-перше, це означає, що ми закінчуємо матрицею однієї збірки на проект за середовище, дублюючи зусилля; і два, це означає, що ми не використовуємо ті самі артефакти побудови для виробництва, які були перевірені в постановці.

Я схильний відмовитися від Beanstalk і перейти на звичайні ASG, використовуючи щось, як Chef для розгортання. Це дозволить нам створити один збір на проект, створивши артефакт збірки, і ми могли б розгорнути той самий артефакт у виробництві, який був затверджений у постановці. Однак перехід має незначну авансову вартість. Чи є спосіб краще використовувати Beanstalk, який би дозволив отримати більш надійні, простіші управління CI / CD?

Примітка : просування того ж артефакту побудови - це саме те, що я хочу зробити, але в документах я не бачу ясного способу зробити це; він пояснює, як розгорнутись до EB із свого джерела програми, але не як просувати існуючу версію в інше середовище, якщо мені не вдалося прокрутити її безпосередньо. Якщо він доступний в самому ЕБ, можливо, в плагіні розгортання Jenkins EB може бути обмеження, яке заважає це робити конкретно в Jenkins, але я взагалі не бачив способу це зробити.


Це ваше середовище Дженкінса, яке створює обмеження для єдиного побудови на середовище? Я використовую Elastic Beanstalk для розгортання програм, а завантажені артефакти додатків можна просто просувати (розгортати) в декілька середовищ. Отже, я насправді не бачу обмежень, які ви описуєте. Здається, може існувати спосіб, як ви можете використовувати Elastic Beanstalk, щоб робити те, що ви хочете. Але це питання є досить широким, як і зараз.
Енді Шінн

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

Відповіді:


4

ІМО вважає, що ваша проблема не стосується Elastic Beanstalk за таким сценарієм, це Дженкінс або, принаймні, спосіб, яким ви користуєтесь. Вам слід дійсно зосередитись на тому, щоб будувати "річ" лише один раз, незалежно від того, що це.

Повне розкриття інформації: я працюю в ThoughtWorks і я дуже упереджений GoCD. Я спробую пояснити, про що я маю на увазі, як нейтрально було. Я буду використовувати документи нашого інструменту - приклади, але, сподіваємось, люди можуть екстраполюватись у свої системи.

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

Наприклад...

  1. Я будую .jar файл і запускаю на ньому деякі одиничні тести, основні C / I речі. Якщо він пройде, цей .jar файл та результат тестів завантажуються в певне завдання конвеєра .
  2. Наступним конвеєром може стати ваше розгортання в більш складній середовищі тестування. Він повинен отримати точну банку з точної роботи, яка її побудувала. Потім він виконує Elastic Beanstalk, щоб розгорнути цю банку в потрібне середовище.
  3. Наступний конвеєр - це розгортання. Він проходить увесь шлях до першого трубопроводу і отримує точну банку з точної роботи, яка її побудувала. Потім виконайте програму Elastic Beanstalk, щоб розгорнути цю банку в потрібне середовище.

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

Ви можете використовувати Elastic Beanstalk, шеф-кухаря, маріонетку, Ansible, uDeploy або будь-яку кількість інших інструментів, щоб зробити фактичні розгортання. Ось звідки не походить ваше питання. Сервери безперервної інтеграції спочатку не були створені для цього. Звичайно, є багато плагінів, якими ви можете скористатися, щоб дістатися до того самого місця, якщо це ваші переваги.

Сервери безперервної доставки, такі як GoCD , Chef Automate та ConcourseCI, були розроблені спеціально для вирішення подібних завдань.


Так, моя мета - побудувати один раз і просувати виробництво. Моє питання - чи підходить beanstalk до цього типу використання. З того, що я можу сказати, це насправді не здається; Наприклад, рекомендований метод розгортання програми .NET - це робити з візуальної студії, що майже про найгіршу практику, про яку я можу придумати.
Адріан

Я не використовував його особисто, але, здається, було б, якби ви змінили слово "просувати" на "розгортання". Ваші системи CD закликають beanstalk для розгортання на тестування, запускає деякі тести, а потім повідомляє про успіх / збій. Якщо це вдасться, ваша система CD викликає beanstalk для розгортання для постановки тощо. Отже, просування здійснюється вашим інструментом оркестрації, розгортання - вашим інструментом розгортання. (FYI, тому такі компанії, як шеф-кухар, мають сплячку (річ), автоматизують (просувають річ) та шеф-кухаря (розгортають річ).
Ken Mugrage

FYI, схоже на те, що ви можете його скриптувати (інфраструктура як код - це "добра річ") docs.aws.amazon.com/elasticbeanstalk/latest/dg/… - але знову ж таки, абсолютно 0 особистого досвіду.
Ken Mugrage

Як би я не міг сказати, яке б слово ви не використовували, Beanstalk не здається це робити. Здається, вона спрямована на розгортання з джерела, а не з артефактів. На сторінці, яку ви пов’язали: "Коли ви запускаєте eb розгортання, EB CLI зв'язує вміст вашого каталогу проекту та розгортає його у ваше оточення." Я вдячний за відповідь, але моє запитання є специфічним для beanstalk, тому, сподіваємось, хтось, хто має досвід роботи з beanstalk, може задзвонити.
Адріан

Ах, вибачте з цього приводу. Я інтерпретував ~/eb$ eb deploy Creating application version archive "app-150630_014338". Uploading elastic-beanstalk-example/app-150630_014338.zip to S3значення будь-якого поштового файлу, який ви застрягли в цій директорії. Удачі!
Ken Mugrage
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.