Әзірлеушілер Марстан, админдер Венерадан

Әзірлеушілер Марстан, админдер Венерадан

Кездейсоқтықтар кездейсоқ және ол басқа планетада болған...

Мен серверлік әзірлеушінің әкімшілермен топта қалай жұмыс істейтіні туралы үш сәттілік пен сәтсіздік оқиғасын бөліскім келеді.

Бірінші әңгіме.
Веб-студия, қызметкерлердің санын бір қолмен санауға болады. Бүгін сіз макет дизайнерісіз, ертең сіз бэкендерсіз, ертеңгі күні сіз админсіз. Бір жағынан, сіз үлкен тәжірибе аласыз. Екінші жағынан, барлық салада құзыреттілік жоқ. Алғашқы жұмыс күні әлі есімде, мен әлі жасылмын, бастық: «Ашық замазка» дейді, бірақ мен оның не екенін білмеймін. Әкімшілермен байланыс жоқ, себебі сіз өзіңіз админсіз. Бұл жағдайдың оң және теріс жақтарын қарастырайық.

+ Барлық билік сіздің қолыңызда.
+ Серверге кіру үшін ешкімнен жалынудың қажеті жоқ.
+ Барлық бағыттарда жылдам реакция уақыты.
+ Дағдыларды жақсы жетілдіреді.
+ Өнімнің архитектурасы туралы толық түсінікке ие болыңыз.

— Жоғары жауапкершілік.
— Өндірістің бұзылу қаупі.
— Барлық салада жақсы маман болу қиын.

Қызық емес, әрі қарай жүрейік

Екінші әңгіме.
Үлкен компания, үлкен жоба. 5-7 қызметкері бар әкімшілік бөлімі және бірнеше дамыту топтары бар. Сіз мұндай компанияға жұмысқа келгенде, әрбір админ сіз мұнда өніммен жұмыс істеу үшін емес, бір нәрсені бұзу үшін келдім деп ойлайды. Қол қойылған NDA немесе сұхбатта таңдау басқаша көрсетпейді. Жоқ, бұл адам біздің сүйіспеншілікті бұзу үшін кішкентай қолдарымен келді. Сондықтан мұндай адаммен сізге ең аз қарым-қатынас қажет, кем дегенде, сіз жауап ретінде стикер лақтыра аласыз. Жоба архитектурасы туралы сұрақтарға жауап бермеңіз. Топ жетекшісі сұрамайынша рұқсат бермеген жөн. Ал сұрағанда, олар сұрағаннан да аз артықшылықтармен қайтарады. Мұндай әкімшілермен барлық дерлік қарым-қатынас әзірлеу бөлімі мен әкімшілік департаменті арасындағы қара тесікке жұтылады. Мәселелерді тез арада шешу мүмкін емес. Бірақ сіз жеке келе алмайсыз - әкімшілер 24/7 тым бос емес. (Үнемі не істеп жүрсіз?) Кейбір өнімділік сипаттамалары:

  • Өндірісте орташа орналастыру уақыты 4-5 сағатты құрайды
  • Өндірісте максималды орналастыру уақыты 9 сағат
  • Әзірлеуші ​​үшін өндірістегі қолданба өндіріс серверінің өзі сияқты қара жәшік болып табылады. Барлығы нешеу бар?
  • Шығарылымдардың төмен сапасы, жиі қателер
  • Әзірлеуші ​​шығару процесіне қатыспайды

Жарайды, мен не күттім, әрине, өндіріске жаңа адамдарды жібермейді. Жарайды, шыдамдылық танытып, біз басқалардың сеніміне ие бола бастаймыз. Бірақ қандай да бір себептермен әкімшілермен бәрі оңай емес.

1-акт. Әкімші көрінбейді.
Шығарылған күні, әзірлеуші ​​мен әкімші байланыспайды. Админнің сұрақтары жоқ. Бірақ неге екенін кейін түсінесіз. Админ принципті адам, мессенджері жоқ, телефон нөмірін ешкімге бермейді, әлеуметтік желіде профилі де жоқ. Еш жерде оның фотосы да жоқ, сен қандай ұқсайсың, досым? Біз осы Voyager 15-мен байланыс орнатуға тырысып, 1 минуттай жауап беруші менеджермен бірге отырамыз, содан кейін корпоративтік электрондық поштада оның аяқтағандығы туралы хабарлама пайда болады. Біз пошта арқылы хат алысамыз ба? Неге жоқ? Ыңғайлы, солай емес пе? Жарайды, салқындатайық. Процесс қазірдің өзінде жүріп жатыр, кері қайтару жоқ. Хабарламаны қайта оқыңыз. «Мен аяқтадым». Не бітірдіңіз? Қайда? Мен сені қайдан іздеуім керек? Мұнда сіз босатуға 4 сағат неге қалыпты екенін түсінесіз. Біз даму шокын аламыз, бірақ шығарылымды аяқтаймыз. Енді босатуға ынта жоқ.

2-акт. Бұл нұсқа емес.
Келесі шығарылым. Тәжірибе жинақтағаннан кейін біз әкімшілерге арналған серверге қажетті бағдарламалық жасақтама мен кітапханалардың тізімдерін жасай бастаймыз, кейбіреулер үшін нұсқалар көрсетіледі. Әдеттегідей, біз әкімшінің бірдеңені аяқтағаны туралы әлсіз радио сигналын аламыз. Регрессия сынағы басталады, оның өзі шамамен бір сағатты алады. Барлығы жұмыс істеп тұрған сияқты, бірақ бір маңызды қате бар. Маңызды функция жұмыс істемейді. Келесі бірнеше сағат бубен билеу, кофе алаңында болжау және әрбір кодты егжей-тегжейлі шолу болды. Админ бәрін жасадым дейді. Қисық әзірлеушілер жазған қолданба жұмыс істемейді, бірақ сервер жұмыс істейді. Оған сұрақтарыңыз бар ма? Бір сағаттың соңында біз әкімшіге өндіріс серверіндегі кітапхана нұсқасын чат пен бингоға жіберуін аламыз - бұл бізге қажет емес. Біз әкімшіден қажетті нұсқаны орнатуды сұраймыз, бірақ жауап ретінде ол ОЖ пакетінің менеджерінде бұл нұсқаның болмауына байланысты мұны істей алмайтынын алдық. Бұл жерде, оның жадындағы ойықтардан менеджер басқа әкімшінің бұл мәселені қолмен қажетті нұсқаны құрастыру арқылы шешкенін есіне алады. Бірақ жоқ, біздікілер мұны істемейді. Ережелер тыйым салады. Карл, біз бірнеше сағат бойы осында отырдық, уақыт шегі қандай?! Біз тағы бір соққыға ие боламыз және әйтеуір шығарылымды аяқтаймыз.

3-акт, қысқаша
Шұғыл билет, негізгі функция өндірістегі пайдаланушылардың бірі үшін жұмыс істемейді. Біз бір-екі сағатты тінтіп, тексереміз. Даму ортасында бәрі жұмыс істейді. Php-fpm журналдарын қарау жақсы идея болатыны анық түсінік бар. Ол кезде жобада ELK немесе Prometheus сияқты журнал жүйелері болған жоқ. Біз сервердегі php-fpm журналдарына кіруге рұқсат беру үшін әкімшілік бөліміне билет ашамыз. Мұнда сіз қандай да бір себептермен кіруді сұрайтынымызды түсінуіңіз керек, қара тесік пен әкімшілер тәулік бойы жұмыс істейтіні туралы есіңізде ме? Егер сіз олардан журналдарды өздері қарауды сұрасаңыз, бұл «бұл өмірде емес» басымдығы бар тапсырма. Билет жасалды, біз әкімшілік бөлімінің бастығынан бірден жауап алдық: «Сізге өндіріс журналдарына қол жеткізудің қажеті жоқ, қатесіз жазыңыз». Перде.

4-акт және одан кейінгі
Біз кітапханалардың әртүрлі нұсқаларына, конфигурацияланбаған бағдарламалық жасақтамаға, дайын емес сервер жүктемелеріне және басқа мәселелерге байланысты өндірісте әлі де ондаған мәселелерді жинап жатырмыз. Әрине, кодтық қателер де бар, біз барлық күнәлар үшін әкімшілерді кінәламаймыз, біз осы жоба үшін тағы бір әдеттегі операцияны атап өтеміз. Бізде супервайзер арқылы іске қосылған көптеген фондық жұмысшылар болды және кейбір сценарийлерді cron-ға қосу керек болды. Кейде сол жұмысшылар жұмысын тоқтатты. Кезекте сервердегі жүктеме найзағай жылдамдығымен өсті, ал қайғылы пайдаланушылар айналдыру жүктегішіне қарады. Мұндай жұмысшыларды жылдам жөндеу үшін оларды жай ғана қайта іске қосу жеткілікті болды, бірақ мұны тек әкімші ғана жасай алады. Осындай қарапайым операция жасалып жатқанда, бір күн өтуі мүмкін. Бұл жерде, әрине, қисық бағдарламашылар жұмысшыларды апатқа ұшырамас үшін жазуы керек екенін атап өткен жөн, бірақ олар құлаған кезде, өндіріске қол жетімділіктің жоқтығынан кейде мүмкін болмайтын себебін түсінген дұрыс. әрине, және соның салдарынан әзірлеушіден журналдардың болмауы.

Трансфигурация.
Осының бәріне ұзақ уақыт бойы шыдап, ұжыммен бірге біз үшін тиімдірек бағытты ұстандық. Қорытындылай келе, біз қандай қиындықтарға тап болдық?

  • Әзірлеушілер мен әкімшілік бөлім арасында сапалы байланыстың болмауы
  • Әкімшілер, белгілі болды(!), қолданбаның қалай құрылымдалғанын, оның қандай тәуелділіктері бар және қалай жұмыс істейтінін мүлдем түсінбейді.
  • Әзірлеушілер өндірістік ортаның қалай жұмыс істейтінін түсінбейді және нәтижесінде проблемаларға тиімді жауап бере алмайды.
  • Орналастыру процесі тым ұзақ уақыт алады.
  • Тұрақсыз шығарылымдар.

Біз не істедік?
Әрбір шығарылым үшін келесі шығарылым жұмыс істеуі үшін серверде орындалуы қажет жұмыстардың тізімін қамтитын Шығарылым ескертпелерінің тізімі жасалды. Тізімде әкімші, шығарылымға жауапты адам және әзірлеуші ​​орындауға тиіс бірнеше бөлімдер бар. Әзірлеушілер барлық өндірістік серверлерге түбірлік емес рұқсат алды, бұл жалпы дамуды және атап айтқанда мәселені шешуді жылдамдатты. Сондай-ақ әзірлеушілер өндірістің қалай жұмыс істейтінін, оның қандай қызметтерге бөлінетінін, көшірмелердің қайда және қанша тұратынын түсінеді. Кейбір жауынгерлік жүктемелер анық болды, бұл сөзсіз кодтың сапасына әсер етеді. Шығару процесі кезіндегі байланыс жедел мессенджерлердің бірінің чатында орын алды. Біріншіден, бізде барлық әрекеттер журналы болды, екіншіден, байланыс жақынырақ ортада өтті. Әрекеттер тарихының болуы жаңа қызметкерлерге мәселелерді тезірек шешуге бірнеше рет мүмкіндік берді. Бұл парадокс, бірақ бұл көбінесе әкімшілердің өздеріне көмектесті. Мен нақты айтуға міндеттеме алмаймын, бірақ әкімшілер жобаның қалай жұмыс істейтінін және оның қалай жазылғанын көбірек түсіне бастаған сияқты. Кейде тіпті кейбір мәліметтерді бір-бірімізбен бөлісетінбіз. Орташа босату уақыты бір сағатқа дейін қысқарды. Кейде 30-40 минутта бітіретінбіз. Қателердің саны он есе болмаса, айтарлықтай азайды. Әрине, шығару уақытының қысқаруына басқа факторлар да әсер етті, мысалы, автотесттер. Әр шығарылымнан кейін біз ретроспективаларды жүргізе бастадық. Бүкіл команда ненің жаңалығы, ненің өзгергені және ненің жойылғаны туралы түсінікке ие болу үшін. Өкінішке орай, админдер оларға үнемі келе бермейтін, жақсы, админдер бос емес... Менің әзірлеуші ​​ретінде жұмысыма қанағаттанғаным сөзсіз өсті. Құзыретіңізге жататын кез келген мәселені тез шеше алатын болсаңыз, сіз өзіңізді жоғары сезінесіз. Кейінірек мен белгілі бір дәрежеде біз девопс мәдениетін енгізгенімізді түсінемін, әрине, толық емес, бірақ трансформацияның сол басы әсерлі болды.

Үшінші оқиға
Жіберу. Бір әкімші, шағын даму бөлімі. Келген кезде мен толық нөлмін, өйткені... Поштадан басқа ешқайда қол жеткізе алмаймын. Біз админге жазып, рұқсат сұраймыз. Сонымен қатар, оның жаңа қызметкер туралы және логиндерді/парольдерді беру қажеттілігі туралы білетіні туралы ақпарат бар. Олар репозиторийден және VPN арқылы кіруге мүмкіндік береді. Неліктен wiki, teamcity, rundesk сайттарына кіруге рұқсат беру керек? Бүкіл сервер бөлігін жазуға шақырылған адам үшін пайдасыз нәрселер. Уақыт өте келе біз кейбір құралдарға қол жеткіземіз. Келу, әрине, сенімсіздікпен қарсы алынды. Мен чаттар мен жетекші сұрақтар арқылы жобаның инфрақұрылымының қалай жұмыс істейтінін баяу сезінуге тырысамын. Негізі мен ештеңе танымаймын. Өндіріс бұрынғыдай қара жәшік. Бірақ одан да көп, тестілеу үшін пайдаланылатын сахналық серверлер де қара жәшік болып табылады. Біз Git-тен филиалды орналастырудан басқа ештеңе істей алмаймыз. Біз сондай-ақ қолданбамызды .env файлдары сияқты конфигурациялай алмаймыз. Мұндай операцияларға рұқсат берілмейді. Сынақ серверіндегі қолданбаның конфигурациясында жолды өзгертуді сұрау керек. (Әкімшілер үшін жобада өздерін маңызды сезіну өте маңызды деген теория бар; егер олардан конфигурациялардағы жолдарды өзгерту сұралмаса, олар жай ғана қажет болмайды). Әдеттегідей, бұл ыңғайлы емес пе? Бұл тез жалықтырады, әкімшімен тікелей сөйлескеннен кейін әзірлеушілер нашар код жазу үшін туылғанын, табиғаты бойынша қабілетсіз адамдар екенін және оларды өндірістен аулақ ұстаған дұрыс екенін білеміз. Бірақ бұл жерде де сынақ серверлерінен. Қақтығыс тез өршіп барады. Админмен байланыс жоқ. Жағдайды оның жалғыз қалғаны қиындатады. Төменде әдеттегі сурет берілген. Шығару. Белгілі бір функция жұмыс істемейді. Не болып жатқанын анықтау үшін бізге көп уақыт қажет, әзірлеушілердің әртүрлі идеялары чатқа жіберіледі, бірақ мұндай жағдайда әкімші әдетте әзірлеушілер кінәлі деп есептейді. Сосын чатта жазады, күтіңіз, түзетіп қойдым. Мәселе не болғаны туралы ақпаратпен тарих қалдыруды сұрағанда, біз уытты сылтауларды аламыз. Мұрныңызды ол тиесілі емес жерге жабыстырмаңыз. Әзірлеушілер код жазуы керек. Жобадағы көптеген дене қимылдары бір адам арқылы өтетін және оның барлығына қажет операцияларды орындауға рұқсаты бар жағдай өте өкінішті. Мұндай адам қорқынышты тығырықтан тұрады. Егер Devops идеялары нарыққа шығу уақытын қысқартуға тырысса, онда мұндай адамдар Devops идеяларының ең қас жауы болып табылады. Өкінішке орай, бұл жерде шымылдық жабылады.

P.S. Адамдармен чатта әзірлеушілер мен әкімшілер туралы аздап сөйлескеннен кейін мен өзімнің қайғымды бөліскен адамдарды кездестірдім. Бірақ мұндайды кездестірмедік дегендер де болды. Бір devops конференциясында мен Антон Исаниннен (Альфа Банк) әкімшілер түріндегі тығырықтан шығу мәселесін қалай шешетінін сұрадым, ол: «Біз оларды түймелермен ауыстырдық», - деді. Айтпақшы подкаст оның қатысуымен. Жаулардан да жақсы админдер көп екеніне сенгім келеді. Иә, басындағы сурет нағыз корреспонденция.

Дереккөз: www.habr.com

пікір қалдыру