рдЖрдореНрд╣реА Yandex.Cloud рдордзреНрдпреЗ 10 рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ. рднрд╛рдЧ 000

рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░ рдорд┐рддреНрд░рд╛рдВрдиреЛ!

* рд╣рд╛ рд▓реЗрдЦ REBRAIN рдЖрдгрд┐ Yandex.Cloud рдУрдкрди рд╡рд░реНрдХрд╢реЙрдкрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ, рдЬрд░ рддреБрдореНрд╣реА рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд╣рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрдд рдЕрд╕рд╛рд▓ рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЛ рдпрд╛ рд▓рд┐рдВрдХрд╡рд░ рдорд┐рд│реЗрд▓ - https://youtu.be/cZLezUm0ekE

рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд▓реАрдХрдбреЗрдЪ Yandex.Cloud рдереЗрдЯ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдорд┐рд│рд╛рд▓реА. рдЖрдореНрд╣рд╛рд▓рд╛ рджреАрд░реНрдШ рдЖрдгрд┐ рдХрдареЛрд░ рддрдкрд╛рд╕рдгреА рдХрд░рд╛рдпрдЪреА рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдХреНрд▓рд╛рдЙрдб рдмреЗрд╕рд╕рд╣ рдПрдХ рд╕рд╛рдзрд╛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдмреНрд▓реЙрдЧ рд▓реЙрдиреНрдЪ рдХрд░рдгреНрдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рд╕реЛрдбреВрди рджрд┐рд▓реА - рддреЗ рдЦреВрдк рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ рд╣реЛрддреЗ. рдХрд╛рд╣реА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдЬрд╡рд│рдЪреНрдпрд╛ рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдо рдореЛрдбрдордзреНрдпреЗ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдорд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рдмрд╣реБрд╕рдВрдЦреНрдп рдСрдирд▓рд╛рдЗрди (рдЖрдгрд┐ рдХреЗрд╡рд│ рдирд╛рд╣реА) рд╡реНрдпрд╡рд╕рд╛рдп рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдмрджреНрджрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреГрддреАрдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрдЪрд╛ рдбреЛрдВрдЧрд░ рдЧреЛрд│рд╛ рдХрд░рддрд╛рдд. рдХрдореАрддрдХрдореА, рдХрд╛рд╣реА рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рддреБрдореНрд╣реА рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЕрд╕рд╛рд▓ рддрд░, рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдмрд╣реБрддреЗрдХрджрд╛ рдХреЛрдгрддреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЕрдбрдХрддрд╛рдд рдЖрдгрд┐ рддреБрдордЪреА рдЦреЗрд│рдгреА рд╣рдЯрд╡рддрд╛рдд рдпрд╛рдЪреА рдЖрдХрдбреЗрд╡рд╛рд░реА рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛. рдХрд┐рдВрд╡рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдХрд╛рд╣реАрд╣реА рдЦрд░реЗрджреА рди рдХрд░рддрд╛ рддреБрдордЪреА рд╕рд╛рдЗрдЯ рдХрд╛ рд╕реЛрдбрддрд╛рдд (рд╣реЕрд▓реЛ, Yandex.Metrica).

рддрд░, рдЖрдордЪреА рдХрдерд╛: рдЖрдореНрд╣реА рдЧреЛрд▓рдВрдЧрдордзреНрдпреЗ рдЕрд░реНрдЬ рдХрд╕рд╛ рд▓рд┐рд╣рд┐рд▓рд╛, kafka vs rabbitmq vs yqs рдЪрд╛рдЪрдгреА рдХреЗрд▓реА, рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрдгрд┐ yandex datalens рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдЗрдЬ рдХреЗрд▓рд╛. рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рд╣реЗ рд╕рд░реНрд╡ рдбреЙрдХрд░, рдЯреЗрд░рд╛рдлреЙрд░реНрдо, рдЧрд┐рдЯрд▓реЕрдм рд╕реАрдЖрдп рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдиреА рдпреБрдХреНрдд рд╣реЛрддреЗ. рдЪрд▓ рдЬрд╛рдКрдпрд╛!

рдореА рддрд╛рдмрдбрддреЛрдм рдЖрд░рдХреНрд╖рдг рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рдЖрдореНрд╣реА рдПрдХрд╛рдЪ рдмреИрдардХреАрдд рд╕рд░реНрд╡рдХрд╛рд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА - рдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдЕрдиреЗрдХ рд▓реЗрдЦрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓. рд╕рдВрд░рдЪрдиреЗрдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ:

рднрд╛рдЧ рез (рддреБрдореНрд╣реА рд╡рд╛рдЪрдд рдЖрд╣рд╛рдд). рдЖрдореНрд╣реА рд╕реЛрд▓реНрдпреВрд╢рдирдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдирд┐рд░реНрдгрдп рдШреЗрдК рдЖрдгрд┐ рдЧреЛрд▓рдВрдЧрдордзреНрдпреЗ рдЕрд░реНрдЬ рджреЗрдЦреАрд▓ рд▓рд┐рд╣реВ.
рднрд╛рдЧ 2. рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрддреНрдкрд╛рджрдирд╛рдд рд╕реЛрдбрддреЛ, рддреЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдмрдирд╡рддреЛ рдЖрдгрд┐ рд▓реЛрдбрдЪреА рдЪрд╛рдЪрдгреА рдХрд░рддреЛ.
рднрд╛рдЧ 3. рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдирд╛рд╣реА рддрд░ рдмрдлрд░рдордзреНрдпреЗ рд╕рдВрджреЗрд╢ рдХрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛ рдЖрдгрд┐ kafka, rabbitmq рдЖрдгрд┐ yandex queue рд╕реЗрд╡реЗрдЪреА рддреБрд▓рдирд╛ рдХрд░реВрдпрд╛.
рднрд╛рдЧ рек рдЖрдореНрд╣реА рдПрдХ рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░реВ, рдмрдлрд░рдордзреВрди рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕реЗрд╡рд╛ рд▓рд┐рд╣реВ рдЖрдгрд┐ рдбреЗрдЯрд╛рд▓реЗрдиреНрд╕рдордзреНрдпреЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди рд╕реЗрдЯ рдХрд░реВ.
рднрд╛рдЧ рел рдЪрд▓рд╛ рд╕рдВрдкреВрд░реНрдг рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдпреЛрдЧреНрдп рдЖрдХрд╛рд░рд╛рдд рдЖрдгреВрдпрд╛ - gitlab ci рд╡рд╛рдкрд░реВрди ci/cd рд╕реЗрдЯ рдХрд░рд╛, prometheus рдЖрдгрд┐ consul рд╡рд╛рдкрд░реВрди рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рд╢реЛрдз рдХрдиреЗрдХреНрдЯ рдХрд░рд╛.

TK

рдкреНрд░рдердо, рд╕рдВрджрд░реНрднрд╛рдЪреНрдпрд╛ рдЕрдЯреА рддрдпрд╛рд░ рдХрд░реВ - рдкрд░рд┐рдгрд╛рдореА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдирдХреНрдХреА рдХрд╛рдп рдорд┐рд│рд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ.

  1. рдЖрдореНрд╣рд╛рд▓рд╛ event.kis.im (kis.im рд╣реЗ рдЪрд╛рдЪрдгреА рдбреЛрдореЗрди рдЖрд╣реЗ рдЬреЗ рдЖрдореНрд╣реА рд╕рд░реНрд╡ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгрд╛рд░ рдЖрд╣реЛрдд) рд╕рд╛рд░рдЦрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╣рд╡рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ HTTPS рд╡рд╛рдкрд░реВрди рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд.
  2. рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕ рд╣реЗ рд╕рд╛рдзреЗ json рдЖрд╣реЗрдд рдЬрд╕реЗ: {тАЬрдЗрд╡реНрд╣реЗрдВрдЯтАЭ: тАЬрджреГрд╢реНрдптАЭ, тАЬosтАЭ: тАЬlinuxтАЭ, тАЬрдмреНрд░рд╛рдЙрдЭрд░тАЭ: тАЬchromeтАЭ}. рдЕрдВрддрд┐рдо рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдереЛрдбреЗ рдЕрдзрд┐рдХ рдлреАрд▓реНрдб рдЬреЛрдбреВ, рдкрд░рдВрддреБ рд╣реЗ рдлрд╛рд░ рдореЛрдареА рднреВрдорд┐рдХрд╛ рдмрдЬрд╛рд╡рдгрд╛рд░ рдирд╛рд╣реА. рддреБрдордЪреА рдЗрдЪреНрдЫрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА protobuf рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВ рд╢рдХрддрд╛.
  3. рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 10 рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  4. рдЖрдордЪреНрдпрд╛ рд╕реЛрд▓реНрдпреВрд╢рдирдордзреНрдпреЗ рдлрдХреНрдд рдирд╡реАрди рдЙрджрд╛рд╣рд░рдгреЗ рдЬреЛрдбреВрди рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рд╕реНрдХреЗрд▓ рдХрд░рдгреЗ рд╢рдХреНрдп рдЕрд╕рд╛рд╡реЗ. рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╡рд┐рд▓рдВрдм рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдкреБрдврдЪрд╛ рднрд╛рдЧ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рдирд╛рдВрд╡рд░ рд╣рд▓рд╡реВ рд╢рдХрд▓реЛ рддрд░ рдЫрд╛рди рд╣реЛрдИрд▓.
  5. рдЪреБрдХреАрдЪреА рд╕рд╣рдирд╢реАрд▓рддрд╛. рд╕реЛрд▓реНрдпреВрд╢рди рдкреБрд░реЗрд╕реЗ рд╕реНрдерд┐рд░ рдЕрд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рдкрдбрдЭрдбреАрдд рдЯрд┐рдХреВрди рд░рд╛рд╣рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд╡реЗ (рдЕрд░реНрдерд╛рдд рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпреЗрдкрд░реНрдпрдВрдд).

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА, рд╢рд╛рд╕реНрддреНрд░реАрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪрд╛ рджреАрд░реНрдШрдХрд╛рд│ рд╢реЛрдз рд▓рд╛рд╡рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╕реНрдХреЗрд▓рд┐рдВрдЧрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЖрдХреГрддреА рдЖрдордЪреНрдпрд╛ рд╕рдорд╛рдзрд╛рдирд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рджрд░реНрд╢рд╡рддреЗ.

рдЖрдореНрд╣реА Yandex.Cloud рдордзреНрдпреЗ 10 рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ. рднрд╛рдЧ 000

рддрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдХрд╛рдп рдЖрд╣реЗ:

1. рдбрд╛рд╡реАрдХрдбреЗ рдЖрдордЪреА рдЙрдкрдХрд░рдгреЗ рдЖрд╣реЗрдд рдЬреА рд╡рд┐рд╡рд┐рдз рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддрд╛рдд, рдордЧ рддреЗ рдЦреЗрд│рд╛рдбреВ рд╕реНрдорд╛рд░реНрдЯрдлреЛрдирд╡рд░ рдЦреЗрд│рдгреНрдпрд╛рддреАрд▓ рд╕реНрддрд░ рдкреВрд░реНрдг рдХрд░рддрд╛рдд рдХрд┐рдВрд╡рд╛ рдирд┐рдпрдорд┐рдд рдмреНрд░рд╛рдЙрдЭрд░рджреНрд╡рд╛рд░реЗ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рдСрд░реНрдбрд░ рддрдпрд╛рд░ рдХрд░рддрд╛рдд. рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЗрд╡реНрд╣реЗрдВрдЯ рд╣рд╛ рдПрдХ рд╕рд╛рдзрд╛ json рдЖрд╣реЗ рдЬреЛ рдЖрдордЪреНрдпрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ - events.kis.im рд╡рд░ рдкрд╛рдард╡рд▓рд╛ рдЬрд╛рддреЛ.

2. рдкрд╣рд┐рд▓реЗ рджреЛрди рд╕рд░реНрд╡реНрд╣рд░ рд╕рд╛рдзреЗ рдмреЕрд▓рдиреНрд╕рд░ рдЖрд╣реЗрдд, рддреНрдпрд╛рдВрдЪреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЗ рдЖрд╣реЗрдд:

  • рд╕рддрдд рдЙрдкрд▓рдмреНрдз рд░рд╣рд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Keepalived, рдЬреЗ рд╕рдорд╕реНрдпрд╛рдВрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдиреЛрдбреНрд╕ рджрд░рдореНрдпрд╛рди рдЖрднрд╛рд╕реА IP рд╕реНрд╡рд┐рдЪ рдХрд░реЗрд▓.
  • TLS рд╕рдорд╛рдкреНрдд рдХрд░рд╛. рд╣реЛрдп, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╡рд░ TLS рд╕рдорд╛рдкреНрдд рдХрд░реВ. рдкреНрд░рдердо, рдЖрдордЪреЗ рд╕рдорд╛рдзрд╛рди рддрд╛рдВрддреНрд░рд┐рдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреЗ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдЖрдордЪреНрдпрд╛ рдмреЕрдХрдПрдВрдб рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдУрдЭреНрдпрд╛рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА.
  • рдЙрдкрд▓рдмреНрдз рдмреЕрдХрдПрдВрдб рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рд╛. рдпреЗрдереЗ рдореБрдЦреНрдп рд╢рдмреНрдж рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ, рдЖрдореНрд╣реА рд╕рдордЬреВ рд╢рдХрддреЛ рдХреА рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░реНрд╕ рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╣ рджреЗрдЦрд░реЗрдЦ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрдпрд╢рд╕реНрд╡реА рдиреЛрдбреНрд╕рд╡рд░ рд░рд╣рджрд╛рд░реА рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

3. рдмреЕрд▓рдиреНрд╕рд░реНрд╕ рдирдВрддрд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░ рдЕрдЧрджреА рд╕рд╛рдзреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рддрд╛рдд. рддреЗ HTTP рджреНрд╡рд╛рд░реЗ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕, рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ json рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдмрдлрд░рдордзреНрдпреЗ рдареЗрд╡рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд╡реЗ.

4. рдЖрдХреГрддреА рдХрд╛рдлреНрдХрд╛рд▓рд╛ рдмрдлрд░ рдореНрд╣рдгреВрди рджрд╛рдЦрд╡рддреЗ, рдЬрд░реА, рдЕрд░реНрдерд╛рддрдЪ, рдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЗрддрд░ рд╕рдорд╛рди рд╕реЗрд╡рд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рддрд┐рд╕рд▒реНрдпрд╛ рд▓реЗрдЦрд╛рдд рдЖрдкрдг Kafka, rabbitmq рдЖрдгрд┐ yq рдЪреА рддреБрд▓рдирд╛ рдХрд░реВ.

5. рдЖрдордЪреНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪрд╛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреВ рдореНрд╣рдгрдЬреЗ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ - рдПрдХ рд╕реНрддрдВрднреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛ рд╕рдВрдЪрдпрд┐рдд рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ. рдпрд╛ рд╕реНрддрд░рд╛рд╡рд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдмрдлрд░рдордзреВрди рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рд▓реЗрдЦ 4 рдордзреНрдпреЗ рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ).

рд╣реЗ рдбрд┐рдЭрд╛рдЗрди рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рдореЛрдЬрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдмреЕрдХрдПрдВрдб рд╕рд░реНрд╡реНрд╣рд░ рд╕рд╛рдордирд╛ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реАрдд - рдЪрд▓рд╛ рдЖрдгрдЦреА рдПрдХ рдЧреЛрд╖реНрдЯ рдЬреЛрдбреВрдпрд╛ - рд╢реЗрд╡рдЯреА, рддреЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗрдд рдЖрдгрд┐ рдореНрд╣рдгреВрдирдЪ, рд╣реЗ рдЕрдЧрджреА рдЖрдкреЛрдЖрдк рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдХрд╛рдлреНрдХрд╛-рд╢реИрд▓реАрддреАрд▓ рдмрдлрд░ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реАтАФрдЪрд▓рд╛ рдЕрдзрд┐рдХ рд╕рд░реНрд╡реНрд╣рд░ рдЬреЛрдбреВ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рддреАрд▓ рдХрд╛рд╣реА рд╡рд┐рднрд╛рдЬрдиреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реВ. рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рддреЗ рд╣рд╛рддрд╛рд│реВ рд╢рдХрдд рдирд╛рд╣реА - рд╣реЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ :) рдЦрд░рдВ рддрд░, рдЖрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рджреЗрдЦреАрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реВ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╢рд╛рд░реНрдб рдХрд░реВ.

рддрд╕реЗ, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рддрд╛рдВрддреНрд░рд┐рдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдкрд░реНрдпрд╛рдпреА рднрд╛рдЧ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рдирд╛рдВрдордзреНрдпреЗ рд╕реНрдХреЗрд▓рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рд╛рдпрдЪреА рдЕрд╕реЗрд▓, рддрд░ рдпрд╛рдкреЗрдХреНрд╖рд╛ рд╕реЛрдкреЗ рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА:

рдЖрдореНрд╣реА Yandex.Cloud рдордзреНрдпреЗ 10 рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ. рднрд╛рдЧ 000

рдкреНрд░рддреНрдпреЗрдХ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рдирд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдгрд┐ рдХрд╛рдлреНрдХрд╛рд╕рд╣ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рддреИрдирд╛рдд рдХрд░рддреЛ. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, 2 рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░, 3 рдХрд╛рдлреНрдХрд╛ рдиреЛрдбреНрд╕ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рдмреЕрд▓реЗрдиреНрд╕рд░, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░, рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗрдд, рдЬреЗ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рд╕реНрддреНрд░реЛрдд IP рдкрддреНрддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рдирд╛рджреНрд╡рд╛рд░реЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЛрдбреНрд╕ рдЖрдгрд┐ рд╢рд┐рд▓реНрд▓рдХ рд╡рд┐рдирдВрддреНрдпрд╛ рддрдкрд╛рд╕рддреАрд▓. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЕрдореЗрд░рд┐рдХрди рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ рдкрд╛рдард╡рд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдЕрдореЗрд░рд┐рдХрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдпреЗрдИрд▓. рдЖрдгрд┐ рдЖрдлреНрд░рд┐рдХреЗрддреАрд▓ рдбреЗрдЯрд╛ рдЖрдлреНрд░рд┐рдХрди рднрд╛рд╖реЗрдд рдЖрд╣реЗ.

рдордЧ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ - рдЖрдореНрд╣реА рдХрд╛рдлреНрдХрд╛ рд╕реЗрдЯрдордзреАрд▓ рдорд┐рд░рд░ рдЯреВрд▓ рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡ рдард┐рдХрд╛рдгрд╛рдВрд╡рд░реАрд▓ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рд░рд╢рд┐рдпрд╛рдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдХреЗрдВрджреНрд░реАрдп рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рдХреЙрдкреА рдХрд░рддреЛ. рдЕрдВрддрд░реНрдЧрдд, рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕рдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХрд░рддреЛ.

рддрд░, рдЖрдореНрд╣реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд▓реА рдЖрд╣реЗ - рдЪрд▓рд╛ Yandex.Cloud рдЭрдЯрдХрдгреЗ рд╕реБрд░реВ рдХрд░реВрдпрд╛!

рдЕрд░реНрдЬ рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ

рдХреНрд▓рд╛рдЙрдбрдЪреНрдпрд╛ рдЖрдзреА, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрди рдереЛрдбрд╛ рдзреАрд░ рдзрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рдШрдЯрдирд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реЛрдкреА рд╕реЗрд╡рд╛ рд▓рд┐рд╣рд╛рд╡реА рд▓рд╛рдЧреЗрд▓. рдЖрдореНрд╣реА рдЧреЛрд▓рдВрдЧ рд╡рд╛рдкрд░рдгрд╛рд░ рдЖрд╣реЛрдд рдХрд╛рд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рддреА рдПрдХ рднрд╛рд╖рд╛ рдореНрд╣рдгреВрди рдЦреВрдк рдЪрд╛рдВрдЧрд▓реА рд╕рд┐рджреНрдз рдЭрд╛рд▓реА рдЖрд╣реЗ.

рдПрдХ рддрд╛рд╕ рдШрд╛рд▓рд╡рд▓реНрдпрд╛рдирдВрддрд░ (рдХрджрд╛рдЪрд┐рдд рдХрд╛рд╣реА рддрд╛рд╕), рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдорд┐рд│рддреЗ: https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/main.go.

рдореА рдпреЗрдереЗ рдХреЛрдгрддреЗ рдореБрдЦреНрдп рдореБрджреНрджреЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡реВ рдЗрдЪреНрдЫрд┐рддреЛ:

1. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛, рдЖрдкрдг рджреЛрди рдзреНрд╡рдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рдЬреНрдпрд╛ рдкреЛрд░реНрдЯрд╡рд░ рдЖрдореНрд╣реА рдпреЗрдгрд╛рд░реНтАНрдпрд╛ http рд╡рд┐рдирдВрддреНрдпрд╛ (-addr) рдРрдХреВ рддреНрдпрд╛ рдкреЛрд░реНрдЯрд╕рд╛рдареА рдПрдХ рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рджреБрд╕рд░рд╛ рдХрд╛рдлреНрдХрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдкрддреНрддреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ рдЬреЗрдереЗ рдЖрдореНрд╣реА рдЖрдордЪреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд░реЗрдХреЙрд░реНрдб рдХрд░реВ (-рдХрд╛рдлреНрдХрд╛):

addr     = flag.String("addr", ":8080", "TCP address to listen to")
kafka    = flag.String("kafka", "127.0.0.1:9092", "Kafka endpointsтАЭ)

2. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░рдорд╛ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рддреЗ ([] github.com/Shopify/sarama) рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА. рдЖрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрддреАрдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕реЗрдЯ рдХрд░рддреЛ:

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

3. рдЖрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдордзреНрдпреЗ рдПрдХ рдЕрдВрдЧрднреВрдд рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдХреНрд▓рд╛рдпрдВрдЯ рджреЗрдЦреАрд▓ рдЖрд╣реЗ, рдЬреЛ рд╡рд┐рд╡рд┐рдз рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЧреЛрд│рд╛ рдХрд░рддреЛ, рдЬрд╕реЗ рдХреА:

  • рдЖрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛;
  • рд╡рд┐рдирдВрддреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛ рддреНрд░реБрдЯреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ (рдкреЛрд╕реНрдЯ рд╡рд┐рдирдВрддреА рд╡рд╛рдЪрдгреЗ рдЕрд╢рдХреНрдп, рддреБрдЯрд▓реЗрд▓реА рдЬреЗрд╕рди, рдХрд╛рдлреНрдХрд╛рд▓рд╛ рд▓рд┐рд╣рд┐рдгреЗ рдЕрд╢рдХреНрдп);
  • рдХрд╛рдлреНрдХрд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрд╕рд╣ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд┐рдирдВрддреАрд╕рд╛рдареА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│.

4. рдЖрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгрд╛рд░реЗ рддреАрди рдЕрдВрддрд┐рдо рдмрд┐рдВрджреВ:

  • /status - рдЖрдкрдг рдЬрд┐рд╡рдВрдд рдЖрд╣реЛрдд рд╣реЗ рджрд╛рдЦрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдлрдХреНрдд рдУрдХреЗ рдкрд░рдд рдХрд░рд╛. рдЬрд░реА рддреБрдореНрд╣реА рдХрд╛рд╣реА рдЪреЗрдХ рдЬреЛрдбреВ рд╢рдХрддрд╛, рдЬрд╕реЗ рдХреА рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░рдЪреА рдЙрдкрд▓рдмреНрдзрддрд╛.
  • /рдореЗрдЯреНрд░рд┐рдХреНрд╕ - рдпрд╛ url рдиреБрд╕рд╛рд░, рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдХреНрд▓рд╛рдпрдВрдЯ рддреНрдпрд╛рдиреЗ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкрд░рдд рдХрд░реЗрд▓.
  • /post рд╣рд╛ рдореБрдЦреНрдп рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЖрд╣реЗ рдЬрд┐рдереЗ json рд╕рд╣ POST рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рддреАрд▓. рдЖрдордЪрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реИрдзрддреЗрд╕рд╛рдареА json рддрдкрд╛рд╕рддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдареАрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗ рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рддреЛ.

рдореА рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрди рдХреА рдХреЛрдб рдкрд░рд┐рдкреВрд░реНрдг рдирд╛рд╣реА - рддреЛ рдкреВрд░реНрдг рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ (рдЖрдгрд┐ рдкрд╛рд╣рд┐рдЬреЗ!) рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рдЕрдВрдЧрднреВрдд рдиреЗрдЯ/http рд╡рд╛рдкрд░рдгреЗ рдерд╛рдВрдмрд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЬрд▓рдж рдлрд╛рд╕реНрдЯhttp рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВ рд╢рдХрддрд╛. рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣реА json рд╡реИрдзрддрд╛ рддрдкрд╛рд╕рдгреА рдирдВрддрд░рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рд╣рд▓рд╡реВрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реЗрд│ рдЖрдгрд┐ cpu рд╕рдВрд╕рд╛рдзрдиреЗ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛ - рдЬреЗрд╡реНрд╣рд╛ рдбреЗрдЯрд╛ рдмрдлрд░рдордзреВрди рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рд╕рдорд╕реНрдпреЗрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдмрджреНрджрд▓ рддреНрд╡рд░рд┐рдд рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЖрдгрд┐ рдЖрдордЪрд╛ рдЕрд░реНрдЬ рдбреЙрдХрд░рджреНрд╡рд╛рд░реЗ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдВрддрд┐рдо рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЖрд╣реЗ https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/Dockerfile. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдореА рдЬреНрдпрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ рддреЛ рдореНрд╣рдгрдЬреЗ рдорд▓реНрдЯреАрд╕реНрдЯреЗрдЬ рдЕрд╕реЗрдВрдмреНрд▓реА, рдЬреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪреА рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдорд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рдврдЧрд╛рддреАрд▓ рдкрд╣рд┐рд▓реЗ рдкрд╛рдКрд▓

рд╕рд░реНрд╡ рдкреНрд░рдердо, рдиреЛрдВрджрдгреА рдХрд░рд╛ cloud.yandex.ru. рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдлреАрд▓реНрдб рднрд░рд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдЦрд╛рддреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдХрдореЗрд╕рд╛рдареА рдЕрдиреБрджрд╛рди рджрд┐рд▓реЗ рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдВрдЪреНрдпрд╛ рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдЖрдкрдг рдЖрдордЪреНрдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рд╕рд░реНрд╡ рдЪрд░рдгрд╛рдВрдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╣реЗ рдЕрдиреБрджрд╛рди рдЖрдкрд▓реНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЕрд╕рд╛рд╡реЗ.

рдиреЛрдВрджрдгреАрдирдВрддрд░, рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рдбрд┐рдлреЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЗ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддрд╛. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, Yandex.Cloud рдордзреНрдпреЗ, рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рд╕рдВрдмрдВрдз рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рдЖрдореНрд╣реА Yandex.Cloud рдордзреНрдпреЗ 10 рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ. рднрд╛рдЧ 000

рддреБрдореНрд╣реА рдПрдХрд╛ рдЦрд╛рддреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдХреНрд▓рд╛рдЙрдб рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдбрдЪреНрдпрд╛ рдЖрдд, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХрдВрдкрдиреАрдЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╡рд╛. рдЖрдкрдг рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдд рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ - https://cloud.yandex.ru/docs/resource-manager/concepts/resources-hierarchy. рддрд╕реЗ, рдореА рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рдордЬрдХреВрд░рд╛рдд рдЦрд╛рд▓реА рддреНрдпрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдИрди. рдЬреЗрд╡реНрд╣рд╛ рдореА рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рд╕рдВрдкреВрд░реНрдг рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛, рддреЗрд╡реНрд╣рд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдиреЗ рдорд▓рд╛ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│рд╛ рдорджрдд рдХреЗрд▓реА, рдореНрд╣рдгреВрди рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕рд▓реНрд▓рд╛ рджреЗрддреЛ.

рдХреНрд▓рд╛рдЙрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рдХрдиреНрд╕реЛрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреА - yc рджреЛрдиреНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рд╕реНрдерд╛рдкрдирд╛ рдПрдХрд╛ рдЖрджреЗрд╢рд╛рдиреЗ рдХреЗрд▓реА рдЬрд╛рддреЗ (рд▓рд┐рдирдХреНрд╕ рдЖрдгрд┐ рдореЕрдХ рдУрдПрд╕рд╕рд╛рдареА):

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

рдЬрд░ рддреБрдордЪрд╛ рдЕрдВрддрд░реНрдЧрдд рд╕реБрд░рдХреНрд╖рд╛ рддрдЬреНрдЮ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реВрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдмрджреНрджрд▓ рдирд╛рд░рд╛рдЬ рдЕрд╕реЗрд▓, рддрд░, рдкреНрд░рдердо, рддреБрдореНрд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдШрдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдЖрдореНрд╣реА рддреЗ рдЖрдордЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд - рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░рд╛рдВрд╢рд┐рд╡рд╛рдп рдЪрд╛рд▓рд╡рддреЛ.

рдЖрдкрдг 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:~ $

рддрддреНрд╡рддрдГ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЛрдкреА рдЖрд╣реЗ - рдкреНрд░рдердо рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдЙрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реЗ рдлреЛрд▓реНрдбрд░ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдУрдЙрде рдЯреЛрдХрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХрд╛рдЪ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдЕрдиреЗрдХ рдЦрд╛рддреА рдХрд┐рдВрд╡рд╛ рдлреЛрд▓реНрдбрд░реНрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА yc рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╡рд╛ рдЖрдгрд┐ рддреНрдпрд╛рдордзреНрдпреЗ рд╕реНрд╡рд┐рдЪ рдХрд░реВрди рд╡реЗрдЧрд│реНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛.

рд╡рд░реАрд▓ рдкрджреНрдзрддреАрдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, Yandex.Cloud рдЯреАрдордиреЗ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╛рдареА рдкреНрд▓рдЧрдЗрди рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдорд╛рдЭреНрдпрд╛ рднрд╛рдЧрд╛рд╕рд╛рдареА, рдореА рдПрдХ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ, рдЬрд┐рдереЗ рдореА рд▓реЗрдЦрд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ - https://github.com/rebrainme/yandex-cloud-events/. рдЖрдореНрд╣рд╛рд▓рд╛ рдореБрдЦреНрдп рд╢рд╛рдЦреЗрдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ, рдЪрд▓рд╛ рддреЗ рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рдХреНрд▓реЛрди рдХрд░реВрдпрд╛:


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/

рдЯреЗрд░рд╛рдлреЙрд░реНрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдореБрдЦреНрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ main.tf рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрд╕рд╣ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЦрд╛рдЬрдЧреА.auto.tfvars рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛:

# 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 рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реВрдЪреАрдордзреВрди рдШреЗрддрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдХрд╛рд░рдг рдЖрдореНрд╣реА рдХрдиреНрд╕реЛрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреА рдЖрдзреАрдЪ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ .gitignore рдордзреНрдпреЗ рдЦрд╛рдЬрдЧреА.auto.tfvars рддрд╛рдмрдбрддреЛрдм рдЬреЛрдбрдгреНрдпрд╛рдЪрд╛ рд╕рд▓реНрд▓рд╛ рджреЗрддреЛ, рдЬреЗрдгреЗрдХрд░реВрди рдЪреБрдХреВрди рдЦрд╛рдЬрдЧреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдК рдирдпреЗ.

рдЦрд╛рдЬрдЧреА.auto.tfvars рдордзреНрдпреЗ рдЖрдореНрд╣реА Cloudflare рдХрдбреВрди рдбреЗрдЯрд╛ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ - DNS рд░реЗрдХреЙрд░реНрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдореБрдЦреНрдп рдбреЛрдореЗрди events.kis.im рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдирд╕реЗрд▓, рддрд░ main.tf рдЖрдгрд┐ dns.tf рдлрд╛рдЗрд▓рдордзреАрд▓ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░ рдкреНрд░рджрд╛рддреНрдпрд╛рдЪреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛рдвреВрди рдЯрд╛рдХрд╛, рдЬреЗ рдЖрд╡рд╢реНрдпрдХ dns рд░реЗрдХреЙрд░реНрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ.

рдЖрдордЪреНрдпрд╛ рдХрд╛рдорд╛рдд рдЖрдореНрд╣реА рддреАрдирд╣реА рдкрджреНрдзрддреА рдПрдХрддреНрд░ рдХрд░реВ - рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕, рдХрдиреНрд╕реЛрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреА рдЖрдгрд┐ рдЯреЗрд░рд╛рдлреЙрд░реНрдо.

рдЖрднрд╛рд╕реА рдиреЗрдЯрд╡рд░реНрдХ

рдЦрд░реЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рддреБрдореНрд╣реА рд╣реА рдкрд╛рдпрд░реА рд╡рдЧрд│реВ рд╢рдХрддрд╛, рдХрд╛рд░рдг рддреБрдореНрд╣реА рдирд╡реАрди рдХреНрд▓рд╛рдЙрдб рддрдпрд╛рд░ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдкреЛрдЖрдк рдПрдХ рд╡реЗрдЧрд│реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ 3 рд╕рдмрдиреЗрдЯ рддрдпрд╛рд░ рд╣реЛрддреАрд▓ - рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╛рд╕рд╛рдареА рдПрдХ. рдкрд░рдВрддреБ рддрд░реАрд╣реА рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкрддреНрддреНрдпрд╛рд╕рд╣ рдПрдХ рд╡реЗрдЧрд│реЗ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╡реВ рдЗрдЪреНрдЫрд┐рддреЛ. Yandex.Cloud рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХреГрддреА рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЖрд╣реЗ (рдкреНрд░рд╛рдорд╛рдгрд┐рдХрдкрдгреЗ рдШреЗрддрд▓реЗрд▓реЗ https://cloud.yandex.ru/docs/vpc/concepts/)

рдЖрдореНрд╣реА Yandex.Cloud рдордзреНрдпреЗ 10 рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЛ. рднрд╛рдЧ 000

рддрд░, рддреБрдореНрд╣реА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рддрдпрд╛рд░ рдХрд░рддрд╛ рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ рд╢рдХрддрд╛рдд. рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╛рд╕рд╛рдареА, рдПрдХ рд╕рдмрдиреЗрдЯ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкрддреНрддреНрдпрд╛рд╕рд╣ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкрд░рд┐рдгрд╛рдореА, рддреНрдпрд╛рддреАрд▓ рд╕рд░реНрд╡ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рдВрдкреНрд░реЗрд╖рдг рдХрд░реВ рд╢рдХрддрд╛рдд, рдЬрд░реА рддреЗ рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдзрддрд╛ рдЭреЛрдирдордзреНрдпреЗ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА. рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдЬреЛрдбрд▓реЗрд▓реА рд╕рдВрд╕рд╛рдзрдиреЗ рдХреЗрд╡рд│ рдмрд╛рд╣реНрдп рдкрддреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдкрд╛рд╣реВ рд╢рдХрддрд╛рдд. рддрд╕реЗ, рд╣реА рдЬрд╛рджреВ рдЖрдд рдХрд╢реА рдЪрд╛рд▓рддреЗ, Habr├й рд╡рд░ рдЪрд╛рдВрдЧрд▓реЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рд╣реЛрддреЗ.

рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд░реНрдорд┐рддреАрдЪреЗ рд╡рд░реНрдгрди рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди network.tf рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЖрд╣реЗ. рддреЗрдереЗ рдЖрдореНрд╣реА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЦрд╛рдЬрдЧреА рдиреЗрдЯрд╡рд░реНрдХ рдЕрдВрддрд░реНрдЧрдд рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЭреЛрдирдордзреНрдпреЗ рддреАрди рд╕рдмрдиреЗрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЛ - рдЕрдВрддрд░реНрдЧрдд-a (172.16.1.0/24), рдЕрдВрддрд░реНрдЧрдд-b (172.16.2.0/24), рдЕрдВрддрд░реНрдЧрдд-c (172.16.3.0/24). ).

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕реБрд░реВ рдХрд░рд╛ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рддрдпрд╛рд░ рдХрд░рд╛:

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.

рдЫрд╛рди! рдЖрдореНрд╣реА рдЖрдордЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрддрд╛ рдЖрдордЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣реЛрдд.

рдЖрднрд╛рд╕реА рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рдгреЗ

рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рджреЛрди рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ - рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдердо рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА, рджреБрд╕рд░реА рдХрд╛рдлреНрдХрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЖрдореНрд╣реА рдпреЗрдгрд╛рд░реЗ рд╕рдВрджреЗрд╢ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд░реВ. рдЖрдгрд┐ рдЖрдореНрд╣реА рджреБрд╕рд░реЗ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░реВ рдЬрд┐рдереЗ рдЖрдореНрд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ.

рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕ рдЙрддреНрддрд░рджрд╛рдпреА рд╡рд╛рдкрд░реВрди рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓, рдореНрд╣рдгреВрди рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЙрддреНрддрд░рджрд╛рдпреАрдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреАрдВрдкреИрдХреА рдПрдХ рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛. рдЖрдгрд┐ рдЙрддреНрддрд░рджрд╛рдпреА рдЖрдХрд╛рд╢рдЧрдВрдЧреЗрд╕рд╣ рдЖрд╡рд╢реНрдпрдХ рднреВрдорд┐рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:

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.cfg рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ. рддреЗ рдЙрдкрдпреЛрдЧреА рдпреЗрдК рд╢рдХрддреЗ.

рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдордЪреНрдпрд╛рдХрдбреЗ ssh-agent рдЪрд╛рд▓реВ рдЖрд╣реЗ рдЖрдгрд┐ ssh рдХреА рдЬреЛрдбрд▓реА рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛, рдЕрдиреНрдпрдерд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╢реАрдирд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдК рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА. рдорд▓рд╛, рдЕрд░реНрдерд╛рддрдЪ, os x рдордзреНрдпреЗ рдПрдХ рдмрдЧ рдЖрдврд│рд▓рд╛: https://github.com/ansible/ansible/issues/32499#issuecomment-341578864. рд╣реЗ рдкреБрдиреНрд╣рд╛ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА, Terraform рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА env рдордзреНрдпреЗ рдПрдХ рд▓рд╣рд╛рди рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╛:

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

рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╣ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЖрдореНрд╣реА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЗ рддрдпрд╛рд░ рдХрд░рддреЛ:

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 ...

рдЬрд░ рд╕рд░реНрд╡рдХрд╛рд╣реА рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд╕рдВрдкрд▓реЗ (рдЖрдгрд┐ рддреЗ рдЕрд╕рд╛рд╡реЗ), рддрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рддреАрди рдЖрднрд╛рд╕реА рдорд╢реАрди рдЕрд╕рддреАрд▓:

  1. рдмрд┐рд▓реНрдб - рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд╢реАрди. Ansible рджреНрд╡рд╛рд░реЗ рдбреЙрдХрд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ.
  2. рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ - рдПрдХ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдорд╢реАрди - рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдЖрдгрд┐ рдЧреНрд░рд╛рдлрд╛рдирд╛ рддреНрдпрд╛рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рд▓реЙрдЧрд┐рди / рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдирдХ: рдкреНрд░рд╢рд╛рд╕рдХ / рдкреНрд░рд╢рд╛рд╕рдХ
  3. 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 рдкрддреНрддреЗ рдорд┐рд│рд╡реВ рд╢рдХрддреЛ. рдкреБрдвреАрд▓ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдордзреНрдпреЗ рдореА ssh рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА IP рдкрддреНрддреЗ рд╡рд╛рдкрд░реЗрди. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░ рдЦрд╛рддреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдирд╡реАрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА DNS рдирд╛рд╡реЗ рдореЛрдХрд│реНрдпрд╛ рдордирд╛рдиреЗ рд╡рд╛рдкрд░рд╛.
рддрд╕реЗ, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рдЕрдВрддрд░реНрдЧрдд 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 рд╕рд╣ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реВрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рдЕрд░реНрдЬ рдПрдХрддреНрд░ рдХрд░рдгреЗ

рдЫрд╛рди, рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗрдд, рдПрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗ - рдлрдХреНрдд рддреЗ рдПрдХрддреНрд░ рдХрд░реВрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рдмрд┐рд▓реНрдбрд╕рд╛рдареА рдЖрдореНрд╣реА рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдбреЙрдХрд░ рдмрд┐рд▓реНрдбрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВ, рдкрд░рдВрддреБ рдЗрдореЗрдЬ рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди рдЖрдореНрд╣реА Yandex - рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рдХрдбреАрд▓ рд╕реЗрд╡рд╛ рд╡рд╛рдкрд░реВ. рдкрдг рдкреНрд░рдердо рдЧреЛрд╖реНрдЯреА рдкреНрд░рдердо.

рдЖрдореНрд╣реА рдмрд┐рд▓реНрдб рдорд╢реАрдирд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЙрдкреА рдХрд░рддреЛ, 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

рдЕрд░реНрдзреА рд▓рдврд╛рдИ рдкреВрд░реНрдг рдЭрд╛рд▓реА рдЖрд╣реЗ - рдЖрддрд╛ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд╛рдБрдЪ рдХрд░реВрди рдЖрдгрд┐ рдХрд╛рдлреНрдХрд╛рд▓рд╛ рдкрд╛рдард╡реВрди рддрдкрд╛рд╕реВ рд╢рдХрддреЛ:

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) $

рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдиреЗ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрдЪреНрдпрд╛ рдпрд╢рд╛рд╕рд╣ рдкреНрд░рддрд┐рд╕рд╛рдж рджрд┐рд▓рд╛ рдЖрдгрд┐ рдореЗрд╕реЗрдЬ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рднрд╛рдЬрдирд╛рдЪрд╛ рдЖрдгрд┐ рдСрдлрд╕реЗрдЯрдЪрд╛ рдЖрдпрдбреА рджрд░реНрд╢рд╡рд┐рд▓рд╛. рдлрдХреНрдд 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 рдЯреЛрдХрди, рдПрдХ iam рдЯреЛрдХрди рдХрд┐рдВрд╡рд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХреА рд╡рд╛рдкрд░реВрди. рдпрд╛ рдкрджреНрдзрддреАрдВрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддрд╛рдд. 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

рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реНрдЯреЛрд░реЗрдЬрдЪреНрдпрд╛ рдЖрдпрдбреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ, рдХреА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рд▓реЙрдЧ рдЗрди рдХрд░рддреЛ:

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:~$

рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдЗрдореЗрдЬ рдЕрдкрд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдпрдбреА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЖрдореНрд╣реА рддреЛ yc рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреВрди рдШреЗрддреЛ:

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 рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рддрд░ рддреБрдореНрд╣реА рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛

yc container registry configure-docker

рдбреЙрдХрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рдирд┐рд╖реНрдХрд░реНрд╖

рдЖрдореНрд╣реА рдЦреВрдк рдХрдареЛрд░ рдкрд░рд┐рд╢реНрд░рдо рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА:

  1. рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рд╕реЗрд╡реЗрдЪреА рд╡рд╛рд╕реНрддреВ рдШреЗрдКрди рдЖрд▓реЛ.
  2. рдЖрдореНрд╣реА рдЧреЛрд▓рдВрдЧрдордзреНрдпреЗ рдПрдХ рдЕрд░реНрдЬ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬреЛ рдЖрдордЪрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рддреЛ.
  3. рдЖрдореНрд╣реА рддреЗ рдЧреЛрд│рд╛ рдХреЗрд▓реЗ рдЖрдгрд┐ рдЦрд╛рдЬрдЧреА рдХрдВрдЯреЗрдирд░ рдиреЛрдВрджрдгреАрдордзреНрдпреЗ рдУрддрд▓реЗ.

рдкреБрдвреАрд▓ рднрд╛рдЧрд╛рдд, рдЖрдореНрд╣реА рдордиреЛрд░рдВрдЬрдХ рд╕рд╛рдордЧреНрд░реАрдХрдбреЗ рдЬрд╛рдК - рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрддреНрдкрд╛рджрдирд╛рдд рд╕реЛрдбреВ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рддреНрдпрд╛рд╡рд░ рд▓реЛрдб рд▓рд╛рдБрдЪ рдХрд░реВ. рд╕реНрд╡рд┐рдЪ рдХрд░реВ рдирдХрд╛!

рд╣реА рд╕рд╛рдордЧреНрд░реА рдУрдкрди рд╡рд░реНрдХрд╢реЙрдк REBRAIN рдЖрдгрд┐ Yandex.Cloud рдЪреНрдпрд╛ рд╡реНрд╣рд┐рдбрд┐рдУ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрдордзреНрдпреЗ рдЖрд╣реЗ: рдЖрдореНрд╣реА Yandex Cloud рд╡рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 10 рд╡рд┐рдирдВрддреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░рддреЛ - https://youtu.be/cZLezUm0ekE

рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╢рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдВрдирд╛ рдСрдирд▓рд╛рдЗрди рдЙрдкрд╕реНрдерд┐рдд рд░рд╛рд╣рдгреНрдпрд╛рдд рдЖрдгрд┐ рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдордордзреНрдпреЗ рдкреНрд░рд╢реНрди рд╡рд┐рдЪрд╛рд░рдгреНрдпрд╛рдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рд╛ REBRAIN рджреНрд╡рд╛рд░реЗ DevOps рдЪреЕрдиреЗрд▓.

рдЕрд╢рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪреЗ рдЖрдпреЛрдЬрди рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рджрд┐рд▓реНрдпрд╛рдмрджреНрджрд▓ рдЖрдореНрд╣реА Yandex.Cloud рдЪреЗ рд╡рд┐рд╢реЗрд╖ рдЖрднрд╛рд░ рдорд╛рдиреВ рдЗрдЪреНрдЫрд┐рддреЛ. рддреНрдпрд╛рдВрдирд╛ рд▓рд┐рдВрдХ - https://cloud.yandex.ru/prices

рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдЬрд╛рдгреНрдпрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдмрджреНрджрд▓ рдкреНрд░рд╢реНрди рдЕрд╕рд▓реНрдпрд╛рд╕, рдПрдХ рд╡рд┐рдирдВрддреА рд╕реЛрдбрдгреНрдпрд╛рд╕ рдореЛрдХрд│реНрдпрд╛ рдордирд╛рдиреЗ.

PS рдЖрдордЪреНрдпрд╛рдХрдбреЗ рджрд░рдорд╣рд╛ 2 рд╡рд┐рдирд╛рдореВрд▓реНрдп рдСрдбрд┐рдЯ рдЖрд╣реЗрдд, рдХрджрд╛рдЪрд┐рдд рддреБрдордЪрд╛ рдкреНрд░рдХрд▓реНрдк рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдЕрд╕реЗрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛