Преминаване от системна администрация към DevOps – практически съвети

14 август
Хуго Берначеа, старчи разработчик в DataArt
Преминаване от системна администрация към DevOps – практически съвети
Едва ли някой може да отрече, че „DevOps” става все по-популярно направление в сферата на ИТ. Именно затова в тази статия ще споделя повече информация относно ползите и възможностите, които тази методология предлага, както и кои са инструментите, участващи в нейното внедряване.

Защо DevOps?

Въпреки че един системен администратор или администратор на база данни може да продължи да работи със същото ниво на умения и компетенции като преди, съществува и друга възможност - да се развива в сферата на DevOps и то по доста прогресивен начин. Ръчното търсене и настройки на сървъри в този случай може да бъде заменено с автоматизация, която позволява да се изпълняват подобен тип задачи по-бързо и с по-малък риск от грешки.

Именно чрез процеса на възприемане на нови методологии DevOps води до промяна на компетенциите, които имате, и ви дава възможност да придобиете нов набор от знания и умения. Усилията се насочват към това да намерим начини за автоматизация на всяка задача. Не е лесно да се промени представата за начина, по който работим от 10 или 20 години. Смятам обаче, че това е необходимо и дори задължително.

Като начало трябва да възприемем идеята, че да бъдеш DevOps не е просто наименование на работна позиция, а набор от практики, които водят до цялостен резултат, намаляване на грешките, възможност на по-ефективен и по-продължителен жизнен цикъл на софтуера, подобряване на връзката между Dev и Ops, извършване на редовни тестове и преоценка на целия процес на непрекъсната интеграция.

На един сисадмин може да му липсват познания по програмиране или умения за писане на код. Какво е решението? Отговорът е прост: усилията трябва да се насочат към изучаване на поне един програмен език. Нужно е да спрете да вярвате в клишето, че програмирането е само за разработчици, но в същото време не е необходимо и да придобивате професионални знания за писане на код, а базисни такива. Излишно е да казвам, че живеем във време, в което трябва да имате преди всичко желание и мотивация, а ресурси за обучение могат да се намерят лесно, например - тук: https://www.learnpython.org/es/ 

Самият аз използвам Powershell и натрупах познания в Python. Разбира се, това е просто пример и съществуват доста други опции.

devops1

Натрупването на програмни умения може също така да бъде полезно за подобряване на вашата екипна работа, ако се налага да комуникирате по технически теми с клиенти. Освен това, би било препоръчително да научите командите в Linux Shell и да добавите това към вашия набор от инструменти. Подобно обучение ще ви отнеме известно време, но мисля, че усилията си заслужават.

В крайна сметка, често в компаниите има един единствен системен администратор, който отговаря за широк спектър от задачи: от поддръжката на принтера до поддръжка на мрежата, настройка и управление на рутери, firewall, актуализации, одит на сигурността. В този случай именно автоматизацията е ключова за облекчаване на ресурсите, използвайки скриптове на Powershell, Python или Bash.

 

DevOps - основни принципи и понятия

  • DevOps е набор от практики, процеси и инструменти, които съчетават разработването на софтуер (Dev) и ИТ операциите (Ops), като по този начин се подобрява процеса на разработката на софтуер.
  • DevOps играе много важна роля в осигуряването на изграждане, тестване и стартиране на автоматизация и е свързано с така наречената непрекъсната интеграция (CI), непрекъснато тестване (CT) и непрекъсната доставка (CD).
  • DevOps изисква планиране, разработка, тестване, внедряване, стартиране и мониторинг, с активното съдействие на различните членове на екипа 
  • Образно процесът може да бъде визуализиран в графиката по-долу, която преминава от теста за компилиране до старта. Графиката показва, че DevOps не се фокусира върху непрекъсната интеграция, а върху непрекъсната доставка.
devops2

Търсене на възможности за автоматизация

Всеки път, когато се налага да изпълняваме повтаряща се задача, трябва да проучим възможността да я автоматизираме, така че следващия път процесът да може да се извърши без наша намеса. Това ще ни спести време да се съсредоточим върху изпълнението на по-важни и не толкова рутинни задачи.

Да вземем за пример администрацията на потребителски акаунти: създаването на потребители и задаването на права може да бъде досадна работа, тъй като потребителите се сменят доста често. Създаването на скриптове означава спестяване на време, което да се насочи към инфраструктурни проекти в по-голям мащаб, носещи и по-високи приходи.

>

От системна администрация към DevOps

Системните администратори имат капацитета да направят прехода към DevOps екипи, стига да са готови да изучават съвременните и нововъзникващи технологии и стига да са отворени за нови идеи и решения. Изучаването на програмен език като Ruby, Python или Go, ще бъде от полза за преминаване към DevOps. От друга страна, в много случаи системните администратори са свикнали да работят сами, което налага изграждане на умения за сътрудничество в екип с други технически специалисти.

И системната администрация, и DevOps се интересуват от бързото мащабиране, намирането и намаляването на грешките по най-бърз начин и именно автоматизацията се явява ключът между тези две полета.

Първото условие за подобен преход е системният администратор да е наистина компетентен и добре подготвен в настоящата си дейност. Тук се включва работа с облачните услуги като AWS, Azure и Google Cloud Platform.  Съответният специалист трябва да разбера принципа на CI / CD pipeline и да знае как да ги стартира с помощта на Jenkins. Тези понятия включват непрекъсната интеграция, непрекъснато разпространение и непрекъснато внедряване.

devops3

Боравенето с инструменти като Ansible, който се използва за работа на 10 или 20 сървъра едновременно, също е важно умение.

Казано иначе, работата на сисадмина включва дейности от страна на Ops. За преминаване към DevOps е нужно придобиване на съответните Dev умения.

Последното важно парче от пъзела е Git. Традиционно Git не е сред ежедневните задължения на един системен администратор. Тази система за контрол на управление на версиите се използва широко от екипите на софтуерните инженери. Ако сте част от процеса на разработка на жизнения цикъл на софтуера, със сигурност се налага да работите с Git.

Ето защо, ако сте решили да се насочите към DevOps, трябва да подобрявате непрекъснато своите Git умения, да сте наясно с контрола на версиите и да научите общите команди, като git status, git commit -m, git add, git pull, git push и др. Налични са много онлайн курсове. Лично аз бих препоръчал следния ресурс: https://learngitbranching.js.org/?locale=es_AR

Освен това можете да намерите Git Cheat Sheet, така че не е задължително да учите всяка команда. Но колкото повече ги използвате, толкова повече ще ги помните. Microsoft Visual Studio Code - като алтернатива на Notepad ++ е безплатен инструмент и ви позволява да изпълнявате Git команди директно от средата на Visual Studio Code.

devops4

Използвайки Ansible, бихме могли да създадете нова среда в облака, дори при високо ниво на автоматизация и без да се налага да влизате в портала Azure, GCP или AWS.

devops

Няколко заключителни думи

И накрая, можете да изберете дали искате да продължите да се занимавате само със системна администрация или да станете DevOps. Нужен е процес на обучение, но мисля, че усилията си заслужават.

Можете да изберете един програмен език и, както казах, смятам, че Python е най-подходящ за тази цел. В същото време трябва да търсите начини за подобряване на нашите Git умения, CI / CD инструментариум и познания в инструментите за настройка и автоматизация като Ansible.

 

Източници: