Хостинг для будь-яких потреб — VPS від 135 гривень на місяць 👉

Проста мова для складного світу. Як завдяки Erlang ваші месенджери не зависають

У світі програмування небагато мов можуть похизуватися такою стійкістю та адаптивністю, як Erlang. Вона виникла з потреби розв’язувати складні задачі телекомунікацій і сьогодні залишається однією з ключових технологій для систем, де цінним є надійність, паралелізм процесів і масштабованість. dev.ua розповідає про еволюцію Erlang: від зародження до сучасного використання в топ ІТ компаніях.

Залишити коментар
Проста мова для складного світу. Як завдяки Erlang ваші месенджери не зависають

У світі програмування небагато мов можуть похизуватися такою стійкістю та адаптивністю, як Erlang. Вона виникла з потреби розв’язувати складні задачі телекомунікацій і сьогодні залишається однією з ключових технологій для систем, де цінним є надійність, паралелізм процесів і масштабованість. dev.ua розповідає про еволюцію Erlang: від зародження до сучасного використання в топ ІТ компаніях.

Зародження

Історія Erlang почалася в кінці 1980-х у дослідницькій лабораторії всім відомої телекомунікаційної компанії Ericsson. Творці мови програмування Роберт Вірдінг, Джо Армстронг і Майк Вільямс зіштовхнулися з серйозною проблемою: наявні мови програмування були непридатні для розробки надійних телеком-систем. У ті часи все було настільки взаємопов’язане, що навіть найменший збій в одному з комутаторів міг спричинити обвал усієї мережі. Те саме стосувалося оновлення інфраструктури — вимкнення одного елемента призводило до простої всієї системи.

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

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

Попри те, що всередині Ericsson підтримка була не одностайною, Erlang довів свою ефективність у реальних проєктах і отримав шанс на життя в компанії. 1994–1996 роки стали вирішальними для Erlang. Коли велика внутрішня ініціатива щодо створення нової системної архітектури зазнала невдачі, перед компанією постала потреба в надійному рішенні саме тоді Erlang почали активно використовувати у всіх нових проєктах шведського техногіганта. На 1996 рік Erlang стала внутрішнім стандартом Ericsson. 

Усі широкосмугові рішення Ericsson: ADSL, оптоволокно, HFC, доступ до мереж кабельного телебачення, GPRS, комутатор AXE 301, — всі вони створені на мові Erlang. 

Перехід на opens source модель

У 1998 році Erlang стала мовою програмування з відкритими вихідним кодом, це був перший open source проєкт Ericsson. Ініціатором цього рішення була група людей, які працювали над впровадженням Erlang всередині Ericsson. Вони переконали керівництво, що перехід open source буде вигідним рішенням для Ericsson, оскільки це дозволить залучити більше людей до використання Erlang, отримати більше відгуків, покращити інструменти та програми, а також зібрати фідбек. 

З моменту випуску відкритого вихідного коду Erlang, мова програмування поширилася далеко за межі телекомунікацій, утвердившись в інших сферах, таких як фінансові технології, ігри, охорона здоров’я, автомобільна промисловість, IoT та блокчейн.

Найбільш відомим кейсом застосування Erlang стало її впровадження під час розробки популярного месенджера WhatsApp. Хоча засновники WhatsApp Ян Кум і Браян Ектон раніше не мали досвіду роботи з цією мовою, вони звернули увагу на те, що Erlang зарекомендувала себе в ІТ сфері та створювалася спеціально для роботи з комунікаціями в режимі, близькому до реального часу. Вони переконалися, що Erlang не лише добре справляється із завданнями високого рівня паралелізму, а й дає змогу забезпечити стабільну роботу системи протягом тривалого часу завдяки можливості оновлювати код без перерв у роботі. 

«Erlang виявився надійним і універсальним інструментом, який значно допоміг WhatsApp масштабуватися та підтримувати високу якість сервісу», — розповів Браян Ектон в інтерв’ю виданню Wired.  

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

Навіть коли ви граєте в улюблені відеоігри, і вам надходить сповіщення про отримання нового рівня персонажа, чи дейтинг-додаток інформує вас про метч усього вашого життя — тут теж не обійшлося без Erlang. Портативні консолі Nintendo використовують систему обміну повідомленнями на основі Erlang для обробки мільйонів одночасних з'єднань. Завдяки Erlang система обміну повідомленнями League of Legends дає змогу геймерам спілкуватися в чаті одночасно. Один із найпопулярніших у світі додатків для онлайн-знайомств Grindr обробляє до 2000 повідомлень на секунду теж за допомогою Erlang. 

Erlang сьогодні: гнучкість і постійні оновлення

Хоча сам синтаксис Erlang майже не змінився за десятиліття, мова постійно еволюціонує. 

Erlang виконує код через віртуальну машину BEAM, подібно до Node.js або Java, але з унікальними властивостями. Програми компілюються в байткод і виконуються BEAM’ом, який діє наче окрема операційна система всередині іншої операційної системи або напряму на сервері. За останні десятиліття BEAM оптимізували для обробки одночасно мільйонів процесів без втрати продуктивності.

Особливість BEAM у тому, що кожен процес ізольований і має власне управління пам’яттю. Завдяки спеціальним планувальникам виконання запитів відбувається рівномірно та передбачувано, навіть при пікових навантаженнях. На відміну від Java чи Node.js, в Erlang збільшення кількості запитів не призводить до зниження пропускної здатності або «зависань» системи.

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

Надійність і популярність Erlang по суті перетворила її на цілу екосистему, на основі якої розробили інші мови програмування з власними фреймворками. У 2011 році бразильський інженер Жозе Валім створив мову програмування Elixir на базі Erlang. Окрім можливостей Erlang, він також запозичив ідеї з Ruby та Clojure. Elixir використовують такі відомі компанії, як Discord і Pinterest. 

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

Інтерес до Erlang стабільно зростає, як з боку стартапів, так і серед великих компаній. Наприклад, Favbet Tech реалізував декілька хвиль навчальних курсів з Erlang, де майбутніх спеціалістів навчають, як базовим принципам мови, так і реальним комерційним практикам. Програма складалася з восьми теоретичних занять і практичних домашніх завдань, а найкращі студенти отримують можливість пройти співбесіду та приєднатися до команди. Особливо цінним для студентів є практичний фокус курсу: робота із процесами, обробка винятків, тестування й основи OTP.

У Favbet Tech мікросервісна архітектура проєктів базується на командах, де кожен випускник після курсів має шанс увійти в реальний девелоперський процес, отримати наставництво та швидко розвиватися.

Наразі Favbet Tech потребує фахівців з Erlang різного рівня попередній досвід буде плюсом, але не обов’язковою вимогою, тим більше коли компанія надає навчальні курси. 

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

Перспективи Erlang

Як показує практика, 30-річна історія для Erlang — не межа. Мова програмування продовжує розвиватися, а відкритість і доступність приваблює як невеликі стартапи, так і великі компанії. Віртуальна машина BEAM постійно вдосконалюється: зокрема, було впроваджено важливі інновації, такі як JIT-компілятор (Just-In-Time), який дозволив WhatsApp зменшити потребу в серверах на 30%. Нові функції й оптимізації додаються без порушення сумісності, що було закладено в основі мови програмування ще на етапі її створення. 

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

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

Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram

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

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

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