Неліктен жүйелік әкімшілер DevOps инженері болуы керек?

Неліктен жүйелік әкімшілер DevOps инженері болуы керек?

Өмірде үйрену үшін бүгінгіден жақсы уақыт жоқ.


Бұл 2019 жыл және DevOps бұрынғыдан да өзекті. Мейнфрейм дәуірі сияқты жүйелік әкімшілер уақыты өтті дейді. Бірақ бұл шынымен солай ма?
IT-да жиі болатындай, жағдай өзгерді. DevOps әдістемесі пайда болды, бірақ ол жүйелік әкімші дағдылары бар адамсыз, яғни Opsсыз өмір сүре алмайды.

DevOps тәсілі өзінің заманауи түрін алғанға дейін мен өзімді Ops ретінде жіктедім. Жүйе әкімшісінің әлі жасай алмайтынын және оны үйренуге қаншалықты аз уақыт қажет екенін түсінген кезде мен нені бастан кешіретінін жақсы білемін.

Неліктен жүйелік әкімшілер DevOps инженері болуы керек?

Бірақ бұл шынымен де қорқынышты ма? Білімнің аздығын қандай да бір үлкен мәселе ретінде қабылдауға болмайды дер едім. Бұл кәсіби сынақ.

Веб-масштабты өнімдер Linux немесе басқа ашық бастапқы бағдарламалық жасақтамаға негізделген және нарықта оларды сақтай алатын адамдар азайып барады. Сұраныс бұл саладағы мамандардың санынан асып түсті. Жүйелік әкімші бұдан былай өзінің біліктілік деңгейін арттырмай жай ғана жұмысын жалғастыра алмайды. Ол бірнеше серверлерді/түйіндерді басқару үшін автоматтандыру дағдыларына ие болуы және туындаған мәселелерді шешу үшін олардың қалай жұмыс істейтінін жақсы түсінуі керек.

DevOps командасының мүшесі болмас бұрын сізге ұзақ, бірақ қызықты саяхаттан өту керек, DevOps стандарттарына сәйкес жүйені қолдау үшін қажетті жаңа технологиялар мен әртүрлі құралдарды үйрену керек.

Сонымен, жүйелік әкімші жұмысқа әдеттегі тәсілден жаңа DevOps тұжырымдамасына қалай ауыса алады? Барлығы әдеттегідей: алдымен ойыңызды өзгерту керек. Соңғы он-жиырма жыл бойы ұстанып келе жатқан тәсілден бас тартып, басқаша әрекетке кірісу оңай емес, бірақ қажет.

Ең алдымен, DevOps - бұл компаниядағы нақты лауазым емес, нақты тәжірибелер жиынтығы екенін түсіну маңызды. Бұл тәжірибелер оқшауланған жүйелерді таратуды, қателер мен қателерден келетін зиянды азайтуды, бағдарламалық жасақтаманы жиі және уақтылы жаңартуды, әзірлеушілер (Dev) мен әкімшілер (Ops) арасындағы жақсы қалыптасқан өзара әрекеттесуді, сонымен қатар кодты ғана емес, сонымен қатар тұрақты тестілеуді білдіреді. сонымен қатар процестегі бүкіл құрылым үздіксіз интеграция және жеткізу (CI/CD).

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

Оператор ретінде сізге жетіспейтін нәрсе - бағдарламалау дағдылары. Енді жүйе әкімшілері серверде патчтарды автоматты түрде орнату, файлдар мен тіркелгілерді басқару, ақаулықтарды жою және құжаттаманы құрастыру үшін қолданатын сценарийлерді (скрипттерді) жазу қазірдің өзінде ескірген болып саналады. Сценарий әлі де салыстырмалы түрде қарапайым жағдайларда қолданылады, бірақ DevOps енгізу, тестілеу, құрастыру немесе орналастыру сияқты ауқымды мәселелерді шешуге арналған.

Осылайша, егер сіз автоматтандыруды үйренгіңіз келсе, әзірлеуші ​​болмасаңыз да, бағдарламалауды аз да болса меңгеруіңіз керек, өйткені сіздің дамуыңыздың осы кезеңінде инфрақұрылымды автоматтандыру DevOps жүйесінде бұл дағды қажет.

Не істеу? Маман ретінде сұранысқа ие болу үшін сізге сәйкес дағдыларды алу қажет - кем дегенде бір бағдарламалау тілін, мысалы, Python тілін меңгеру. Әкімшілікпен кәсіби түрде айналысатын адамға бұл қиын болып көрінуі мүмкін, өйткені ол тек әзірлеушілер ғана бағдарламалайды деп ойлауға дағдыланған. Сарапшы болу міндетті емес, бірақ бағдарламалау тілдерінің бірін білу (бұл Python, Bash немесе тіпті болуы мүмкін) Powershell), артықшылығы сөзсіз.

Бағдарламалауды үйрену біраз уақытты алады. Ұқыпты және шыдамды болу DevOps командасының мүшелерімен және тұтынушыларымен байланысқан кезде барлығынан хабардар болуға көмектеседі. Күніне жарты сағат, бір сағат немесе одан да көп уақыт бағдарламалау тілін үйрену сіздің басты мақсатыңыз болуы керек.

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

Бірақ бұл мәлімдеме қаншалықты рас?

Жүйе әкімшісі: даладағы бір жауынгер

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

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

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

Ол сондай-ақ аппараттық құралдарды жаңартуға, журналды тексеруге және талдауға, қауіпсіздік аудитіне, серверді түзетуге, ақауларды жоюға, түбірлік себептерді талдауға және әдетте PowerShell, Python немесе Bash сценарийлері арқылы автоматтандыруға жауапты болады. Қолданудың бір мысалы сценарийлер пайдаланушы және топ тіркелгілерін басқару болып табылады. Пайдаланушы тіркелгілерін жасау және рұқсаттарды тағайындау өте жалықтырады, өйткені пайдаланушылар күн сайын дерлік пайда болады және жоғалады. Сценарийлер арқылы автоматтандыру коммутаторлар мен серверлерді жаңарту және әкімші жұмыс істейтін компанияның кірістілігіне әсер ететін басқа жобалар сияқты маңыздырақ инфрақұрылымдық тапсырмаларды орындау үшін уақытты босатады (IT бөлімі тікелей кіріс әкелмейтіні жалпы қабылданғанымен).

Жүйе әкімшісінің міндеті - уақытты босқа өткізбеу және компанияның ақшасын кез келген жолмен үнемдеу. Кейде жүйелік әкімшілер үлкен команданың мүшелері ретінде жұмыс істейді, мысалы, Linux, Windows әкімшілерін, деректер қорын, сақтауды және т.б. Жұмыс кестелері де әртүрлі. Мысалы, күннің соңында бір уақыт белдеуіндегі ауысым процестер тоқтап қалмауы үшін (күннен кейін) істерді басқа уақыт белдеуіндегі келесі ауысымға ауыстырады; немесе қызметкерлердің қалыпты жұмыс күні таңғы сағат 9-дан кешкі 5-ке дейін; немесе ол тәулік бойы жұмыс істейтін деректер орталығында жұмыс істейді.

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

DevOps: әзірлеу және техникалық қызмет көрсету

DevOps дамыту және қолдау процестеріне арналған философияның бір түрі болып табылады. IT әлеміндегі бұл тәсіл шын мәнінде инновациялық болды.

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

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

Жүйе әкімшілері соңғы технологияларды үйренгісі келсе және инновациялық идеялар мен шешімдерге ашық болса, DevOps командасына ауыса алады. Жоғарыда айтқанымдай, олар толыққанды бағдарламашы болу міндетті емес, бірақ Ruby, Python немесе Go сияқты бағдарламалау тілін меңгеру оларға команданың өте пайдалы мүшесі болуға көмектеседі. Жүйе әкімшілері дәстүрлі түрде барлық жұмысты өздері жасайды және көбінесе жалғыз адамдар ретінде қабылданса да, DevOps-те олар процесте барлығы бір-бірімен әрекеттесетін мүлдем қарама-қарсы тәжірибеге ие.

Автоматтандыру тақырыбы өзекті бола түсуде. Жүйе әкімшілері де, DevOps мамандары да жылдам масштабтауға, қателерді азайтуға және бар қателерді жылдам табуға және түзетуге мүдделі. Осылайша, автоматтандыру - бұл екі сала біріктіретін ұғым. Жүйе әкімшілері AWS, Azure және Google Cloud Platform сияқты бұлттық қызметтерге жауапты. Олар үздіксіз интеграция және жеткізу принциптерін және сияқты құралдарды қалай пайдалану керектігін түсінуі керек Дженкинс.

Сонымен қатар, жүйелік әкімшілер конфигурациялау және басқару құралдарын пайдалануы керек, мысалы Қажет, он немесе жиырма серверді параллель орналастыру үшін қажет.

Негізгі тұжырымдамасы инфрақұрылым код ретінде. Бағдарламалық жасақтама - бұл бәрі. Шын мәнінде, жүйелік әкімші мамандығы өзектілігін жоғалтпау үшін екпінді аздап өзгерту керек. Жүйе әкімшілері қызмет көрсету бизнесінде және әзірлеушілермен тиімді байланыса алуы керек және керісінше. Бір бас жақсы, екеуі жақсы дегендей.

Және бұл механизмдегі соңғы бөлшек жүру. Git-пен жұмыс істеу жүйелік әкімшінің дәстүрлі күнделікті міндеттерінің бірі болып табылады. Бұл нұсқаны басқару жүйесін әзірлеушілер, DevOps мамандары, Agile командалары және басқалары кеңінен пайдаланады. Егер сіздің жұмысыңыз бағдарламалық жасақтаманың өмірлік циклімен байланысты болса, онда сіз міндетті түрде Git-пен жұмыс жасайсыз.

Git көптеген мүмкіндіктерге ие. Сіз Git пәрмендерінің барлығын ешқашан үйрене алмайсыз, бірақ оның бағдарламалық жасақтамадағы байланыс пен ынтымақтастықта неліктен негізгі элемент екенін дәл түсінесіз. Егер сіз DevOps тобында жұмыс істеп жатсаңыз, Git-ті толық білу өте маңызды.

Егер сіз жүйелік әкімші болсаңыз, онда сізге Git-ті жақсырақ оқып, нұсқаны басқарудың қалай құрастырылғанын түсіну және жалпы командаларды есте сақтау қажет: git статусы, git commit -m, git add, git pull, git push, git rebase, git филиалы, git diff және басқалар. Бұл тақырыпты нөлден бастап үйренуге және белгілі бір дағдылары бар кәсіпқой болуға көмектесетін көптеген онлайн курстар мен кітаптар бар. Кереметтері де бар Git командалары бар алдау парақтары, сондықтан олардың барлығын қыспаудың қажеті жоқ, бірақ Git қолданбасын неғұрлым көп пайдалансаңыз, соғұрлым оңайырақ болады.

қорытынды

Сайып келгенде, сіз DevOps маманы болу керек пе, әлде жүйелік әкімші болып қалу жақсы ма, соны шешесіз. Көріп отырғаныңыздай, ауысуды жүзеге асыру үшін оқу қисығы бар, бірақ сіз неғұрлым тезірек бастасаңыз, соғұрлым жақсы. Бағдарламалау тілін таңдап, бір уақытта сияқты құралдарды үйреніңіз жүру (нұсқаны басқару), Дженкинс (CI/CD, үздіксіз интеграция) және Қажет (конфигурация және автоматтандыру). Қандай нұсқаны таңдасаңыз да, үнемі үйрену және дағдыларыңызды жетілдіру қажет екенін ұмытпаңыз.

Ақпарат көзі: www.habr.com

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