Иштеп чыгуучулар Марстан, админдер Венерадан

Иштеп чыгуучулар Марстан, админдер Венерадан

Кокустуктар кокустук жана башка планетада болгон...

Мен администраторлор менен командада бэкенддин иштеп чыгуучусу кандай иштегени тууралуу үч ийгилик жана ийгиликсиз окуя менен бөлүшкүм келет.

Биринчи окуя.
Веб студия, кызматкерлердин санын бир кол менен санаса болот. Бүгүн сен макет дизайнерсиң, эртең сен бэкендерсиң, эртеңки күнү сен админсиң. Бир жагынан, сиз зор тажрыйбага ээ болот. Экинчи жагынан, бардык тармактарда компетенттүүлүк жок. Иштин биринчи күнү дагы эле эсимде, мен дагы жашылмын, начальник: "Ачык шпаклевка" дейт, бирок ал эмне экенин билбейм. Админдер менен байланыш жок, анткени сен өзүң админсиң. Келгиле, бул жагдайдын жакшы жана жаман жактарын карап көрөлү.

+ Бардык бийлик сенин колуңда.
+ Серверге кирүү үчүн эч кимден сурануунун кереги жок.
+ Бардык багыттар боюнча тез реакция убактысы.
+ Көндүмдөрдү жакшыртат.
+ Продукциянын архитектурасын толук түшүнүңүз.

— Жогорку жоопкерчилик.
— Өндүрүштүн бузулуу коркунучу.
— Бардык тармакта жакшы адис болуу кыйын.

Кызыккан жок, уланталы

Экинчи окуя.
Чоң компания, чоң долбоор. 5-7 кызматкерден турган башкаруу бөлүмү жана бир нече өнүктүрүү топтору бар. Андай компанияга жумушка келгенде ар бир админ сиз бул жерге бир продукт үстүндө иштөө үчүн эмес, бир нерсени бузуу үчүн келдим деп ойлойт. Кол коюлган NDA да, интервьюда тандоо дагы башканы көрсөтпөйт. Жок, бул киши өбүшүү өндүрүшүбүздү бузуу үчүн бул жерге өзүнүн кир кичинекей колдору менен келген. Ошондуктан, мындай адам менен минималдуу баарлашуу керек, жок дегенде, жооп катары стикерди ыргыта аласыз. Долбоордун архитектурасы боюнча суроолорго жооп бербеңиз. Команданын жетекчиси сурамайынча кирүү мүмкүнчүлүгүн бербөө сунушталат. Ал эми сураганда, алар сурагандан да азыраак артыкчылык менен кайтарып берет. Мындай администраторлор менен дээрлик бардык байланыштарды өнүктүрүү бөлүмү менен башкаруу бөлүмүнүн ортосундагы кара тешик сиңирет. Маселелерди тез арада чечүү мүмкүн эмес. Бирок сиз жеке келе албайсыз - админдер 24/7 өтө бош эмес. (Дайыма эмне кылып жатасыз?) Кээ бир аткаруу мүнөздөмөлөрү:

  • Өндүрүштүн орточо убактысы 4-5 саатты түзөт
  • Өндүрүштө максималдуу жайгаштыруу убактысы 9 саат
  • Иштеп чыгуучу үчүн өндүрүштөгү тиркеме өндүрүш серверинин өзү сыяктуу эле кара куту болуп саналат. Бардыгы канчасы бар?
  • Чыгарылгандардын сапаты төмөн, каталар көп
  • Иштеп чыгуучу чыгаруу процессине катышпайт

Мейли, мен эмнени күттүм, албетте, жаңы адамдарды өндүрүшкө киргизишпейт. Макул, сабырдуулукка ээ болгондон кийин, биз башкалардын ишенимине кире баштайбыз. Бирок эмнегедир администраторлор менен баары жөнөкөй эмес.

Акт 1. Админ көрүнбөйт.
Чыгарылган күнү, иштеп чыгуучу жана администратор байланышпайт. Админдин суроолору жок. Бирок эмне үчүн экенин кийин түшүнөсүң. Админ принципиалдуу адам, мессенджери жок, телефон номерин эч кимге бербейт, социалдык тармактарда профили жок. Эч жерде анын сүрөтү да жок, сен эмнеге окшошсуң, байке? Жооптуу менеджер менен 15 мүнөткө жакын отуруп, бул Voyager 1 менен байланыш түзүүгө аракет кылабыз, андан кийин корпоративдик электрондук почтада ал бүттү деген билдирүү пайда болот. Биз почта аркылуу кат алышабызбы? Эмне үчүн жок? Ыңгайлуу, туурабы? Макул, суудайлы. Процесс жүрүп жатат, артка кайтуу жок. Кабарды кайра окуңуз. "Мен бүттүм". Эмнени бүтүрдүң? Кайда? Мен сени кайдан издешим керек? Бул жерде сиз эмне үчүн 4 саат чыгаруу нормалдуу экенин түшүнөсүз. Биз өнүгүү шок алабыз, бирок биз чыгарууну бүтүрөбүз. Эми боштондукка чыгууга эч кандай каалоо жок.

Act 2. Бул версия эмес.
Кийинки чыгарылыш. Тажрыйба топтогондон кийин, администраторлор үчүн серверге керектүү программалык камсыздоолордун жана китепканалардын тизмелерин түзө баштайбыз, кээ бирлери үчүн версиялар көрсөтүлөт. Адаттагыдай эле, администратор ал жерде бир нерсени бүтүргөн деген алсыз радио сигналын алабыз. Регрессия тести башталат, анын өзү бир саатка созулат. Баары иштеп жаткандай көрүнөт, бирок бир маанилүү ката бар. Маанилүү функция иштебейт. Кийинки бир нече сааттар дап менен бийлөө, кофе талаасында төлгө айтуу жана ар бир кодду деталдуу карап чыгуу болду. Админ баарын жасадым дейт. Кыйшык иштеп чыгуучулар жазган тиркеме иштебейт, бирок сервер иштейт. Ага кандайдыр бир суроолор барбы? Бир сааттын аягында биз админге өндүрүш сервериндеги китепкананын версиясын чатта жана бингого жөнөтүшүбүз керек - бул бизге керек эмес. Биз администратордон талап кылынган версияны орнотууну суранабыз, бирок жооп катары OS пакетинин менеджеринде бул версия жок болгондуктан, ал муну кыла албайт деп алдык. Бул жерде, эс тутумунун боштугунан менеджер башка администратор бул маселени жөн гана кол менен керектүү версияны чогултуу менен чечкенин эстейт. Бирок жок, биздикилер андай кылбайт. Регламент тыюу салат. Карл, биз бул жерде бир нече сааттан бери отурдук, убакыттын чеги кандай?! Биз дагы бир шок болуп, кандайдыр бир жол менен чыгарууну бүтүрөбүз.

3-акты, кыска
Шашылыш билет, негизги функция өндүрүштөгү колдонуучулардын бири үчүн иштебейт. Бир-эки саатты тыкылдатып, текшерип жатабыз. Өнүгүү чөйрөсүндө бардыгы иштейт. php-fpm журналдарын карап чыгуу жакшы идея болору так түшүнүк бар. Ошол убакта долбоордо ELK же Prometheus сыяктуу журнал системалары болгон эмес. Биз сервердеги php-fpm журналдарына кирүү мүмкүнчүлүгүн берүү үчүн башкаруу бөлүмүнө билет ачабыз. Бул жерде сиз кандайдыр бир себептерден улам кирүүнү сурап жатканыбызды түшүнүшүңүз керек, кара тешик жана администраторлор 24/7 бош эместиги жөнүндө эсиңизде жокпу? Эгерде сиз алардан журналдарды карап көрүүнү сурансаңыз, анда бул "бул жашоодо эмес" деген артыкчылыктуу милдет. Билет түзүлдү, биз административдик бөлүмдүн башчысынан дароо жооп алдык: "Сиз өндүрүш журналдарына кирүүнүн кереги жок, катасыз жазыңыз". Парда.

Act 4 жана андан кийинки
Биз китепканалардын ар кандай версияларынан, конфигурацияланбаган программалык камсыздоодон, сервердин даяр эмес жүктөмдөрүнөн жана башка көйгөйлөрдөн улам өндүрүштөгү ондогон көйгөйлөрдү дагы эле чогултуп жатабыз. Албетте, код мүчүлүштүктөрү да бар, биз бардык күнөөлөр үчүн администраторлорду күнөөлөбөйбүз, ошол долбоор үчүн дагы бир типтүү операцияны айтабыз. Бизде супервайзер аркылуу ишке киргизилген көптөгөн фонддук жумушчулар бар болчу жана кээ бир сценарийлерди cronго кошууга туура келди. Кээде ошол эле жумушчулар иштебей калган. Кезектеги сервердеги жүк чагылгандай ылдамдык менен өсүп, капалуу колдонуучулар айлануучу жүктөгүчтү карап калышты. Мындай жумушчуларды тез оңдоо үчүн аларды жөн гана өчүрүп-күйгүзүү жетиштүү болчу, бирок муну дагы бир администратор гана жасай алат. Мындай негизги операция жасалып жатканда, бир күн өтүп кетиши мүмкүн. Бул жерде, албетте, белгилей кетчү нерсе, кыйшык программисттер жумушчуларды кыйрап калбашы үчүн жазышы керек, бирок алар жыгылганда, эмне үчүн өндүрүшкө жетпегендиктен кээде мүмкүн эмес экенин түшүнүү жакшы болмок. албетте, жана натыйжада, иштеп чыгуучу журналдардын жоктугу.

Трансфигурация.
Мунун баарына бир топ убакыт чыдап, команда менен бирге биз үчүн ийгиликтүү болгон багытты карай баштадык. Жыйынтыктап айтканда, биз кандай көйгөйлөргө туш болдук?

  • Иштеп чыгуучулар менен башкаруу бөлүмүнүн ортосунда сапаттуу байланыштын жоктугу
  • Администраторлор, көрсө,(!), тиркеме кандайча структураланганын, анын кандай көз карандылыгы бар жана ал кандайча иштейт, такыр түшүнүшпөйт.
  • Иштеп чыгуучулар өндүрүш чөйрөсү кантип иштээрин түшүнүшпөйт жана натыйжада көйгөйлөргө натыйжалуу жооп бере алышпайт.
  • Жайгаштыруу процесси өтө көпкө созулат.
  • Туруксуз чыгарылыштар.

Биз эмне кылдык?
Ар бир чыгарылыш үчүн, кийинки релиздин иштеши үчүн серверде аткарылышы керек болгон иштердин тизмеси камтылган Release Notes тизмеси түзүлдү. Тизмеде администратор, чыгаруу үчүн жооптуу адам жана иштеп чыгуучу аткара турган бир нече бөлүмдөр бар. Иштеп чыгуучулар бардык өндүрүш серверлерине тамыр эмес мүмкүнчүлүк алышты, бул жалпысынан өнүгүүнү жана өзгөчө маселелерди чечүүнү тездетти. Иштеп чыгуучулар ошондой эле өндүрүш кандай иштээри, ал кандай кызматтарга бөлүнөрү, репликалар кайда жана канча турат деген түшүнүккө ээ. Кээ бир согуштук жүктөмдөр ачык-айкын болуп калды, бул, албетте, коддун сапатына таасирин тийгизет. Чыгаруу процессинде баарлашуу мессенджерлердин биринин чатында болгон. Биринчиден, бизде бардык аракеттердин журналы бар болчу, экинчиден, байланыш жакыныраак чөйрөдө өттү. Иш-аракеттердин тарыхы бир нече жолу жаңы кызматкерлерге көйгөйлөрдү тезирээк чечүүгө мүмкүндүк берди. Бул парадокс, бирок бул көбүнчө админдердин өздөрүнө жардам берди. Мен так айтууга милдеттенбейм, бирок администраторлор долбоордун кандай иштээрин жана кандай жазылганын жакшыраак түшүнө баштады окшойт. Кээде бири-бирибиз менен кээ бир деталдарды бөлүштүк. Орточо чыгаруу убактысы бир саатка чейин кыскарды. Кээде 30-40 мүнөттө бүтүп калчубуз. Каталардын саны он эсе болбосо, бир кыйла азайды. Албетте, чыгаруу убактысынын кыскарышына башка факторлор да таасир эткен, мисалы, автотесттер. Ар бир чыккандан кийин ретроспективаларды жүргүзө баштадык. Ошентип, бүт команда эмне жаңылык, эмне өзгөрдү жана эмнелер алынып салынды деген түшүнүккө ээ болушу үчүн. Тилекке каршы, аларга админдер дайыма эле келе берчү эмес, жакшы, админдер бош эмес... Иштеп чыгуучу катары жумушумдан канааттануум, албетте, өстү. Сиз өзүңүздүн компетенцияңыздын чөйрөсүндөгү дээрлик бардык көйгөйдү тез арада чече алганыңызда, өзүңүздү жогору сезесиз. Кийинчерээк түшүнөм, биз кандайдыр бир деңгээлде девопс маданиятын киргиздик, албетте, толук эмес, бирок ошол трансформациянын башталышы да таасирдүү болду.

үчүнчү тарыхы
Баштоо. Бир администратор, кичинекей өнүктүрүү бөлүмү. Келгенден кийин мен толук нөл болдум, анткени... Мен почтадан башка эч жакка кире албайм. Админге жазып, кирүүнү суранабыз. Мындан тышкары, ал жаңы кызматкер жана логиндерди/паролдорду берүү зарылдыгын билет деген маалымат бар. Алар репозиторийден жана VPNден мүмкүнчүлүк берет. Эмне үчүн wiki, teamcity, rundesk кирүү мүмкүнчүлүгүн берет? Бүткүл арткы бөлүгүн жазууга чакырылган адам үчүн пайдасыз нерселер. Убакыттын өтүшү менен биз кээ бир куралдарга мүмкүнчүлүк алабыз. Келиши, албетте, ишенбөөчүлүк менен кабыл алынды. Мен чаттар жана жетектөөчү суроолор аркылуу долбоордун инфраструктурасы кандайча иштээрин акырындык менен сезүүгө аракет кылып жатам. Негизи мен эч нерсени тааныбайм. Өндүрүш мурдагыдай эле кара куту. Бирок тестирлөө үчүн колдонулган сахна серверлери дагы кара куту. Биз Гиттен филиалды жайгаштыруудан башка эч нерсе кыла албайбыз. Биз ошондой эле колдонмобузду .env файлдары сыяктуу конфигурациялай албайбыз. Мындай операцияларга уруксат берилбейт. Сыноо сервериндеги колдонмоңуздун конфигурациясында сызыкты өзгөртүүнү суранышыңыз керек. (Администраторлор өздөрүн долбоордо маанилүү сезиши абдан маанилүү деген теория бар; эгерде алардан конфигурацияларда саптарды өзгөртүү суралбаса, алар жөн эле кереги жок болот). Ооба, адаттагыдай эле, бул ыңгайлуу эмеспи? Бул бат эле зеригип калат, админ менен түз баарлашкандан кийин биз иштеп чыгуучулар жаман код жазуу үчүн төрөлгөнүн, табиятынан жөндөмсүз адамдар экенин жана аларды өндүрүштөн алыс кармоо жакшыраак экенин билебиз. Бирок бул жерде дагы сыноо серверлеринен. Конфликт тездик менен курчуп баратат. Админ менен байланыш жок. Анын жалгыз калганы абалды курчутуп жатат. Төмөндө типтүү сүрөт. бошотуу. Белгилүү бир функция иштебейт. Эмне болуп жатканын түшүнүү бизге көп убакытты талап кылат, иштеп чыгуучулардын ар кандай идеялары чатта ыргытылат, бирок мындай кырдаалда администратор адатта иштеп чыгуучулар күнөөлүү деп эсептейт. Анан чатта жазат, күтөм, оңдоп койдум. Көйгөй эмне болгондугу тууралуу маалымат менен окуяны калтырууну суранганда, биз уулуу шылтоолорду алабыз. Тиги эмес жерге мурдуңду чаппа. Иштеп чыгуучулар код жазуусу керек. Долбоордо дененин көптөгөн кыймылдары бир адам аркылуу өтүп, ал гана ар бир адамга керектүү операцияларды жасай ала турган абал абдан кейиштүү. Мындай адам коркунучтуу дароо болуп саналат. Эгерде Devops идеялары рынокко чыгуу убактысын кыскартууга умтулса, анда мындай адамдар Devops идеяларынын эң жаман душманы болуп саналат. Тилекке каршы, бул жерде көшөгө жабылат.

P.S. Адамдар менен баарлашууда иштеп чыгуучулар жана администраторлор жөнүндө бир аз сүйлөшкөндөн кийин, мен кайгымды бөлүшкөн адамдарды жолуктурдум. Бирок мындай учурга туш болгон эмесмин дегендер да болду. Devops конференциясынын биринде мен Антон Исанинден (Альфа Банк) администраторлор түрүндөгү бөксөлүк көйгөйүн кантип чечкенин сурадым, ал: "Биз аларды баскычтар менен алмаштырдык" деди. Айтмакчы подкастты анын катышуусу менен. Душмандардан да жакшы админдер коп экенине ишенгим келет. Ооба, башындагы сүрөт чыныгы корреспонденция.

Булак: www.habr.com

Комментарий кошуу