Як інженер DevOps (англ. DevOps Engineer) я контролюю роботу команд, що займаються створенням нового програмного забезпечення, а також адміністраторів систем, відповідальних за його впровадження та підтримку середовищ, у яких працюють ці програми й застосунки.
DevOps – це широко поширений підхід до створення програм і застосунків, який передбачає тісну співпрацю між командами, що підтримують ІТ-інфраструктуру, та розробниками програмного забезпечення. Моє завдання – забезпечити, щоб ті, хто створює нове програмне забезпечення чи застосунки, працювали разом із командами, відповідальними за підтримку й обслуговування ІТ-систем, а також уміли спільно шукати нові рішення, оптимальні для всього проєкту, водночас дбаючи про високу якість його реалізації.
Я дбаю про швидку й ефективну комунікацію між усіма учасниками процесу створення нових програм і застосунків. Також я знаю, як оптимізувати цикл роботи над новим продуктом за допомогою інструментів автоматизації. Такі інструменти дають змогу кільком розробникам одночасно вносити зміни до одних і тих самих файлів програми або застосунку. Вони автоматично порівнюють зміни, зроблені одним розробником, із модифікаціями інших і виявляють конфлікти.
Під час роботи над новим проєктом я координую дії програмістів і тестувальників, допомагаючи їм користуватися такими застосунками, як JIRA, Puppet, Selenium, GIT та іншими. Я обираю найкращі технічні рішення – наприклад, мови програмування, сервери, користувацькі інтерфейси – відповідно до проєкту, над яким ми працюємо. Також я оцінюю ефективність цих рішень з огляду на апаратне забезпечення (hardware), тобто техніку й периферійні пристрої, та програмне забезпечення (software), яке використовує наша компанія.
Що я повинен вміти?
Я маю добре орієнтуватися в операційних середовищах Windows і Linux – зокрема, CentOS, RedHat, Debian, Ubuntu – а також у скриптових мовах, таких як Bash, Perl/Python, csh, Groovy, Fedora, Ruby. Важливо також володіти інструментами автоматизації – Puppet, Jenkins, Ansible, Hudson – і засобами для розробки програмного забезпечення. Крім того, мені необхідні навички побудови й адміністрування баз даних, а також роботи в хмарних обчислювальних середовищах, таких як Amazon Web Services або Azure.
Щоб ефективно розробляти алгоритми, необхідні для створення нових застосунків і комп’ютерних програм, мені потрібні глибокі знання з математики.
У моїй роботі важливо добре знати англійську мову, особливо технічну термінологію, оскільки більшість інструкцій до комп'ютерних програм і мов програмування написані англійською, вони також мають англійський інтерфейс. Вільне володіння англійською дозволяє мені брати участь у курсах і тренінгах, що підвищують мою кваліфікацію, стежити за світовими новинами в моїй галузі в інтернеті та знайти хорошу роботу за кордоном.
Які м'які навички важливі в моїй роботі?
- комунікабельність,
- уміння керувати людьми,
- відкритість до нових ідей,
- прагнення до розвитку,
- креативність,
- відповідальність,
- здатність до мультизадачності.
Де я можу працювати?
Я можу працювати в компаніях IT-сфери, особливо в тих, що займаються створенням програмного забезпечення.