...
Connect with us

Бізнес

Чому перехід на Rust — не тренд, а необхідність для безпеки бізнесу

Опубліковано

Чому перехід на Rust

Технології постійно розвиваються, і щоб залишатися конкурентоспроможним, бізнесу необхідно збирати та обробляти великі обсяги даних. А отже, потрібно забезпечити їхню безпеку. Ігор Маловиця, CTO Out of the Box Systems, ментор з Rust, розповів, чому мова програмування Rust — ідеальний вибір для побудови складних, надійних і безпечних систем.

Чому світ відходить від C/C++

C і C++ історично домінують на ринку, вирізняючись високою швидкістю розробки та продуктивністю. Проте останнім часом компанії масово починають відмовлятися від них — 60–70% критичних вразливостей (CVE) пов’язані з помилками керування пам’яттю (memory errors), які часто трапляються в C і C++. Зокрема, CTO Microsoft Azure Марк Руссінович дав розпорядження не починати нові проєкти на C і C++ та використовувати Rust.

[Picture 1]

Помилки виникають через саму специфіку мов:

  • програміст сам відповідає за використання пам’яті — виділення, звільнення пам’яті, дотримання правильного часу життя об’єктів тощо, що може призвести до помилок через людський фактор;
  • немає вбудованого захисту від виходу за межі масиву — це може призвести до перезапису даних, segmentation fault, вразливостей для безпеки системи;
  • немає моделі володіння пам’яттю — через це програма може звільнити пам’ять двічі (double free), втратити вказівник і спричинити витік пам’яті, передати вказівник туди, де він уже не є валідним, тощо;
  • вказівники мають занадто багато контролю — неправильне поводження з ними може призвести до «висячих вказівників» та інших помилок;
  • паралелізм не має захисту від гонок даних — кілька потоків можуть одночасно записувати в одну й ту саму пам’ять, що призведе до помилок і undefined behavior.

Основна проблема C/C++ — відсутність моделей, які визначають межі свободи дій розробника. Безумовно, це плюс для «творчості» та нестандартного розв’язання задач, але така особливість не дає гарантій безпеки через undefined behavior, яке може виникнути після некоректних дій програміста.

Цю проблему вже усвідомлюють на найвищих рівнях — наприклад, Білий дім рекомендував розробникам у США відмовитися від C/C++ під час створення критично важливих продуктів. Це означає, що девелоперам уже зараз варто замислитися про безпечну альтернативу застарілим мовам — і вона має бути такою ж швидкою та продуктивною.

Rust — перспективна заміна C/C++

Rust має високу продуктивність, подібну до C++, але з сучасними можливостями та потужною системою керування залежностями cargo, що робить його ідеальним для системного програмування, вебсервісів та інших низькорівневих задач. І головне — Rust демонструє високі показники безпеки. Великі компанії, такі як Microsoft і Amazon, уже активно впроваджують Rust у свої проєкти.

В основі Rust лежать принципи володіння (ownership), запозичення (borrowing) та часу життя (lifetimes):

  • Ownership означає, що значення в Rust має лише одного власника, і якщо він виходить за межі області видимості — значення видаляється.
  • Ключова ідея borrowing — створення посилань на дані для їх використання без передавання ownership. Незмінюване запозичення дозволяє мати багато посилань на дані, але забороняє їх зміну, а змінне — дозволяє коригувати дані, але лише через одне посилання.
  • Принцип lifetimes — це гарантія того, що посилання живуть не довше, ніж дані, на які вони вказують. Компілятор Rust самостійно перевіряє lifetimes і усуває некоректні посилання.

Ці принципи дозволяють Rust керувати пам’яттю без збирача сміття, запобігаючи поширеним помилкам (витоки пам’яті, out of memory тощо) та забезпечуючи високу швидкість. У Rust уся робота з пам’яттю перевіряється на етапі компіляції, тож ризик помилок мінімальний. І на відміну від мов із GC, Rust не потребує пауз на збирання сміття та зберігає передбачуваність виконання.

Основні переваги Rust, які підкреслюють його перспективність:

  • Продуктивність на рівні C++. Компілятор Rust (rustc) використовує LLVM для генерації машинного коду. Завдяки цьому мова сумісна з різними архітектурами, а застосунки на Rust можуть працювати швидше й споживати менше ресурсів.
  • Безпечна робота з паралельними обчисленнями. Принцип ownership не допускає гонок даних і дозволяє безпечно працювати з паралельними потоками.
  • Потужні інструменти розробки. Rust має офіційний пакетний менеджер cargo, вбудовані засоби тестування, аналізатор коду rust-analyzer для IDE, лінтер cargo clippy та безліч бібліотек для різних задач.
  • Сумісність із C і C++. Rust може викликати функції, написані на C і C++, а також надавати власні функції для виклику з програм на C і C++. Це плюс для компаній, які хочуть перейти на більш безпечну мову, але основні системи яких написані на C/C++.

Крім того, Rust стабільно входить до топу мов за задоволеністю розробників, зростанням кількості вакансій і числом інфраструктурних проєктів. Відтак наявність сильного ком’юніті робить Rust надійним вибором для довгострокових інвестицій бізнесу.

Для яких систем підходить Rust

Rust ідеально вписується в архітектуру складних, високонавантажених і критично важливих систем — там, де помилка в керуванні пам’яттю може призвести до серйозних наслідків.

Сьогодні Rust активно застосовується в різних класах систем:

  • Blockchain frameworks, наприклад, Polkadot та його фреймворк Substrate, Solana і Near Protocol. Також Rust використовується в розробці деяких компонентів для масштабування та підвищення ефективності мережі Ethereum 2.0.
  • High-performance proxies, такі як Proxia та аналогічні рішення, що працюють під екстремальними мережевими навантаженнями.
  • Databases і системи зберігання даних, включно з новими поколіннями високопродуктивних сховищ і графових баз, розроблених із прицілом на AI та розподілені обчислення.
  • Прикладні десктопні програми, найвідоміший приклад — Mozilla Firefox, який частково переписує свої ключові підсистеми на Rust для підвищення безпеки.
  • Компоненти операційних систем — Rust уже використовується у Windows і Linux (у ядрі Linux додано офіційну підтримку Rust-модулів).
  • ML та Big Data-системи, яким потрібен передбачуваний час виконання, zero-copy обробка даних і необмежене масштабування.

Rust однаково впевнено працює з будь-якими рівнями абстракції — високими (бізнес-логіка, мережеві сервіси, інтерфейси) і низькими (низькорівнева робота з пам’яттю, системні виклики, embedded-розробка). Ця гнучкість дозволяє будувати на Rust цілі технологічні стеки: від ядра та інфраструктури до просунутих AI-систем.

[Picture 2]

Як побудувати Rust-компетенцію всередині компанії: покроковий план

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

Рекомендую дотримуватися такого плану:

  1. Почніть з одного Rust-модуля.
    Для навчання команди оберіть невеликий компонент, який можна винести в окрему бібліотеку або сервіс. Це дозволить команді безпечно опанувати Rust та інтеграцію з наявним стеком.
  2. Оберіть performance-critical і security-critical частини.
    Rust приносить найбільшу цінність там, де важливі швидкість і гарантії безпеки: робота з Big Data, мережеві модулі, парсери, високонавантажені ділянки логіки. Їх варто брати в роботу насамперед.
  3. Інтегруйте Rust у DevOps-контур.
    Налаштуйте тестування, збірку, статичний аналіз і автоматичні перевірки. Rust добре вписується в сучасні DevOps-процеси, але потребує певних налаштувань для роботи з наявною інфраструктурою.
  4. Створіть внутрішній стандарт розробки.
    Щоб команда писала уніфікований код, упровадьте стандарти форматування (наприклад, за допомогою rustfmt), тестування та роботи з помилками.
  5. Упровадьте навчання.
    Rust має круту криву навчання, але вона згладжується, якщо в компанії забезпечити навчання, менторинг і код-рев’ю.
  6. Залучайте розробників до Rust-спільноти.
    Участь у конференціях, перегляд вебінарів і створення pet-проєктів на Rust допомагає швидше сформувати культуру розробки та зберегти інтерес команди.
  7. Поступово збільшуйте частку Rust-коду в архітектурі.
    Коли перші модулі доведуть свою ефективність, можна переносити інші критичні ділянки: системи зберігання, мережеві шари, алгоритмічні компоненти.

Майбутнє Rust і Rust-інженерів

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

Також із високою ймовірністю Rust впроваджуватиметься в системи, розроблені на C/C++. Оскільки він повністю сумісний із цими мовами, компаніям не складе труднощів упровадити більш безпечний фреймворк для розробки.

Що стосується затребуваності Rust-інженерів — поки що ця мова не така популярна, як Java, Python і Go, тому вакансій тут менше. Але Rust має доволі високий поріг входу — і, опанувавши його, інженер стає затребуваним фахівцем. А оскільки Rust повільно, але впевнено набирає популярності, для розробників, які його вивчають, відкриваються широкі перспективи.

Facebook Comments Box
Читати далі
Коментувати

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Бізнес

Qualcomm очікує падіння ринку смартфонів на 30% у наступному кварталі

Опубліковано

Qualcomm прогнозує зниження обсягу поставок смартфонів на 30% у другому кварталі поточного року. Про це сказано у фінансовому звіті компанії за перші три місяці року. 

Прогноз заснований на результатах першого кварталу: за цей період мобільний ринок впав на 21%. Через це Qualcomm показала погіршення результатів у чистому прибутку (-29% у порівнянні з минулим роком), хоча і досягла поставленої мети за загальними доходами. 

На думку Qualcomm, три фактори можуть вплинути на продажі смартфонів у наступні місяці: стан глобального ланцюжка поставок, попит на нові смартфони і вплив політики держав щодо запобігання поширенню COVID-19 на довіру бізнесу і покупців.

Facebook Comments Box
Читати далі

Бізнес

Apple сподівається знову відкрити роздрібні магазини у травні

Опубліковано

Віце-президент Apple із роздрібної торгівлі та персоналу, Дейдра О’Брайан, розповіла своїм підлеглим, що вона очікує відкриття «багатьох» роздрібних магазинів у травні. На поточний момент всі торгові точки Apple за межами Китаю закриті через COVID-19. 

О’Брайан не уточнила, про які регіони йде мова, але заявила, що компанія «продовжує відстежувати ситуацію в кожній локації». Про це повідомляють джерела Bloomberg серед співробітників магазинів Apple, прес-служба компанії не прокоментувала інформацію. 

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

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

Facebook Comments Box
Читати далі

Бізнес

Масове виробництво iPhone 12 затримується

Опубліковано

Компанія Apple затримує початок масового виробництва iPhone 12, як мінімум на місяць, через пандемію COVID-19, повідомляє The Wall Street Journal.

За даними WSJ, Apple також скоротила кількість iPhone, які вона планує випустити в другій половині цього року, на 20%.

З чуток, Apple планує представити нові iPhone у вересні 2020 року, але в продаж вони надійдуть у жовтні або листопаді.

Очікується, що в цьому році Apple випустить чотири моделі iPhone з підтримкою 5G, включаючи одну 5,4-дюймову, дві 6,1-дюймові та одну 6,7-дюймову версію.

Facebook Comments Box
Читати далі
Advertisement
У Приват24 з’явилася функція нова дуже корисна функція для молодих українцівм
MOBILZONE1 годину тому

У Приват24 з’явилася функція нова дуже корисна функція для молодих українців

Став відомий найкращий мобільний оператор за швидкістю інтернету: хто лідер — «Київстар», Vodafone чи lifecell
MOBILZONE2 години тому

Став відомий найкращий мобільний оператор за швидкістю інтернету: хто лідер — «Київстар», Vodafone чи lifecell

Як обрати Marshall-навушники з Foxtrot: поради меломана
MOBILZONE13 години тому

Як обрати Marshall-навушники з Foxtrot: поради меломана

«Київстар» ліг: в 9 областях України абоненти сидять без зв'язку
MOBILZONE16 години тому

«Київстар» ліг: в 9 областях України абоненти сидять без зв’язку

Став відомий найкращи мобільний оператор за швидкістю мобільного інтернету в Україні: хто кращий "Київстар", Vodafone чи lifecell
MOBILZONE19 години тому

Став відомий найкращи мобільний оператор за швидкістю мобільного інтернету в Україні: хто кращий “Київстар”, Vodafone чи lifecell

У Дніпрі ТЦКшник відправив до нокдауну бабусю
MOBILZONE19 години тому

У Дніпрі ТЦКшник відправив до нокдауну бабусю

Відмова від присяги в ЗСУ: чим ризикує кожен мобілізований
MOBILZONE21 годину тому

Відмова від присяги в ЗСУ: чим ризикує кожен мобілізований

ChatGPT вводить вікові обмеження: навіщо користувачів змушуватимуть підтверджувати вік
MOBILZONE22 години тому

ChatGPT вводить вікові обмеження: навіщо користувачів змушуватимуть підтверджувати вік

Гривня продовжує втрачати позиції: євро встановлює нові рекорди, долар тримається стабільно
MOBILZONE23 години тому

Гривня продовжує втрачати позиції: євро встановлює нові рекорди, долар тримається стабільно

ПриватБанк оголосив грошовий розіграш: клієнти можуть вигравати до 100 тисяч гривень щомісяця
MOBILZONE1 день тому

ПриватБанк оголосив грошовий розіграш: клієнти можуть вигравати до 100 тисяч гривень щомісяця

Так безпечніше: користувачам Viber радять вимкнути дві опції
MOBILZONE4 дні тому

Так безпечніше: користувачам Viber радять вимкнути дві опції

«Київстар» під’єднує українців до супутникового зв’язку Starlink: як підключитися
MOBILZONE4 дні тому

«Київстар» під’єднує українців до супутникового зв’язку Starlink: як підключитися

«Київстар» ліг: в 9 областях України абоненти сидять без зв'язку
MOBILZONE16 години тому

«Київстар» ліг: в 9 областях України абоненти сидять без зв’язку

Став відомий найкращий мобільний оператор за швидкістю інтернету: хто лідер — «Київстар», Vodafone чи lifecell
MOBILZONE2 години тому

Став відомий найкращий мобільний оператор за швидкістю інтернету: хто лідер — «Київстар», Vodafone чи lifecell

Завтра Київстар оновлює тарифи: що зміниться для українців
MOBILZONE2 дні тому

Завтра Київстар оновлює тарифи: що зміниться для українців

Абонентів Vodafone попередили про перебої зі зв’язком: кому потрібно замінити SIM-картку
MOBILZONE6 днів тому

Абонентів Vodafone попередили про перебої зі зв’язком: кому потрібно замінити SIM-картку

Відео інтиму з Оленою Тополею потрапили в мережу
MOBILZONE3 дні тому

Відео інтиму з Оленою Тополею потрапили в мережу

Чи можуть зарядні станції EcoFlow вибухнути і як правильно ними користуватися: пояснює експерт
MOBILZONE3 дні тому

Чи можуть зарядні станції EcoFlow вибухнути і як правильно ними користуватися: пояснює експерт

Син Рамзана Кадирова і боєць UFC Хамзат Чимаєв потрапив у ДТП в Грозному та перебуває у важкому стані
MOBILZONE6 днів тому

Син Рамзана Кадирова і боєць UFC Хамзат Чимаєв потрапив у смертельну ДТП в Грозному

Топ-3 легкі та бюджетні портативні зарядні станції для ноутбуків і смартфонів
MOBILZONE2 дні тому

Топ-3 легкі та бюджетні портативні зарядні станції для ноутбуків і смартфонів

В тренді