เบ—เบฒเบ‡เป€เบ—เบตเบ‡ fakapov Cyan

เบ—เบฒเบ‡เป€เบ—เบตเบ‡ fakapov Cyan

เบ”เบตเบ•เปเปˆเบ—เบธเบเบ„เบปเบ™! 

เบ‚เป‰เบญเบเบŠเบทเปˆ Nikita, เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบซเบปเบงเบซเบ™เป‰เบฒเบ—เบตเบกเบงเบดเบชเบฐเบงเบฐเบเปเบฒ Cian. เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบเบขเบนเปˆเบ—เบตเปˆเบšเปเบฅเบดเบชเบฑเบ”เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เบชเบนเบ™.
เบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบˆเบฑเบšเบ›เบงเบ”เบซเบผเบฒเบ, เปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ„เบปเบ™เบญเบทเปˆเบ™เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบซเบผเบทเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. 

Preamble

เบ”เบปเบ™เบ™เบฒเบ™เบกเบฒเปเบฅเป‰เบง, เป€เบกเบทเปˆเบญ Cian เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ monoliths, เปเบฅเบฐเบšเปเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ microservices เป€เบ—เบทเปˆเบญ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบงเบฑเบ”เปเบ—เบเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบเบฒเบ™เบเบงเบ”เบชเบญเบš 3-5 เบซเบ™เป‰เบฒ. 

เบžเบงเบเป€เบ‚เบปเบฒเบ•เบญเบš - เบ—เบธเบเบขเปˆเบฒเบ‡เบ”เบต, เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบ•เบญเบšเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™ - เป€เบ•เบทเบญเบ™. เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบžเบฑเบโ€‹เบงเบฝเบโ€‹เบกเบฒโ€‹เบ”เบปเบ™โ€‹เบ›เบฒเบ™โ€‹เปƒเบ”โ€‹เบˆเบถเปˆเบ‡โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบงเปˆเบฒโ€‹เป€เบซเบ”โ€‹เบเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เป‚เบ”เบโ€‹เบœเบนเป‰โ€‹เบ„เบปเบ™โ€‹เปƒเบ™โ€‹เบเบญเบ‡โ€‹เบ›เบฐโ€‹เบŠเบธเบก. เบ—เบตเบกเบ‡เบฒเบ™เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เป„เบ”เป‰เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเบชเบฐเป€เบซเบกเบตเปƒเบ™เบเบฒเบ™เบชเบทเบšเบชเบงเบ™เป€เบซเบ”เบเบฒเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบชเบทเบšเบชเบงเบ™เป„เบ”เป‰เบ–เบทเบเบชเปเบฒเป€เบฅเบฑเบ”, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบฝเบ™ postmortem - เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ—เบฒเบ‡เบญเบตเป€เบกเบฅเปŒเปƒเบ™เบฎเบนเบšเปเบšเบš: เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบ›เบฒเบ™เปƒเบ”, เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. 

เบซเบ™เป‰เบฒเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบตเบ”เป‰เบฒเบ™เบฅเบธเปˆเบก

 
เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ” / เบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบงเบฑเบ”เปเบ—เบเป€เบงเบฅเบฒเป€เบฎเบฑเบ”เบงเบฝเบ. 

เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบงเปˆเบฒเบกเบตเบซเบผเบฒเบเป†เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เบปเป‰เบ™เบ•เป - เบเบฒเบ™เบŠเบญเบเบซเบฒเปเบฅเบฐเบเบฒเบ™เบชเบปเปˆเบ‡เป‚เบ„เบชเบฐเบ™เบฒ. เบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป€เบเบตเบ™ 1%, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบเบฒเบ™เบชเปเบฒเบ„เบฑเบ™. เบ–เป‰เบฒเบžเบฒเบเปƒเบ™ 15 เบ™เบฒเบ—เบตเปƒเบ™เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบชเปเบฒเบ„เบฑเบ™เบญเบฑเบ”เบ•เบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ™ 0,1%, เบ™เบตเป‰เบเปเปˆเบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™เบชเปเบฒเบ„เบฑเบ™. เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบงเบกเป€เบญเบปเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™; เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰.

เบ—เบฒเบ‡เป€เบ—เบตเบ‡ fakapov Cyan

เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปƒเบ™ Cyan

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเป€เบซเบ”เบเบฒเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™. 

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบธเบเป†เป€เบซเบ”เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เปเบฅเบฐเบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เปƒเบ™ epic Jira. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™: เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™ FAIL - เบžเบฝเบ‡เปเบ•เปˆ epics เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบกเบฑเบ™. 

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป„เบฅเบเบฐเบชเบญเบ‡เบชเบฒเบกเบ›เบตเบœเปˆเบฒเบ™เบกเบฒ, เบœเบนเป‰เบ™เปเบฒเปเบกเปˆเบ™: 

  • mssql เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡;
  • เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบ›เบฑเบ”เปƒเบˆเบžเบฒเบเบ™เบญเบ;
  • เบœเบดเบ”เบžเบฒเบ” admin.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบทเปˆเบ™เป†.

เบญเบฑเบ™เบ”เบฑเบšเบ—เบตเบซเป‰เบฒ - "เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบšเปƒเบ™ DNS"

เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฒเบเบธเปƒเบ™เบงเบฑเบ™เบญเบฑเบ‡เบ„เบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบŸเบทเป‰เบ™เบŸเบนเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบเบธเปˆเบก DNS. 

เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบญเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบžเบฒเบเปƒเบ™เบˆเบฒเบเบœเบนเบเบเบฑเบš powerdns, เบˆเบฑเบ”เบชเบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบšเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเบปเบเป€เบงเบฑเป‰เบ™ DNS. 

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบงเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบซเบ™เบถเปˆเบ‡เปƒเบ™เปเบ•เปˆเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡ DCs เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบฅเบฐเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบกเบฒเป€เบžเบทเปˆเบญเบเป‰เบฒเบเป€เบ‚เบ”เบˆเบฒเบ bind เป„เบ›เบซเบฒ powerdns เปเบฅเบฐเบ›เปˆเบฝเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป„เบ›เบชเบนเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบซเบกเปˆ. 

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบœเบนเบเบกเบฑเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ St. DC เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบงเปˆเบฒเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบˆเบธเบ”เบ”เบฝเบงเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง.
เบกเบฑเบ™เปเบกเปˆเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ™เบตเป‰เบ—เบตเปˆเบ„เบญเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ Moscow เปเบฅเบฐ St. เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบ›เบฐเป„เบงเป‰เป‚เบ”เบเบšเปเปˆเบกเบต DNS เบชเปเบฒเบฅเบฑเบšเบซเป‰เบฒเบ™เบฒเบ—เบตเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบžเบฒเบšเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ. 

เบ‚เปเป‰เบชเบฐเบซเบผเบธเบš:

เบ–เป‰เบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบฅเบฐเป€เบฅเบตเบเบ›เบฑเบ”เปƒเบˆเบžเบฒเบเบ™เบญเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบ‚เบปเบฒเบเบฑเบ‡เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฐเบเบฝเบก. เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบชเบฐเบซเบ‡เบงเบ™ n-2, เปเบฅเบฐเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰เป„เบ›เบซเบฒ n-1.

  • เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปƒเบซเป‰เบซเบกเบฒเบเบˆเบธเบ”เบ—เบตเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบง, เปเบฅเบฐเบ„เบดเบ”เบœเปˆเบฒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰ "เบˆเบฒเบเบšเปเปˆเบ”เบตเป„เบ›เบซเบฒเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ" เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ.
  • เปเบˆเบเบขเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบžเบฒเบเปƒเบ™เปƒเบ™เบ—เบปเปˆเบงเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ” / เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™ / racks / เบชเบฐเบซเบผเบฑเบš / เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™.
  • เปƒเบ™เปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS caching เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เป€เบŠเบดเปˆเบ‡เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เบ•เบปเป‰เบ™เบ•เป, เปเบฅเบฐเบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เบกเบฑเบ™เบˆเบฐเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบˆเบฒเบ cache. 

เบญเบฑเบ™เบ”เบฑเบšเบ—เบตเบชเบตเปˆ - "เบˆเบฑเบ”เบงเบฒเบ‡เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เปƒเบซเป‰เป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบšเปƒเบ™ Nginx"

เบกเบทเป‰เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ”เบต, เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒ "เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบžเบฝเบ‡เบžเปเปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰," เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡ refactoring configs nginx เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ™เปเบฒเป€เบญเบปเบฒ configs เป„เบ›เบชเบนเปˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ intuitive. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ "เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”" เปเบฅเบฐเบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เปƒเบ”เป†. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบ•เปˆเบฅเบฐ server_name เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐ config เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบŸเบ™เป€เบ”เบต. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, config เบกเบต 253949 เปเบ–เบงเบซเบผเบท 7836520 เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปเบฅเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ–เบดเบ‡เป€เบเบทเบญเบš 7 megabytes. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบชเบธเบ”: 

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ Nginx

โ”œโ”€โ”€ access
โ”‚   โ”œโ”€โ”€ allow.list
...
โ”‚   โ””โ”€โ”€ whitelist.conf
โ”œโ”€โ”€ geobase
โ”‚   โ”œโ”€โ”€ exclude.conf
...
โ”‚   โ””โ”€โ”€ geo_ip_to_region_id.conf
โ”œโ”€โ”€ geodb
โ”‚   โ”œโ”€โ”€ GeoIP.dat
โ”‚   โ”œโ”€โ”€ GeoIP2-Country.mmdb
โ”‚   โ””โ”€โ”€ GeoLiteCity.dat
โ”œโ”€โ”€ inc
โ”‚   โ”œโ”€โ”€ error.inc
...
โ”‚   โ””โ”€โ”€ proxy.inc
โ”œโ”€โ”€ lists.d
โ”‚   โ”œโ”€โ”€ bot.conf
...
โ”‚   โ”œโ”€โ”€ dynamic
โ”‚   โ””โ”€โ”€ geo.conf
โ”œโ”€โ”€ lua
โ”‚   โ”œโ”€โ”€ cookie.lua
โ”‚   โ”œโ”€โ”€ log
โ”‚   โ”‚   โ””โ”€โ”€ log.lua
โ”‚   โ”œโ”€โ”€ logics
โ”‚   โ”‚   โ”œโ”€โ”€ include.lua
โ”‚   โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ”‚   โ””โ”€โ”€ utils.lua
โ”‚   โ””โ”€โ”€ prom
โ”‚       โ”œโ”€โ”€ stats.lua
โ”‚       โ””โ”€โ”€ stats_prometheus.lua
โ”œโ”€โ”€ map.d
โ”‚   โ”œโ”€โ”€ access.conf
โ”‚   โ”œโ”€โ”€ .. 
โ”‚   โ””โ”€โ”€ zones.conf
โ”œโ”€โ”€ nginx.conf
โ”œโ”€โ”€ robots.txt
โ”œโ”€โ”€ server.d
โ”‚   โ”œโ”€โ”€ cian.ru
โ”‚   โ”‚   โ”œโ”€โ”€ cian.ru.conf
โ”‚   โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ”‚   โ””โ”€โ”€ my.cian.ru.conf
โ”œโ”€โ”€ service.d
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ status.conf
โ””โ”€โ”€ upstream.d
    โ”œโ”€โ”€ cian-mcs.conf
    โ”œโ”€โ”€ ...
    โ””โ”€โ”€ wafserver.conf

เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เปเบ•เปˆเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเปเบฅเบฐเบเบฒเบ™เปเบˆเบเบขเบฒเบ configs, เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ *.conf. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบšเบฒเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบเบฒเบเป€เบ›เบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™ 301 เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบซเบฅเบฑเบ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบšเปเปˆเปเบกเปˆเบ™ 5xx/4xx, เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบ—เบฑเบ™เบ—เบต, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบเบงเบ”เบเบฒเป€เบšเบดเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™.

เบ‚เปเป‰เบชเบฐเบซเบผเบธเบš: 

  • เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ configs เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡ (เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ nginx) เปเบฅเบฐเบ„เบดเบ”เป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. เบงเบดเบ—เบตเบ™เบตเป‰เป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ—เบตเบกเบ‡เบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ TTM เบซเบผเบธเบ”เบฅเบปเบ‡.
  • เบ‚เบฝเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡: เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒ key server_names เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบซเป‰เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ + เบฎเปˆเบฒเบ‡เบเบฒเบเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบกเบฑเบ™เบˆเบฐเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบกเบตเบชเบฐเบ„เบดเบšเบชเบญเบ‡เบชเบฒเบกเบ•เบปเบงเบขเบนเปˆเปƒเบ™เบกเบทเบ—เบตเปˆเบเบงเบ”เป€เบšเบดเปˆเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš, เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบˆเบทเปˆเป„เบงเป‰เบขเปˆเบฒเบ‡เบงเบธเปˆเบ™เบงเบฒเบเปƒเบ™เป€เบงเบฅเบฒ 3 เป‚เบกเบ‡เป€เบŠเบปเป‰เบฒเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบงเบ”เบชเบญเบš. 

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเบชเบฒเบก - "เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เปเบฅเปˆเบ™เบญเบญเบเบˆเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™ Cassandra"

เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบตเบˆเบปเบ™เบเปˆเบงเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบชเป‰เบญเบกเปเบ›เบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบฅเบตเปˆเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบธเปˆเบก Cassandra, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบžเบงเบเบกเบฑเบ™เป„เบ”เป‰. 

เบกเบทเป‰เปœเบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบžเบฒเบเบธ, เบเบธเปˆเบกเป€เบเบทเบญเบšเบเบฒเบเป€เบ›เบฑเบ™เบœเบฑเบ, เบ„เบท:

  • เบกเบตเบ›เบฐเบกเบฒเบ™ 20% เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเป€เบซเบผเบทเบญเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก;
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก nodes เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบšเปเปˆเบœเปˆเบฒเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบก node เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฒเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบžเบฒเบ—เบดเบŠเบฑเบ™;
  • เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปˆเบญเบเป†เบซเบผเบธเบ”เบฅเบปเบ‡เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ; 
  • เบเบธเปˆเบกเบขเบนเปˆเปƒเบ™เป‚เปเบ”เบชเบธเบเป€เบชเบตเบ™.

เบ—เบฒเบ‡เป€เบ—เบตเบ‡ fakapov Cyan

เบญเบญเบเบˆเบฒเบ - เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบก 5 nodes เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบญเบญเบเบˆเบฒเบ cluster เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเปเบฅเบฐเปƒเบชเปˆเบžเบงเบเบกเบฑเบ™เปƒเบซเบกเปˆ, เบ„เบทเบเบฑเบš nodes เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบ—เบตเปˆเบซเบกเบปเบ”เบžเบทเป‰เบ™เบ—เบตเปˆ. เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ•เปเปˆเบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบšเบฒเบ‡เบชเปˆเบงเบ™ เบซเบผเบทเบ„เบปเบšเบ–เป‰เบงเบ™เบ‚เบญเบ‡เบเบธเปˆเบก. 

เบ‚เปเป‰เบชเบฐเบซเบผเบธเบš:

  • เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ cassandra เบ—เบฑเบ‡เบซเบกเบปเบ”, เบšเปเปˆเป€เบเบตเบ™ 60% เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐเบžเบฒเบ—เบดเบŠเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ„เบญเบšเบ„เบญเบ‡. 
  • เบžเบงเบเป€เบ‚เบปเบฒเบ„เบงเบ™เบˆเบฐเบ–เบทเบเป‚เบซเบฅเบ”เบขเบนเปˆเบ—เบตเปˆเบšเปเปˆเป€เบเบตเบ™ 50% cpu.
  • เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบงเบฒเบ‡เปเบœเบ™เบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ”เปเบฅเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบดเบ”เบกเบฑเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบš, เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบกเบฑเบ™.
  • เบซเบผเบฒเบ nodes เปƒเบ™ cluster, เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ. เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบ‚เปเป‰เบกเบนเบ™เปœเป‰เบญเบเปœเบถเปˆเบ‡เปเบกเปˆเบ™เป‚เบซเบผเบ”เป€เบเบตเบ™เป„เบง, เปเบฅเบฐเบเบธเปˆเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบŸเบทเป‰เบ™เบŸเบนเป„เบ”เป‰เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. 

เบญเบฑเบ™เบ”เบฑเบšเบ—เบตเบชเบญเบ‡ - "เบ‚เปเป‰เบกเบนเบ™เบซเบฒเบเป„เบ›เบˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบฐเปเบˆเบ‚เบญเบ‡เบเบปเบ‡เบชเบธเบ™"

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เปƒเบŠเป‰ consul. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เปƒเบŠเป‰เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบชเบตเบŸเป‰เบฒเบชเบตเบ‚เบฝเบงเบ‚เบญเบ‡ monolith. เบกเบฑเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฒเบเบ™เป‰เปเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบšเปเปˆเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เป€เบŠเบดเปˆเบ‡เบ›เปˆเบฝเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบ—เบตเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบš KV. เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ KV เบซเบฒเบเป„เบ›. เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบˆเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเบฑเบšเป‚เบซเบฅเบ”, เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบฒเบเบ™เป‰เปเบฒเป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเบšเปเปˆเบชเบฐเบซเบกเปเปˆเบฒเบชเบฐเป€เบซเบกเบต, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” 502 เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ backends overloaded เปƒเบ™ CPU. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเป‰เบฒเบเบˆเบฒเบเบเบปเบ‡เบชเบธเบ™ KV เป„เบ› postgres, เบˆเบฒเบเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบญเบญเบ.  

เบ‚เปเป‰เบชเบฐเบซเบผเบธเบš:

  • เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบ”เป†เบšเปเปˆเบ„เบงเบ™เบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบ™ ES, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบˆเบฒเบเบ—เบธเบเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เบ›เปˆเบญเบเปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เปเบฅเบฐเบเบฑเบ‡เบ•เบฑเป‰เบ‡ action.destructive_requires_name: true.
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบฎเบฑเบ” script เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ Python) เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบน.

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เปเบฒเบญเบดเบ” - "Captain Unobvious" 

เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบšเปเปˆเบชเบฐเป€เบซเบกเบตเบเบฑเบ™เปƒเบ™ nginx upstreams เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ 10+ เปƒเบ™ backend. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ round-robin เป„เบ”เป‰เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบ 1st เป„เบ›เบซเบฒ upstream เบชเบธเบ”เบ—เป‰เบฒเบเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เปเบฅเบฐเปเบ•เปˆเบฅเบฐ nginx reload เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ, เบเบฒเบ™ upstreams เบ—เปเบฒเบญเบดเบ”เบชเบฐเป€เบซเบกเบตเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบซเบผเบฒเบเบเปˆเบงเบฒเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบฎเบฑเบ”เบงเบฝเบเบŠเป‰เบฒเบฅเบปเบ‡เปเบฅเบฐเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบ. เบ™เบตเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบเป‰เบญเบ™เบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ” nginx เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบšเบšเบชเบธเปˆเบกเบšเปเปˆเป„เบ”เป‰เบœเบปเบ™ - เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ„เบทเบ™เบฅเบฐเบซเบฑเบ” lua เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบญเบญเบเปƒเบ™เบฎเบธเปˆเบ™ 1.15 (เปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบฑเป‰เบ™). เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚ nginx 1.14.2 เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบšเบšเบชเบธเปˆเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบกเบฑเบ™. เบ™เบตเป‰เป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ. เปเบกเบ‡เป„เบกเป‰เบ™เบตเป‰เบŠเบฐเบ™เบฐเบ›เบฐเป€เบžเบ” "Captain เบšเปเปˆเบˆเบฐเปเบˆเป‰เบ‡".

เบ‚เปเป‰เบชเบฐเบซเบผเบธเบš:

เบกเบฑเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบฅเบฐเบ•เบทเปˆเบ™เป€เบ•เบฑเป‰เบ™เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒเปเบกเบ‡เป„เบกเป‰เบ™เบตเป‰). 

  • เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบŠเบญเบเบซเบฒเบเบฒเบ™เป€เบซเบ™เบฑเบ‡เบ•เบตเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ ELK เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบก rps เปƒเบ™เปเบ•เปˆเบฅเบฐ backend เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ™เป‰เปเบฒ, เบ•เบดเบ”เบ•เบฒเบกเป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฒเบเบˆเบธเบ”เบ‚เบญเบ‡ nginx. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบซเบฒ. 

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบชเปˆเบงเบ™เปƒเบซเบเปˆเบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเปˆเบฝเบ‡เป„เบ”เป‰เบ”เป‰เบงเบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”เบเบงเปˆเบฒเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบˆเบทเปˆเบˆเปเบฒเบเบปเบ”เบซเบกเบฒเบเบ‚เบญเบ‡ Murphy เบชเบฐเป€เบซเบกเบต: เบชเบดเปˆเบ‡เปƒเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฒเบกเบฒเบ”โ€‹เป„เบ›โ€‹เบœเบดเบ”โ€‹เบเปโ€‹เบˆเบฐโ€‹เบœเบดเบ” เปเบฅเบฐเบชเป‰เบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบกเบฑเบ™. 

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™