CDN для противодСйствия РКН

Goal:

ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ ip для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ обходя ограничСния РКН. БСйчас CloudFlare замСдляСтся, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄ Π½Π° Fastly, Π½ΠΎ послС Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΎΠΏΡΡ‚ΡŒ прийдСтся Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ. Π₯очСтся ΠΈΠΌΠ΅Ρ‚ΡŒ способ Π±Ρ‹Ρ‚ΡŒ нСзависимым ΠΎΡ‚ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈ самим ΠΈΠΌΠ΅Ρ‚ΡŒ свой CDN.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

Для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π°Ρ€ΡƒΠΆΡƒ смотрит Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° - DNS, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список IP адрСсов для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Edge сСрвСр β€” источник ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Бписок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ связи:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

  • dev: ΠΊΠΎΠ½Ρ‚ΡƒΡ€ для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ управлСния конфигурациями, gitops Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΊΠ°Ρ…
  • core: Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для управлСния Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ DNS Failover ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Π½Π° основании Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°
  • origin: источник ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, aws ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅
  • DNS Management: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ NS сСрвСрами, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ API для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ обновлСния, ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ простая рСализация Failover
  • edge: мноТСство сСрвСров, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΉ Π² Ρ€ΠΎΠ»ΠΈ рСвСрс прокси для Ρ€Π°Π·Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

ΠœΡ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ большоС количСство edge сСрвСров Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… IP Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… хостинг ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ². ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ нСбольшоС подмноТСство этих IP, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ находятся Π² Ρ€Π΅Π·Π΅Ρ€Π²Π΅ Π½Π° случай Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… IP ΠΌΡ‹ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌ согласно ΠΎΠ±ΡŒΠ΅ΠΌΡƒ входящСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Π΅Π΄ΠΆ ΡƒΠ·Π»Π°Ρ…. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ IP ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ°Π½Π°Π»Π°, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ рСгулярно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ соотвСтствуСт Π»ΠΈ наша Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΎΠ±ΡŒΠ΅ΠΌΡƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ случаС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ip ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ip ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² DNS. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ всС врСмя ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡƒΠ»Π» доступных ip для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Для завСдСния Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ максимально ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ тСхничСскиС спСциалисты, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ docker compose.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли Π² Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ нСдоступный IP

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² спискС IP адрСсов Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСн нСдоступный ip, Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π·Π°ΠΌΠ΅Π½Ρƒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ· списка. Π“ΡƒΠ³Π» Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 30 сСкунд, Π½ΠΎ это Π»ΡƒΡ‡ΡˆΠ΅ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Ρ‹ бСзопасности

Π’ Π΄Π°Π½Π½ΠΎΠΉ схСмС edge Π½Π΅ являСтся Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠΌ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ dev ΠΈ core). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ edge Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ доступов Π½Π° запись Π½ΠΈ Π² ΠΊΠ°ΠΊΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ минимальноС количСство сСкрСтов ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½, ΠΊ Ρ„Π°ΠΊΡ‚Ρƒ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊ (Π³Ρ€ΡƒΠ±ΠΎ говоря ΠΈΠ·Ρ‹ΠΌΠ΅Ρ‚ РКН ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ какая-Ρ‚ΠΎ хтоничСская Π΄ΠΈΡ‡ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ ΠΊ содСрТимому). БоотвСтствСнно Π² edge ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ доступов (Π° Ρ‚Π΅ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС кСши ΠΈ Ρ‚.ΠΏ. Π±Ρ‹Π»ΠΈ Π² in-memory Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ всС Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½ΠΈΡ… Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ.

БоотвСтствСнно статистику ΠΈ ΠΈΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с машин Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Pull ΠΎΡ‚ Π½ΠΈΡ… Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

GIT

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, ΠΈΡ… вСрсии ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° мСнялось.

CI

Π’ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ схСмС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° edge сСрвСра Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΏΡ€ΠΎΠΆΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ CI, способный ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ bamboo, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ github, всС Ρ€Π°Π²Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚.

Container Registry

РССстр ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². ΠœΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ harbour, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π’ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ S3 compatible R2 example.

Reverse Proxy

БобствСнно рСвСрс прокси, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Ρ€Π°Π·Π΄Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой (nginx, traefik, caddy etc.), Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько спСцифичСских Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ:

  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ сохранСнный ΠΊΠΎΠ½Ρ„ΠΈΠ³
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшнСС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ssl сСртификатов
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ статистику Π² машино Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (prom export etc)
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ кСш для статики
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΊ origin (x-real-ip etc.)

Reverse Proxy Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊ Certificate Storage

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ для этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Caddy.

Local Cache

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ запросов ΠΈΠ΄Π΅Ρ‚ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ статичСским рСсурсам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ LRU кСш со статикой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π΅ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ oridgin Π·Π° html\css\js, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сущСствСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠ°Π½Π°Π»Π°. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π» in-memory cache, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΆΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ zram для большСй Смкости (Ссли Π² этом Π±ΡƒΠ΄Π΅Ρ‚ смысл).

Configuration puller

НСбольшой сайдкар, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ слСдил Π·Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ обновлял Π΅Π³ΠΎ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ watchtower. Π’ Ρ†Π΅Π»ΠΎΠΌ этот элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСнСсСн Π² core с edge ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ Ρ‡Ρ‚ΠΎ это услоТнит ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Origin

БобствСнно сСрвСр источник Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ бСспокоится ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ с Π½Π΅Π³ΠΎ раздаСтся ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ AWS ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

Certificate Manager

Π’ соврСмСнном Π²Π΅Π±Π΅ всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ https, Π½ΠΎ Ссли ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ssl сСртификат, Ρ‚ΠΎ ΠΌΡ‹ ΠΎΡ‡Π΅Π½ΡŒ быстро упрСмся Π² Π»ΠΈΠΌΠΈΡ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСртификатами Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅ΡΡ‚ΠΈΡΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, ΠΈ осущСствляСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ DNS Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ACME v2 ΠΎΡ‚ LetsEncrypt ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ). Certificate Manager Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° запись Π² Certificate Storage.

DNS managment

БобствСнно это NS сСрвСра ΠΈ api для ΠΈΡ… управлСния. Π’ этом мСстС кроСтся большой просто для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ (ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Π³Π΅ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ip, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΡƒΡŽ балансировку Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΏ Ρ‚.ΠΏ.).

Для старта ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CloudFlare, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π°ΠΏΠΈ. Π’Π°ΠΊ ΠΆΠ΅ стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ DNS LB со стороны CF, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ helthchecks ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сама быстро ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΠΌΠ΅Ρ€ΡˆΠΈΠ΅ ΡƒΠ·Π»Ρ‹.

Доступ Π½Π° запись Π² DNS ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠΌΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Certificate Manager (для создания DNS записСй Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ) ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ (для удалСния Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… хостов, ΠΈΠ»ΠΈ для добавлСния Π½ΠΎΠ²Ρ‹Ρ…)

DB instance Π² Core

БобствСнно Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… хостов, информация ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ, информация ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Π½Π°Π» доступСн ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ хосту ΠΈ Ρ‚.ΠΏ. ЀактичСски это Π±Π°Π·Π° для конфигурирования повСдСния, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сообщаСм ΠΊΠ°ΠΊΠΈΠ΅ хосты ΠΌΡ‹ обслуТиваСм. МоТно ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ PostgreSQL + Metabase. Π’ мСтабСйсС Π΅ΡΡ‚ΡŒ Actions, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для построСния простого Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ UI

Monitoring

Бамая слоТная Ρ‡Π°ΡΡ‚ΡŒ нашСй систСмы. ЀактичСски это микс blacbox exporter ΠΈ скриптов Π½Π°Π²Π΅ΡˆΠ°Π½Π½Ρ‹Ρ… Π½Π° Π°Π»Π΅Ρ€Ρ‚Ρ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли Ρƒ нас ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π» скрипт, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΈΠ· ip пСрСстал ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ с российского прокси, Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ этого ip ΠΈ доступных Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ DNS. ПослС этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сколько IP ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π² Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π·ΠΎΠ½Π°Ρ…, ΠΈ какая Ρƒ Π½ΠΈΡ… Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ. Если Смкости нСдостаточно - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ IP. Π’Π°ΠΊ ΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ статистику с ΡƒΠ·Π»ΠΎΠ² ΠΊΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ количСства Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ rps. Если ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ рСсурсы, Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ снова Ρ‚Π°ΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ рСсурсов. ОписаниС сцСнариСв Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этого модуля Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π±ΡƒΠ΄ΡƒΡ‚ всС врСмя ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, поэтому Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ лСгковСсный скриптинг ΠΈΠ»ΠΈ n8n сюда.

Π‘Π»Π°Π±Ρ‹Π΅ мСста:

Основной минус Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ IP для ΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, Ρ‚.ΠΊ. ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡƒΠΌΠ½Ρ‹ΠΉ РКН ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ наш Π΄ΠΎΠΌΠ΅Π½ ΠΈ автоматичСски Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ IP Π² Π±Π»Π΅ΠΊ листы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ постСпСнно Π»ΠΈΡˆΠΈΡ‚ΡΡ всСх IP.

Вторая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° это балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Если Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» ΠΏΡ€ΠΈΠΉΠ΄Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ справится с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. DNS балансировка Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·ΠΌΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ запросы ΠΌΠ΅ΠΆΠ΄Ρƒ всСми адрСсами (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ частично ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌΠΎ с использованиСм CF LB).

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

  • watchtower для автоматичСского обновлСния ΡƒΠ·Π»ΠΎΠ²
  • diun Π½ΠΎΡ‚ΠΈΡ„ΠΊΠΈ Π² Ρ‚Π΅Π»Π΅Π³Ρƒ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях (просто ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎ)

К ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΡŽ

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Caddy с ΠΎΠ±Ρ‰ΠΈΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ сСртификатов.