Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния. НулСво ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния. НулСво ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

Π‘Π²Π΅Ρ‚ΡŠΡ‚ Π½Π΅ стои Π½Π° Π΅Π΄Π½ΠΎ място. ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡŠΡ‚ създава Π½ΠΎΠ²ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½ΠΈ прСдизвикатСлства. Π’ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡ‚Π΅ изисквания, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми трябва Π΄Π° Π΅Π²ΠΎΠ»ΡŽΠΈΡ€Π°. ДнСс Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠΉΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, конкурСнтността, паралСлността, асинхронността ΠΈ ΠΊΠ°ΠΊ с всичко Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΆΠΈΠ²Π΅Π΅ ΠΌΠΈΡ€Π½ΠΎ Π² Erlang.

Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ зависимост ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° систСма ΠΈ изискванията към нСя, Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° информация Π² систСмата. Π’ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи, Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° взаимодСйствиСто Π½Π° услуги, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС схСма с Π±Ρ€ΠΎΠΊΠ΅Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° основата Π½Π° RabbitMQ ΠΈΠ»ΠΈ Kafka. Но понякога ΠΏΠΎΡ‚ΠΎΠΊΡŠΡ‚ ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, SLA ΠΈ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π°Π΄ систСмата са Ρ‚Π°ΠΊΠΈΠ²Π°, Ρ‡Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΡ‚ΠΎ messaging Π½Π΅ Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° услоТним систСмата, ΠΏΠΎΠ΅ΠΌΠ°ΠΉΠΊΠΈ отговорността Π·Π° транспортния слой ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° кластСра, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ZeroMQ ΠΈΠ»ΠΈ nanomsg. Но Π°ΠΊΠΎ Π½Π° систСмата ѝ стига пропускната способност ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° стандартния Erlang кластСр, Ρ‚ΠΎΠ³Π°Π²Π° Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π·Π° Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ изисква ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ ΠΈ икономичСско обоснованиС.

Π’Π΅ΠΌΠ°Ρ‚Π° Π·Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния Π΅ доста ΠΎΠ±ΡˆΠΈΡ€Π½Π°. Π—Π° Π΄Π° сС вмСстим Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° статия, ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½Π° Π΄Π½Π΅ΡˆΠ½ΠΎΡ‚ΠΎ обсъТданС Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ само Ρ…ΠΎΠΌΠΎΠ³Π΅Π½Π½ΠΈ срСди, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° основата Π½Π° Erlang/Elixir. ЕкосистСмата Erlang/OTP позволява Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ усилия. Но Π² никакъв случай няма Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π±Π΅Π· слой Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ.

Π’Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½Π° основа

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π° с опрСдСлянС Π½Π° Ρ†Π΅Π»ΠΈ ΠΈ ограничСния. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π΅ Π΅ Π² областта Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ само Π·Π°Ρ€Π°Π΄ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ. НСобходимо Π½ΠΈ Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ бСзопасСн ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ инструмСнт, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създавамС, Π° Π½Π°ΠΉ-Π²Π΅Ρ‡Π΅ - Π΄Π° Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ прилоТСния Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½ΠΈΠ²Π°: Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ СдносСрвСрни, обслуТващи ΠΌΠ°Π»ΠΊΠ° аудитория, ΠΊΠΎΠΈΡ‚ΠΎ впослСдствиС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС развият Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ Π΄ΠΎ 50-60 възСла, Π΄ΠΎ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ основната Ρ†Π΅Π» Π΅ максимизация Π½Π° ΠΏΠ΅Ρ‡Π°Π»Π±Π°Ρ‚Π° Ρ‡Ρ€Π΅Π· намаляванС Π½Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΡ€Π°ΠΉΠ½Π° систСма.

НСка ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ 4 основни изисквания към ΠΊΡ€Π°ΠΉΠ½Π° систСма:

  • Π‘ΡΡŠΠ±ΠΈΡ‚ΠΈΠΉΠ½Π° ориСнтираност.
    БистСмата Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° Π΄Π° пропуска ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ дСйствия;
  • ΠœΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚.
    ΠžΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ, Ρ‚Π°ΠΊΠ° ΠΈ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ. Цялата систСма трябва Π΄Π° ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π±Π΅Π·ΠΊΡ€Π°Π΅Π½ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π΅Π½ растСТ;
  • ΠžΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ Π½Π° отклонСния.
    Всички Π½ΠΈΠ²Π° ΠΈ услуги трябва Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Ρ‚ ΠΏΡ€ΠΈ нСизправности;
  • Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€.
    Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π΅ Ρ†Π΅Π½Π½ΠΎ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π΅ трябва Π΄Π° Ρ‡Π°ΠΊΠ°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅ дълго.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π»ΠΈ старата ΠΏΡ€ΠΈΠΊΠ°Π·ΠΊΠ° Π·Π° β€žΠΌΠ°Π»ΠΊΠΈΡΡ‚ Π»ΠΎΠΊΠΎΠΌΠΎΡ‚ΠΈΠ², ΠΊΠΎΠΉΡ‚ΠΎ моТа”? Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΎΡ‚ Π΅Ρ‚Π°ΠΏ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ към прогрСсивност, Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ основно ядро трябва Π΄Π° отговаря Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ изисквания. ΠœΠžΠ“Π.

Към messaging ΠΊΠ°Ρ‚ΠΎ инфраструктурСн инструмСнт ΠΈ основа Π·Π° всички услуги сС добавя ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ аспСкт: удобството Π½Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π·Π° програмиститС.

ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎΡΡ‚ към ΡΡŠΠ±ΠΈΡ‚ΠΈΡ.

Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° нараснС ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ Π΄ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° трябва Π΄Π° осигури слаба ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚. На Ρ‚ΠΎΠ²Π° изискванС отговаря асинхронният ΠΌΠΎΠ΄Π΅Π». Π’ Π½Π΅Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‡ΡŠΡ‚ ΠΈ получатСлят сС Π³Ρ€ΠΈΠΆΠ°Ρ‚ Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° натоварСност Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π½Π΅ сС Ρ‚Ρ€Π΅Π²ΠΎΠΆΠ°Ρ‚ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° Π² систСмата.

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° ΠΈ СфСктивността Π½Π° систСмата са тясно ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ рСсурси. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ мощноститС ΠΈ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ са ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π½ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ срСдства Ρ‰Π΅ Ρ…Π°Ρ€Ρ‡ΠΈΠΌ Π·Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅.

Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° машина Erlang създава високо ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Π° срСда. Π‘Π°Π»Π°Π½ΡΡŠΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ конкурСнтността ΠΈ паралСлността ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½ Ρ‡Ρ€Π΅Π· ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° Π±Ρ€ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° Erlang VM, ΠΈ числото Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ.
Erlang процСситС нямат ΠΎΠ±Ρ‰ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈ работят Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ. Π’ΠΎΠ²Π° осигурява сравнитСлно ниска латСнтност ΠΈ ΠΏΠΎ-висока пропускна способност Π² сравнСниС с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ прилоТСния, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π½Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰Π° синхронизация. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π° Erlang сС Π³Ρ€ΠΈΠΆΠΈ Π·Π° справСдливото Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° CPU ΠΈ IO, Π° ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ позволява Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° отговаря Π΄ΠΎΡ€ΠΈ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΈΠΊΠΎΠ²ΠΈ натоварвания ΠΈΠ»ΠΈ нСизправности.

На Π½ΠΈΠ²ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°. Π’Π°ΠΆΠ½ΠΎ Π΅ всички машини Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ ΠΈ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π΄Π° Π½Π΅ Π΅ ΠΏΡ€Π΅Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π°. Π”Π° си прСдставим ситуация: потрСбитСлският Ρ‚Ρ€Π°Ρ„ΠΈΠΊ призСмява Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ балансировачи (haproxy, nginx ΠΈ Π΄Ρ€.), ΠΊΠΎΠΈΡ‚ΠΎ максимално Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ разпрСдСлят заявкитС Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ. Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° инфраструктурата Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, услугата, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰Π° нСобходимия интСрфСйс, Π΅ само послСдната миля ΠΈ трябва Π΄Π° поиска Ρ€Π΅Π΄ΠΈΡ†Π° Π΄Ρ€ΡƒΠ³ΠΈ услуги, Π·Π° Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π°Ρ‚Π° заявка. Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ заявки ΡΡŠΡ‰ΠΎ изискват ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ балансиранС.
Π—Π° Π΄Π° управлявамС Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, messaging трябва Π΄Π° прСдоставя Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ интСрфСйс Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Ρ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ микросСрвисни шаблони (aggregator, proxy, chain, branch ΠΈ Π΄Ρ€.), Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ стандартни Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ рядко срСщани.

ΠžΡ‚ бизнСс Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, мащабируСмостта Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ инструмСнтитС Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° рисковСтС. ΠžΡΠ½ΠΎΠ²Π½ΠΎΡ‚ΠΎ Π΅ Π΄Π° сС удовлСтворят исканията Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ:

  • ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° мощността Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΠ°. Π’ΠΎ няма Π΄Π° останС Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅ΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° софтуСра. Erlang сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π½ΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° всичкитС ядра Π½Π° CPU ΠΈ Π½Π°Π»ΠΈΡ‡Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚;
  • Π’ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ срСди ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° управлявамС количСството ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅ Π² зависимост ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΈ Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ SLA.

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π΅ аксиоми: 'ΠžΡ‚ΠΊΠ°Π·ΠΈΡ‚Π΅ са Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΈ' ΠΈ 'ΠžΡ‚ΠΊΠ°Π·ΠΈΡ‚Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚'. Π—Π° бизнСса ΠΎΡ‚ΠΊΠ°Π·ΡŠΡ‚ Π½Π° софтуСра Π΅ Π·Π°Π³ΡƒΠ±Π° Π½Π° ΠΏΠ°Ρ€ΠΈ, Π° ΠΎΡ‰Π΅ ΠΏΠΎ-лошо – Π½Π° рСпутация. Балансирайки ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΈΡ‚Π΅ Π·Π°Π³ΡƒΠ±ΠΈ ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° отказоустойчив софтуСр, чСсто ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ компромис.

Π’ краткосрочСн ΠΏΠ»Π°Π½ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°, Π² която Π΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° отказоустойчивостта, спСстява срСдства Π·Π° Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈΡ€Π°Π½Π΅. Π’Π΅ са скъпи ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ.
Π’ Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π΅Π½ ΠΏΠ»Π°Π½, отказоустойчивата Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²ΡŠΠ·Π²Ρ€ΡŠΡ‰Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° всички Π΅Ρ‚Π°ΠΏΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
Messaging Π² ΠΊΠΎΠ΄Π° Π±Π°Π·Π°Ρ‚Π° всС ΠΎΡ‰Π΅ Π΅ Π² Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π΅Ρ‚Π°ΠΉΠ»Π½ΠΎ Π΄Π° сС ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈ взаимодСйствиСто ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π² систСмата. Π’ΠΎΠ²Π° улСснява Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Π½Π΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° сбой, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всички ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ сбой, Π° ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° систСма Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° сС Π²ΡŠΡ€Π½Π΅ Π² Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ слСд сбой ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½.

ΠžΡ‚Π·ΠΈΠ²Ρ‡ΠΈΠ²ΠΎΡΡ‚

НСзависимо ΠΎΡ‚ сбой, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° отговаря Π½Π° запитвания ΠΈ Π΄Π° удовлСтворява SLA. РСалността Π΅, Ρ‡Π΅ Ρ…ΠΎΡ€Π°Ρ‚Π° Π½Π΅ искат Π΄Π° Ρ‡Π°ΠΊΠ°Ρ‚, Π·Π°Ρ‚ΠΎΠ²Π° Π±ΠΈΠ·Π½Π΅ΡΡŠΡ‚ трябва Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°. ΠžΡ‚ всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ прилоТСния сС ΠΎΡ‡Π°ΠΊΠ²Π° висока отзивчивост.
ΠžΡ‚Π·ΠΈΠ²Ρ‡ΠΈΠ²ΠΈΡ‚Π΅ прилоТСния работят Π² Ρ€Π΅ΠΆΠΈΠΌ, близък Π΄ΠΎ Ρ€Π΅Π°Π»Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Erlang VM Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΌΠ΅ΠΊΠΎ Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Π—Π° някои области, ΠΊΠ°Ρ‚ΠΎ борсовата Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ, ΠΌΠ΅Π΄ΠΈΡ†ΠΈΠ½Π°Ρ‚Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠΈΡˆΠ»Π΅Π½ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅, Π΅ Π²Π°ΠΆΠ΅Π½ Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° Ρ‚Π²ΡŠΡ€Π΄ΠΎ Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.
ΠžΡ‚Π·ΠΈΠ²Ρ‡ΠΈΠ²ΠΈΡ‚Π΅ систСми подобряват UX ΠΈ са ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° бизнСса.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚

ΠŸΠ»Π°Π½ΠΈΡ€Π°ΠΉΠΊΠΈ Ρ‚Π°Π·ΠΈ статия, исках Π΄Π° сподСля ΠΎΠΏΠΈΡ‚ Π² ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° слоТни систСми Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° основа. Но Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½Π°Ρ‚Π° ΠΈ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° част сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ доста ΠΎΠ±ΡˆΠΈΡ€Π½Π°.
Π’ΡŠΠ² Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част Π½Π° статията Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π½ΡŽΠ°Π½ΡΠΈΡ‚Π΅ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° ΠΎΠ±ΠΌΠ΅Π½, шаблони Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈ тяхното ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π’ Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° част Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ±Ρ‰ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ Π·Π° организацията Π½Π° услугитС, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° ΠΈ балансиранСто. Π©Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° практичСската страна Π½Π° мащабируСмостта ΠΈ устойчивостта Π½Π° систСмитС.

ΠšΡ€Π°ΠΉ Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° част.

Π‘Π½ΠΈΠΌΠΊΠ° @lucabravo.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster