SRE: відповіді на 10 головних запитань про професію

SRE

SRE-фахівців зазвичай приписують до системних адміністраторів або DevOps-інженерів, хоча це різні напрями. У нашій статті ми розглянемо 10 ключових аспектів SRE, які допоможуть тобі розібратися. Ти дізнаєшся більше про концепцію SRE, чим саме займаються такі інженери, скільки заробляють і де можна отримати необхідні знання для цього окремого напряму в IT.

1. SRE і Google — що їх повʼязує?

Концепція Site Reliability Engineering тісно пов’язана з історією Google, де вона виникла ще у 2003 році. З того часу ідея стабільності та надійності інфраструктури знайшла своє застосування в численних компаніях, особливо тих, чия успішність прямо залежить від неперервної роботи комп’ютерних систем, таких як Apple, Microsoft, Facebook, Twitter, Dropbox, Oracle та інші. 

Останні 4-5 років принесли широке розповсюдження підходу SRE, і за останні 2-3 роки багато компаній включили цю роль у свої проєкти. Сьогодні, для більшості організацій, залежність від внутрішніх IT-систем, їхньої надійності, продуктивності та інтеграції з зовнішніми сервісами стала необхідністю.

Задачі SRE у різних компаніях варіюються відповідно до специфіки бізнесу. У цьому відношенні, SRE, як новий підхід, схожий на Agile і розглядається кожною компанією індивідуально. Однак, не зважаючи на різницю в деталях, приблизно 80% знань і навичок, якими має володіти фахівець — незмінні, що свідчить про загальні стандарти в області забезпечення стабільності та ефективності систем.

2. Фахівець SRE — це DevOps-інженер чи розробник?

Буде правильним сказати, що це поєднання DevOps-інженера і розробника. Об’єднує в собі поглиблені знання про будову системи з розумінням принципів її роботи. 

В ролі SRE важливо вміти аналізувати і вдосконалювати код, але також розуміти, як працюють сервери, як система масштабується та відбувається розподіл навантаження. Приблизно половина робочого часу фахівця витрачається на розробку та автоматизації.

Щомісячні задачі різноманітні: від написання коду у складі розробницької команди до розв’язання проблем лінії підтримки та написання скриптів автоматизації. Регулярно проводяться тижні перевірки системи на міцність, зокрема, перевірка надійності системи через fail-over процедури.

3. Скільки заробляє інженер SRE?

Заробітна плата інженера з надійності та масштабованості значно варіюється і залежить від різних факторів, зокрема від рівня навичок та років робочого досвіду. 

Як показує аналітика з сайту вакансій Djinni, зарплатна вилка для цієї професії коливається від $6000 до $8000 на місяць. 

Однак середня зарплата фахівців, які мають статус Senior SRE, посилаючись на аналітику з IT-спільноти DOU, становить приблизно $4250. 

Такий широкий розмах виникає через різноманітність завдань, які може виконувати інженер SRE, а також через різний рівень технічних навичок та управлінського досвіду.

4. SRE — це рутинна робота?

Ні, SRE — це не рутинна робота, а складна та відповідальна діяльність з різноманітними тасками. Спеціалісти відповідальні за:

  • прогнозування кількості ресурсів для нових сервісів
  • створення стандартизованих шаблонів для спрощення моніторингу та введення в промислову експлуатацію нових сервісів
  • перевірку працездатності резервних копій та серверів
  • розв’язання проблем без залучення розробників та розрахунок SLA, SLI та SLO для точного визначення того, що та коли відбудеться з сервісом. 

До обов’язків також входить:

  • налаштування та обробка сигналів про проблеми
  • оформлення багів у трекері
  • логування для полегшення визначення проблем
  • екстрені втручання та відновлення системи
  • управління змінами
  • прогнозування попиту та планування потужностей
  • оптимізація ефективності та продуктивності системи.

Розгляньмо на прикладі

Про задачі з якими зустрічається SRE-інженер та про те, чому цю роботу не можна назвати рутинною.

Ситуація: сталося різке збільшення завантаження на серверах. Інтенсивне використання ресурсів виникло через неочікувану помилку в новому коді, який виявився досить складним для розуміння. 

Рішення: команда SRE провела аналіз, і зʼясувалось, що система випадково множила і надсилала повідомлення на адресу сусідньої системи, викликаючи значний розрив у її завданнях. 

Висновок: щоб це зрозуміти, необхідно було провести докладний аналіз коду, виявити проблеми, та швидко виправити помилки, щоб негайно відновити стабільність і надійність системи. 

☝️ Такі сценарії вимагають від фахівців цього напрямку повного розуміння коду, можливостей інфраструктури для ефективного розв’язання таких ситуацій та уникнення подібних у майбутньому.

5. SRE працює окремо чи як частина команди розробників?

Фахівець може працювати в розробницькій команді або в складі самостійної SRE-групи, в залежності від стратегії компанії. 

У першому випадку він взаємодіє з розробниками та QA-інженерами, розв’язуючи питання надійності. В другому, на проєктах зі стабільною системою, SRE-команда аналізує метрики, знаходить помилки, може змінювати код чи надавати рекомендації для оптимізації, забезпечуючи автоматичне відновлення та дотримання обмежень error budget. 

6. Чи завжди буде попит на фахівців SRE?

Роль фахівця SRE завжди буде популярною, оскільки технології швидко розвиваються, а проєкти стають складнішими. Досвід SRE є важливим для компаній, які працюють над великими проєктами. 

Системи ускладнюються, і без знань SRE можуть виникнути проблеми з управлінням великою кількістю мікросервісів. Ця роль з часом стане такою ж поширеною, як QA Automation чи DevOps-інженер. 

7. Який треба досвід, щоб подавати резюме на вакансії SRE?

Необхідний різноманітний досвід, що охоплює як розробку, так і аспекти DevOps. Компанії розглядають розробників з вмінням програмування на мовах, таких як Python або Java, або DevOps-інженерів, готових зануритися в код. 

Завдання SRE: моніторинг, алертинг та траблшутинг. Саме тому необхідний скіл — вміти розвʼязувати нетривіальні технічні проблеми. Галузь SRE знаходиться на межі розробки і DevOps, тому від кандидатів не вимагаються поглиблених знань всіх процесів та інструментів. 

SRE надає можливість вчитися, співпрацюючи з досвідченими інженерами, і відкриває перспективи для джуніор-розробників чи DevOps-інженерів, дозволяючи їм зануритися в цю інноваційну галузь раніше, ніж вона стане мейнстримом.

Що пишуть у вакансіях про необхідну кваліфікацію?

Для того, щоб подаватись на Middle SRE в GoReel, треба:

Щоб працювати Senior SRE в продуктовій IT-компанії UPSTARS, треба: 

8. Який кар’єрний шлях треба пройти, щоб стати SRE?

Починай як Junior SRE. Розвивай навички у написанні софту для автоматизації та моніторингу, фокусуючись на Linux. При зміні кар’єри від програміста в SRE, працюй з моніторингом та вчись розуміти системи масштабування, управління ризиками, безпеку та надійність. 

9. Що треба знати, щоб претендувати на роль SRE?

Для тих, хто планує розвиватись у цьому напрямку, важливо:

  • вміти працювати з Linux для аналізу логів та моніторингу ресурсів;
  • мати експертизу в системах моніторингу, таких як Nagios, Zabbix,  Prometheus
  • вміння розробки на рівні Middle Developer у мовах, таких як Node.js, Java, C#, C++, Python;
  • розуміння систем логування, таких як Splunk або ELK, з можливістю їх інтеграції.

Ці навички дозволять ефективно виконувати обов’язки SRE та забезпечити стабільність та надійність інфраструктури.

10. Де вивчати SRE та шукати корисні матеріали?

Для вивчення Site Reliability Engineering рекомендується проходити професійні курси, а також самостійно шукати інформацію та обовʼязково отримувати практичний досвід. 

Матеріалів в академічному розумінні мало, проте варто ознайомитися з книгами «Site Reliability Engineering» та «The Site Reliability Workbook» від Google, що доступні для безоплатного читання, а також з книгою «Seeking SRE: Conversations About Running Production Systems at Scale»

Рекомендуємо розглянути курси від ITEDU для комплексного розвитку у даній галузі. Враховуючи свої знання та скіли, ти можеш обрати ті, що доповнять твою базу знань. Ми радимо ознайомитись з програмою курсів, що стосуються роботи з Linux та методології DevOps.

Короткий висновок

Професія SRE Engineer має великі перспективи у майбутньому. Варто враховувати, що в цій сфері треба постійно розвиватись, отримувати нові знання та прокачувати скіли, але в результаті ти отримаєш високу заробітну плату та цікаві задачі. 

Залишити відповідь

Дякуємо, що поділились