Ми запускаємо розсилку про українське IT-ком’юніті. Залиште email, аби розуміти більше. Прем’єра — скоро!
Дякую! На вказану адресу надіслано листа для підтвердження підписки.
Hot! dev.media шукає менеджера з продажу спецпроєктів

Хто такий Performance Engineer, що робить, і які ще назви у цієї професії

Вадим Волков з EPAM розповідає про професію.

«Типові представники», які описують IT-спеціальності в продовженні циклу, досвідчені співробітники, які знають усі таємниці професії. Ці матеріали містять подробиці, які можуть допомогти школярам, студентам та іншим, хто зацікавлений у виборі IT-спеціальності. Цикл створений для можливості краще зрозуміти індустрію і особливості зсередини, а також допоможе зрозуміти перспективи. Коментарі допоможуть зробити матеріал корисніше, доповнюйте та обговорюйте.

Залишити коментар
Хто такий Performance Engineer, що робить, і які ще назви у цієї професії

Вадим Волков з EPAM розповідає про професію.

«Типові представники», які описують IT-спеціальності в продовженні циклу, досвідчені співробітники, які знають усі таємниці професії. Ці матеріали містять подробиці, які можуть допомогти школярам, студентам та іншим, хто зацікавлений у виборі IT-спеціальності. Цикл створений для можливості краще зрозуміти індустрію і особливості зсередини, а також допоможе зрозуміти перспективи. Коментарі допоможуть зробити матеріал корисніше, доповнюйте та обговорюйте.

У моєї професії кілька назв: аналітик продуктивності, Performance Engineer, Performance Tester. І всі вони досить рідко зустрічаються в інформаційному просторі. Тому слідом за питанням " ким ти працюєш?"зазвичай відразу запитують:» Що це? Чим ти займаєшся?»

Людям, які не занурені в IT-контекст, я пояснюю свою роль на реальних прикладах. Напевно, багато хто зустрічався з ситуацією, коли інтернет-магазин влаштував масштабний розпродаж, вийшло довгоочікуване оновлення улюбленої онлайн-гри або відкрилася реєстрація в посольстві на подачу документів для візи. Ви хочете купити, пограти або зареєструватися, але не можете, тому що Сайти «виснуть» або взагалі не працюють через велику кількість бажаючих. Користувача це дратує, а бізнес зазнає збитків і втрачає лояльність.

Суть моєї професії полягає в тому, щоб подібних збоїв не було. 

Performance Testing — це професія, яка допомагає побудувати найбільш ефективні комп’ютерні системи, які працюють швидко та стабільно.

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

Хочу визначитися з подальшою термінологією.  Іноді тестування продуктивності та аналіз (оптимізацію) продуктивності розмежовують. У першому випадку професія передбачає тільки заміряти, як працює система, і віддати ці дані комусь, хто буде вивчати, чому працює не так, як хотілося б. У другому — не тільки заміряти, але і розібратися, чому працює повільно, або хоча б допомогти це зробити. Однак ми з колегами вважаємо, що навичок тільки тестування продуктивності буде достатньо для новачків в професії Performance Engineer.

Подальший розвиток аналітика продуктивності передбачає здатність самостійно знаходити проблемні місця в досліджуваній системі. Нижче я буду використовувати всі терміни (і аналітик, і тестувальник, і performance engineer), розуміючи під ними одну і ту ж роль.

Джерела професії

Про проблеми продуктивності думали в той час, коли комп’ютери тільки почали з’являтися. Вже в 1968 році була опублікована класична стаття про вплив швидкості роботи комп’ютерних систем на користувача –Response time in man-computer conversational transactions Роберта Міллера. Комп’ютери з тих пір стали іншими, але людина влаштована так само, тому вимоги, зібрані в цій статті, до сих пір застосовуються при оцінці продуктивності.

Які обов’язки у Рerformance Engineer  

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

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

Уявімо собі клієнта, який хоче зробити сервіс продажу авіаквитків. З мого досвіду запит на продуктивність підсумкового продукту надходить наступний: «Ми хочемо, щоб сервіс швидко працював і не „падав“ під навантаженням». Такі вимоги погано визначають, які саме характеристики повинні бути у системи. Тому аналітик продуктивності ставить додаткові питання й уточнює нюанси: «Скільки користувачів одночасно ви хочете обслуговувати?», «Що вони можуть робити: просто шукати квитки, бронювати, проводити оплату (це все різне навантаження на систему)?», «Яка кількість ключових дій користувачів очікується в одиницю часу?», «За скільки секунд одна сторінка повинна завантажуватися?» і ін. Якщо у бізнесу немає розуміння, що таке «швидко», то Performance інженер допомагає визначити конкретні вимоги, ґрунтуючись на дослідженнях взаємодії людини та комп’ютера і стандартах індустрії.

2. Іноді аналітику продуктивності вдається взяти участь в обговоренні майбутньої архітектури рішення. Припустимо, проектується частина системи, яка повинна обробляти повідомлення від користувачів і віддавати їх кудись далі.  Архітектор буде будувати дизайн-системи, грунтуючись, в тому числі, і на вимогах у сфері продуктивності. Але точно не завадить, якщо поруч буде Performance Engineer, який запитає: «яку інтенсивність повідомлень ви очікуєте? Ваша Архітектура враховує її?» А дуже скіловий PE зможе оцінити архітектуру системи й запропонувати необхідні зміни. 

3. Основна мета perfomance-тестів — зрозуміти та виправити причини повільної роботи системи. Для цього проводиться моніторинг показників «заліза» і софта. Налаштування моніторингу інфраструктури часто робить performance engineer, хоча можуть і DevOps-інженери.  

4. Далі йде процес розробки й перевірка готових частин продукту. Завдяки ітеративним підходам, вивчати продуктивність (швидкість, стабільність і масштабованість продукту) можна вже на стадії, коли готовий якийсь мінімальний код. І це дуже хороший варіант розвитку подій. «Заходити» з perfomance-тестами тільки перед релізом — погана практика. Звичайно, це краще, ніж нічого, але виправлення проблем з продуктивністю часто потрапляє у 2/3 слогана студії Артемія Лебедєва — «довго і дорого» (і не факт, що за підсумком все буде добре).

Кто такой тестировщик. Обзор изнутри от Евгения Шидловского
Хто такий Тестувальник. Огляд зсередини від Євгена Шидловського
По темі
Хто такий Тестувальник. Огляд зсередини від Євгена Шидловського

5. Після отримання результатів тестів починається, на мій погляд, найцікавіше — аналіз даних. Це дуже вагома частина обов’язків аналітика продуктивності, на яку в середньому йде половина робочого часу. Тут завданням максимум для інженера буде визначити, що обмежує продуктивність системи, і виправити це. Якщо після цього продукт не відповідає вимогам, потрібно шукати й прибирати обмеження далі. «Намилити, змити, повторити». Іноді буває, що самотужки неможливо зрозуміти причину низької продуктивності. В цьому випадку потрібно виконати завдання-мінімум: зібрати інших членів команди для пошуку проблеми й з усіх сил допомагати колегам її вирішувати.

Якщо говорить коротко, то в коло обов’язків Perfomance Engineer входять не тільки тести продукту, але і багато іншої підготовчої та аналітичної роботи. При цьому головна мета — турбота про те, наскільки комфортно кінцевому користувачеві буде працювати з системою.  

Необхідні скіли

Те, що я зараз буду називати, чи не базовий набір для новачка. Це компетенції вже «дорослого» performance інженера та орієнтир, до якого треба прагнути. 

Головні якості інженера продуктивності — аналітичний склад розуму або здатність з фактів робити висновки. Якщо цього немає, то в професії буде не дуже комфортно, тому що в принципі вся робота будується на аналізі інформації й висновках. Взагалі спеціальність аналітика продуктивності знаходиться на стику трьох IT-професій:

  1. Частина тестування, але, як я вже описав, досить специфічна. Тому аналітику продуктивності необхідно знати та правильно застосовувати методологію навантажувального тестування.
  2. У спеціальності присутня дуже велика частина від адміністрування. Щоб аналізувати продуктивність, інженеру потрібно знати весь стек роботи систем: від мереж і «заліза», хмар і віртуалізації до рендеринга в браузері. Крім того, треба розуміти роботу операційних систем, web- і app-серверів, баз даних, runtime високорівневих мов і як це все налаштовувати для досягнення необхідних результатів продуктивності.     
  3. Без навичок розробника теж не обійтися: performance інженер повинен аналізувати код і роботу з пам’яттю програми. Що стосується безпосередньо написання коду, то навантажувальні скрипти — це все-таки не про програмування, хоч багато з них і пишеться на «серйозних» мовах (C в LoadRunner, С # в Visual Studio). Але іноді буває так, що існуючих інструментів не вистачає і треба писати розширення (або взагалі свої інструменти) з нуля — ось це вже «справжня» розробка.

Self-менеджмент і трохи project-менеджменту. Аналітик продуктивності часто працює один на проєкті й у нього немає тімліда, який буде допомагати. Тому важливо вміти планувати свою зайнятість, розуміти терміни й укладатися в них. Знання процесу розробки теж знадобляться, а хороший аналітик продуктивності може ще й зробити його краще.

Комунікативні навички. Щоб привести продуктивність продукту до ідеалу, performance engineer спілкується з великою кількістю людей. Йому важливо зрозуміло викладати свої думки і трактувати отримані результати колегам. Крім того, спілкуватися з командою і клієнтами доводиться й англійською мовою.

Також корисні будуть навички бізнес-аналізу, щоб зрозуміти потреби клієнта, бізнесу і як їх перетворити на вимоги.

Необхідні основи статистики та обробки даних. Performance engineer постійно працює з даними, іноді їх дуже багато. Методики збору і обробки, принципи роботи з даними — все це маст хев.  

Бажання вчитися і розвиватися.  Технічний горизонт performance інженера нескінченний.

Щоб уміти аналізувати роботу комп’ютерних систем, потрібно (в ідеалі) знати все про все. Звичайно, глибоко розбиратися у всіх доменах нереально, але при цьому можна вибрати ту частину технологічного стека, яка подобається більше, і занурюватися в неї. Так комусь подобається оптимізувати роботу з базами даних, хтось може бути фахівцем з client-side продуктивності, деякі йдуть углиб «хмар». Це, на мій погляд, і є принадність професії: коли з’являється відчуття, що хотілося б розвиватися далі, це завжди можна зробити. Така багатопрофільність визначає рівень аналітика продуктивності: чим більше знаєш і вмієш, тим краще можеш визначити проблемні місця в системі і ефективніше їх виправити.

10 онлайн-курсов от технологических гигантов. Часть 1
10 онлайн-курсів від технологічних гігантів. Частина 1
По темі
10 онлайн-курсів від технологічних гігантів. Частина 1
9 онлайн-курсов от технологических гигантов. Часть 2
9 онлайн-курсів від технологічних гігантів. Частина 2
По темі
9 онлайн-курсів від технологічних гігантів. Частина 2

Кар'єрний шлях 

Історії дуже різні, але є закономірності. Кілька років тому ми в відділі проводили дослідження і з’ясували, що третина людей приходить до нас з розробки та адміністрування, ще третина з тестування, а решта «стартують» з performance інженерії.

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

На мій погляд, починати Performance engineer дуже класно, тому що спеціальність багатопрофільна, можна зрозуміти роботу різних дисциплін і набрати хорошу технічну базу. Ті, хто потім хоче спробувати себе в іншій професії, йдуть, в основному, в розробники або в модний Site Reliability Engineering.

Домени 

Найчастіше РЕ працюють з доменами, де є багато користувачів навантаження (електронна комерція, стрімінгові медіа типу Netflix і ін.). Або в тих проєктах, де швидкість критична для роботи системи. До речі, «багатокористувацьке навантаження — це не завжди люди. Наприклад, IoT з великою кількістю пристроїв і потоком даних, які «стікаються» з датчиків і потребують обробки.

Навчання  

Я не зустрічав навчальних закладів, де конкретно навчають цієї спеціальності. Все тому, що професія комплексна. Як один з варіантів, найближчу до професії освіту дають, наприклад, в БДУІР на КСіСі, спеціальність «Обчислювальні машини, системи та мережі». Там розповідають про роботу «заліза», мереж і операційних систем, вчать оптимізувати код. А взагалі тут будь-який IT-бекграунд буде корисний, але все одно доведеться доучуватися і набиратися досвіду.

Література: 

Ще один варіант навчання — курси. Наприклад, крім проєктної роботи я разом з колегами веду курс з основ Performance Optimization. На ньому ми даємо тільки основи професії, а після студенти доучуються всередині компанії ще 3-6 місяців до того, як потрапити на проєкт. Звичайно, успіх такого навчання багато в чому залежить від бекграунду: чим більше людина з самого початку знає і вміє, тим швидше вона розуміється на нюансах і тонкощах.

Я бачу, що потреба в performance інженерах зростає. Можу провести аналогію з автоматизованим тестуванням. Я застав той час, коли його майже не було і всі вважали, що це робити не потрібно, адже є мануальні тести. А потім стало зрозуміло, що без автоматизації взагалі нікуди й тепер це тренд, зараз намагаються якомога більше тестування автоматизувати, професія дуже затребувана. Схожі зміни я спостерігаю у своїй спеціальності.

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

Айтішник розробив та створив болід власноруч.

Дивіться на каналі dev.ua тест-драйв спорткара.

Ми запускаємо розсилку про українське IT-ком’юніті. Залиште email, аби розуміти більше. Прем’єра — скоро!
Дякую! На вказану адресу надіслано листа для підтвердження підписки.
Читайте також
Професії в IT. Хто такі тімліди, що вони мають знати та як їх оцінювати?
Професії в IT. Хто такі тімліди, що вони мають знати та як їх оцінювати?
Професії в IT. Хто такі тімліди, що вони мають знати та як їх оцінювати?
Більшість молодих айтішників з перших днів роботи мріють вирости до сеньйора та стати тімлідом, менторити джунів та допомагати команді вирішувати складні задачі. Проте якими саме компетенціями має володіти тімлід, що вміти та де вчитися — питання для багатьох відкрите. Аби прояснити ситуацію, ми поспілкувалися з Solutions Architect у компанії DataArt Дмитром Куперманом, який вже багато років займається асесментом тімлідів у компанії: проводить інтерв’ю та оцінює підготовку і досвід колег і кандидатів. 
Смартфон Nothing Phone (1) — що це за пристрій і як про нього відгукуються техноблогери?
Смартфон Nothing Phone (1) — що це за пристрій і як про нього відгукуються техноблогери?
Смартфон Nothing Phone (1) — що це за пристрій і як про нього відгукуються техноблогери?
Смартфон Nothing Phone (1) — одна з найцікавіших технологічних новинок літа 2022 року. Пристрій відразу ж привернув до себе увагу за допомогою яскравого дизайну, причому буквально — через вбудовані в задню панель світлодіоди. Але якийсь час залишалося загадкою, що ще він може запропонувати. Ми вивчили огляди та враження техноблогерів від Nothing Phone (1) — і ділимося підсумками з вами.
«Менеджмент не закінчується на словах Agile чи Kanban». Хто такий Project Manager та як ним стати
«Менеджмент не закінчується на словах Agile чи Kanban». Хто такий Project Manager та як ним стати
«Менеджмент не закінчується на словах Agile чи Kanban». Хто такий Project Manager та як ним стати
Бажаючих увійти в IT з кожним днем стає все більше. Проте більшість із потенційних айтішників опиняються перед складним вибором: ким стати, аби працювати у сфері інформаційних технологій. dev.ua започатковує нову рубрику, в якій розповідатиме, які спеціальності в українському IT є, що роблять конкретні спеціалісти та де вчитися, аби стати айтішником. Сьогодні про професію Project Manager розповідає досвідчений PM в EPAM Яна Стрільчук,
Економічне диво місцевого масштабу. Або чому українське IT через 4 роки стане важливішим за металургію Ахметова
Економічне диво місцевого масштабу. Або чому українське IT через 4 роки стане важливішим за металургію Ахметова
Економічне диво місцевого масштабу. Або чому українське IT через 4 роки стане важливішим за металургію Ахметова
Українська IT-сфера генерує все більше валюти для української економіки. 

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.