DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе

Пачні прымяняць лепшыя DevOps-інструменты ўжо сёння!

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
DevOps-рэвалюцыя нарэшце захапіла свет, і DevOps-інструменты сталі неверагодна папулярныя. Па дадзеных сэрвісу Google Trends, колькасць запытаў "DevOps tools" пастаянна расце, і гэтая тэндэнцыя захоўваецца.

DevOps-метадалогія ахоплівае ўвесь жыццёвы цыкл распрацоўкі праграмнага забеспячэння (ПА), таму спецыялісты могуць выбіраць з мноства інструментаў. Але, як вядома, ніводная прылада не можа стаць універсальным сродкам для ўсіх. Тым не менш некаторыя рашэнні прапануюць настолькі вялікі набор функцый, што з дапамогай іх можна зладзіцца практычна з любой задачай.

Разаб'ем DevOps-інструменты на катэгорыі і параўнаем з аналагамі:

  • інструменты распрацоўкі і зборкі
  • інструменты для аўтаматызацыі тэсціравання
  • інструменты для арганізацыі дэплою
  • Runtime-інструменты
  • інструменты для сумеснай працы.

Паспяховае і прадуманае ўкараненне DevOps-практык уключае прылады з усіх пяці груп, пералічаных вышэй. Прааналізуйце бягучы набор інструментаў у вашым праекце, каб не прапусціць важны элемент CI/CD-пайплайну.

Інструменты распрацоўкі і зборкі

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Гэта аснова стэка CI/CD-пайплайна. Усё пачынаецца менавіта тут! Лепшыя прылады ў гэтай катэгорыі могуць кіраваць некалькімі плынямі падзей і лёгка інтэгравацца з іншымі прадуктамі.

На гэтым этапе жыццёвага цыклу распрацоўкі вылучаюць тры групы прылад:

  • сістэма кіравання версіямі (SCM)
  • бесперапынная інтэграцыя (CI)
  • кіраванне дадзенымі (Data management)

У 2020 г. GIT зарэкамендаваў сябе толькі са станоўчага боку, таму ваш SCM-інструмент павінен мець бездакорную падтрымку для GIT. Для CI абавязковая ўмова - здольнасць выконваць і запускаць зборкі ў ізаляваным кантэйнерным асяроддзі. Што да кіравання дадзенымі, тут патрабуецца магчымасць уносіць змены ў схему базы дадзеных і падтрымліваць БД у адпаведнасці з версіяй прыкладання.

Інструмент SCM + CI №1

пераможца: GitLab і GitLab-CI

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Лепшая прылада цыклу DevOps 2020 г., па-за ўсякім сумневам, GitLab, і ён сапраўды застанецца лідэрам інавацый у найблізкай будучыні.

Асноўная функцыя GitLab - забяспечваць камфортнае кіраванне Git-рэпазітаром. Вэб-інтэрфейс інтуітыўна зразумелы і зручны ў выкарыстанні. GitLab дае ўсё, што трэба, у бясплатнай версіі і пастаўляецца як SaaS і on-prem (выкарыстанне ўласных рэсурсаў для размяшчэння праграмнага забеспячэння).

Ні адзін іншы SCM-інструмент не выкарыстоўваў бесперапынную інтэграцыю (CI) непасрэдна ў вашым рэпазітары, а GitLab гэта робіць ужо доўгі час. Каб выкарыстоўваць GitLab-CI, вы павінны дадаць файл .gitlab-ci.yml у каранёвы каталог зыходнага кода, і любыя змены ў праекце будуць запускаць дзеянні на аснове таго, што менавіта вы ўказалі. GitLab і GitLab-CI заслужана прызнаны лідэрамі ў галіне бесперапыннай інтэграцыі (CI-as-code).

Ключавыя перавагі

  • Надзейнасць - Прадукт існуе на рынку з 2013 г.; стабільны; добра падтрымліваецца.
  • Адкрыты зыходны код - Бясплатная версія GitLab не абмяжоўвае асноўныя функцыянальныя магчымасці, якія неабходныя камандам распрацоўкі. Платныя пакеты паслуг прадастаўляюць дадатковыя карысныя функцыі для кампаній розных памераў і запатрабаванняў.
  • Engrained CI – Ні адзін іншы інструмент на рынку не ўбудаваў бесперапынную інтэграцыю непасрэдна ў SCM, як GitLab-CI. Выкарыстанне Docker забяспечвае беспраблемную ізаляваную зборку, а ўбудаваныя справаздачы спрашчаюць яе адладку (дэбагінг). Нам не патрабуецца складаная інтэграцыя і кіраванне некалькімі прыладамі адначасова.
  • Неабмежаваныя інтэграцыі - GitLab забяспечвае простую інтэграцыю ўсіх неабходных DevOps-інструментаў. Дзякуючы гэтаму каманды распрацоўкі і суправаджэння карыстаюцца адзінай крыніцай інфармацыі аб іх дадатку ў любым з акружэнняў.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

У гэтай катэгорыі ёсць і іншыя папулярныя прылады, аднак яны не так добрыя, як GitLab. І вось чаму:

GitHub - Гэта выдатная SaaS-сістэма кіравання версіямі для невялікіх фірмаў і пачатковых стадый распрацоўкі. Для буйных кампаній, якім важна трымаць IP-адрасы ва ўласнай сетцы, адзіным рашэннем GitHub стала віртуальная машына .OVA без падтрымкі сістэм высокай даступнасці. Гэта абцяжарвае абслугоўванне on-prem, да таго ж, .OVA падыдзе толькі для прадпрыемстваў сярэдняга бізнэсу, інакш пры большай нагрузцы сервер проста зваліцца. Адсутнасць GitHub Actions (да нядаўняга часу і пакуль яшчэ не ў on-prem версіі) або CI-as-code азначае, што вам трэба абраць асобную прыладу CI і затым кіраваць гэтай інтэграцыяй. Нарэшце, GitHub нашмат даражэй, чым любая з версій GitLab.

Джэнкінс - Хоць Jenkins па змаўчанні лічыцца стандартам сярод інструментаў бесперапыннай інтэграцыі, яму заўсёды не хапала магчымасці кіравання версіямі. Атрымліваецца, што вы карыстаецеся Jenkins плюс нейкі SCM-інструмент. Занадта складана, калі GitLab умее і тое і іншае. Сярэдні UX-дызайн не падыходзіць для сучаснага вэб-прыкладанні і пакідае жадаць лепшага.

BitBucket / Bamboo — Павінен прызнаць яго аўтаматычна прайграўшым: навошта дзве прылады, калі GitLab выконвае ўсё цалкам самастойна. BitBucket Cloud падтрымлівае функцыянал GitLab-CI / GitHub Action, але ні адна кампанія буйнейшая, чым стартап, не здолее лёгка яго ўкараніць. Сервер BitBucket версіі on-prem нават не падтрымлівае BitBucket-пайплайны!

Інструмент кіравання дадзенымі №1

пераможца: FlywayDB

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
У распрацоўцы вэб-прыкладанняў менавіта аўтаматызацыі баз дадзеных звычайна не надаюць значэнні. Ідэя разгарнуць змены схемы БД для новых версій прыкладання прыходзіць са спазненнем. Змены схемы часта прыводзяць да дадання і пераназванні слупкоў ці табліц. Калі версія прыкладання не адпавядае версіі схемы - прыкладанне можа выйсці з ладу. Акрамя таго, арганізаваць змену базы дадзеных пры абнаўленні прыкладання можа быць няпростай задачай, бо існуюць дзве розныя сістэмы. FlyWayDB вырашае ўсе гэтыя праблемы.

Ключавыя перавагі

  • Версійнасць баз дадзеных - Flyway дазваляе ствараць версіі баз дадзеных, адсочваць міграцыі баз дадзеных, лёгка пераносіць або вяртаць змены схемы без дадатковай прылады для гэтага.
  • Бінарны або ўбудаваны - Мы можам выбраць: запускаць Flyway як частка прыкладання або як бінарны выкананы файл. Flyway правярае сумяшчальнасць версій пры старце і запускае адпаведныя міграцыі, падтрымліваючы сінхранізацыю версій баз даных і прыкладанняў. Выконваючы каманду cmd line ad-hoc, мы забяспечваем гнуткасць для існуючых баз даных без перабудовы ўсяго прыкладання.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

У гэтай галіне не так шмат інструментаў. Давайце разгледзім некаторыя з іх:

LiquiBase - Liquibase нагадвае FlywayDB. Я б хацеў наладзіць яго па-над Flyway, калі б у маёй камандзе быў спецыяліст з большым досведам працы з Liquibase.

Флокер - Можа працаваць толькі для кантэйнерных прыкладанняў. Для паспяховага запуску баз дадзеных у кантэйнерах усё павінна быць ідэальна спланавана. Я рэкамендую выкарыстоўваць RDS (Relational Database Service) для баз дадзеных і не раю захоўваць важную інфармацыю ў кантэйнеры.

Інструменты для аўтаматызацыі тэсціравання

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Пачнем абмеркаванне інструментаў для аўтаматызацыі тэсціравання з іх класіфікацыі на аснове піраміды тэсціравання.

Піраміда тэсціравання (тэстаў) мае 4 ўзроўню:

  • Юніт-тэсты - Гэта аснова ўсяго працэсу аўтаматызаванага тэсціравання. Юніт-тэстаў павінна быць больш у параўнанні з іншымі відамі тэстаў. Распрацоўнікі пішуць і запускаюць юніт-тэсты, каб пераканацца, што частка прыкладання (вядомая як «юніт») адпавядае сваёй канструкцыі і паводзіць сябе як належыць.
  • Кампанентныя тэсты - Асноўная мэта тэставання кампанента - праверыць паводзіны ўводу / высновы аб'екта тэставання. Мы павінны пераканацца, што функцыянальнасць тэставага аб'екта рэалізавана правільна паводле спецыфікацыі.
  • Інтэграцыйныя тэсты - Від тэсціравання, пры якім асобныя праграмныя модулі аб'ядноўваюцца і тэстуюцца як група.
  • Скразныя тэсты - Гэты этап не мае патрэбы ў тлумачэннях. Мы назіраем за працай усяго прыкладання і робім так, каб яно функцыянавала, як было запланавана.

Паколькі юніт-тэсты і кампанентнае тэсціраванне праводзяцца толькі распрацоўшчыкамі і часта залежаць ад мовы праграмавання, мы не будзем ацэньваць гэтыя інструменты для вобласці DevOps.

Інструмент для інтэграцыйнага тэсціравання №1

пераможца: агурок

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Cucumber аб'ядноўвае спецыфікацыі і тэставую дакументацыю ў адзіны жывы дакумент. Спецыфікацыі заўсёды актуальныя, бо яны аўтаматычна тэсціруюцца Cucumber. Калі вы жадаеце сабраць фрэймворк для аўтаматызаванага тэставання з нуля і мадэляваць паводзіны карыстача ў вэб-прыкладанні, то Selenium WebDriver з Java і Cucumber BDD - выдатны спосаб вывучыць і ўкараніць Cucumber у праекце.

Ключавыя перавагі

  • BDD-падыход (Behavior Driven Development – ​​"распрацоўка праз паводзіны" у адрозненне ад падыходу "распрацоўка праз тэсціраванне") – Cucumber прызначаны для BDD-тэставанні, ён першапачаткова ствараўся менавіта для гэтай задачы.
  • Жывая дакументацыя - Дакументацыя - гэта заўсёды боль! Паколькі вашыя тэсты апісаны як код, Cucumber тэстуе аўтаматычна генерыруемую дакументацыю, каб пераканацца, што тэсты і дакументацыя сінхранізаваныя.
  • Падтрымка - Мы можам выбіраць з мноства інструментаў, але менавіта Cucumber валодае неабходнымі фінансавымі рэсурсамі і добра арганізаванай сістэмай падтрымкі, каб дапамагчы карыстальнікам у любой складанай сітуацыі.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Сярод іншых фрэймворкаў і спецыфічных для вызначанай тэхналогіі прылад толькі Cucumber можна прызнаць універсальным рашэннем.

Інструменты скразнога тэсціравання

Пры правядзенні скразнога тэсціравання неабходна засяродзіцца на двух ключавых момантах:

  • функцыянальнае тэсціраванне
  • нагрузачнае тэсціраванне.

Пры функцыянальным тэсціраванні мы правяраем, ці ўсё, што мы хочам, насамрэч адбываецца. Напрыклад, калі я націскаю на пэўныя элементы майго SPA (аднастаронкавага дадатку), запаўняю формы і выбіраю «Адправіць», дадзеныя з'яўляюцца ў БД, і на экране ўзнікае паведамленне «Поспех!»

Нам таксама важна праверыць, што пэўную колькасць карыстальнікаў, якія працуюць па тым жа сцэнары, можа быць апрацавана без памылак.

Адсутнасць гэтых 2 відаў тэсціравання будзе істотным недахопам у вашым CI/CD-пайплайне.

Інструмент скразнога тэсціравання №1. Функцыянальнае тэсціраванне

пераможца: SoapUI Pro

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
SoapUI доўгі час знаходзіўся ў галіне тэсціравання API, паколькі вэб-сэрвісы на аснове SOAP былі стандартам. Хоць мы больш не ствараем новыя SOAP-сэрвісы, і назоў прылады не змянілася, гэта не значыць, што ён не развіваўся. SoapUI дае выдатную аснову для стварэння аўтаматызаваных функцыянальных бэкэнд-тэстаў. Тэсты можна лёгка аб'яднаць з прыладамі бесперапыннай інтэграцыі і выкарыстоўваць як частка CI/CD-пайплайну.

Ключавыя перавагі

  • Падрабязная дакументацыя - SoapUI прысутнічае на рынку ўжо дастаткова доўга, таму створана мноства анлайн-рэсурсаў, якія дапамогуць зразумець, як наладзіць тэсты.
  • Прастата выкарыстання - Хоць прылада падтрымлівае некалькі пратаколаў для тэставання API, наяўнасць у SoapUI агульнага інтэрфейсу для некалькіх сэрвісаў, робіць напісанне тэстаў прасцей.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Селен — яшчэ адна выдатная прылада ў гэтай групе. Я рэкамендую выкарыстоўваць яго, калі вы ствараеце і запускае дадатак на аснове Java. Аднак, калі вы ствараеце паўнавартаснае вэб-дадатак з некалькімі тэхналогіямі, яно можа стаць грувасткім для не-Java кампанентаў.

Інструмент скразнога тэсціравання №1. Нагрузачнае тэсціраванне

пераможца: LoadRunner

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Тлумачэнне: Калі прыходзіць час для нагрузачнага тэсціравання кожнага элемента прыкладання, толькі LoadRunner можа выканаць гэтую задачу. Так, задорага і першыя часы складана, але LoadRunner — адзіная прылада, які дае мне як тэхнічнаму архітэктару поўную ўпэўненасць, што новы код будзе працаваць ва ўмовах экстрэмальнай нагрузкі. Акрамя таго, я думаю, што LoadRunner пара перадаць у адказнасць каманды распрацоўкі, а не каманды тэсціравання.

Ключавыя перавагі

  • Шырокая дакументацыя - LoadRunner існуе на рынку досыць даўно, таму створана мноства анлайн-рэсурсаў, якія дапамогуць зразумець, як наладзіць нагрузачныя тэсты.
  • Падтрымка пратаколаў - Load Runner падтрымлівае ад ODBC да AJAX, HTTPS і любы іншы нетрывіяльны пратакол, які ваша прыкладанне можа выкарыстоўваць. Мы стараемся не выкарыстоўваць некалькі інструментаў для нагрузачнага тэсціравання, так як гэта толькі ўскладняе працэс.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Ізноў жа, у гэтай вобласці не так шмат універсальных прылад, таму лепшае рашэнне - тое, якое будзе працаваць у любым асяроддзі з любой тэхналогіяй.

Інструменты для дэплою

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Прылады для дэплою, верагодна, найменш зразумелы аспект распрацоўкі. Для каманды суправаджэння (operation team) без глыбокага разумення кода і функцыяналу прыкладання складана выкарыстоўваць падобныя прылады. Для распрацоўнікаў кіраванне дэплоем - новы абавязак, таму ў іх яшчэ недастаткова досведу ў працы з падобнымі прыладамі.

Першым чынам, падзелім усе прылады разгортвання на тры падкатэгорыі:

  • кіраванне артэфактамі
  • кіраванне канфігурацыямі
  • дэплой.

Інструмент кіравання артэфактамі №1

пераможца: Сувязь

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Рэпазітар артэфактаў Nexus падтрымлівае практычна ўсе асноўныя тэхналогіі: ад Java да NPM і Docker. Мы можам выкарыстоўваць гэты інструмент для захоўвання ўсіх выкарыстоўваных артэфактаў. Праксіраванне выдаленых мэнэджараў пакетаў таксама значна паскарае працэс зборак CI, робячы пакеты даступней для зборкі. Іншая перавага – магчымасць атрымаць поўнае ўяўленне аб усіх пакетах, выкарыстоўваных у некалькіх праграмных праектах, блакуючы небяспечныя open source пакеты (яны могуць выступаць вектарам нападу).

Ключавыя перавагі

  • Тэхнічная падтрымка - Надзейны прадукт; добра падтрымліваецца.
  • Адкрыты зыходны код - Бясплатная версія не абмяжоўвае асноўныя функцыянальныя магчымасці, якія патрэбныя камандам распрацоўшчыкаў.

Інструмент кіравання канфігурацыямі №1

пераможца: анзибль

Ansible з'яўляецца лідэрам па адной простай прычыне: адсутнасць стану (stateless). Раней падобныя прылады былі сканцэнтраваны на упраўленні станам канфігурацыі. Пры запуску, такая прылада, атрымаўшы жаданую канфігурацыю, будзе спрабаваць выправіць бягучую канфігурацыю прыкладання. А пры новым падыходзе прысутнічаюць толькі кампаненты з адсутнасцю стану. Новыя версіі кода з'яўляюцца артэфактамі, якія разгортваюць для замены наяўных. Гэта можна лічыць нейкім эфемерным, кароткатэрміновым асяроддзем.

Ключавыя перавагі

  • Адсутнасць стану (stateless) – Playbook запускаецца з машыны для дэплою і выконваецца на мэтавых серверах. Я не турбуюся аб стане выдаленага (remote) аб'екта, дзякуючы выкарыстанню такой прылады, як Packer, для стварэння разгортваюцца аб'ектаў.
  • Адкрыты зыходны код - Як і CentOS, Ansible таксама падтрымліваецца кампаніяй RedHat. Яна дапамагае захоўваць супольнасць і забяспечвае высакаякасныя, простыя ў выкарыстанні модулі.
  • Тэставанне з Molecule (фрэймворк для Ansible) - Паколькі кіраванне канфігурацыямі - гэта код, як і ўсё астатняе, тут не абыйсціся без тэставання. Фрэймворк Molecule для тэставання роляў Ansible працуе бездакорна, гарантуючы, што канфігурацыя гэтак жа якасная і адпавядае таму ж CI/CD-пайплайну, што і код прыкладання.
  • YAML - У параўнанні з іншымі інструментамі, з YAML лягчэй разабрацца. Паколькі кіраванне канфігурацыямі, як правіла, з'яўляецца новай задачай для тых, хто ўкараняе DevOps-практыкі, прастата – яго козыр.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

OpsCode Chef - Я пачынаў кар'еру ў DevOps як распрацоўшчык cookbook. Ruby і Chef, вядома, вельмі дарогі майму сэрцу, але яны проста не вырашаюць праблемы сучасных stateless, хмарных прыкладанняў. OpsCode Chef - выдатны інструмент для больш традыцыйных прыкладанняў, а ў гэтым артыкуле мы сканцэнтраваны на будучыні.

Лялечны - Puppet ніколі не меў шмат прыхільнікаў, асабліва ў параўнанні з Chef і Ansible. Ён выдатна падыходзіць для правізіявання і працы з "жалезам", але сучасная падтрымка кіравання канфігурацыямі для вэба-прыкладанні ў ім адсутнічае.

Інструмент для дэплою №1

пераможца: Terraform

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Terraform вырашае праблему апісання вашай інфраструктуры як кода: пачынальна з сеткавых кампанентаў і сканчаючы паўнавартаснымі выявамі сервера. Гэты прадукт прайшоў доўгі шлях з моманту першага выпуску: створана велізарная колькасць плагінаў і выпрацавана такая моцная супольнасць, што вам сапраўды дапамогуць пры любым сцэнары разгортвання. Здольнасць падтрымліваць любы тып асяроддзя (лакальна, у воблаку ці недзе яшчэ) не мае роўных. Нарэшце, апошняя версія падае большую частку тых жа лагічных функцый і класаў у HCL, што і любая іншая традыцыйная мова праграмавання, – распрацоўнікі хутка схопліваюць сутнасць і з лёгкасцю могуць асвоіць Terraform.

Ключавыя перавагі

  • Незалежнасць ад асяроддзя - Terraform выкарыстоўвае функцыі, якія служаць інтэрфейсам паміж вашым кодам Terraform, усімі API і ўнутранай логікай для сувязі з пастаўшчыком інфраструктуры. Гэта значыць, што я асвою ўсяго адзін інструмент і затым магу працаваць, дзе заўгодна.
  • Адкрыты зыходны код - Складана перамагчы бясплатныя інструменты! Падтрымка супольнасці на вышэйшым узроўні.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

AWS CloudFormation — Нават калі вы працуеце толькі ў хмарным асяроддзі AWS, на наступным месцы працы можа прымяняцца іншая прылада. Прысвяціць увесь час і сілы толькі адной платформе - недальнабачнае рашэнне. Акрамя таго, шматлікія новыя сэрвісы AWS часта даступныя ў выглядзе модуляў Terraform перш, чым яны стануць даступныя ў CloudFormation.

Runtime-інструменты

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе

Канчатковай мэтай любога праекта распрацоўкі з'яўляецца запуск прыкладання ў прадакшн. У свеце DevOps мы жадаем атрымліваць поўную інфармацыю аб усіх магчымых праблемах з нашым асяроддзем, а таксама жадаем звесці да мінімуму ручное ўмяшанне. Выбар правільнага набору Runtime-інструментаў вельмі важны, каб дасягнуць нірваны пры распрацоўцы прыкладання.

Падкатэгорыі Runtime-інструментаў:

  • X-як-сэрвіс (XaaS)
  • аркестрацыя
  • маніторынг
  • лагіраванне.

Інструмент X-як-сэрвіс №1

пераможца: Amazon Web Services

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Amazon заўсёды быў лідэрам у хмарных тэхналогіях, але ён не спыняецца на гэтым: ад разнастайнасці новых сэрвісаў для распрацоўшчыкаў разбягаюцца вочы. Перанясіце любую тэхналогію і шаблон у AWS, і яны будуць сабраны і запушчаны. Кошт прылады суцэль абгрунтаваная: параўнайце яе са зборкай, кіраваннем і абслугоўваннем абсталявання ва ўласным дата-цэнтры. Бясплатная версія дазваляе эксперыментаваць і прыняць правільнае рашэнне да марнавання грошай.

Ключавыя перавагі

  • Распаўсюджанасць - Калі ў вас ёсць вопыт стварэння прыкладанняў у AWS, вы можаце працаваць, дзе заўгодна. Бізнэс кахае AWS, а стартапы яшчэ і шануюць яго нізкі кошт.
  • Бясплатная версія - гэта сапраўды важкі фактар, які вылучае AWS сярод аналагаў. Дазвольце мне скарыстацца паслугай і паглядзець, як яна працуе, перш чым я прыму рашэнне аб пакупцы, я не хачу марнаваць тысячы даляраў на нешта непатрэбнае. Бясплатнай версіі мне заўсёды хапае для праверкі любой канцэпцыі.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Блакітны - Azure прайшоў доўгі шлях з першага выпуску, і гэта пахвальна. Тым не менш жаданне адрознівацца ад аналагаў прывяло да дзіўных назваў сэрвісаў, што часта ўскладняе працу. Што значыць "blob storage"? І, хоць код. NET працуе лепш у экасістэме Microsoft, малаверагодна, што вы будзеце выкарыстоўваць толькі. NET для кожнага кампанента свайго прыкладання.

Heroku - Я б ніколі не запусціў нічога акрамя асабістага праекта на Heroku з-за нізкага ўзроўню надзейнасці і празрыстасці, таму кампаніям не варта выкарыстоўваць яго ў якасці платформы. Heroku выдатна падыходзіць для дэманстрацыі чагосьці ў блогу, але для практычнага прымянення - "Не, дзякуй!".

Інструмент аркестрацыі № 1

пераможца: OpenShift

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Вы, верагодна, карыстаецеся Docker або іншыя кантэйнеры ў вашым стэку прыкладанняў. Бессерверныя прыкладанні добрыя, але яны не могуць падыходзіць любой архітэктуры. Запуск кантэйнераў без платформы аркестрацыі проста не спрацуе. Ядро Kubernetes (K8s) не мае супернікаў з пункту гледжання бяспекі і інструментара. OpenShift - адзіная платформа на аснове Kubernetes, якая ўмее збіраць Source2Image, падтрымлівае аўтаматызацыю разгортвання ў поды, а таксама адсочванне і маніторынг. OpenShift можа быць запушчаны on-prem, у воблаку ці on-prem і ў воблаку адначасова.

Ключавыя перавагі

  • Убудаваная сістэма бяспекі - Для кіравання бяспекай K8s можа запатрабавацца навуковая ступень. Неабходна старанна прадумаць і ўлічыць кожную дэталь! Механізмы бяспекі, створаныя па змаўчанні з дапамогай OpenShift, забіраюць лішнюю нагрузку ў распрацоўшчыкаў і забяспечваюць больш бяспечную платформу для прыкладанняў.
  • Рашэнне "усё ў адным" - У адрозненне ад базавага K8s, які па змаўчанні не ўключае прылады балансавання нагрузкі, у OpenShift ёсць усё. Я магу выкарыстоўваць яго для стварэння і размяшчэнні кантэйнераў, запуску інструментаў CI/CD, кіравання знешнімі працэсамі, кіравання ключамі і многае іншае. Хоць графічны інтэрфейс карыстальніка па-ранейшаму далёкі ад дасканаласці, падыход, заснаваны на API, азначае, што ўсё можа быць апісана ў скрыпце. У адрозненне ад іншых графічных інтэрфейсаў для K8s, OpenShift значна спрашчае вывучэнне асноў Kubernetes. Нават не трэба атрымліваць вучоную ступень!

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Докерскі рой - Docker Swarm паспрабаваў спрасціць K8s, пазбавіўшыся ад шматлікіх рэчаў. Ён выдатна падыходзіць для невялікіх прыкладанняў, але для карпаратыўных прыкладанняў проста не працуе. Акрамя таго, такія рашэнні, як AWS ECS, выкарыстоўваюць аналагічны падыход, але аблягчаюць працу з іншымі сэрвісамі, з якімі я таксама магу ўзаемадзейнічаць (Lambda, IAM і інш.).

Інструмент маніторынгу №1

пераможца: New Reliс

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Раннія рэлізы New Relic добра спраўляліся з адной задачай – маніторынг APM (Application Performance Monitoring). Цяпер гэта поўнафункцыянальная прылада маніторынгу, які дазваляе кантраляваць прадукцыйнасць сервера, кантэйнера, базы дадзеных, маніторынг досведу канчатковага карыстача і, вядома, маніторынг прадукцыйнасці прыкладанняў.

Ключавыя перавагі

  • Прастата ў выкарыстанні - Калі я працаваў сістэмным інжынерам, я выкарыстаў мноства інструментаў маніторынгу, але ніколі не сутыкаўся з такім простым і зручным у выкарыстанні, як New Relic. Гэта SaaS, таму яго не трэба ўсталёўваць у сябе.
  • Скразная бачнасць - Іншыя інструменты спрабуюць адсочваць адзін канкрэтны элемент вашага прыкладання. Напрыклад, метрыка выкарыстання працэсара або сеткавага трафіку, але ўсё гэта неабходна адсочваць комплексна, каб прыкладанне працавала карэктна. New Relic дае магчымасць аб'яднаць усе дадзеныя, каб атрымаць вычарпальнае ўяўленне аб тым, што адбываецца.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Zabbix - Мая першая і любімая сістэма маніторынгу, але яна засталася ў мінулым з-за адсутнасці развіцця ў хмарных тэхналогіях і ў галіне маніторынгу прадукцыйнасці прыкладанняў APM. Zabbix па-ранейшаму добра выконвае традыцыйны маніторынг сервернай інфраструктуры, аднак на гэтым усё.

DataDog - Занадта моцна арыентаваны на працэс кіравання прадакшн-асяроддзем прыкладання, а не на сам код. З DevOps-камандамі, у якіх удзельнічаюць распрацоўшчыкі, нам не трэба спадзявацца на складаныя ў выкарыстанні інструменты для забеспячэння першакласнай падтрымкі.

Інструмент лагавання №1

пераможца: Splunk

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
З Splunk складана супернічаць! Доўгі час ён застаецца лідэрам у лагаванні, працягваючы рабіць гэта лепш за ўсіх. З прапановамі on-prem і SaaS вы можаце выкарыстоўваць Splunk, дзе заўгодна. Істотны недахоп яго кошт: Splunk па-ранейшаму па-чартоўску дарагі!

Ключавыя перавагі

  • Распаўсюджанасць - Бізнес любіць Splunk, і ў кампаній ёсць грошы, каб купіць яго.
  • Хоць стартапы і імкнуцца акупіць выдаткі, але многія функцыі могуць быць вырашаны дзякуючы аналагам з адкрытым зыходным кодам.
  • Падтрымка - Прасцей кажучы, Splunk працуе і робіць гэта добра. Ён пастаўляецца са мноствам налад па змаўчанні і функцый, гатовых да выкарыстання. Не трэба марнаваць час на чытанне дакументацыі і спробы прымусіць Splunk працаваць ці нешта расшыфраваць.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

ELK Stack (ElasticSearch, LogStash і Kibana) - Гэтыя прылады здаюцца фаварытамі, бо вам нават не трэба прадаваць печань за іх выкарыстанне. Аднак з ростам набору логаў і з павелічэннем колькасці прыкладанняў на борце праца становіцца ўсё складаней. У параўнанні з Splunk, з ELK Stack я выдаткаваў значна больш часу на наладу інструментара перад стварэннем якіх-небудзь дашбордаў, чым калі-небудзь.

Інструменты для сумеснай працы

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
DevOps, у першую чаргу, датычыцца змены культуры ўнутры арганізацыі. Купля любой прылады не зменіць звыклыя практыкі ў імгненне, але, безумоўна, можа спрыяць развіццю сумеснай працы і з'яўленню новых спосабаў узаемадзеяння.

Падкатэгорыі інструментаў для сумеснай працы:

  • адсочванне задач
  • ChatOps
  • дакументацыя.

Інструмент адсочвання праблем №1

пераможца: Jira

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Jira ўтрымлівае лідзіруючыя пазіцыі, хаця канкурэнцыя ў гэтай галіне ўзрастае. Неверагодная гнуткасць Jira дазваляе камандам распрацоўкі і суправаджэння кіраваць праектнай працай і задачамі спрынту. Убудаваныя стандарты, якія выкарыстоўваюць Agile-тэрміналогію, спрашчаюць пераход ад традыцыйных метадаў працы да больш эфектыўных працэсаў.

Ключавыя перавагі

  • Папулярнасць - Як і многія іншыя інструменты, Jira выкарыстоўваецца практычна ўсюды. Невялікія каманды выкарыстоўваюць танную, больш даступную версію і атрымліваюць усё неабходнае, а буйныя кампаніі могуць дазволіць ліцэнзію даражэй.
  • Інтэграцыі - Jira - родапачынальнік ў сваёй вобласці. Гэты факт і хуткае развіццё прадукта прыводзіць да таго, што астатнія кампаніі выбіраюць Jira для стварэння ўласных інтэграцый, такім чынам, павялічваючы каштоўнасць прылады. Мы можам інтэграваць Jira з усімі інструментамі, пералічанымі ў гэтым артыкуле, са скрынкі з невялікай наладай.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Trello — Trello хутка заваяваў папулярнасць дзякуючы бясплатнай прыладзе Kanban. Аднак, як толькі працэсы маштабуюцца і вы пераходзіце ад дзясяткаў задач да тысяч, у Trello цяжка арыентавацца, шукаць і складаць справаздачы.

Pivotal Tracker - Я быў вялікім фанатам гэтага інструмента, калі працаваў на стартап. Аднак Pivotal Tracker больш арыентаваны на кіраванне прадуктам, а не на тэхнічныя задачы. Хоць кіраванне прадуктам у Jira крыху складаней, але яго ўсё ж можна рэалізаваць там, не выкарыстоўваючы дадатковы інструмент.

ChatOps-інструмент №1

пераможца: MatterMost

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Тлумачэнне: Магчыма, самы вялікі сюрпрыз для вас у маёй падборцы, і гэта добрая навіна! MatterMost набыў папулярнасць, узяўшы лепшае ад папярэдніх інструментаў, але ўключыў іх у on-prem. Для кампаній гэта вельмі важна: MatterMost дазваляе кантраляваць дадзеныя, а таксама дапамагае інтэграваць іх з прыладамі, якія працуюць лакальна. Нам больш не трэба выходзіць за межы файрвала, каб праверыць працоўныя чаты.

Ключавыя перавагі

  • Адкрыты зыходны код - Версія MatterMost з адкрытым зыходным кодам выдатна працуе як для сярэдніх, так і для вялікіх каманд. У адрозненне ад бясплатнага тарыфу Slack, дзе выдаляецца гісторыя паведамленняў, запуск уласнага сервера азначае, што вы захоўваеце ўсе дадзеныя.
  • Інтэграцыі - Паколькі API амаль на 100% заснаваны на API Slack, амаль усе інтэграцыі са Slack можна выкарыстоўваць напрамую з MatterMost.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Млявы - Slack круты, але гэтыя хлопцы настолькі выраслі, што пачалі шукаць прыбытак. Набліжаецца этап акупнасці бізнэсу, які забірае іх галоўную каштоўнасць: Slack даваў паслугі бясплатна; найбольш важны недахоп бясплатнай версіі - выдаленне гісторыі чата.

Microsoft каманды - Паспрабуйце інтэграваць прадукт Microsoft з чымсьці, не прыналежным Microsoft… Жадаю поспехі! Гэта ўсё, што я хачу сказаць пра гэты інструмент!

Інструмент дакументацыі №1

пераможца: Зліццё

DevOps-інструменты, якія павінен вывучыць кожны ў 2020 годзе
Стварэнне і захаванне якаснай тэхнічнай дакументацыі - складаны працэс незалежна ад выкарыстоўванага вамі прылады. Хоць за апошні час на рынку з'явілася мноства прылад дакументацыі SaaS, аднак мне было б цяжка перадаваць захоўванне тэхнічнай дакументацыі аб крытычна важных прыкладаннях трэцім асобам. Захоўваць дадзеныя і дакументы пераважней on-prem, і вось як гэта вырашае Confluence.

Ключавыя перавагі

  • Прастата ў кіраванні - Большасць аўтаномных інструментаў могуць быць крыху складаныя ў наладзе і эксплуатацыі, для іх падтрымання патрабуюцца пэўныя веды. Сервер Confluence выдатна працуе са скрынкі для 10 ці 10,000 карыстачоў.
  • Даданыя модулі Дзякуй Confluence за наяўнасць прыгожай і зручнай навігацыі са скрынкі, а магчымасць дадаць плягін практычна для ўсяго раскрывае патэнцыял як Wiki.

канкурэнты

Удзельнічалі ў сутычцы, але не перамаглі

Read the docs - Стромка для open source, але нават не думайце аб захоўванні крытычных ведаў тут.

Уцэнка - Выдатна падыходзіць для дакументавання кода, але тут цяжка размяшчаць архітэктуру, працэсы або іншыя віды дакументацыі з-за спецыфічнага фарматавання MarkDown.

Джэкіл - Пры дакументаванні тэхнічных ведаў я не хачу ствараць новы статычны сайт, які будзе разгортвацца пры кожнай змене. Простая сістэма кіравання версіямі Confluence значна спрашчае ўнутраную дакументацыю.

Падвядзем вынікі

На рынку літаральна сотні прылад DevOps, таму цяжка зарыентавацца, якія з іх варта выкарыстоўваць і ў які момант яны павінны быць укаранёны. Выконвайце гэты просты кіраўніцтва па выбары інструментаў DevOps для поўнага CI/CD-пайплайна.

Не забудзьцеся абраць прылады з усіх пяці катэгорый:

  • інструменты для распрацоўкі і зборкі
  • інструменты для аўтаматызацыі тэсціравання
  • інструменты для дэплою
  • Runtime-інструменты
  • інструменты для сумеснай працы.

Галоўная рэкамендацыя: Аўтаматызуйце ўсё!

Дзякуй Заку Шапіра!

Крыніца: habr.com

Дадаць каментар