Чи обмежений DevOps компаніями, що мають продукцію SaaS?


26

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

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

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

Відповіді:


32

Абсолютно не!

DevOps - це руйнування традиційних силосів (відділень) для підвищення ефективності.

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

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

Переваги DevOps в нашому випадку полягали в наступному:

  • Завдяки безперервній розробці ми повідомляємо команду розробників раніше, ніж пізніше, якщо є інтеграція або створюються проблеми з їх кодом. Вони можуть виправляти проблеми, поки їх розум все ще знаходиться на тій частині коду, яку вони тільки що здійснили.
  • Завдяки безперервному тестуванню та доставці (в QA) ми дали змогу команді QA знайти проблеми раніше та повідомити про них раніше. Це скоротило час, необхідний для пошуку та виправлення помилок, а також зменшило складність цих розслідувань.
  • За допомогою інструментів збору та збирання журналів ми надавали розробникам доступ до того, на що вони зазвичай не дивляться (вони дуже захоплюються налагодженнями :) - розуміння того, як журнали бачать і використовуються іншими командами, покращило загальну якість журналів
  • Ми часто ділилися інформацією та створювали документацію для обміну знаннями між командами, намагаючись зруйнувати стіни. Розуміючи потреби Ops, ми створюємо кілька посібників про те, що завжди слід пам’ятати під час завантаження програми (де / як керувати властивостями тощо). Розуміючи реальність Dev (код більше функцій, швидше, gogogogo!), Ми змогли оперативники створити сервери та кластери, які краще підходили до потреб розробників.
  • Загальна якість розгортань також значно покращилася. Розгортанням займалася наша команда, тому ми мали ідеальну видимість як на Ops, так і на Dev. Це усунуло багато проблем, пов’язаних із "передачею коду", де розробник передав пакет і односторінковий документ операторам із зазначенням "Встановити це!".

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


1
Дійсно, DevOps може бути застосований практично до будь-якої організації, яка займається розробкою, навіть до великих продуктів, що займаються великою кількістю публічних випусків на рік, - використовуючи постійну доставку всередині свого конвеєра розробок, вони все ще можуть отримати деякі переваги DevOps: краща якість, зниження витрат, передбачуваність випуску тощо
Дан Корнілеску

Відповідь нагадує SaaS, насправді не пояснює, як продукт або послуга, яка не є SaaS, може отримати користь від цих практик.
Євгеній

Продукти, над якими я працював, не були SaaS (навпаки). Але обґрунтування залишається таким же, це не має великого значення, ви SaaS чи ні, DevOps намагається вдосконалити продукт нетрадиційними способами. Я не міг нічого знати про нашу модель ціноутворення чи пропозицію, це не мало би великої різниці.
Олександр

13

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

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

Хоча клієнт не дбає про DevOps (у більшості випадків), він все ще корисний для нас. Завдяки DevOps ми можемо швидко просувати нові збірки, тому клієнти можуть бачити зворотній зв'язок за хвилини, а не години, і ми також можемо виявити будь-які помилки / помилки за допомогою нашого тестування за допомогою Jenkins / Travis.

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

Витрату, яку заощадив DevOps, важко визначити. У нас є додаткові витрати у вигляді програмного забезпечення, яке ми обираємо використовувати для трубопроводу (Travis, Jenkins, Puppet, що у вас є), але ми також економимо час і гроші, виправляючи помилки / швидко даючи відгуки клієнтів. Наш швидкий час реакції підтримує наших клієнтів щасливими, в свою чергу, підтримуючи наші гаманці щасливими.


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

1
@Evgeny DevOps допомагає закінчити проект вчасно та на бюджет з причин, пояснених у моїй відповіді. Скорочуючи DevOps, ви також вирішили отримати переваги, які я пояснив. Створення та тестування часто допомагають залишатись у бюджеті та вчасно. Пізніше виявлення помилки коштуватиме більше грошей і потребує більше часу, щоб виправити, це було доведено знову і знову. Клієнт не дбає про конвеєр, але чим довше ви будете чекати його зворотного зв'язку, тим дорожче і трудомістке буде переписування.
Олександр

Це не просто Agile Software Dev?
Євгеній

@Evgeny Я оновив свою відповідь, щоб уточнити. Ми використовуємо Agile, але це не означає, що ми не можемо мати менталітету DevOps ..
Черепаха

1
@Evgeny, можливо, ви могли б зберегти деякі, не підтримуючи свої тести на одиницю та приймальні тести, але це створює технічний борг, який є антидіаграмою DevOps. Ви можете піти з цим на кілька тижнів або місяців, але незабаром (напевно) вийдете з важким утриманням безладу, який неможливо перевірити.
Стів Баттон

3

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

  • Автоматизовані, відтворювані склади програмного забезпечення, з відомими, керованими конфігураціями компіляторів, бібліотек та інших інструментів збирання.
  • Автоматизовані, повторювані системні тести для тесту регресії та нових тестів на функціональність.
  • Інші автоматизовані та регулярні дії (наприклад, постійно оновлювані зразки знімків екрану, доступні на всіх підтримуваних мовах; для перекладачів, які перевіряють, а технічних авторів - включення до посібників користувача).

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


Автоматизація не депеш. Ті ж коментарі, що і нарешті відповідь Девіда Бока (вибачте, мій коментар був загублений в той момент, коли я його подав, тільки що помітив)
Тенсібай

3

Діяльність з розробки та впровадження програмного забезпечення раніше не потребувала глибокої інтеграції між відділами. Але на сьогоднішній день необхідно тісно співпрацювати з усіма підрозділами (розвиток, ІТ-операції, забезпечення якості тощо).

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

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

Тож методика корисна не тільки в SaaS.


0

Зовсім ні. Хоча на цій темі вже є чудові приклади, я хотів би поділитися власним анекдотом. У 2001 році я успадкував програмний проект з випуском, який передбачав створення компакт-диска. Документація для процесу випуску включала 40 (!) Кроків, задокументованих попереднім інженером, які включали деякі смішні вручну написані інструкції, такі як "відкрити цей файл конфігурації та змінити ім'я .jar-файлу в рядку 41, щоб включити номер версії новий реліз ".

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

Після того, як цей процес був автоматизований, ми придбали компакт-диск Jukebox. Щовечора після того, як тести проходили, машина збирання автоматично створила новий інсталяційний компакт-диск. Наші тестери могли прийти наступного ранку, взяти диск і переконатися, що все встановлено.

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


Це пов'язано з автоматизацією, але жодним чином не пов’язане з організацією девепса, я не бачу жодної згадки про команду з прихованою дисципліною ніде, просто оперативні автоматизації речей, які вони успадковують
Tensibai

Це був 2001 рік ... задовго до того, як DevOps була річчю. Це була не просто автоматизація, я вважаю, що це впорядкувало управління проектом точно таким же чином, який з часом отримав назву «Культура» DevOps. Таким чином, це приклад ставлення DevOps поза організацією SaaS.
Девід Бок

DevOps не стосується автоматизації, а також управління проектами. Йдеться про руйнування організації на базі силосу в корені. Вибачте, я не відчуваю, що ця відповідь справді стосується питання (це не означає, що це нецікаво, але просто не в потрібному місці ІМО, і я не бачу, де це могло б бути насправді, може прийти пізніше)
Тенсібай

Я спробую ще раз уточнити - зробивши компакт-диск так послідовно і швидко, ми могли отримати зворотній зв'язок від QA набагато швидше, ніж ми могли раніше. Це зменшило силос. Це не усунуло це, як пройшло ще рік-два, перш ніж ми відключили воєнну владу навколо централізованих бюджетів на діяльність, але це, безумовно, був критичним кроком у здійсненні макіг. Ми також знали набагато раніше, коли процес випуску був порушений. Я зараховую багато таких дрібниць як мій особистий шлях до DevOps.
Девід Бок

Цей останній коментар приносить більше сенсу цій відповіді під цим питанням, ви повинні відредагувати, щоб включити її, я все ще вважаю, що цей формат не відповідає цьому формату, але, здається, моя позиція неправильна, коли я спостерігаю загальну еволюцію в цій приватній бета-версії, так ... це залежить від вас. Я не можу видалити свій потік без редагування інформації
Tensibai
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.