Гараж
Легше, швидше, масштабніше. Чому топові компанії використовують Node.js
Netflix, PayPal, Uber, LinkedIn — лише маленька частина компаній, що обрали середовище Node.js для своїх продуктів. Розповідаємо, що таке Node.js та які переваги компаніям дає ця платформа.
Кілька слів про Node.js

Node.js — це середовище виконання JavaScript з відкритим вихідним кодом, яке виконує код поза браузером. Платформа була створена в 2009 році Райаном Далем для швидких мережевих застосунків, які легко масштабувати. Раніше Apache HTTP Server обробляв те, що Node.js робить зараз, проте з меншою ефективністю. Зокрема, Apache не зміг впоратися з одночасними запитами.

Крім того, завдяки Node.js розробники JavaScript використовують серверні сценарії для створення динамічних вебсторінок. Ці сценарії виконують запити на стороні сервера або вебсервера, а не на стороні клієнта чи у браузері. Це пришвидшує завантаження та зменшує навантаження на центральний процесор.

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

Легкість. Node.js легко освоїти. Доступність грає велику роль в тому, чому розробники в першу чергу вважають за краще вивчати Node.js. Звичайно ж перед початком роботи необхідно освоїти JavaScript та об'єктно-орієнтоване програмування.

Простота. У Node.js використовують парадигму «JavaScript everywhere». Тобто не потрібно перемикати мови програмування між серверною та зовнішньою розробкою. Що призводить до меншої кількості файлів та коду.

Швидкість. Програмування в середовищі Node.js відбувається швидше й простіше за багатьох конкурентів, тому скорочується час на розробку й загалом виведення продукту на ринок. Це серйозний аргумент для компаній та корисно для запуску MVP.

Масштабування. Це взагалі було однією з основних причин для створення Node.js — запропонувати більш масштабовану альтернативу Apache. Node.js може обробляти кілька одночасних підключень. Компанії, які надають перевагу цьому середовищу потребують масштабованого ПО для планування росту свого бізнесу.

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

Згадані вище переваги призвели до того, що топові компанії використовують Node.js. Навіть попри те, що середовище відносно нове.

Нижче розповідаємо про деякі з топових компаній, що обрали Node.js та про результати, які вони отримали.
Netflix

Один із найбільших в світі постачальників потокового мультимедіа та відео. Наразі стримінговий сервіс має понад 207 млн підписників, досвід кожного з яких намагається зробити максимально персоналізованим. Для цієї мети Netflix проводить величезну кількість A/B тестувань. Причому не тільки для контенту, а й для конкретного формату «обкладинок» фільмів.

Через це при розгляді масиву пакетів кожен цикл відправки часто призводив до збоїв. Тому компанії було важливо використовувати легку та швидку платформу й вибір впав на Node.js, UI сервісу Netflix побудуваний саме з використанням цього середовища.

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

«Node був для нас дійсно привабливим варіантом, тому що він добре відповідав навичкам інженерів», — сказав Кім Тротт, директор по розробці користувальницького інтерфейсу в Netflix.

Загалом, серед результатів, які отримав стримінговий сервіс, варто виділити: скорочення часу запуску на 70%, оптимізація процесу розробки, зменшення часу збирання, підвищення кастомізації під кожного конкретного користувача.
PayPal

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

У PayPal прийняли рішення перейти з Java на JavaScript та Node.js ще у 2013 році. Знову ж так основним аргументом стала можливість створювати і серверну, і клієнтську частину, використовуючи одну мову програмування.

До переходу на Node.js у PayPal були сегментовані команди. Окремо ті, хто займався frontend, використовуючи HTML, CSS і JavaScript. І ті, хто займався backend, кодуючи на Java.
«Як і багато інших, ми впровадили Node.js як платформу для прототипування. Як і в багатьох інших, вона виявилася надзвичайно ефективною, і ми вирішили запустити її у виробництво», — говорив Джефф Харрел, тодішній старший директор по платіжним продуктам і проєктуванню PayPal.

Серед важливих результатів варто виділити: подвоєння можливої кількості запитів в секунду, зниження середнього часу відгуку для тієї ж сторінки на 35%, зменшення кількості рядків коду на 33%, зменшення кількості файлів на 40%.
Uber

Uber — міжнародна транспортна компанія зі штаб-квартирою в Сан-Франциско та одна із найпопулярніших в світі платформ для заміни звичних таксі. На кінець 2020 року застосунок компанії щомісяця використовували понад 93 млн людей.

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

«Одна з речей, які роблять Node.js унікально релевантною для роботи в виробничому середовищі, — це те, що ви можете перевіряти і змінювати програму без її перезапуску», — Метт Ренні, старший штатний інженер Uber.

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

LinkedIn перейшла з Ruby on Rails на Node.js вкінці 2011 року. Розробники Linkedin хотіли оптимізувати свій мобільний додаток. Завдяки переходу їм вдалося різко скоротити ресурси сервера і суттєво пришвидшити роботу мобільного застосунку.

Trello може повідомляти користувачеві, хто і над яким проєктом працює, а також на якому етапі він перебуває. На стороні сервера Trello використовується Node.js. Оскільки для користувачів важливо мати негайні оновлення, а Node.js може одночасно підтримувати безліч відкритих підключень.

Ebay шукали рішення здатне в реальному часі підтримувати величезну кількість активних з'єднань на сервері. Їм також було потрібне рішення, яке допомогло б їм організувати величезну кількість додаткових сервісів для Ebay. Node.js виявився найбільш слушним вибором, який міг ефективно задовольнити обидві вимоги.

Mozilla Firefox - популярний браузер, багато з вебдодатків якого використовують Node.js. Зокрема через обсяги пам'яті й простоти використання, що пов'язана з можливістю зберігати все в одному репозиторії JavaScript.

NASA використовує цю технологію в своїх застосунках, спрямованих на збереження життя космонавтів під час небезпечних космічних експедицій. Перед NASA стояло завдання перенести всі дані, пов'язані з космічними скафандрами для виходу у відкритий космос, в єдину хмарну базу даних, щоб значно скоротити терміни доступу. Адаптація Node.js була ідеальним вибором, оскільки вона ефективно зменшила кількість процедурних кроків з 28 до 7.
Багато компаній вже використовують Node.js, а отже — потребують професіоналів, що вміють працювати з платформою.

Навчитися створювати сервери, які нескладно буде реалізувати та з якими буде приємно інтегруватися будь-якому розробнику, можна на курсі — Node.js.
Автор: Денис Пристай
Головне фото: Наталія Азаркіна
Гараж
Сподобалась стаття?