Які тренди є визначальними у розробці | robot_dreams
Для відстеження статусу замовлення - авторизуйтесь
Введіть код, який був надісланий на пошту Введіть код із SMS, який був надісланий на номер
 
Код дійсний протягом 2 хвилин Код з SMS дійсний протягом 2 хвилин
Ви впевнені, що хочете вийти?
Сеанс завершено
На головну
Low-code, мікросервіси, ШІ та блокчейн: які тренди є визначальними у розробці

Low-code, мікросервіси, ШІ та блокчейн: які тренди є визначальними у розробці

І які з них пробудуть з нами недовго. Розповідає Senior Software Architect з Microsoft

10 років тому, якщо вебсайт добре відтворювався у різних браузерах, а картинки не «сповзали» на текст, можна було говорити про якісне ІТ-рішення. Зараз розробникам та архітекторам ПЗ доводиться брати до уваги значно більше факторів: від безпеки та швидкодії до надійності та навіть екологічності продукту.

У матеріалі говоримо саме про це: як хмарні технології, штучний інтелект, 5G, блокчейн та інші тренди змінили ІТ-індустрію та що з них залишиться у майбутньому.

Своїм досвідом та думками ділиться Вʼячеслав Агафонов, Senior Software Architect у Microsoft та лектор курсу Software Architect.

Усі погляди, висловлені у цьому тексті, належать В'ячеславу та не репрезентують позицію компанії Microsoft.

Досьє:

Вʼячеслав Агафонов — Senior Software Architect у Microsoft. Понад 12 років живе та працює у США. Будує архітектуру та систему безпеки для проєктів, які створюють Surface Book, Xbox, HoloLens та інші знакові застосунки Microsoft. Має більш ніж 18 років досвіду в технічній розробці, опрацюванні даних, побудові хмарних проєктів і використанні інструментів на базі ШІ.

Які тренди впливають на розробку технологій

Хмарні сервіси

У 2011 році, коли я прийшов працювати в Microsoft, у компанії не було хмарної платформи Microsoft Azure. Але у всьому світі хмарні обчислення набирали обертів і невдовзі стало зрозуміло, що зворотної дороги немає. Протягом наступних років ця технологія кардинально змінила ІТ-індустрію та підходи до розробки програмних продуктів.

Основна ідея «хмари» у тому, щоб отримати онлайн-доступ до масштабованих та економічно ефективних ресурсів (як-от сервери, сховища, бази даних, мережі, різне програмне забезпечення). Розробникам не потрібно робити великі інвестиції у власну «залізну» інфраструктуру та витрачати кошти на її підтримку. Натомість вони можуть користуватися різними хмарними сервісами, зокрема аналітикою, штучним інтелектом і машинним навчанням, щоб покращити можливості та цінність своїх ІТ-рішень.

Своєю чергою хмарні та периферійні обчислення разом із технологією зв’язку 5G дали змогу перейти від централізованої до розподіленої архітектури. Вона є більш гнучкою, має меншу затримку та вартість. У такий спосіб з’явилася можливість досягти високої пропускної здатності, збирати й обробляти великі дані у реальному часі. Це дало поштовх розвитку інтернету речей: від смартдевайсів та автономних автомобілів до технологій «розумних» міст.

Штучний інтелект (ШІ)

ШІ — не нова технологія, вона виникла близько 60 років тому. Але лише нещодавно стали доступними великі обсяги даних для машинного навчання (machine learning, ML). Відтак відбувся прорив у створенні генеративного ШІ, який здатний глибоко розуміти запит користувача, брати до уваги контекст і створювати контент на будь-який смак: тексти, малюнки, звуки та навіть програмний код. Це відкриває шлях до розробки нових бізнес-моделей та інновацій, які були неможливі раніше, як-от персоналізована медицина чи розмовні агенти.

Sustainability (сталість довкілля)

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

Microsoft поставив собі за мету через 10–15 років зменшити свій вуглецевий слід до нуля. Один з дата-центрів облаштували прямо на вулиці просто неба, завдяки чому сервери обдуваються вітром — раніше такого ще ніхто не робив.

Водночас і перед розробниками та архітекторами постала потреба закладати у програмний продукт екологічний фактор ще на етапі проєктування. Якщо раніше основним питанням було «Як зробити дешевше?», то тепер — «Як зменшити вплив на клімат?». Загальних стандартів поки що немає, проте є простір для експериментів. Наприклад, впроваджувати автоматично масштабування хмарних ресурсів, розпаралелювати процесинг на кілька серверів, щоб не перенапружувати один вузол.

Довгострокові та швидкоплинні тенденції

Ті тренди, які мають сильний імпульс і потенціал для подальшого зростання та вдосконалення, мають перспективу залишитися з нами надовго. Наприклад:

  • штучний інтелект і машинне навчання стануть більш потужними та відповідальними;
  • розподілені архітектури — безпечними та сумісними;
  • low-code/no code платформи — ефективними та зручними для користувача.

Ймовірно, змінюватимуться й підходи до розробки. Уже зараз системи на кшталт GitHub Copilot дають змогу збільшити продуктивність кожного окремого програміста. Як наслідок, компаніям не будуть потрібні великі ІТ-команди, адже частину їхньої роботи можна делегувати штучному інтелекту. Тож обов’язки людей еволюціонують у бік того, щоб налаштовувати та контролювати цей ШІ.

Водночас деякі тенденції виявляються швидкоплинними. Наприклад, до ери сенсорних смартфонів мали попит телефони BlackBerry з клавіатурою. Але потім з’явився iPhone, і ринок докорінно змінився.

Передбачити майбутнє усіх сучасних трендів неможливо, але можна окреслити певні ризики:

  • low-code/no code платформи можуть зіткнутися з конкуренцією з боку традиційних платформ кодування або безкодових платформ ШІ;
  • розподілені архітектури можуть зіткнутися з вибором між продуктивністю та конфіденційністю;
  • програми на основі ШІ можуть спричинити негативну реакцію з боку користувачів або регуляторів через упередженість або неправильне застосування.

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

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

Трансформації в очікуваннях і вимогах користувачів

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

Кросплатформеність

Користувачі очікують, що ІТ-рішення буде доступне на будь-якому девайсі з будь-якою операційною системою. Завдяки сучасним кросплатформним фреймворкам у компаній немає потреби наймати окремих програмістів під Windows, Android чи Linux — це може робити одна людина.

Аналітика

Протягом останніх років люди звикли до дашбордів з метриками, які оновлюються у реальному часі. Крім того, має бути налаштований моніторинг всіх складових ІТ-системи, щоб користувач негайно отримав сповіщення у разі помилки, аномалії чи збою. Набуває поширення технологія Digital Twin: за її допомогою можна спостерігати за роботою пристроїв, наприклад, на заводі.

Фактор геолокації

Нові стандарти зв’язку на кшталт 5G і Wi-Fi дали змогу зробити гаджети безпровідними, а згодом з’явилася вимога, щоб сервіси могли працювати по-різному залежно від геолокації користувача. Це спричиняє нові виклики для архітектури: як девайси та сервери будуть між собою взаємодіяти, де вони мають бути розташовані, де зберігатимуться дані тощо.

Багатошвидкісна архітектура

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

Щоб задовольнити вимоги клієнтів, важливо на етапі проєктування ІТ-системи закладати якісну та ретельно продуману архітектуру. Це вбереже проєкт від проблем, збитків і неефективних рішень.

Підходи до розробки сучасних ІТ-систем

Сучасні складні ІТ-системи складаються з кількох компонентів, які взаємодіють один з одним і зовнішніми об’єктами, як-от користувачі, пристрої тощо. Щоб забезпечити надійність, продуктивність і функціональність, ці системи повинні бути захищеними, відмовостійкими та масштабованими, а також мати високу доступність.

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

курс: Software Architect
ВʼЯЧЕСЛАВ АГАФОНОВ SENIOR SOFTWARE ARCHITECT IN MICROSOFT
 

Ось деякі з технологій, які лежать в основі сучасних складних ІТ-систем:

  • Мікросервіси — зручні тим, що дають змогу використовувати різні технології, мови та фреймворки для кожної служби залежно від їхніх потреб і переваг.
  • Граничні обчислення — дають змогу зменшити затримку, споживання пропускної здатності та перевантаженість, оскільки дані обробляються локально або на межі мережі. Крім цього, такий підхід покращує безпеку, конфіденційність і надійність системи.
  • Балансування навантаження — розподілення навантаження між кількома серверами робить ІТ-систему більш доступною, адже позбавляє єдиної точки відмови, та масштабованою, оскільки дає змогу динамічного додавати або видаляти ресурси відповідно до потреб.
  • Шифрування — захищає дані від несанкціонованого доступу або модифікації під час передачі чи зберігання.
  • Резервне копіювання — забезпечує відновлення даних під час аварії, кібератаки, у разі втрати чи пошкодження. Зручно використовувати разом з балансуванням навантаження, створюючи декілька копій даних на різних вузлах.
  • DevOps-практики — дають змогу впровадити швидкі цикли зворотного зв’язку, короткі цикли випусків і постійне оновлення системи. Спрощують роботу з розгортанням ПЗ: можна виділити окремі сервери для тестування та налаштувати автоматичне масштабування змін на робоче середовище.

Роль бігтех-компаній та потенціал малих гравців

Чимало сучасних технологій започаткували поодинокі ентузіасти. Наприклад, на початку 1970-х років американський вчений-інформатик Денніс Річі створив мову програмування С, яка заклала основи для низки сучасних мов. Схожа історія появи мови Dart — її у 2011 році розробили Ларс Бак і Каспер Лунд, які працювали у Google та прагнули створити альтернативу JavaScript. Ця технологія є опенсорс-проєктом, але Google продовжує сприяти її розвитку.

У бігтех-компаній багато ресурсів для створення та підтримки нових технологій, вони володіють значною часткою ринку та мають сильний вплив в індустрії. Завдяки цьому ІТ-корпорації можуть полегшити та прискорити розповсюдження інновацій. Інколи вони купують стартапи, інколи — стають інвесторами. Наприклад, нещодавно Microsoft інвестував у OpenAI, який розробляє ChatGPT.

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

Тому не можна казати, що наразі всі проривні ніші зайняті корпораціями й місця для окремих ентузіастів чи малих гравців не залишилося. Наприклад, стартап Zoom «вистрілив» з початком пандемії, коли зросла потреба в якісному онлайн-зв’язку. Здавалося б, ідея їхнього продукту досить проста, але він успішно конкурує з Microsoft Teams та Google Meets.

Інші приклади — сервіс Spotify, який став лідером у сфері музичного стрімінгу, та Shopify, який змінив ринок електронної комерції. Ці компанії розвиваються незалежно від бігтеху та мають успіх. Як показують їхні історії, головне — мати проривну ідею, яка розв'яже проблему користувачів або покращить їхній досвід.

Ще статті
Експертки про те, як оцінюють кандидатів на нетехнічних інтерв’ю
Частина 2. Робота із записами: вставка, читання, змінення й видалення