เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Yandex.Cloud. เบžเบฒเบเบ—เบต 000

เบชเบฐเบšเบฒเบเบ”เบตเบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบ—เบธเบเบ„เบปเบ™!

* เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบญเบ‡เบ›เบฐเบŠเบธเบกเป€เบ›เบตเบ” REBRAIN & Yandex.Cloud, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบงเบดเบ”เบตเป‚เบญ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป„เบ”เป‰เบ—เบตเปˆเบฅเบดเป‰เบ‡เบ™เบตเป‰ - https://youtu.be/cZLezUm0ekE

เป€เบกเบทเปˆเบญเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบกเบตเป‚เบญเบเบฒเบ”เบ—เบปเบ”เบฅเบญเบ‡เปƒเบŠเป‰ Yandex.Cloud เปเบšเบšเบชเบปเบ”เป†. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ probe เบเบฒเบงเปเบฅเบฐเบเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ›เบฐเบ–เบดเป‰เบกเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง blog Wordpress เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบกเบตเบžเบทเป‰เบ™เบ–เบฒเบ™เบŸเบฑเบ‡ - เบกเบฑเบ™เบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญเป€เบเบตเบ™เป„เบ›. เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบ„เบดเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเบฑเบšเปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป€เบซเบ”เบเบฒเบ™เปƒเบ™เป‚เบซเบกเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบญเบญเบ™เป„เบฅเบ™เปŒ (เปเบฅเบฐเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ) somehow เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบžเบนเป€เบ‚เบปเบฒเบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบเบฒเบ™เบเบฐเบ—เปเบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™ - เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบเบกเบญเบญเบ™เป„เบฅเบ™เปŒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบดเบ•เบดเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเบกเบฑเบเบˆเบฐเบ•เบดเบ”เปเบฅเบฐเบฅเบถเบšเป€เบ„เบทเปˆเบญเบ‡เบซเบผเบดเป‰เบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบซเบผเบทเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบœเบนเป‰เปƒเบŠเป‰เบญเบญเบเบˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบŠเบทเป‰เบซเบเบฑเบ‡ (เบชเบฐเบšเบฒเบเบ”เบต, Yandex.Metrica).

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ: เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ golang, เบ—เบปเบ”เบชเบญเบš kafka vs rabbitmq vs yqs, เบ‚เบฝเบ™เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบเบธเปˆเบก Clickhouse เปเบฅเบฐเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ yandex datalens. เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบ”เบนเบเบฒเบ™เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบธเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ docker, terraform, gitlab ci เปเบฅเบฐ, เปเบ™เปˆเบ™เบญเบ™, prometheus. เป„เบ›โ€‹เบเบฑเบ™โ€‹เป€เบฅเบตเบ!

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

เบžเบฒเบเบ—เบต 1 (เบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบญเปˆเบฒเบ™เบกเบฑเบ™). เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบชเบฐเป€เบžเบฒเบฐเปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚, เปเบฅเบฐเบเบฑเบ‡เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ golang.
เบžเบฒเบเบ—เบต 2. เบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบญเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เปเบฅเบฐเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”.
เบžเบฒเบเบ—เบต 3. เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบ„เบดเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบขเบนเปˆเปƒเบ™ buffer เปเบฅเบฐเบšเปเปˆเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ, เปเบฅเบฐเบเบฑเบ‡เบ›เบฝเบšเบ—เบฝเบš kafka, rabbitmq เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบ–เบง yandex.
เบžเบฒเบเบ—เบต 4 เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบธเปˆเบก Clickhouse, เบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™ streaming เป€เบžเบทเปˆเบญเป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ buffer เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เปเบฅเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™ datalens.
เบžเบฒเบเบ—เบต 5 เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ™เปเบฒเป€เบญเบปเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฎเบนเบšเบฎเปˆเบฒเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก - เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ ci / cd เป‚เบ”เบเปƒเบŠเป‰ gitlab ci, เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ prometheus เปเบฅเบฐ consul.

ะขะ—

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ - เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

  1. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เป€เบŠเบฑเปˆเบ™: events.kis.im (kis.im เปเบกเปˆเบ™เป‚เบ”เป€เบกเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เบ•เบฐเบซเบผเบญเบ”เบ—เบธเบเบšเบปเบ”เบ„เบงเบฒเบก), เป€เบŠเบดเปˆเบ‡เบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเป€เบซเบ”เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ HTTPS.
  2. เป€เบซเบ”เบเบฒเบ™เปเบกเปˆเบ™ json เบ‡เปˆเบฒเบเป†เป€เบŠเบฑเปˆเบ™: {โ€œeventโ€: โ€œviewโ€, โ€œosโ€: โ€œlinuxโ€, โ€œbrowserโ€: โ€œchromeโ€}. เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบžเบตเปˆเบกเบ—เบปเปˆเบ‡เบ™เบฒเบ•เบทเปˆเบกเบญเบตเบ, เปเบ•เปˆเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบกเบตเบšเบปเบ”เบšเบฒเบ”เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ protobuf.
  3. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™ 10 เป€เบซเบ”เบเบฒเบ™เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต.
  4. เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเบ”เบตเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเบชเปˆเบงเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเป„เบ›เบซเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ.
  5. เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เป‰เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบžเบฝเบ‡เบžเปเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฅเบญเบ”เบ‚เบญเบ‡เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡ (เป€เบ–เบดเบ‡เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เปเบ™เปˆเบ™เบญเบ™).

เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ

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

เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Yandex.Cloud. เบžเบฒเบเบ—เบต 000

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบกเบต:

1. เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบŠเป‰เบฒเบเปเบกเปˆเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เป€เบซเบ”เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบœเบนเป‰เบ™เบชเปเบฒเป€เบฅเบฑเบ”เบฅเบฐเบ”เบฑเบšเปƒเบ™ toy เปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบซเบผเบฒเบ”เบซเบผเบทเบชเป‰เบฒเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบฎเป‰เบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒเป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ›เบปเบเบเบฐเบ•เบด. เป€เบซเบ”เบเบฒเบ™, เบ•เบฒเบกเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบชเบฐเป€เบžเบฒเบฐ, เปเบกเปˆเบ™ json เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ - events.kis.im .

2. เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™:

  • เบกเบตเบขเบนเปˆเบชเบฐเป€เปเบต. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, keepalived, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ›เปˆเบฝเบ™ IP virtual เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒ.
  • เบขเบธเบ” TLS. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบขเบธเบ” TLS เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™. เบ—เปเบฒเบญเบดเบ”, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™, เปเบฅเบฐเบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เป€เบžเบทเปˆเบญเบšเบฑเบ™เป€เบ—เบปเบฒเบžเบฒเบฅเบฐเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ backend เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.
  • เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบฒเป€เบ‚เบปเป‰เบฒเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ backend เบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰. เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบกเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒ load balancers เบˆเบฐเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฑเบš nodes เบฅเบปเป‰เบกเป€เบซเบฅเบง.

3. เบซเบผเบฑเบ‡เบˆเบฒเบเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบŠเบตเบŸเป€เบงเบตเบ—เบตเปˆเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ. เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบœเปˆเบฒเบ™ HTTP, เบเบงเบ”เบชเบญเบš json เบ—เบตเปˆเบชเบปเปˆเบ‡เปเบฅเบฐเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ buffer.

4. เปเบœเบ™เบงเบฒเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™ kafka เป€เบ›เบฑเบ™ buffer, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบญเบทเปˆเบ™เป†เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฝเบšเบ—เบฝเบš Kafka, rabbitmq เปเบฅเบฐ yqs เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเบชเบฒเบก.

5. เบˆเบธเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ Clickhouse - เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ columnar เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบงเบ‡เบซเบผเบฒเบ. เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ buffer เบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡ (เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก 4).

เบเบฒเบ™เบญเบญเบเปเบšเบšเบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปเบ•เปˆเบฅเบฐเบŠเบฑเป‰เบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™. เป€เบŠเบตเบšเป€เบงเบต backend เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบกเบทเป„เบ”เป‰ - เบ‚เปเปƒเบซเป‰เป€เบžเบตเปˆเบกเบชเบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡ - เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฑเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบšเบฑเบšเป€เบŸเบตเปเบšเบš Kafka เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ - เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบฅเบฐเป‚เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบซเป‰เบเบฑเบšเบžเบงเบเบกเบฑเบ™. Clickhouse เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบกเบฑเบ™ - เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰ :) เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐ shard เบ‚เปเป‰เบกเบนเบ™.

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปˆเบงเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™เบžเบนเบกเบชเบฑเบ™เบ–เบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเบเบงเปˆเบฒ:

เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Yandex.Cloud. เบžเบฒเบเบ—เบต 000

เปƒเบ™เปเบ•เปˆเบฅเบฐ geolocation เบžเบงเบเป€เบฎเบปเบฒ deploy เป€เบ›เบฑเบ™ load balancer เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐ kafka. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, 2 เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, 3 kafka nodes เปเบฅเบฐ cloud balancer, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, cloudflare, เปเบกเปˆเบ™เบžเบฝเบ‡เบžเป, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เป‚เบซเบ™เบ”เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ—เบตเปˆเบขเบนเปˆ IP เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เป‚เบ”เบเบฅเบนเบเบ„เป‰เบฒเบญเบฒเป€เบกเบฅเบดเบเบฒเบˆเบฐเบฅเบปเบ‡เป€เบ—เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบญเบฒเป€เบกเบฅเบดเบเบฒ. เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบญเบฒเบŸเบฃเบดเบเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบญเบฒเบŸเบฃเบดเบเบฒ.

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

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบˆเบฑเบ”เบฎเบฝเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ - เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฑเปˆเบ™ Yandex.Cloud!

เบเบฒเบ™เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ

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

เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เบถเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡ (เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบญเบ‡เบชเบฒเบกเบŠเบปเปˆเบงเป‚เบกเบ‡), เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/main.go.

เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบˆเบธเบ”เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰:

1. เป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบชเบญเบ‡เบ—เบธเบ‡. เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบžเบญเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบŸเบฑเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป http เบ‚เบฒเป€เบ‚เบปเป‰เบฒ (-addr). เบญเบฑเบ™เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ kafka เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบฑเบ™เบ—เบถเบเป€เบซเบ”เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (-kafka):

addr     = flag.String("addr", ":8080", "TCP address to listen to")
kafka    = flag.String("kafka", "127.0.0.1:9092", "Kafka endpointsโ€)

2. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” sarama ([] github.com/Shopify/sarama) เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒเบเบธเปˆเบก kafka. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบ—เบฑเบ™โ€‹เปƒเบ”โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เปเบ™โ€‹เปƒเบชเปˆโ€‹เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹:

config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForLocal
config.Producer.Compression = sarama.CompressionSnappy
config.Producer.Return.Successes = true

3. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบกเบตเบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒ prometheus, เป€เบŠเบดเปˆเบ‡เป€เบเบฑเบšเบเปเบฒ metrics เบ•เปˆเบฒเบ‡เป†, เป€เบŠเบฑเปˆเบ™:

  • เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹;
  • เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ (เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบญเปˆเบฒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ•เบญเบšโ€‹, json เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบซเบฑเบโ€‹, เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ‚เบฝเบ™โ€‹เป„เบ› Kafkaโ€‹)โ€‹;
  • เป€เบงเบฅเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบซเบ™เบถเปˆเบ‡เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ, เบฅเบงเบกเบ—เบฑเบ‡เป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš Kafka.

4. เบชเบฒเบกเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ—เบตเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

  • / เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš - เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบ„เบทเบ™ ok เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบŠเบตเบงเบดเบ”เบขเบนเปˆ. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบกเบตเบ‚เบญเบ‡เบเบธเปˆเบก Kafka.
  • /metrics - เบญเบตเบ‡เบ•เบฒเบก url เบ™เบตเป‰, เบฅเบนเบเบ„เป‰เบฒ prometheus เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™ metrics เบ—เบตเปˆเบกเบฑเบ™เป„เบ”เป‰เป€เบเบฑเบšเบเปเบฒ.
  • /post เปเบกเปˆเบ™เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆ POST เบฎเป‰เบญเบ‡เบ‚เปเบเบฑเบš json เบžเบฒเบเปƒเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เบชเบญเบš json เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ–เป‰เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบต, เบกเบฑเบ™เบˆเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบเบธเปˆเบก Kafka.

เบ‚เป‰เบญเบเบˆเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบˆเบญเบ‡เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบšเปเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบš - เบกเบฑเบ™เบชเบฒเบกเบฒเบ” (เปเบฅเบฐเบ„เบงเบ™!) เบชเปเบฒเป€เบฅเบฑเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบขเบธเบ”เบเบฒเบ™เปƒเบŠเป‰ net/http เบ—เบตเปˆเบกเบตเปƒเบ™เบ•เบปเบงเปเบฅเบฐเบ›เปˆเบฝเบ™เป„เบ›เป€เบ›เบฑเบ™ fasthttp เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒ. เบซเบผเบทเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเป€เบงเบฅเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ cpu เป‚เบ”เบเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡ json เป„เบ›เบซเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเบกเบฒ - เป€เบกเบทเปˆเบญเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเป‚เบญเบ™เบˆเบฒเบ buffer เป„เบ›เบซเบฒเบเบธเปˆเบก clickhouse.

เบ™เบญเบเบˆเบฒเบเบ”เป‰เบฒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เปเบฅเบฐเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบœเปˆเบฒเบ™ docker. Dockerfile เบชเบธเบ”เบ—เป‰เบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™ https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/Dockerfile. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบกเบฑเบ™เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เบˆเบธเบ”เบ”เบฝเบงเบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš multistage, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบฎเบนเบšเบžเบฒเบšเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบžเบฒเบŠเบฐเบ™เบฐเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เปƒเบ™เป€เบกเบ„

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ cloud.yandex.ru. เบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ—เบธเบเบ‚เบปเบ‡เป€เบ‚เบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบšเบฑเบ™เบŠเบตเปเบฅเบฐเปƒเบซเป‰เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เป€เบ‡เบดเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, cloud เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เปƒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ„เบฅเบฒเบง. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปƒเบ™ Yandex.Cloud, เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Yandex.Cloud. เบžเบฒเบเบ—เบต 000

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ„เบฅเบฒเบงเบซเบผเบฒเบเบญเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบŠเบตเบ”เบฝเบง. เปเบฅเบฐเบžเบฒเบเปƒเบ™เบŸเบฑเบ‡, เบชเป‰เบฒเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™ - https://cloud.yandex.ru/docs/resource-manager/concepts/resources-hierarchy. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ‚เป‰เบญเบเบกเบฑเบเบˆเบฐเบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบกเบฑเบ™เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก. เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเบ•เบฑเป‰เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบญเบเบฐเบชเบฒเบ™เป„เบ”เป‰เบŠเปˆเบงเบเบ‚เป‰เบญเบเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบˆเบปเป‰เบฒเบชเบถเบเบชเบฒเบกเบฑเบ™.

เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบ„เบฅเบฒเบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เป€เบงเบฑเบšเปเบฅเบฐ console utility - yc. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ”เบฝเบง (เบชเปเบฒเบฅเบฑเบš Linux เปเบฅเบฐ Mac Os):

curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

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

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบนเบเบ„เป‰เบฒเบชเปเบฒเบฅเบฑเบš Windows, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ เบ—เบตเปˆเบ™เบตเป‰ เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ” yc initเป€เบžเบทเปˆเบญเบ›เบฑเบšเปเบ•เปˆเบ‡เบกเบฑเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™:

vozerov@mba:~ $ yc init
Welcome! This command will take you through the configuration process.
Please go to https://oauth.yandex.ru/authorize?response_type=token&client_id= in order to obtain OAuth token.

Please enter OAuth token:
Please select cloud to use:
 [1] cloud-b1gv67ihgfu3bp (id = b1gv67ihgfu3bpt24o0q)
 [2] fevlake-cloud (id = b1g6bvup3toribomnh30)
Please enter your numeric choice: 2
Your current cloud has been set to 'fevlake-cloud' (id = b1g6bvup3toribomnh30).
Please choose folder to use:
 [1] default (id = b1g5r6h11knotfr8vjp7)
 [2] Create a new folder
Please enter your numeric choice: 1
Your current folder has been set to 'default' (id = b1g5r6h11knotfr8vjp7).
Do you want to configure a default Compute zone? [Y/n]
Which zone do you want to use as a profile default?
 [1] ru-central1-a
 [2] ru-central1-b
 [3] ru-central1-c
 [4] Don't set default zone
Please enter your numeric choice: 1
Your profile default Compute zone has been set to 'ru-central1-a'.
vozerov@mba:~ $

เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ - เบ—เปเบฒเบญเบดเบ”เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบš oauth token เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบŸเบฑเบ‡, เป€เบฅเบทเบญเบเบŸเบฑเบ‡เปเบฅเบฐเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเบฐเปƒเบŠเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบŠเบตเบซเบผเบฒเบเบซเบผเบทเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบงเบ”เบฝเบงเบเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒ yc config เบชเป‰เบฒเบ‡เปเบฅเบฐเบชเบฐเบซเบผเบฑเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™.

เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰, เบ—เบตเบกเบ‡เบฒเบ™ Yandex.Cloud เบ‚เบฝเบ™เป„เบ”เป‰เบ”เบตเบซเบผเบฒเบ plugin เบชเปเบฒเบฅเบฑเบš terraform เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ„เบฅเบฒเบง. เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบเบฐเบเบฝเบก git repository, เบšเปˆเบญเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบญเบฐเบ—เบดเบšเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก - https://github.com/rebrainme/yandex-cloud-events/. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เปƒเบซเป‰ clone เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™:


vozerov@mba:~ $ git clone https://github.com/rebrainme/yandex-cloud-events/ events
Cloning into 'events'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 100 (delta 37), reused 89 (delta 26), pack-reused 0
Receiving objects: 100% (100/100), 25.65 KiB | 168.00 KiB/s, done.
Resolving deltas: 100% (37/37), done.
vozerov@mba:~ $ cd events/terraform/

เบ—เบธเบเบ•เบปเบงเปเบ›เบซเบผเบฑเบเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ terraform เปเบกเปˆเบ™เบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ main.tf. เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ private.auto.tfvars เปƒเบ™เป‚เบŸเบ™เป€เบ”เบต terraform เบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเบซเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

# Yandex Cloud Oauth token
yc_token = ""
# Yandex Cloud ID
yc_cloud_id = ""
# Yandex Cloud folder ID
yc_folder_id = ""
# Default Yandex Cloud Region
yc_region = "ru-central1-a"
# Cloudflare email
cf_email = ""
# Cloudflare token
cf_token = ""
# Cloudflare zone id
cf_zone_id = ""

เบ•เบปเบงเปเบ›เบ—เบฑเบ‡เปเบปเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบฅเบฒเบเบเบฒเบ™ yc config, เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฑเบšเบ„เปˆเบฒ console utility เปเบฅเป‰เบง. เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เบณเปƒเบซเป‰เป€เบžเบตเปˆเบก private.auto.tfvars เปƒเบชเปˆ .gitignore เบ—เบฑเบ™เบ—เบต, เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป€เบœเบตเบเปเบœเปˆเบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบ•เบปเบงเป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™.

เปƒเบ™ private.auto.tfvars เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เบฅเบฐเบšเบธเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ Cloudflare - เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ DNS เปเบฅเบฐ proxy เป‚เบ”เป€เบกเบ™เบ•เบปเป‰เบ™เบ•เป events.kis.im เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ cloudflare, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบญเบปเบฒเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ cloudflare เปƒเบ™ main.tf เปเบฅเบฐเป„เบŸเบฅเปŒ dns.tf, เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบ dns เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

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

เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบฐเป€เปเบทเบญเบ™

เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เป‰เบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เป€เบกเบ„เปƒเบซเบกเปˆ, เบ—เปˆเบฒเบ™เบˆเบฐเบกเบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐ 3 เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™ - เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบ‚เบ”เบ—เบตเปˆเบกเบต. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบขเบฒเบเบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เปเบœเบ™เบงเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ Yandex.Cloud เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰ (เบŠเบทเปˆเบชเบฑเบ”เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบ https://cloud.yandex.ru/docs/vpc/concepts/)

เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Yandex.Cloud. เบžเบฒเบเบ—เบต 000

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

เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ network.tf เบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเปˆเบงเบ™เบ•เบปเบงเบ—เบปเปˆเบงเป„เบ›เบซเบ™เบถเปˆเบ‡เบžเบฒเบเปƒเบ™เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบก subnets เบเบฑเบšเบกเบฑเบ™เปƒเบ™เป€เบ‚เบ”เบ—เบตเปˆเบกเบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ - internal-a (172.16.1.0/24), internal-b (172.16.2.0/24), internal-c (172.16.3.0/24). ).

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ terraform เปเบฅเบฐเบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ:

vozerov@mba:~/events/terraform (master) $ terraform init
... skipped ..

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_vpc_subnet.internal-a -target yandex_vpc_subnet.internal-b -target yandex_vpc_subnet.internal-c

... skipped ...

Plan: 4 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

yandex_vpc_network.internal: Creating...
yandex_vpc_network.internal: Creation complete after 3s [id=enp2g2rhile7gbqlbrkr]
yandex_vpc_subnet.internal-a: Creating...
yandex_vpc_subnet.internal-b: Creating...
yandex_vpc_subnet.internal-c: Creating...
yandex_vpc_subnet.internal-a: Creation complete after 6s [id=e9b1dad6mgoj2v4funog]
yandex_vpc_subnet.internal-b: Creation complete after 7s [id=e2liv5i4amu52p64ac9p]
yandex_vpc_subnet.internal-c: Still creating... [10s elapsed]
yandex_vpc_subnet.internal-c: Creation complete after 10s [id=b0c2qhsj2vranoc9vhcq]

Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

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

เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual

เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual - เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบ—เบตเบชเบญเบ‡เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ kafka, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ. เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ configure prometheus เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ virtual เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเปƒเบŠเป‰ ansible, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ terraform, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ ansible เบฎเบธเปˆเบ™เบซเบผเป‰เบฒเบชเบธเบ”. เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบšเบปเบ”เบšเบฒเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบเบฑเบš galaxy ansible:

vozerov@mba:~/events/terraform (master) $ cd ../ansible/
vozerov@mba:~/events/ansible (master) $ ansible-galaxy install -r requirements.yml
- cloudalchemy-prometheus (master) is already installed, skipping.
- cloudalchemy-grafana (master) is already installed, skipping.
- sansible.kafka (master) is already installed, skipping.
- sansible.zookeeper (master) is already installed, skipping.
- geerlingguy.docker (master) is already installed, skipping.
vozerov@mba:~/events/ansible (master) $

เบžเบฒเบเปƒเบ™เป‚เบŸเบ™เป€เบ”เบต ansible เบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ .ansible.cfg เบ—เบตเปˆเบ‚เป‰เบญเบเปƒเบŠเป‰. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบฒเบชเบฐเบ”เบงเบ.

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบต ssh-agent เปเบฅเปˆเบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเบเบฐเปเบˆ ssh, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ terraform เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป„เบ”เป‰. เปเบ™เปˆเบ™เบญเบ™, เบ‚เป‰เบญเบเบžเบปเบšเบšเบฑเบ™เบซเบฒเปƒเบ™ os x: https://github.com/ansible/ansible/issues/32499#issuecomment-341578864. เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เป€เบซเบ”เบเบฒเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบญเบตเบ, เปƒเบซเป‰เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ›เบ™เป‰เบญเบเป†เปƒเบชเปˆ env เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง Terraform:

vozerov@mba:~/events/terraform (master) $ export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

เปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบกเบต terraform เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_compute_instance.build -target yandex_compute_instance.monitoring -target yandex_compute_instance.kafka
yandex_vpc_network.internal: Refreshing state... [id=enp2g2rhile7gbqlbrkr]
data.yandex_compute_image.ubuntu_image: Refreshing state...
yandex_vpc_subnet.internal-a: Refreshing state... [id=e9b1dad6mgoj2v4funog]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

... skipped ...

Plan: 3 to add, 0 to change, 0 to destroy.

... skipped ...

เบ–เป‰เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™ (เปเบฅเบฐเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™), เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบชเบฒเบกเป€เบ„เบทเปˆเบญเบ‡ virtual:

  1. build - เป€เบ„เบทเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. Docker เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบ Ansible.
  2. monitoring - เป€เบ„เบทเปˆเบญเบ‡เบ•เบดเบ”เบ•เบฒเบก - prometheus & grafana เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบชเปˆเบกเบฑเบ™. เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš / เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™: admin / admin
  3. kafka เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ kafka, เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เปƒเบ™เบžเบญเบ” 9092.

เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”:

vozerov@mba:~/events (master) $ yc compute instance list
+----------------------+------------+---------------+---------+---------------+-------------+
|          ID          |    NAME    |    ZONE ID    | STATUS  |  EXTERNAL IP  | INTERNAL IP |
+----------------------+------------+---------------+---------+---------------+-------------+
| fhm081u8bkbqf1pa5kgj | monitoring | ru-central1-a | RUNNING | 84.201.159.71 | 172.16.1.35 |
| fhmf37k03oobgu9jmd7p | kafka      | ru-central1-a | RUNNING | 84.201.173.41 | 172.16.1.31 |
| fhmt9pl1i8sf7ga6flgp | build      | ru-central1-a | RUNNING | 84.201.132.3  | 172.16.1.26 |
+----------------------+------------+---------------+---------+---------------+-------------+

เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ, เปเบฅเบฐเบˆเบฒเบเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ•เบฐเบซเบผเบญเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ‚เป‰เบญเบเบˆเบฐเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆ IP เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™ ssh เปเบฅเบฐเบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบŠเบต cloudflare เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš terraform, เบฎเบนเป‰เบชเบถเบเบงเปˆเบฒเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบŠเบทเปˆ DNS เบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆ.
เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual, IP เบžเบฒเบเปƒเบ™เปเบฅเบฐเบŠเบทเปˆ DNS เบžเบฒเบเปƒเบ™เปเบกเปˆเบ™เปƒเบซเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบžเบฒเบเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเบŠเบทเปˆ:

ubuntu@build:~$ ping kafka.ru-central1.internal
PING kafka.ru-central1.internal (172.16.1.31) 56(84) bytes of data.
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=1 ttl=63 time=1.23 ms
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=2 ttl=63 time=0.625 ms
^C
--- kafka.ru-central1.internal ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.625/0.931/1.238/0.308 ms

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

เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹

เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ, เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ - เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบเบญเบšเบกเบฑเบ™เปเบฅเบฐเป€เบœเบตเบเปเบœเปˆเบกเบฑเบ™. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ docker build เบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™เบˆเบฒเบ Yandex - container registry . เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เปเบฒเบญเบดเบ”.

เบžเบงเบเป€เบฎเบปเบฒเบ„เบฑเบ”เบฅเบญเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เบเปเปˆเบชเป‰เบฒเบ‡, เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบœเปˆเบฒเบ™ ssh เปเบฅเบฐเบ›เบฐเบเบญเบšเบฎเบนเบšเบžเบฒเบš:

vozerov@mba:~/events/terraform (master) $ cd ..
vozerov@mba:~/events (master) $ rsync -av app/ [email protected]:app/

... skipped ...

sent 3849 bytes  received 70 bytes  7838.00 bytes/sec
total size is 3644  speedup is 0.93

vozerov@mba:~/events (master) $ ssh 84.201.132.3 -l ubuntu
ubuntu@build:~$ cd app
ubuntu@build:~/app$ sudo docker build -t app .
Sending build context to Docker daemon  6.144kB
Step 1/9 : FROM golang:latest AS build
... skipped ...

Successfully built 9760afd8ef65
Successfully tagged app:latest

เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเบนเป‰เบฎเบปเบšเปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ” - เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป‚เบ”เบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เป„เบ›เบ—เบตเปˆ kafka:

ubuntu@build:~/app$ sudo docker run --name app -d -p 8080:8080 app /app/app -kafka=kafka.ru-central1.internal:9092</code>

ะก ะปะพะบะฐะปัŒะฝะพะน ะผะฐัˆะธะฝะบะธ ะผะพะถะฝะพ ะพั‚ะฟั€ะฐะฒะธั‚ัŒ ั‚ะตัั‚ะพะฒั‹ะน event ะธ ะฟะพัะผะพั‚ั€ะตั‚ัŒ ะฝะฐ ะพั‚ะฒะตั‚:

<code>vozerov@mba:~/events (master) $ curl -D - -s -X POST -d '{"key1":"data1"}' http://84.201.132.3:8080/post
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 13 Apr 2020 13:53:54 GMT
Content-Length: 41

{"status":"ok","partition":0,"Offset":0}
vozerov@mba:~/events (master) $

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบเบฑเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบŠเบตเป‰เบšเบญเบ id เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เปเบฅเบฐเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒ. เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™ Yandex.Cloud เปเบฅเบฐเบญเบฑเบšเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™ (เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เบชเบฒเบกเป€เบชเบฑเป‰เบ™เปเบกเปˆเบ™เป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ registry.tf). เบชเป‰เบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_container_registry.events

... skipped ...

Plan: 1 to add, 0 to change, 0 to destroy.

... skipped ...

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เปƒเบ™เบšเบฑเบ™เบŠเบตเบšเบฑเบ™เบˆเบธ - เป‚เบ”เบเปƒเบŠเป‰ oauth token, iam token, เบซเบผเบทเบฅเบฐเบซเบฑเบ”เบšเบฑเบ™เบŠเบตเบšเปเบฅเบดเบเบฒเบ™. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™. https://cloud.yandex.ru/docs/container-registry/operations/authentication. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบšเบฑเบ™เบŠเบตเบšเปเบฅเบดเบเบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เบชเป‰เบฒเบ‡เบšเบฑเบ™เบŠเบต:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_iam_service_account.docker -target yandex_resourcemanager_folder_iam_binding.puller -target yandex_resourcemanager_folder_iam_binding.pusher

... skipped ...

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

เบ”เบฝเบงเบ™เบตเป‰เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฐเปเบˆ เบชเบณ เบฅเบฑเบšเบกเบฑเบ™:

vozerov@mba:~/events/terraform (master) $ yc iam key create --service-account-name docker -o key.json
id: ajej8a06kdfbehbrh91p
service_account_id: ajep6d38k895srp9osij
created_at: "2020-04-13T14:00:30Z"
key_algorithm: RSA_2048

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš id เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เป‚เบญเบ™เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš:

vozerov@mba:~/events/terraform (master) $ scp key.json [email protected]:
key.json                                                                                                                    100% 2392   215.1KB/s   00:00

vozerov@mba:~/events/terraform (master) $ ssh 84.201.132.3 -l ubuntu

ubuntu@build:~$ cat key.json | sudo docker login --username json_key --password-stdin cr.yandex
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
ubuntu@build:~$

เป€เบžเบทเปˆเบญเบญเบฑเบšเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบšเปƒเบชเปˆเบ—เบฐเบšเบฝเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ ID เบšเบฑเบ™เบŠเบตเบšเบฑเบ™เบˆเบธ, เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบกเบฑเบ™เบกเบฒเบˆเบฒเบ yc utility:

vozerov@mba:~ $ yc container registry get events
id: crpdgj6c9umdhgaqjfmm
folder_id:
name: events
status: ACTIVE
created_at: "2020-04-13T13:56:41.914Z"

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเปเบ—เบฑเบเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ”เป‰เบงเบเบŠเบทเปˆเปƒเบซเบกเปˆเปเบฅเบฐเบญเบฑเบšเป‚เบซเบฅเบ”:

ubuntu@build:~$ sudo docker tag app cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
ubuntu@build:~$ sudo docker push cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
The push refers to repository [cr.yandex/crpdgj6c9umdhgaqjfmm/events]
8c286e154c6e: Pushed
477c318b05cb: Pushed
beee9f30bc1f: Pushed
v1: digest: sha256:1dd5aaa9dbdde2f60d833be0bed1c352724be3ea3158bcac3cdee41d47c5e380 size: 946

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบงเปˆเบฒโ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เป‚เบซเบฅเบ”โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบœเบปเบ™โ€‹:

vozerov@mba:~/events/terraform (master) $ yc container repository list
+----------------------+-----------------------------+
|          ID          |            NAME             |
+----------------------+-----------------------------+
| crpe8mqtrgmuq07accvn | crpdgj6c9umdhgaqjfmm/events |
+----------------------+-----------------------------+

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ yc utility เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Linux, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡

yc container registry configure-docker

เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ docker.

เบชเบฐเบซเบฅเบธเบš

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบซเบ™เบฑเบเบซเบผเบฒเบเปเบฅเบฐเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

  1. เบžเบงเบเป€เบฎเบปเบฒเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.
  2. เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ golang เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.
  3. เบžเบงเบเป€เบฎเบปเบฒเป€เบเบฑเบšเบเปเบฒเบกเบฑเบ™เปเบฅเบฐ poured เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธเป€เบญเบเบฐเบŠเบปเบ™.

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

เป€เบญเบเบฐเบชเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบงเบดเบ”เบตเป‚เบญเบ‚เบญเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบกเป€เบ›เบตเบ” REBRAIN & Yandex.Cloud: เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบš 10 เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบตเปƒเบ™ Yandex Cloud - https://youtu.be/cZLezUm0ekE

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบดเบ”เบˆเบฐเบเปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบญเบ™เป„เบฅเบ™เปŒเปเบฅเบฐเบ–เบฒเบกเบ„เปเบฒเบ–เบฒเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš DevOps เป‚เบ”เบเบŠเปˆเบญเบ‡ REBRAIN.

เบžเบงเบเป€เบฎเบปเบฒเบ‚เปเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ‚เบญเบšเปƒเบˆเป€เบ›เบฑเบ™เบžเบดเป€เบชเบ”เบ•เปเปˆ Yandex.Cloud เบชเปเบฒเบฅเบฑเบšเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเป€เบซเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒ - https://cloud.yandex.ru/prices

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเป‰เบฒเบเป„เบ›เบŸเบฑเบ‡เบ„เบฅเบฒเบงเบซเบผเบทเบกเบตเบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบฎเบนเป‰เบชเบถเบเบงเปˆเบฒเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป.

PS เบžเบงเบเป€เบฎเบปเบฒเบกเบต 2 เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบŸเบฃเบตเบ•เปเปˆเป€เบ”เบทเบญเบ™, เบšเบฒเบ‡เบ—เบตเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™.

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

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