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

«Проєкт „Дія“ створили 16 людей, а спершу нас взагалі було п’ятеро», – розробник

pb-news.info

«Проєкт „Дія“ створили 16 людей, а спершу нас взагалі було п’ятеро», – розробник

13 березня «Дія» стала опенсорс-проєктом. Журналісти DOU поспілкувалися з Євгенієм Горбачовим, Chief Product Officer в «Дії», і розпитали, чому проєкт вийшов в опенсорс зараз, якою була перша реакція користувачів на GitHub, хто є мейнтейнерами підтримки опенсорс-коду та чи багато пул-реквестів від спільноти схвалила команда. А також про те, чи є актуальні вакансії в команді.

Проєкт «Дія» створили 16 людей, а на початку нас взагалі було п’ятеро. Нині в команді 37 фахівців, включно з менеджерами, архітекторами, бізнес-аналітиками, дизайнерами, розробниками, тестувальниками, девопсами, спеціалістами з безпеки. З цього дивуються всі у світі. Для розвитку продукту нам потрібні контрибутори, які можуть розробляти функції, що не братиме на себе core-команда, тому що це не є пріоритетом для країни.

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

Відповідальними є мої ліди. У команді є напрями iOS, Android, Back-end, DevOps тощо. Кожен з них рев’ювить пул-реквести у своїй зоні відповідальності. Це не їхня основна робота. Вони мають велике навантаження: створюють складну функціональність, менеджать свої команди, відповідають за запуск нових фіч, а тепер додався ще й опенсорс.

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

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

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

Якщо код, запропонований контрибутерами, не суперечить нашій загальній архітектурі, ми його приймаємо. Хоча більшість пул-реквестів, які надходили, це був радше тюнінг, nice-to have. Наприклад, оновлення бібліотек. Не було чогось, що б забрало у нас багато часу на рев’ю.

Щоправда, з 1 до 17 квітня пул-реквестів не було. Я наголошую саме на них, не на проблемах (issues). Створювати окрему команду, яка буде сперечатися з кимось на GitHub? Ні, холіварити ми точно не будемо. Але якщо issue вказує на безпекову проблему, ми будемо на це реагувати.

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

Звичайно, читаємо всі issues з критикою. Це філософська історія: якщо ви не виходите в опенсорс, вас критикують. Але якщо виходите, вас теж критикують.

Якщо ви заздалегідь плануєте вийти в опенсорс, то будуєте рішення під це з самого початку. Робити закритий продукт відкритим (як це було з «Дією») значно складніше, ніж відразу створювати відкритий продукт за всіма гайдлайнами та найкращими практиками. Найскладнішим був рефакторинг як підготовка продукту. Він полягав у тому, щоб відділити шифрування та все, що пов’язано з персональними даними. Чутливі речі, звичайно, не вийшли в опенсорс.

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

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

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

Вихід в опенсорс я ініціював ще 2020 року, коли «Дія» тільки з’явилася, але у нас було дуже багато обмежень. Враховуючи, що це критична інфраструктура, проєкт був під грифом секретно. Навіть примітивна документація була таємницею. Звісно, є речі, які досі не можна робити загальнодоступними. Ми працювали над тим, щоб відокремити те, що можна. Це насамперед юридична, бюрократична робота.

На 2022 рік планували провести рефакторинг, дещо поліпшити, додати описи, підготувати пайплайни, що дало б змогу «Дії» вийти в опенсорс. Ми очікували, що це станеться наприкінці 2022 року, але повномасштабне вторгнення завадило. Та ми факультативно продовжували підготовку.

Цей проєкт став ще більш актуальним торік, коли ми стали отримувати багато запитів від країн-партнерів, яким було цікаво співпрацювати, ділитися досвідом і навіть перевикористовувати певні практики для своїх продуктів. Після успішного бета-тесту mRiik в Естонії та після анонсу про те, що USAID підтримає ще п’ять країн у вивченні нашого цифрового досвіду, ми маємо ще більше контактів з країнами майже з усіх континентів. Вивчаємо досвід одне одного, пропонуємо рішення, фактично розвиваємо цифрову дипломатію. «Дія» та вся екосистема проєктів нам у цьому допомагає, оскільки для багатьох країн вона вже є best practice.

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

Ефективніше, коли архітектор голосом пояснює, як побудовано дизайн-архітектуру, і показує це на прикладі робочого рішення в опенсорс. Важливо розуміти, що у кожної країни свої обмеження, реєстри, нормативка. У кожної своє шифрування. Наприклад, у нас зв’язок між реєстрами та їхніми інформаційними системами створює система електронної взаємодії «Трембіта». Дуже вагомою є юридична складова. Партнери розповідають, що в них на вході, а ми ділимось, як цей сервіс можна перевикористати.

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

У нас досі багато спільних проєктів, наприклад CDTO Campus. Разом працюємо над міжнародними проєктами, як-от європейським Wallet. Це європейський сервіс, який допоможе відкривати банківські рахунки онлайн, мати документи в смартфоні тощо. Команда Мінцифри презентувала можливості «Дії» на зустрічі міжнародного консорціуму в Парижі. Показали європейським колегам, як з «Дією» відкрити банківський рахунок за хвилину, створити електронний підпис і користуватися цифровими документами. Найкраща оцінка — нас залучили до пілоту розробки European Digital Identity Wallet.

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

Є три ключові причини, чому ми вийшли в опенсорс. Окрім міжнародних відносин і популяризації рішень на базі «Дії» за кордоном, це робота зі спільнотою експертів зі всього світу, розвиток додаткових продуктових гілок для «Дії». Ідеться про розбудову повноцінних майданчиків для роботи з профільними технологічними комітетами від спільноти навколо опенсорсу «Дії». Треба будувати комунікацію. Сьогодні вона на початковому рівні, а треба робити її глобальною та публічною. Це велика організаційна й ресурсомістка праця, на яку треба знаходити час. Але це важливий трек, і я впевнений, що ресурс знайдеться.

Реакція користувачів на GitHub була бурхлива. Ми отримали багато позитивного фідбеку, але ставили й дискусійні питання, була конструктивна критика. Загалом все відбулося навіть краще, ніж очікувалось. Явного негативу не траплялося, адже «Дія» — це не проста саморобка, щоб можна було швидко подивитись і аргументовано сказати: «все погано, чи все добре». Продукт складний і потребує експертизи і часу на аналіз для того щоб щось стверджувати і дискутувати. Ті, хто розуміються, констр

  • Останні
Більше новин

Новини по днях

Сьогодні,
21 травня 2024