ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Π”ΠΆΠΎΡˆ Эванс рассказываСт ΠΎ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎΠΌ ΠΈ ярком ΠΌΠΈΡ€Π΅ микросСрвисов Netflix, начиная с самых основ β€” Π°Π½Π°Ρ‚ΠΎΠΌΠΈΠΈ микросСрвисов, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с распрСдСлСнными систСмами ΠΈ ΠΈΡ… прСимущСств. ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° этот Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚, ΠΎΠ½ исслСдуСт ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Π΅, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ ΠΊ овладСнию микросСрвисами.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 1
ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 2
ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 3

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ operational drift, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… языков для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвиса ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, β€” это ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΡƒΡŽ срСду. Моя Π³Ρ€ΡƒΠΏΠΏΠ° опСрационистов стандартизировала Β«Π°ΡΡ„Π°Π»ΡŒΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄ΠΎΡ€ΠΎΠ³ΡƒΒ» Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для Netflix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «запСкались» Π² Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ…, основанных Π½Π° Java ΠΈ EC2, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития бизнСса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ стали Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Python, Ruby, Node-JS ΠΈ Docker.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Π― ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΎΡ€ΠΆΡƒΡΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ сами выступали Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наш ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π», Π½Π΅ доТидаясь ΠΆΠ°Π»ΠΎΠ± ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ВсС Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ достаточно просто – Ρƒ нас Π±Ρ‹Π»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python ΠΈ нСсколько бэк-офисных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ruby, Π½ΠΎ всС стало Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ интСрСснСй, ΠΊΠΎΠ³Π΄Π° наши Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ заявили, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ JVM ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ пСрСвСсти Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Node.js. ПослС внСдрСния Docker Π²Π΅Ρ‰ΠΈ стали Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. ΠœΡ‹ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΈΡΡŒ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ стали Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ ΠΈΡ… для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ большой смысл. РасскаТу Π²Π°ΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ‚Π°ΠΊ.

API-шлюз Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ endpoints для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Они ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих скриптов Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΈ Π΄Π°Π»Π΅Π΅ Π½Π° устройства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ всС эти измСнСния ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ с endpoints, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ Π² API-шлюзС.

Однако это ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, ΠΊΠΎΠ³Π΄Π° слуТба API Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π° ΠΊΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сцСнарии сбоСв. НапримСр, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΡƒΠ΄Π°Π»ΡΠ»ΠΈΡΡŒ ΠΈΠ»ΠΈ ΠΆΠ΅ скрипты случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ вСрсий Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Ρ‡Ρ‚ΠΎ эти вСрсии Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ API-сСрвиса.

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ Π²Π·ΡΡ‚ΡŒ эти endpoints ΠΈ Π²Ρ‹Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΈΡ… ΠΈΠ· API-сСрвиса. Для этого ΠΌΡ‹ создали ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Node.js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ нСбольшиС прилоТСния Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Docker. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ ΠΈ сбои, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ этими node-прилоТСниями.

Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ достаточно Π²Π΅Π»ΠΈΠΊΠ° ΠΈ складываСтся ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ тСхнологиями Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ UI-ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ скрипты для создания эффСктивной ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ инфраструктурой, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ написаниСм скриптов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈΡ… работоспособности.
    Π˜Π½ΡΠ°ΠΉΡ‚ ΠΈ сортировка возмоТностСй β€” ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для выявлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НуТно Π±Ρ‹Π»ΠΎ Π·Π½Π°Ρ‚ΡŒ, Π½Π° сколько % занят процСссор, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈ сбор этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» Ρ€Π°Π·Π½Ρ‹Ρ… инструмСнтов.
  • ЀрагмСнтация Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² β€” простая базовая AMI стала Π±ΠΎΠ»Π΅Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ спСциализированной.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°ΠΌΠΈ. НС сущСствуСт доступной Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, поэтому ΠΌΡ‹ создали Titus β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, которая обСспСчиваСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Amazon AWS.
  • Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΌ тСхнологиям ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π΅Π΅ дублирования Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Node.js.
  • ΠšΡ€ΠΈΠ²Π°Ρ обучСния ΠΈ производствСнный ΠΎΠΏΡ‹Ρ‚. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ создаСт Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π½ΠΈΡ… ΡƒΡ€ΠΎΠΊΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ Β«Π°ΡΡ„Π°Π»ΡŒΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉΒ» ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ постоянно ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для продвиТСния своих Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Для сниТСния стоимости ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° JVM, Π½ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ… ΠΈ Docker. ΠœΡ‹ расставляли ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΏΠΎ стСпСни эффСктивного воздСйствия, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎ стоимости принятых ΠΈΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ стимулировали ΠΈΡ… ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования ΡƒΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… эффСктивных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠœΡ‹ использовали этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ сСрвиса Π½Π° иностранныС языки для доставки ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простыС клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ автоматичСски, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ достаточно Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Python-Π²Π΅Ρ€ΡΠΈΡŽ, Ruby-Π²Π΅Ρ€ΡΠΈΡŽ, Java-Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ Ρ‚.Π΄.

ΠœΡ‹ постоянно искали Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΊΠ°Ρ‚Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ сСбя Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ситуациях.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ послСднСм элСмСнтС – измСнСниях, ΠΈΠ»ΠΈ вариациях. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ мСняСтся ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ нашСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΠΎ дням Π½Π΅Π΄Π΅Π»ΠΈ ΠΈ ΠΏΠΎ часам Π½Π° протяТСниС суток. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² 9 ΡƒΡ‚Ρ€Π° для Netflix наступаСт врСмя тяТСлых испытаний, ΠΊΠΎΠ³Π΄Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° систСму достигаСт максимума.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Как ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ высокой скорости внСдрСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ постоянно Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² систСму, Π½Π΅ вызывая ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²ΠΎΠ² Π² доставкС сСрвиса ΠΈ Π½Π΅ создавая нСудобств нашим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ? Netflix добились этого благодаря использованию Spinnaker – Π½ΠΎΠ²ΠΎΠΉ глобальной ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ управлСния ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доставки (Π‘D).

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Spinnaker Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развСртывания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нСпосрСдствСнно Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ доставки ΠΌΠ΅Π΄ΠΈΠ°ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Нам ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅ доставки Π΄Π²Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ высоко Ρ†Π΅Π½ΠΈΠΌ: Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ canary-Π°Π½Π°Π»ΠΈΠ· ΠΈ поэтапноС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅. Canary-Π°Π½Π°Π»ΠΈΠ· ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ направляСм Ρ€ΡƒΡ‡Π΅Π΅ΠΊ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠ΄Π°, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ пропускаСм Ρ‡Π΅Ρ€Π΅Π· ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ провСряСм, ΠΊΠ°ΠΊ справляСтся с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ – Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ»ΠΈ Ρ…ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ.

ΠŸΠΎΡΡ‚Π°ΠΏΠ½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли с Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅Π³ΠΈΠΎΠ½Π΅ происходят ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π΅Π³ΠΈΠΎΠ½Π΅. ΠŸΡ€ΠΈ этом Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ упомянутый Π²Ρ‹ΡˆΠ΅ чСклист. Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сэкономлю врСмя ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ознакомится с ΠΌΠΎΠΈΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ выступлСниСм Β«Π˜Π½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Netflix Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ сСрвисС», Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ³Π»ΡƒΠ±ΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с этим вопросом. Π’ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΡŒ выступлСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, пройдя ΠΏΠΎ ссылкС Π²Π½ΠΈΠ·Ρƒ слайда.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Π’ ΠΊΠΎΠ½Ρ†Π΅ выступлСния я ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ расскаТу ΠΎΠ± ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Netflix. Π’ самом Π½Π°Ρ‡Π°Π»Π΅ Ρƒ нас Π±Ρ‹Π»Π° схСма ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Electronic Delivery – элСктронная доставка, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²ΡˆΠ°Ρ собой ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Π΄ΠΈΠ°ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° NRDP 1.x. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ воспроизвСдСния Π½Π° устройствС. Бамая пСрвая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° элСктронной доставки Netflix ΠΎΠ±Ρ€Π°Π·Ρ†Π° 2009 Π³ΠΎΠ΄Π° выглядСла ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ устройство содСрТало Π² сСбС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Netflix, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ состояло ΠΈΠ· интСрфСйса UI, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ бСзопасности, Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ сСрвиса ΠΈ воспроизвСдСния, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ NRDP β€” Netflix Ready Device Platform.

Π’ Ρ‚ΠΎ врСмя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ прост. Он содСрТал Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Queque Reader, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΠ» Π½Π° сайт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Queque, Π° Π·Π°Ρ‚Π΅ΠΌ просматривал Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° своСм устройствС. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Ρ‹Π»ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ клиСнтская ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ сСрвСрная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Electronic Delivery ΠΈ ΠΈΠΌΠ΅Π»ΠΈ тСсныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. ПолСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±Ρ‹Π»Π° создана Π½Π° основС XML. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» создан API Netflix для DVD бизнСса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стимулировал сторонниС прилоТСния Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² наш сСрвис.

Однако Netflix API Π±Ρ‹Π» Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ с ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, Π² Π½Π΅ΠΌ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π»ΠΈΡΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ всСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ доступны, Ρ‡Ρ‚ΠΎ создавало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ списки просмотра. Π£ Π½Π΅Π³ΠΎ Π±Ρ‹Π» ΠΎΠ±Ρ‰ΠΈΠΉ REST API, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° схСмС JSON, HTTP Response Code, Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² соврСмСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΈ модСль бСзопасности OAuth – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π² Ρ‚ΠΎ врСмя для внСшнСго прилоТСния. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ доставки ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π²ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² нашСй систСмС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΄Π²Π° сСрвиса, основанныС Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” ΠΎΠ΄ΠΈΠ½ Π½Π° Rest, JSON ΠΈ OAuth, Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π° RPC, XML ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ бСзопасности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° основС систСмы Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² NTBA. Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° пСрвая гибридная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

По сущСству ΠΌΠ΅ΠΆΠ΄Ρƒ двумя нашими ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ сущСствовал Ρ„Π°ΠΉΡ€Π²ΠΎΠ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ API Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π»ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NCCP, ΠΈ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ разногласиям ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Различия Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ Π² сСрвисах, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ…, схСмах, модулях бСзопасности, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ часто ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ контСкстами.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ QCon. ОвладСниС хаосом: руководство Netflix для микросСрвисов. Π§Π°ΡΡ‚ΡŒ 4

Π’ связи с этим Ρƒ мСня Π±Ρ‹Π» Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠΈΡ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ я Π·Π°Π΄Π°Π» вопрос: Β«Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ долгосрочная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°?Β», ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π» встрСчный вопрос: «ВСроятно, тСбя большС Π²ΠΎΠ»Π½ΡƒΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ послСдствия β€” Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ эти Π²Π΅Ρ‰ΠΈ, Π° ΠΎΠ½ΠΈ ΡΠ»ΠΎΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ?Β». Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ для Π·Π°ΠΊΠΎΠ½Π° КонвСя: Β«ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ систСмы, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ структуру ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² этой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΒ». Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ абстрактноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, поэтому я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅: Β«Π›ΡŽΠ±Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ структуру, которая Π΅Π³ΠΎ создала». ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Π²Π°ΠΌ ΠΌΠΎΠ΅ любимоС высказываниС, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ Π­Ρ€ΠΈΠΊΡƒ Π Π΅ΠΉΠΌΠΎΠ½Π΄Ρƒ: «Если Π½Π°Π΄ компилятором Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ компилятор». Π§Ρ‚ΠΎ ΠΆΠ΅, Netflix ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ компилятор, ΠΈ это Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ.

МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этом случаС хвост ΠΌΠ°ΡˆΠ΅Ρ‚ собакой. Π£ нас Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π° организация, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° являСтся Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ ΠΎΡ‚ ΠΌΠ΅ΡˆΠ°Π½ΠΈΠ½Ρ‹ сСрвисов ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π·Π²Π°Π»ΠΈ Blade Runner – Β«Π‘Π΅Π³ΡƒΡ‰ΠΈΠΉ ΠΏΠΎ лСзвию», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ здСсь Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… сСрвисах ΠΈ возмоТностях NCCP Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Zuul-прокси, API-шлюз, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ «куски» Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Π² Π½ΠΎΠ²Ρ‹Π΅ микросСрвисы с Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ функциями бСзопасности, воспроизвСдСния, сортировки Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСдомствСнныС структуры ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° развития ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° систСм ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ измСнСниям. АрхитСктура микросСрвисов являСтся комплСксной ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΡ‡Π½ΠΎΠΉ, Π° Π΅Π΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ базируСтся Π½Π° дисциплинС ΠΈ внСдряСмом хаосС.

НСмного Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ. Π’Π°ΠΌ нравятся наши ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большС интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ VPS для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ entry-level сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ Π½Π°ΠΌΠΈ для Вас: Вся ΠΏΡ€Π°Π²Π΄Π° ΠΎ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ сСрвСр? (доступны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядСр ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd Π² 2 Ρ€Π°Π·Π° дСшСвлС Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Equinix Tier IV Π² АмстСрдамС? Волько Ρƒ нас 2 Ρ… Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 Π’Π’ ΠΎΡ‚ $199 Π² НидСрландах! Dell R420 β€” 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β€” ΠΎΡ‚ $99! Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инфраструктуру ΠΊΠΎΡ€ΠΏ. класса c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ сСрвСров Dell R730xd Π•5-2650 v4 ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ?

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ