Erlang/OTP software development and consulting services
  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    Це залежить від того, хто переслідує які цілі. Багато компаній у тому числі виробники машин використовують продукти написані на Erlang саме для мобільних інтернет мереж та IoT — компанія CISCO не єдина компанія у своєму роді хто це вже робить. У разі питання — які саме плюси? Це залежить від того, які проблеми необхідно вирішити. Давайте наприклад візьмемо реалізацію ААА(Authentication, Authorization, Accounting) — для її реалізації необхідно використовувати або RADIUS або Diameter або оба протоколи. Також не забуватимемо про ASN.1 який також добре та активно використовують у подібних проектах(в даному контексті я не говорю про 5G 🙃). І так, якщо ми подивимося на кожен з пунктів окремо, ми можемо звернути увагу на те, що Diameter та ASN.1 вже доступний з-під коробки Erlang/OTP і звичайно підтримується Erlang Core Team — тобто для ААА нам уже не потрібно винаходити велосипед і переживати про підтримку, тому що це вже є і добре протестовано, а також потенційному клієнту не потрібно буде витрачати додатковий бюджет на реалізацію того, що вже є і працює роками. Давайте подивимося на RADIUS протокол — цей протокол не реалізовано у Erlang/OTP — але це не завадило моїй команді протягом тижня реалізувати бібліотеку яка повністю його підтримає. Іншими словами я б сказав що основною перевагою для інтернет мереж є те, що багато речей вже підтримуються з коробки, а якщо немає підтримки, дуже швидко можна реалізувати підтримку того чи іншого протоколу або іншого функціоналу у стислі строки(про що і розповідається у поточній статті). Звичайно для інтернет мереж ми не всюди використовуємо Erlang/OTP. Є ряд речей, які написані на С або на С++ або на Golang. Якщо стоїть завдання реалізувати sidecar для k8s — звичайно потрібно вибирати Golang. Іншими словами я б сказав, що все залежить від поставлених завдань і цілей, сроків та бюджету і не варто шукати завдання для технології, я б сказав, що потрібно шукати технологію в залежності від поставленого завдання.

    Підтримав: Denys Poltorak
  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

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

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    Так Akka — я мав наувазі что якщо не думати про перенос BEAM та OTP аналогу не буде. У своєму інтерв’ю Франческо Чизаріні gotopia.tech/...​-solving-scaling-30-years розповідає про те як він відчув почуття дежавю коли познайомився з © original Java white paper:

    It’s almost like, you know when I was reading your original Java white paper, I had a sense of deja vu, which was a virtual machine and a concurrency model built-in memory management and a garbage collector. So this was in JVM, and I was working on the Erlang virtual machine at the time. But I think there’s still a big difference between the Java Virtual Machine and the BEAM today because to bring Akka, you know, to the JVM, you wanna had to emulate a lot of the semantics and a lot of the functionality which exists in the BEAM, which a BEAM is highly optimized for, which doesn’t exist in the JVM.

    Але так — свого роду саме Akka може бути конкурентом.

    Підтримали: Roman Pavlyuk, Denys Poltorak
  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    Дуже хороша доповідь від компанії CISCO www.youtube.com/watch?v=qmtpszspEaI про те як за допомогою Erlang/OTP вони контролюють 90% інтернет трафіку і не тільки — рекомендую подивитися.

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    Значить, до нормального стану років 5

    Я не думаю, що це можна оцінити так при цьому ніколи не використавши його.

    Як починають казати про «жодних проблем взяти N серверів», все зрозуміло. Не в гарному сенсі.

    Будь-який сервіс рано чи пізно потребує масштабованості. Знов-таки незалежно від мови програмування та технології.

    І не треба таке переносити.

    У такому разі не скоро з’явиться технологія, яка зможе змагатися з Erlang/OTP у його ніші.

    Хто з них коли і для чого буде вносити зміни в ядро??

    Це залежить від того, чи поверхово використовується Erlang в проекті або на більш глибокому рівні. Команди WhatsApp, Klarna і багато інших, включаючи мою команду, вносять час від часу зміни пов’язані як з усуненням багів так і з поліпшенням існуючого функціоналу. Невеликий приклад прояви подібної проблеми у проекті як github.com/...​ker-erlang-otp/issues/332 розробники з наявністю цих знань зможуть без особливих проблем та з упевненістю як надати виправлення для розгляду до Erlang Core Team так і зможуть використати свій fork для будь-яких цілей при цьому не чекаючи нової версії з їх виправленням.

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    JIT додався в останній версії. Erlang має специфічний синтаксис але це не означає що саме через це погано на ньому писати, можна погано писати будь-якою мовою. Якщо не достатньо потужності на одному сервері, немає жодних проблем взяти N серверів і об’єднати їх в кластер, але найпростіші сервери з 4-х ядрами і 16 гігабайт пам’яті витримували навантаження в 50к запитів на секунду. Так, однозначно все залежить від архітектури та підходу до вирішення, я бачив проекти, які живуть у продакшені більше п’яти років і після першого навантажувального тестування за допомогою Tsung продакшен лягав спати але це була не проблема Erlang/OTP, а була проблема раробників, які не врахували величезну кількість факторів. Я не кажу, що Erlang/OTP це панацея від усіх бід, але він зайняв свою нішу досить давно і досі рівних йому немає — навіть якщо є схожі технології, реалізувати BEAM і перенести OTP — буде неймовірно трудомісткою роботою. Але в будь-якому випадку це обговорення заходить далеко за рамки цієї статті. Мета цієї статті не переконати спільноту DOU писати на Erlang або на іншій мові, а поділитися знаннями з Erlang розробниками з України, щоб вони не були скуті на випадок, якщо їм потрібно буде внести якісь зміни в ядро Erlang.

    Підтримав: minodvesP Vasya
  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    ¯\_(ツ)_/¯

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

  • Як почати робити свій внесок у Erlang/OTP сьогодні. Інструкція та поради

    Якщо йому буде також цікава стаття як і Вам — все можливо 🙃.

  • API для відправки SMS: що обрати?

    Ревлізовував для месенджерів але на Erlang/OTP, використовував завжди кілька сервісів через те, що не завжди сервіси працюють як очікувалося а саме використовував Plivo, Twilio, Nexmo. Клієнт бібліотека доступна на GitHub github.com/vkatsuba/bellboy.

  • Go Swagger: автогенерація клієнту та документації

    Дякую за статтю. Swagger дуже корисний інструмент на мою думку як для тестування, так і для інтеграції для любого проєкту. Правда я його використав тільки для Erlang/OTP проєктів. Але я вже неодноразово бачив як інтеграція з клієнтом і сервером, а також, тестування відбувається в кілька разів швидше за наявності Swagger у пропроєкті. Правда для версій 2.х є одна проблема — github.com/...​pi/swagger-ui/issues/3072 — коли при запиті у відповідь не відображається header та body. Але в 3.х таких проблем вже немає.

  • Sheldon: Erlang-бібліотека для перевірки орфографії

    Розумію про що Ви, але як я вже писав раніше, я буду намагатися створити статтю для більш детального опису де намагатимуся надати діаграми та результати бенчмарків. Також я прошу звернути Вашу увагу на те що проекти в open source намагаються надаты багато інформації — на приклад статтi, бенчмарки та workshops наприклад про те як один вузол з 2+ мільйонами одночасних користувачів працює без збоїв та проблем, але для того чтоб порівняти ті чи інші проекти потрібно визначитися з областю, напрямком та проблемами. Erlang це не панацея від усіх хвороб та не завжди Erlang це корисний вибiр для продукту. Хоча в той же час якщо ми говоримо про сервіси, я не один раз зустрічав клієнтів, які вирішили переписати з Java на Erlang свої продукти і бачив як два розробники на Erlang переписували продукти які розроблялися роками всього за три місяці при цьому вони добивались вражаючих результатів щодо витримування досить великих навантажень. Якщо у Вас буде час я рекомендую подивитися це відео(www.youtube.com/watch?v=JvBT4XBdoUE) про переваги Erlang, його віртуальну машину, а також про те, коли і чому варто розглянути можливість його використання.

    Підтримали: anonymous, Denys Poltorak
  • Sheldon: Erlang-бібліотека для перевірки орфографії

    Розумієте все залежить від певних вимог та потреб, але якщо корото за рахунок анкорної моделі та відмовостійкої системи яка працює в режимі м’якого реального часу загалом надають перевагу саме Erlang як для веб сервісів с монолітною архитектурую для месенджерів так і для мікросервісів для платіжних систем в банках. Перелік проєктів я надав через те щоб показати які продукти використовують Erlang сьогодні. Так як все в open source, можливо буде цікаво порівняти їх.

    Підтримав: Victor Zhuravlyov
  • Sheldon: Erlang-бібліотека для перевірки орфографії

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

    Підтримав: Victor Zhuravlyov
  • Sheldon: Erlang-бібліотека для перевірки орфографії

    Дякуємо за питання, хоча воно не відноситься до цієї статті :-). Erlang використовують для величезної кількості проєктів різних напрямків наприклад: blockchain(github.com/aeternity), messengers(github.com/WhatsApp, github.com/processone/ejabberd), mobile core networking(github.com/travelping/ergw, github.com/travelping/eradius), banking(github.com/rabbitmq, github.com/otp-bank), gaming(github.com/wgnet), machine learning(www.modelop.com), web scraping(github.com/scrapinghub) и багато інших проєктів де використовують Erlang. Чому саме для Sheldon був вибраний Erlang для перевірки орфографії? — тому що вже є багато подібних проєктів на інших мовах серед яких C, C++, Python etc., але саме на Erlang не має. Також існує багато проєктів на Erlang яким може бути корисний Sheldon. Звісно, є можливість інтигрувати C проєкт в Erlang завдяки erlang.org/...​4/doc/tutorial/cnode.html та www.erlang.org/doc/tutorial/c_port.html але це трохи інший напрямок та ідея.

    Підтримав: Victor Zhuravlyov