เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เด•เตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.: เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเดณเตเดณ เด†เดงเตเดจเดฟเด• เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเตฝ เดธเตผเดตเต€เดธเต เดฎเต†เดทเตเด•เตพ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดชเดฒ DevOps เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเดฐเตเดŸเต†เดฏเตเด‚ เดšเตเดฃเตเดŸเตเด•เดณเดฟเตฝ Istio เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเต†เด™เตเด•เดฟเดฒเตเด‚, เด‡เดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดชเตเดคเดฟเดฏเตŠเดฐเต เด‰เตฝเดชเตเดชเดจเตเดจเดฎเดพเดฃเต, เด…เดคเต เดจเตฝเด•เตเดจเตเดจ เด•เดดเดฟเดตเตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดธเดฎเด—เตเดฐเดฎเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเดพเตป เด—เดฃเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚. เดŸเต†เดฒเดฟเด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเด•เตเด•เต‡เดทเตป เด•เดฎเตเดชเดจเดฟเดฏเดพเดฏ เด“เดฑเดžเตเดšเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดฒเต† เดตเดฒเดฟเดฏ เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เต เด•เตเดฒเต—เดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดฑเต† เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเตเดณเตเดณ เดœเตผเดฎเตเดฎเตป เดŽเดžเตเดšเดฟเดจเต€เดฏเตผ เดฑเดฟเดจเต‹เตผ เดฎเดพเดฒเต‹เด•เต, เด‡เดธเตเดคเดฟเดฏเต‹เดฏเดฟเดฒเต‡เด•เตเด•เต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เด†เดดเดคเตเดคเดฟเดฒเตเด‚ เดฎเตเด™เตเด™เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเดฟเด•เดšเตเดš เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เตพ เดŽเดดเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเด•เตเด•เต เดชเตŠเดคเตเดตเดพเดฏเดฟ เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด•เดฃเตเดฃเตเด•เตŠเดฃเตเดŸเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดŽเด™เตเด™เดจเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เด•เดพเดฃเดพเดจเดพเด•เตเด‚ เดŽเดจเตเดจเดคเดฟเดฒเดพเดฃเต เด…เดฆเตเดฆเต‡เดนเด‚ เดคเดจเตเดฑเต† เด•เดฅ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เด‡เดธเตเดคเต‹ โ€” Google, IBM, Lyft เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŸเต€เดฎเตเด•เดณเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเดšเตเดšเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดš เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต. เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เด‰เดฃเตเดŸเดพเด•เตเดจเตเดจ เดธเด™เตเด•เต€เตผเดฃเดคเด•เตพ เด‡เดคเต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต:

  • เดŸเตเดฐเดพเดซเดฟเด•เต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต: เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตฝ, เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตฝ, เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต;
  • เดธเตเดฐเด•เตเดท: เด…เดจเตเดคเดฟเดฎ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดตเตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเดตเตเด‚;
  • เดจเดฟเดฐเต€เด•เตเดทเดฃเด•เตเดทเดฎเดค: เด•เดฃเตเดŸเต†เดคเตเดคเตฝ, เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚, เดฒเต‹เด—เดฟเด‚เด—เต.

เด‡เดตเดฏเต†เดฒเตเดฒเดพเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดคเดฒเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต‡เดตเดจเด™เตเด™เตพ "เดฎเตˆเด•เตเดฐเต‹" เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดˆ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด…เดงเดฟเด• เดถเตเดฐเดฎเด™เตเด™เดณเตเด‚ เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเต‡เดฐเดฟเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด•เดฎเตเดชเดจเดฟ เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เดชเดพเดดเดพเด•เตเด•เดฒเดพเดฃเต. เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚:

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฎเดพเดจเต‡เดœเตผ: เด’เดฐเต เดซเต€เดกเตเดฌเดพเด•เตเด•เต เดซเต€เดšเตเดšเตผ เดšเต‡เตผเด•เตเด•เดพเตป เดŽเดคเตเดฐ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚?
เดกเต†เดตเดฒเดชเตเดชเตผ: เดฐเดฃเตเดŸเต เดธเตเดชเตเดฐเดฟเดจเตเดฑเตเด•เตพ.

เดŽเด‚เดชเดฟ: เดŽเดจเตเดคเดพ?.. เด‡เดคเต เดตเต†เดฑเตเด‚ CRUD เด†เดฃเต!
R: CRUD เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดญเดพเด—เดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต†เดฏเตเด‚ เดธเต‡เดตเดจเด™เตเด™เดณเต†เดฏเตเด‚ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพ เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ เดชเดพเดฑเตเดฑเต‡เตบ เด•เตเดฒเดฏเดจเตเดฑเตเด•เดณเดฟเตฝ. เด•เต‚เดŸเดพเดคเต†, เดฎเตเดดเตเดตเตป เดธเดฟเดธเตเดฑเตเดฑเดตเตเด‚ เด•เตเดฐเดพเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดฎเดฏเดชเดฐเดฟเดงเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดฌเตพเด•เตเด•เตเดนเต†เดกเตเดธเต (เดชเตเดฐเดธเตเดคเดพเดตเดฟเดšเตเดš เดฐเดฃเตเดŸเต เดชเดพเดฑเตเดฑเต‡เดฃเตเด•เดณเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เดชเดฟเดจเตเดจเต€เดŸเต เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เด•เดพเดฃเตเด• - เดเด•เดฆเต‡เดถเด‚. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.), เด•เต‚เดŸเดพเดคเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚, เด•เดฃเตเดŸเต†เดคเตเดคเตฝ, [โ€ฆ]

เดŽเด‚โ€Œเดชเดฟ: เด“, เดจเดฎเตเด•เตเด•เต เดˆ เดธเดตเดฟเดถเต‡เดทเดค เด‰เตฝเดชเตเดชเดจเตเดจ เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเตเด•เดพเด‚.

เด†เดถเดฏเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต: เด’เดฐเต เดธเต‡เดตเดจเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดจเดŸเดชเดŸเดฟเด•เดณเตเด‚ เดชเดฐเดฟเดถเตเดฐเดฎเดตเตเด‚ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฃเต. เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดธเต‡เดตเดจเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเด•เดณเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดŽเดฒเตเดฒเดพ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดคเด•เดณเตเด‚ (เด…เดคเต เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฒเต‹เดœเดฟเด•เต เด†เดฏเดฟเดฐเดฟเด•เตเด•เดพเตป เด‰เดฆเตเดฆเต‡เดถเดฟเดšเตเดšเตเดณเตเดณเดคเดฒเตเดฒ) เดŽเด™เตเด™เดจเต† เด‡เดธเตเดคเดฟเดฏเต‹ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•: เดˆ เดฒเต‡เด–เดจเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดชเดฐเดฎเดพเดฏ เด…เดฑเดฟเดตเตเดฃเตเดŸเต†เดจเตเดจเต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดณเตเดณ เดŽเดจเตเดฑเต† เด†เดฎเตเด–เด‚ เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเต‚.

เด‡เดธเตเดคเดฟเดฏเต‹ เด†เดถเดฏเด‚

เด‡เดธเตเดคเดฟเดฏเต‹ เด‡เดฒเตเดฒเดพเดคเตเดค เดฒเต‹เด•เดคเตเดคเต, เด’เดฐเต เดธเต‡เดตเดจเด‚ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเต, เด’เดฐเต เดชเดฐเดพเดœเดฏเดฎเตเดฃเตเดŸเดพเดฏเดพเตฝ, เดธเต‡เดตเดจเด‚ เด…เดคเต เดธเตเดตเดฏเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดฃเด‚: เด’เดฐเต เดชเตเดคเดฟเดฏ เดถเตเดฐเดฎเด‚ เดจเดŸเดคเตเดคเตเด•, เดธเดฎเดฏเดชเดฐเดฟเดงเดฟ เดจเตฝเด•เตเด•, เด’เดฐเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ เดคเตเดฑเด•เตเด•เตเด• เดคเตเดŸเด™เตเด™เดฟเดฏเดต.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เต

Istio เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเดฐเดฟเดนเดพเดฐเด‚ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดธเต‡เดตเดจเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเต‡เตผเดชเต†เดŸเตเดคเตเดคเดฟ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเตฝ เด‡เดŸเดชเต†เดŸเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด…เด™เตเด™เดจเต† เด…เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต:

  • เดคเต†เดฑเตเดฑเต เดธเดนเดฟเดทเตเดฃเตเดค: เดชเตเดฐเดคเดฟเด•เดฐเดฃเดคเตเดคเดฟเดฒเต† เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เด•เต‹เดกเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ, เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเต‹ เดŽเดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดตเต€เดฃเตเดŸเตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เด•เดพเดจเดฑเดฟ เดฑเต‹เตพเด”เดŸเตเดŸเตเด•เตพ: เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเดŸเต† เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดถเดคเดฎเดพเดจเด‚ เดฎเดพเดคเตเดฐเด‚ เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดจเดฟเดฐเต€เด•เตเดทเดฃเดตเตเด‚ เด…เดณเดตเตเด•เดณเตเด‚: เดธเต‡เดตเดจเด‚ เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เดพเตป เดŽเดคเตเดฐ เดธเดฎเดฏเดฎเต†เดŸเตเดคเตเดคเต?
  • เด•เดฃเตเดŸเต†เดคเตเดคเดฒเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฃเดตเตเด‚: เด“เดฐเต‹ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเดฒเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดŸเดจเต€เดณเด‚ เด…เดตเดฏเต† เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดธเตเดฐเด•เตเดท: JWT เดŸเต‹เด•เตเด•เตบ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตเดจเตเดจเต, เด†เดงเดฟเด•เดพเดฐเดฟเด•เดฎเดพเด•เตเด•เตเดจเตเดจเต, เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเด™เตเด™เดณเต† เด•เต—เดคเตเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเดณเตเดณ เดšเดฟเดฒ เดธเดพเดงเตเดฏเดคเด•เตพ (เดถเดฐเดฟเด•เตเด•เตเด‚ เดšเดฟเดฒเดคเต เดฎเดพเดคเตเดฐเด‚!) เด‡เดตเดฏเดพเดฃเต. เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เดพเด‚!

เด‡เดธเตเดคเดฟเดฏเต‹ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏ

Istio เดŽเดฒเตเดฒเดพ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เด…เดคเดฟเดจเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดจเดฟเดฏเดฎเด™เตเด™เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด“เดฐเต‹ เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เตเด‚ เด’เดฐเต เดธเตˆเดกเตโ€Œเด•เดพเตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดจเตเดฑเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เด•เดดเดฟเดตเตเด•เดณเตเด‚ เดธเดœเต€เดตเดฎเดพเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เด•เตเดธเดฟเด•เตพ เดฐเต‚เดชเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต a เดกเดพเดฑเตเดฑเดพ เดตเดฟเดฎเดพเดจเด‚, เด•เต‚เดŸเดพเดคเต† เด…เดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดคเดฒเด‚.

เดกเดพเดฑเตเดฑเดพ เดตเดฟเดฎเดพเดจเด‚

เดชเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดค เดชเตเดฐเต‹เด•เตเดธเดฟเด•เตพ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเดพเตป เด‡เดธเตเดคเดฟเดฏเต‹เดฏเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฎเตเด•เตเด•เต เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚, เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เดŽเตปเดตเต‹เดฏเดฟเดฏเดฟเตฝ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เดฑเต€เดŸเตเดฐเตˆเด•เดณเตเด‚ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เดฟเด‚เด—เตเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ:

  1. เดŽเตปเดตเดฏเตเด•เตเด•เตŠเดชเตเดชเด‚ (เดžเด™เตเด™เตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดธเตˆเดกเตเด•เดพเตผ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต, เด…เดคเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เตฝเดชเตเดชเดจเตเดจเด‚ - เดเด•เดฆเต‡เดถเด‚. เดชเดฐเดฟเดญเดพเดท.) เดธเต‡เดตเดจ เดฌเดฟเดฏเตเดŸเต† เด†เดฆเตเดฏ เดธเด‚เดญเดตเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  2. เดฆเต‚เดคเตป เดธเตˆเดกเตเด•เดพเตผ เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต (เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•). (1)
  3. เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เด…เดคเดฟเดจเต† เดตเดฟเดณเดฟเดšเตเดš เดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  4. เด‡เดคเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เตผ เดคเตเดฑเด•เตเด•เตเด•เดฏเตเด‚ เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดŸเตเดคเตเดค เดธเต‡เดตเดจเดคเตเดคเต† เดตเดฟเดณเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. (2)

เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดจเดฟเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดฑเต€เดŸเตเดฐเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต, เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฌเตเดฐเต‡เด•เตเด•เดฟเด‚เด—เตเด‚ เดธเต‡เดตเดจ เด•เดฃเตเดŸเต†เดคเตเดคเดฒเตเด‚ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฏ X, Y เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Z เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดธเตเดตเดฏเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ. เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดฌเต‹เด•เตโ€Œเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดฒเดญเตเดฏเดฎเดพเดฃเต. เด‡เดธเตเดคเดฟเดฏเต‹เดฏเดฟเตฝ, เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ เด‡เดฒเตเดฒ เด•เต‹เดกเดฟเดฒเต† เดฎเดพเดฑเตเดฑเด™เตเด™เตพ.

เด•เตŠเดณเตเดณเดพเด‚! เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เด’เดฐเต เดฏเดพเดคเตเดฐ เดชเต‹เด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดพเด‚, เดชเด•เตเดทเต‡ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เดšเดฟเดฒ เดธเด‚เดถเดฏเด™เตเด™เดณเตเดฃเตเดŸเต, เดคเตเดฑเดจเตเดจ เดšเต‹เดฆเตเดฏเด™เตเด™เตพ. เด‡เดคเต เดœเต€เดตเดฟเดคเดคเตเดคเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เด…เดตเดธเดฐเด™เตเด™เตพเด•เตเด•เตเด‚ เด’เดฐเต เดธเดพเตผเดตเดคเตเดฐเดฟเด• เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดพเดญเดพเดตเดฟเด• เดธเด‚เดถเดฏเดฎเตเดฃเตเดŸเต: เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เด…เดคเตเดคเดฐเด‚ เดŽเดฒเตเดฒเดพ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเด‚ เด’เดฐเต เด•เต‡เดธเดฟเดจเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ.

เด’เดŸเตเดตเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดšเต‹เดฆเดฟเด•เตเด•เตเดจเตเดจเต: "เด‡เดคเต เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเดจเดพเด•เตเดฎเต‹?"

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด•เดŸเตฝ เดฏเดพเดคเตเดฐเดฏเตเด•เตเด•เต เดคเดฏเตเดฏเดพเดฑเดพเดฃเต, เดจเดฎเตเด•เตเด•เต เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฒเต†เดฏเดฟเดจเดฟเดจเต† เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเดพเด‚.

เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดคเดฒเด‚

เด…เดคเดฟเตฝ เดฎเต‚เดจเตเดจเต เด˜เดŸเด•เด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เดชเตˆเดฒเดฑเตเดฑเต, เดฎเดฟเด•เตเดธเดฐเต ะธ เด•เต‡เดพเดŸเตเดŸ, เดŸเตเดฐเดพเดซเดฟเด•เต เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดจเดฏเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดŸเต†เดฒเดฟเดฎเต†เดŸเตเดฐเดฟ เดกเดพเดฑเตเดฑ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฆเต‚เดคเดจเตเดฎเดพเดฐเต† เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเตเดฎเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดธเต‚เดคเตเดฐเดฟเดคเดฎเดพเดฏเดฟ, เดŽเดฒเตเดฒเดพเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เดกเดพเดฑเตเดฑเดพ เดชเตเดฒเต†เดฏเดฟเดจเตเดฎเดพเดฏเตเดณเตเดณ เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฒเต†เดฏเดฟเดจเดฟเดจเตเดฑเต† เด‡เดŸเดชเต†เดŸเตฝ

เดฆเต‚เดคเดจเตเดฎเดพเตผ (เด…เดคเดพเดฏเดคเต เดกเดพเดฑเตเดฑเดพ เดตเดฟเดฎเดพเดจเด‚) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดธเดฟเด†เตผเดกเดฟ (เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดตเดฟเดญเดต เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ) เด‡เดธเตเดคเดฟเดฏเต‹ เดจเดฟเตผเดตเตเดตเดšเดฟเดšเตเดšเดคเตเด‚ เดˆ เด†เดตเดถเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เด‰เดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณเดคเตเดฎเดพเดฃเต. เด‡เดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต, เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏ เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเดณเตเดณ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดฎเดฑเตเดฑเตŠเดฐเต เด‰เดฑเดตเดฟเดŸเดฎเดพเดฏเดฟ เด…เดต เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต. เดธเตƒเดทเตเดŸเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดˆ เดตเดฟเดญเดตเด‚ เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฒเต†เดฏเดฟเตป เดŽเดŸเตเดคเตเดคเต เดฆเต‚เดคเดจเตเดฎเดพเตผเด•เตเด•เต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดฎเดพเดฏเตเดณเตเดณ เดธเต‡เดตเดจเด™เตเด™เดณเตเดŸเต† เดฌเดจเตเดงเด‚

เดธเต‡เดตเดจเด™เตเด™เดณเตเดฎเดพเดฏเตเดณเตเดณ เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดŸเต† เดฌเดจเตเดงเด‚ เดžเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดตเดฟเดชเดฐเต€เดคเดฎเดฒเตเดฒ: เดธเต‡เดตเดจเด™เตเด™เตพ เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดฎเดพเดฏเดฟ เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต?

เดธเดคเตเดฏเด‚ เดชเดฑเดžเตเดžเดพเตฝ, "เดŽเดจเตเดคเดพเดฃเต เดตเต†เดณเตเดณเด‚" เดŽเดจเตเดจเต เดธเตเดตเดฏเด‚ เดšเต‹เดฆเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฎเดคเตเดธเตเดฏเด‚ เดตเต†เดณเตเดณเดฎเตเดณเตเดณเดคเตเดชเต‹เดฒเต†, เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เต เด…เดฑเดฟเดฏเดพเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เดšเดฟเดคเตเดฐเต€เด•เดฐเดฃเด‚ เดตเดฟเด•เตเดŸเต‹เดฑเดฟเดฏ เดฆเดฟเดฎเดฟเดคเตเดฐเด•เต‹เดชเต—เดฒเต‹เดธเต:- เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเต†เดณเตเดณเด‚ เดŽเด™เตเด™เดจเต† เด‡เดทเตเดŸเดฎเดพเดฃเต? - เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚ เดตเต†เดณเตเดณเด‚ เดŽเดจเตเดคเดพเดฃเต?

เด…เด™เตเด™เดจเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเตผเด•เตเด•เดฟเด‚เด—เต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดŽเดŸเตเด•เตเด•เดพเด‚, เด‡เดธเตเดคเดฟเดฏเต‹ เด˜เดŸเด•เด™เตเด™เตพ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เด…เดคเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเต‡เดตเดจเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเด‚, เดˆ เด˜เดŸเด•เด™เตเด™เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚ เดŽเดฒเตเดฒเดพเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดถเดฐเดฟเดฏเดพเด•เตเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดธเตเดคเดฟเดฏเต‹ เดจเตฝเด•เตเดจเตเดจ เด•เดดเดฟเดตเตเด•เตพ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต.

เดฎเดคเดฟเดฏเดพเดฏ เดธเดฟเดฆเตเดงเดพเดจเตเดคเด‚ - เดจเดฎเตเด•เตเด•เต เดˆ เด…เดฑเดฟเดตเต เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเด•เตเด•เดพเด‚!

เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เด‡เดธเตเดคเดฟเดฏเต‹

เด•เตเดฑเดžเตเดžเดคเต 4 vCPU-เด•เดณเตเด‚ 8 GB เดฑเดพเดฎเตเด‚ เด‰เดณเตเดณ เด’เดฐเต Kubernetes เด•เตเดฒเดธเตเดฑเตเดฑเตผ Istio-เดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚, เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ Google เด•เตเดฒเต—เดกเต เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดธเต—เดœเดจเตเดฏ $300.

เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เด•เตบเดธเต‹เตพ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดตเดดเดฟ Kubernetes-เดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตเดธเดธเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, Helm เดชเดพเด•เตเด•เต‡เดœเต เดฎเดพเดจเต‡เดœเตผ เดตเดดเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต Istio เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดนเต†เตฝเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป

เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เดนเต†เตฝเด‚ เด•เตเดฒเดฏเดจเตเดฑเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป. เด…เดŸเตเดคเตเดค เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ Istio เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด‡เดธเตเดฑเตเดฑเดฟเดฏเต‹ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดฑเดฟเดฒเต€เดธเต (เดชเดคเดฟเดชเตเดชเต 1.0.5-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดฏเดฅเดพเตผเดคเตเดฅ เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเตเดฑเต† เดฒเดฟเด™เตเด•เต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต 1.0.6 - เดเด•เดฆเต‡เดถเด‚. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.), เด’เดฐเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•, เด…เดคเดฟเดจเต† เดžเดพเตป เด‡เดจเดฟ เดตเดฟเดณเดฟเด•เตเด•เตเด‚ [istio-resources].

Istio เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป, K8s เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด’เดฐเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเด• istio-system:

$ kubectl create namespace istio-system

เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเด• [istio-resources] เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

$ helm template install/kubernetes/helm/istio 
  --set global.mtls.enabled=false 
  --set tracing.enabled=true 
  --set kiali.enabled=true 
  --set grafana.enabled=true 
  --namespace istio-system > istio.yaml

เดˆ เด•เดฎเดพเตปเดกเต เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดŸเต† เดชเตเดฐเดงเดพเดจ เด˜เดŸเด•เด™เตเด™เดณเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด‚ istio.yaml. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เดžเด™เตเด™เตพ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดžเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเด•เตเด•เดพเตป เดชเดฐเดฟเดทเตเด•เดฐเดฟเดšเตเดšเต:

  • global.mtls.enabled เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต false (เด…เดคเดพเดฏเดคเต mTLS เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟ - เดเด•เดฆเต‡เดถเด‚.)เดžเด™เตเด™เดณเตเดŸเต† เดกเต‡เดฑเตเดฑเดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป;
  • tracing.enabled เดœเต†เดฏเตเด—เตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต;
  • kiali.enabled เดธเต‡เดตเดจเด™เตเด™เดณเตเด‚ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เดฟเดฏเดพเดฒเดฟเดฏเต† เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • grafana.enabled เดถเต‡เด–เดฐเดฟเดšเตเดš เด…เดณเดตเตเด•เตพ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด—เตเดฐเดพเดซเดพเดจ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดจเดฎเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

$ kubectl apply -f istio.yaml

เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดŸเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ! เดŽเดฒเตเดฒเดพ เดชเต‹เดกเตเด•เดณเตเด‚ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ เดตเดฐเตเดจเตเดจเดคเตเดตเดฐเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด• istio-system เด•เดดเดฟเดฏเตเด‚ Running เด…เดฅเดตเดพ Completedเดคเดพเดดเต†เดฏเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†:

$ kubectl get pods -n istio-system

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เด…เดŸเตเดคเตเดค เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดคเตเดŸเดฐเดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต, เด…เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด‚.

เดธเต†เดจเตเดฑเดฟเดฎเต†เดจเตเดฑเต เด…เดจเดพเดฒเดฟเดธเดฟเดธเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ

เด‡เดคเดฟเดจเด•เด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดคเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเต†เดจเตเดฑเดฟเดฎเต†เดจเตเดฑเต เด…เดจเดพเดฒเดฟเดธเดฟเดธเต เดฎเตˆเด•เตเดฐเต‹ เดธเตผเดตเต€เดธเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเดฎเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เด†เดฎเตเด– เดฒเต‡เด–เดจเด‚. เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตเดŸเต† เด•เดดเดฟเดตเตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เดพเตป เด‡เดคเต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต.

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดพเดฒเต เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

  1. เดธเต‡เดตเดจเด‚ เดŽเดธเตเดŽ-เดซเตเดฐเดฃเตเดŸเต†เตปเดกเต, เด’เดฐเต Reactjs เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดฎเตเตปเดญเดพเด—เดคเตเดคเต† เดธเต‡เดตเดฟเด•เตเด•เตเดจเตเดจเต;
  2. เดธเต‡เดตเดจเด‚ SA-WebApp, เด…เดคเต เดธเต†เดจเตเดฑเดฟเดฎเต†เดจเตเดฑเต เด…เดจเดพเดฒเดฟเดธเดฟเดธเต เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต;
  3. เดธเต‡เดตเดจเด‚ เดŽเดธเตเดŽ-เดฒเต‹เดœเดฟเด•เต, เด…เดคเต เดธเตเดตเดฏเด‚ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเดจเตเดจเต เดตเดฟเด•เดพเดฐ เดตเดฟเดถเด•เดฒเดจเด‚;
  4. เดธเต‡เดตเดจเด‚ SA-เดซเต€เดกเตเดฌเดพเด•เตเด•เต, เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดคเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเต€เดกเตเดฌเดพเด•เตเด•เต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เดˆ เดกเดฏเด—เตเดฐเดพเดฎเดฟเตฝ, เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เด‡เตปโ€Œเด—เตเดฐเต†เดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด‚ เดžเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเต, เด…เดคเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เด‰เดšเดฟเดคเดฎเดพเดฏ เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เด‡เตปเด•เดฎเดฟเด‚เด—เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดธเตเดคเดฟเดฏเต‹ เด…เดคเดฟเดจเตเดฑเต† เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเดฟเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เด†เดถเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดชเดฟเดจเตเดคเตเดŸเดฐเตเด‚.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเต‡เด–เดฐเด‚ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดฏเตเด• istio-mastery. เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเด‚ เด‡เดธเตเดฑเตเดฑเดฟเดฏเต‹เดฏเตเด•เตเด•เตเดฎเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตˆเดกเตเด•เดพเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ เดจเดŸเดคเตเดคเดพเด‚ เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เด…เดฅเดตเดพ เด•เตˆเด•เตŠเดฃเตเดŸเต. เดธเตˆเดกเตโ€Œเด•เดพเตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เตพ เดธเตเดตเดฏเดฎเต‡เดต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฒเต‡เดฌเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต istio-injection=enabled, เด‡เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต:

$ kubectl label namespace default istio-injection=enabled
namespace/default labeled

เด‡เดชเตเดชเต‹เตพ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจ เด“เดฐเต‹ เดชเต‹เดกเตเด‚ (default) เด…เดคเดฟเดจเตเดฑเต† เดธเตˆเดกเตเด•เดพเตผ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดฒเดญเดฟเด•เตเด•เตเด‚. เด‡เดคเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเดŸเต† เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ เดŸเต†เดธเตเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเด‚ [istio-mastery] เด•เต‚เดŸเดพเดคเต† เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

$ kubectl apply -f resource-manifests/kube
persistentvolumeclaim/sqlite-pvc created
deployment.extensions/sa-feedback created
service/sa-feedback created
deployment.extensions/sa-frontend created
service/sa-frontend created
deployment.extensions/sa-logic created
service/sa-logic created
deployment.extensions/sa-web-app created
service/sa-web-app created

เดธเต‡เดตเดจเด™เตเด™เตพ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดชเต‹เดกเตเด•เตพเด•เตเด•เต เดฐเดฃเตเดŸเต เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเตเด•เตพ (เดธเต‡เดตเดจเดตเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดธเตˆเดกเตเด•เดพเดฑเตเด‚) เด‰เดฃเตเดŸเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚. kubectl get pods เด•เต‹เดณเดคเตเดคเดฟเดจเต เด•เต€เดดเดฟเดฒเดพเดฃเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต READY เดฎเต‚เดฒเตเดฏเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต 2/2, เดฐเดฃเตเดŸเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เดชเตเดฐเดคเต€เด•เดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต:

$ kubectl get pods
NAME                           READY     STATUS    RESTARTS   AGE
sa-feedback-55f5dc4d9c-c9wfv   2/2       Running   0          12m
sa-frontend-558f8986-hhkj9     2/2       Running   0          12m
sa-logic-568498cb4d-2sjwj      2/2       Running   0          12m
sa-logic-568498cb4d-p4f8c      2/2       Running   0          12m
sa-web-app-599cf47c7c-s7cvd    2/2       Running   0          12m

เดฆเตƒเดถเตเดฏเดชเดฐเดฎเดพเดฏเดฟ เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เดชเต‹เดกเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเตฝ เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟ

เด‡เดชเตเดชเต‹เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เด‡เตปเด•เดฎเดฟเด‚เด—เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดตเดฐเดพเตป เดžเด™เตเด™เตพ เด…เดจเตเดตเดฆเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดชเตเดฐเดตเต‡เดถเดจ เด•เดตเดพเดŸเด‚

เด‡เดคเต เดจเต‡เดŸเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดจเดฒเตเดฒ เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเด‚ (เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดŸเตเดฐเดพเดซเดฟเด•เต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•) เดตเดดเดฟเดฏเดพเดฃเต เดชเตเดฐเดตเต‡เดถเดจ เด•เดตเดพเดŸเด‚ เด‡เดธเตเดฑเตเดฑเดฟเดฏเต‹เดฏเดฟเตฝ, เด‡เดคเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† "เด…เดฐเดฟเด•เดฟเตฝ" เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต, เดฒเต‹เดกเต เดฌเดพเดฒเตปเดธเดฟเด™เต, เดธเตเดฐเด•เตเดท, เด‡เตปเด•เดฎเดฟเด‚เด—เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเดพเดฏเตเดณเตเดณ เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚ เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด‡เดธเตเดคเดฟเดฏเต‹ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

Ingress Gateway เด˜เดŸเด•เดตเตเด‚ เด…เดคเต เดฌเดพเดนเตเดฏเดฎเดพเดฏเดฟ เดซเต‹เตผเดตเต‡เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเต‡เดตเดจเดตเตเด‚ Istio เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต. เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดฌเดพเดนเตเดฏ IP เดตเดฟเดฒเดพเดธเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

$ kubectl get svc -n istio-system -l istio=ingressgateway
NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP
istio-ingressgateway   LoadBalancer   10.0.132.127   13.93.30.120

เดˆ IP เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเด‚ (เดžเดพเตป เด…เดคเดฟเดจเต† เดฌเดพเดนเตเดฏ-IP เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเด‚), เด…เดคเดฟเดจเดพเตฝ เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚ เดžเด™เตเด™เตพ เดฎเต‚เดฒเตเดฏเด‚ เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเด‚:

$ EXTERNAL_IP=$(kubectl get svc -n istio-system 
  -l app=istio-ingressgateway 
  -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')

เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เด’เดฐเต เดฌเตเดฐเต—เดธเดฑเดฟเดฒเต‚เดŸเต† เดˆ เดเดชเดฟ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเต‡เดตเดจเด‚ เดฒเดญเตเดฏเดฎเดฒเตเดฒ เดŽเดจเตเดจ เดชเดฟเดถเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚, เด•เดพเดฐเดฃเด‚ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด‡เดธเตเดคเดฟเดฏเต‹ เดŽเดฒเตเดฒเดพ เด‡เตปเด•เดฎเดฟเด‚เด—เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เตเด‚ เดคเดŸเดฏเตเดจเตเดจเต, เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡ เด‡เดคเตเดตเดฐเต† เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.

เด—เต‡เดฑเตเดฑเตเดตเต‡ เดฑเดฟเดธเต‹เดดเตเดธเต

เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡ เดŽเดจเตเดจเดคเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เด’เดฐเต CRD (เด•เดธเตเดฑเตเดฑเด‚ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดกเต†เดซเดจเดฟเดทเตป) เด†เดฃเต, เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ Istio เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตโ€Œเดคเต เดžเด™เตเด™เตพ เด‡เตปเด•เดฎเดฟเด‚เด—เต เดŸเตเดฐเดพเดซเดฟเด•เต เด…เดจเตเดตเดฆเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดชเต‹เตผเดŸเตเดŸเตเด•เตพ, เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ, เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดชเตเดฐเดพเดชเตโ€Œเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดŽเดฒเตเดฒเดพ เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เตเด‚ เดชเต‹เตผเดŸเตเดŸเต 80-เตฝ HTTP เดŸเตเดฐเดพเดซเดฟเด•เต เด…เดจเตเดตเดฆเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเตผเดตเตเดตเดšเดจเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดšเตเดฎเดคเดฒ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต (http-gateway.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: http-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
- "*"

เดธเต†เดฒเด•เตเดŸเตผ เด’เดดเดฟเด•เต† เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ istio: ingressgateway. เดˆ เดธเต†เดฒเด•เตเดŸเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดเดคเต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเดพเดฃเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเด‚. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดคเดพเดฃเต Ingress Gateway เด•เตบเดŸเตเดฐเต‹เดณเตผ, เด‡เดคเต Istio-เดฏเดฟเตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดตเดฟเดณเดฟเดšเตเดšเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต:

$ kubectl apply -f resource-manifests/istio/http-gateway.yaml gateway.networking.istio.io/http-gateway created

เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡ เด‡เดชเตเดชเต‹เตพ เดชเต‹เตผเดŸเตเดŸเต 80-เดฒเต‡เด•เตเด•เต เด†เด•เตโ€Œเดธเดธเตเดธเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดŽเดตเดฟเดŸเต‡เด•เตเด•เดพเดฃเต เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ. เด‡เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเด‚ เดตเต†เตผเดšเตเดตเตฝ เดธเต‡เดตเดจเด™เตเด™เตพ.

เดตเต†เตผเดšเตเดตเตฝ เดธเตผเดตเต€เดธเต เดฑเดฟเดธเต‹เดดเตเดธเต

เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฏ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดŽเด™เตเด™เดจเต† เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดตเต†เตผเดšเตเดตเตฝ เดธเตผเดตเต€เดธเต เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจเต.

http-gateway เดตเดดเดฟ เดตเดฐเตเดจเตเดจ เดžเด™เตเด™เดณเตเดŸเต† เด…เดชเต‡เด•เตเดทเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ sa-frontend, sa-web-app, sa-feedback เดธเต‡เดตเดจเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดฃเด‚:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เดตเต†เตผเดšเตเดตเตฝ เดธเต‡เดตเดจเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เดฑเต‚เดŸเตเดŸเตเด•เตพ

SA-Frontend-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตโ€Œเด•เตเด•เต‡เดฃเตเดŸ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเต‹เด•เตเด•เดพเด‚:

  • เดตเดดเดฟเดฏเดฟเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดชเตŠเดฐเตเดคเตเดคเด‚ / index.html เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต SA-Frontend-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดฃเด‚;
  • เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเต เดšเต†เดฏเตโ€Œเดค เดชเดพเดคเด•เตพ /static/* CSS, JavaScript เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เดซเตเดฐเดฃเตเดŸเตโ€ŒเดŽเตปเดกเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดซเดฏเดฒเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต SA-Frontend-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดฃเด‚;
  • เดชเดคเดฟเดตเต เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดชเดพเดคเด•เตพ '^.*.(ico|png|jpg)$', SA-Frontend-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดฃเด‚, เด•เดพเดฐเดฃเด‚ เดชเต‡เดœเดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดšเดฟเดคเตเดฐเด™เตเด™เดณเดพเดฃเดฟเดต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดตเดดเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ เด•เตˆเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต (sa-virtualservice-external.yaml):

kind: VirtualService
metadata:
  name: sa-external-services
spec:
  hosts:
  - "*"
  gateways:
  - http-gateway                      # 1
  http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /callback
    - uri:
        prefix: /static
    - uri:
        regex: '^.*.(ico|png|jpg)$'
    route:
    - destination:
        host: sa-frontend             # 2
        port:
number: 80

เดชเตเดฐเดงเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ:

  1. เดˆ เดตเต†เตผเดšเตเดตเตฝ เดธเตผเดตเต€เดธเต เดตเดฐเตเดจเตเดจ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต http-เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡;
  2. ะ’ destination เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เดธเต‡เดตเดจเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•: เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด’เดฐเต เดซเดฏเดฒเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต sa-virtualservice-external.yaml, เด‡เดคเดฟเตฝ SA-WebApp, SA-เดซเต€เดกเตโ€Œเดฌเดพเด•เตเด•เต เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† เดธเด‚เด•เตเดทเดฟเดชเตโ€Œเดคเดคเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดšเตเดฐเตเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฎเตเด•เตเด•เต เดตเต†เตผเดšเตเดตเตฝ เดธเต‡เดตเดจเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

$ kubectl apply -f resource-manifests/istio/sa-virtualservice-external.yaml
virtualservice.networking.istio.io/sa-external-services created

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•: เดจเดฎเตเดฎเตพ Istio เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, Kubernetes API เดธเต†เตผเดตเตผ Istio เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฒเต†เดฏเดฟเตป เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด‡เดตเดจเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด“เดฐเต‹ เดชเต‹เดกเดฟเดจเตเดฑเต†เดฏเตเด‚ เดŽเตปเดตเต‹เดฏเต เดชเตเดฐเต‹เด•เตเดธเดฟเด•เดณเดฟเตฝ เดชเตเดคเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‡เตปเด—เตเดฐเต†เดธเตเดธเต เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡ เด•เตบเดŸเตเดฐเต‹เดณเตผ เด•เตบเดŸเตเดฐเต‹เตพ เดชเตเดฒเต†เดฏเดฟเดจเดฟเตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเดฑเตเดฑเตŠเดฐเต เดฆเต‚เดคเตป เด†เดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดกเดฏเด—เตเดฐเดพเดฎเดฟเตฝ เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด‡เดธเตเดคเดฟเดฏเต‹-เด‡เตปเด—เตเดฐเดธเตเด—เต‡เดฑเตเดฑเตเดตเต‡ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เดธเต†เดจเตเดฑเดฟเดฎเต†เดจเตเดฑเต เด…เดจเดพเดฒเดฟเดธเดฟเดธเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดชเตเดชเต‹เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต http://{EXTERNAL-IP}/. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ เดŽเดจเตเดจ เดจเดฟเดฒ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸ: เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเดจเตเดจเดคเดฟเดจเตเด‚ เดŽเตปเดตเต‹เดฏเต เด•เดพเดทเต†เด•เตพ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดšเดฟเดฒเดชเตเดชเต‹เตพ เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเด‚.

เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดŸเตเดฐเดพเดซเดฟเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด†เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เตฝเดชเตเดชเด‚ เด•เดณเดฟเด•เตเด•เตเด•. (เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ เดตเตเดฏเด•เตเดคเดคเดฏเตเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เดเด•เดฆเต‡เดถเด‚ เดตเดฟเดตเตผเดคเตเดคเดจเด‚.).

เด•เดฟเดฏเดพเดฒเดฟ: เดจเดฟเดฐเต€เด•เตเดทเดฃเด•เตเดทเดฎเดค

เด•เดฟเดฏเดพเดฒเดฟ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเต€เดตเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•:

$ kubectl port-forward 
    $(kubectl get pod -n istio-system -l app=kiali 
    -o jsonpath='{.items[0].metadata.name}') 
    -n istio-system 20001

... เดคเตเดฑเดจเตเดจเต http://localhost:20001/, เด…เดกเตเดฎเดฟเตป/เด…เดกเตเดฎเดฟเตป เด†เดฏเดฟ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด•เดพเดฃเดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดธเตเดคเดฟเดฏเต‹ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเต‡เด–เดฐเดฟเดšเตเดš เดตเดฟเดตเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเต‡เดตเดจเด™เตเด™เตพ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเด•, "เด†เดฐเดพเดฃเต เด†เดฐเต†เดฏเดพเดฃเต เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดจเตเดจเดคเต?", "เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดเดคเต เดชเดคเดฟเดชเตเดชเดพเดฃเต เด…เดจเตเดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต" เดŽเดจเตเดจเต€ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เด‰เดคเตเดคเดฐเด‚ เดจเต‡เดŸเตเด•. เดชเดฐเดพเดœเดฏเด™เตเด™เตพ?" เด‡เดคเตเดฏเดพเดฆเดฟ. เดชเตŠเดคเตเดตเต‡, เด—เตเดฐเดพเดซเดพเดจเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด•เดฟเดฏเดพเดฒเดฟเดฏเตเดŸเต† เด•เดดเดฟเดตเตเด•เตพ เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•.

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เด—เตเดฐเดพเดซเดพเดจ: เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเต เดตเดฟเดทเตเดตเดฒเตˆเดธเต‡เดทเตป

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเดฟเตฝ เดถเต‡เด–เดฐเดฟเดšเตเดš เด…เดณเดตเตเด•เตพ เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ เด—เตเดฐเดพเดซเดพเดจ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด—เตเดฐเดพเดซเดพเดจ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเต€เดตเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต, เดคเดพเดดเต†เดฏเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดคเตเดฑเด•เตเด•เตเด• http://localhost:3000/:

$ kubectl -n istio-system port-forward 
    $(kubectl -n istio-system get pod -l app=grafana 
    -o jsonpath={.items[0].metadata.name}) 3000

เดฎเต†เดจเตเดตเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด• เดตเต€เดŸเต เดฎเตเด•เดณเดฟเตฝ เด‡เดŸเดคเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต เด‡เดธเตเดคเดฟเดฏเต‹ เดธเต‡เดตเดจ เดกเดพเดทเตเดฌเต‹เตผเดกเต เดฎเตเด•เดณเดฟเตฝ เด‡เดŸเดคเต เดฎเต‚เดฒเดฏเดฟเตฝ, เดธเต‡เดตเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด• sa-web-appเดถเต‡เด–เดฐเดฟเดšเตเดš เด…เดณเดตเตเด•เตพ เดจเต‹เด•เตเด•เดพเตป:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เดณเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดถเต‚เดจเตเดฏเดตเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเดฟเดฐเดธเดตเตเดฎเดพเดฏ เดชเตเดฐเด•เดŸเดจเดฎเดพเดฃเต - เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เด‡เดคเต เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฒเต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚:

$ while true; do 
    curl -i http://$EXTERNAL_IP/sentiment 
    -H "Content-type: application/json" 
    -d '{"sentence": "I love yogobella"}'; 
    sleep .8; done

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เต เดตเดณเดฐเต† เดจเดฒเตเดฒ เด—เตเดฐเดพเดซเตเด•เตพ เด‰เดฃเตเดŸเต, เด…เดตเดฏเตโ€Œเด•เตเด•เต เดชเตเดฑเดฎเต‡, เดจเดฟเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด…เดคเดฟเดถเดฏเด•เดฐเดฎเดพเดฏ เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเต เดŸเต‚เดณเตเด•เดณเตเด‚, เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด—เตเดฐเดพเดซเดพเดจเดฏเตเด‚, เด…เดคเต เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต† เดชเตเดฐเด•เดŸเดจเด‚, เด†เดฐเต‹เด—เตเดฏเด‚, เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เตพ / เดคเด•เตผเดšเตเดš เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเด เดฟเด•เตเด•เดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เดจเต‹เด•เตเด•เดพเด‚.

เดœเต†เดฏเตเด—เตผ: เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต

เดžเด™เตเด™เตพเด•เตเด•เต เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเด‚, เด•เดพเดฐเดฃเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดธเต‡เดตเดจเด™เตเด™เดณเตเดฃเตเดŸเต, เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต. เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เต‡เดธเต เดจเต‹เด•เตเด•เดพเด‚:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏเดฟ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เดธเดพเดงเดพเดฐเดฃ เด‰เดฆเดพเดนเดฐเดฃเด‚

เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฐเตเดจเตเดจเต, เดตเต€เดดเตเดจเตเดจเต - เดŽเดจเตเดคเดพเดฃเต เด•เดพเดฐเดฃเด‚? เด†เดฆเตเดฏ เดธเต‡เดตเดจเด‚? เด…เดคเต‹ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต‹? เดฐเดฃเตเดŸเดฟเดฒเตเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เด‰เดฃเตเดŸเต - เด“เดฐเต‹เดจเตเดจเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฒเต‹เด—เตเด•เตพ เดจเต‹เด•เตเด•เดพเด‚. เดŽเดคเตเดฐ เดคเดตเดฃ เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดธเตเดตเดฏเด‚ เดชเดฟเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต? เดžเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเต‡เด•เตเด•เดพเตพ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดกเดฟเดฑเตเดฑเด•เตเดŸเต€เดตเตเด•เดณเต† เดชเต‹เดฒเต†เดฏเดพเดฃเต...

เด‡เดคเต เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต† เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดชเตเดฐเดถเตโ€Œเดจเดฎเดพเดฃเต, เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดตเดดเดฟเดฏเดพเดฃเต เด‡เดคเต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดคเต, เด…เดคเดฟเตฝ เดธเต‡เดตเดจเด™เตเด™เตพ เดชเดฐเดธเตเดชเดฐเด‚ เด’เดฐเต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดˆ เดตเดฟเดตเดฐเด™เตเด™เตพ เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เด…เดคเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดฐเต เดฆเตƒเดทเตเดŸเดพเดจเตเดคเด‚ เด‡เดคเดพ:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป TraceId เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดตเต†เดฃเตเดŸเตผ-เดธเตเดตเดคเดจเตเดคเตเดฐ เด“เดชเตเดชเตบเดŸเตเดฐเต‡เดธเดฟเด‚เด—เต API เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เดœเต†เดฏเตเด—เตผ เดŸเตเดฐเต‡เดธเตผ, เด‡เดธเตเดคเดฟเดฏเต‹ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดœเต†เดฏเตเด—เตผ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

$ kubectl port-forward -n istio-system 
    $(kubectl get pod -n istio-system -l app=jaeger 
    -o jsonpath='{.items[0].metadata.name}') 16686

เด‡เดชเตเดชเต‹เตพ เดชเต‹เด•เตเด• http://localhost:16686/ เด’เดฐเต เดธเต‡เดตเดจเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• sa-web-app. เดกเตเดฐเต‹เดชเตเดชเต-เดกเต—เตบ เดฎเต†เดจเตเดตเดฟเตฝ เดธเต‡เดตเดจเด‚ เด•เดพเดฃเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดชเต‡เดœเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเด•/เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•, เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดฌเดŸเตเดŸเดฃเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดฏเตเด• เดŸเตเดฐเต†เดฏเตเดธเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด•, เด…เดคเต เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด‚ - เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• - เดŽเดฒเตเดฒเดพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เดณเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด‚:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1

เดˆ เดŸเตเดฐเต†เดฏเตเดธเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต:

  1. เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฐเตเดจเตเดจเต istio-ingressgateway (เด‡เดคเต เด’เดฐเต เดธเต‡เดตเดจเดตเตเดฎเดพเดฏเตเดณเตเดณ เด†เดฆเตเดฏ เด‡เดŸเดชเต†เดŸเดฒเดพเดฃเต, เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดŸเตเดฐเต‡เดธเต เดเดกเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต), เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡ เดธเต‡เดตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต sa-web-app.
  2. เดœเต‡เดพเดฒเดฟเดฏเดฟเตฝ sa-web-app เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดŽเตปเดตเต‹เดฏเต เดธเตˆเดกเตโ€Œเด•เดพเตผ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เด’เดฐเต "เด•เตเดŸเตเดŸเดฟ" เดธเตโ€Œเดชเดพเดจเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต (เด…เดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดžเด™เตเด™เตพ เด…เดคเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เดณเดฟเตฝ เด•เดพเดฃเตเดจเตเดจเดคเต) เด•เต‚เดŸเดพเดคเต† เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‡เด•เตเด•เต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต sa-web-app. (เดธเตเดชเดพเตป - เดœเต†เดฏเตเด—เดฑเดฟเดฒเต† เดœเต‹เดฒเดฟเดฏเตเดŸเต† เด’เดฐเต เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดฏเต‚เดฃเดฟเดฑเตเดฑเต, เด…เดคเดฟเดจเต เด’เดฐเต เดชเต‡เดฐเต, เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เด†เดฐเด‚เดญ เดธเดฎเดฏเด‚, เด…เดคเดฟเดจเตเดฑเต† เดฆเตˆเตผเด˜เตเดฏเด‚ เดŽเดจเตเดจเดฟเดตเดฏเตเดฃเตเดŸเต. เดธเตเดชเดพเดจเตเด•เตพ เดจเต†เดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดคเต เด“เตผเดกเตผ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดธเตเดชเดพเดจเตเด•เดณเตเดŸเต† เด’เดฐเต เดกเดฏเดฑเด•เตเดฑเตเดฑเต เด…เดธเตˆเด•เตเดฒเดฟเด•เต เด—เตเดฐเดพเดซเต เด’เดฐเต เดŸเตเดฐเต†เดฏเตเดธเต เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. - เดเด•เดฆเต‡เดถเด‚. เดชเดฐเดฟเดญเดพเดท.)
  3. เด‡เดตเดฟเดŸเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดตเดฟเด•เดพเดฐ เดตเดฟเดถเด•เดฒเดจเด‚. เดˆ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดพเดฃเต, เด…เดคเดพเดฏเดคเต. เด…เดตเตผเด•เตเด•เต เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.
  4. เดˆ เดจเดฟเดฎเดฟเดทเด‚ เดฎเตเดคเตฝ, เด’เดฐเต POST เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต เดธเดพ-เดฒเต‹เดœเดฟเด•เต. เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดเดกเดฟ เดซเต‹เตผเดตเต‡เดกเต เดšเต†เดฏเตเดฏเดฃเด‚ sa-web-app.
  5. เดชเด™เตเด•เต โ‚ฌ |

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•: เด˜เดŸเตเดŸเด‚ 4-เตฝ, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดธเตเดฑเตเดฑเดฟเดฏเต‹ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เด•เดพเดฃเตเด•เดฏเตเด‚ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚:

เด‡เดธเตเดคเดฟเดฏเต‹เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•. เดญเดพเด—เด‚ 1
(A) เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเต เด‡เดธเตเดคเดฟเดฏเต‹ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต; (เดฌเดฟ) เดนเต†เดกเดฑเตเด•เตพเด•เตเด•เต เดธเต‡เดตเดจเด™เตเด™เตพ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเด•เดณเดพเดฃเต

เด‡เดธเตเดคเดฟเดฏเต‹ เดฎเดฟเด•เตเด• เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เด•เดพเดฐเดฃเด‚... เด‡เตปเด•เดฎเดฟเด‚เด—เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เดพเดฏเดฟ เดนเต†เดกเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด“เดฐเต‹ เดธเตˆเดกเตโ€Œเด•เต†เดฏเดฑเดฟเดฒเตเด‚ เดชเตเดคเดฟเดฏ เดธเตเดชเดพเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เตเดณเตเดณเดฟเดฒเต† เดนเต†เดกเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเต†, เดฎเตเดดเตเดตเตป เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดŸเตเดฐเต†เดฏเตเดธเต เดชเดพเดคเดฏเตเด‚ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเด‚.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เดฃเด‚:

x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context

เด‡เดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดคเดฟเดจเตเดฑเต† เดจเดŸเดชเตเดชเดพเด•เตเด•เตฝ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด‰เดฃเตเดŸเต เดจเดฟเดฐเดตเดงเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, sa-web-app เดธเต‡เดตเดจเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ Jaeger, OpenTracing เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดšเต‡เตผเดคเตเดคเดพเตฝ RestTemplate เด•เตเดฒเดฏเดจเตเดฑเต เดˆ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต. เด…เดตเดจเตเดฑเต† เด†เดธเด•เตเดคเดฟเด•เตพ.

เดธเต†เดจเตเดฑเดฟเดฎเต†เดจเตเดฑเต เด…เดจเดพเดฒเดฟเดธเดฟเดธเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดซเตเดฒเดพเดธเตเด•เต, เดธเตเดชเตเดฐเดฟเด‚เด—เต, ASP.NET เด•เต‹เตผ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฒเตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

เดฌเต‹เด•เตโ€Œเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฌเต‹เด•เตโ€Œเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต), เดฎเดฟเด•เดšเตเดš เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต, เดธเตเดฐเด•เตเดท เดฎเตเดคเดฒเดพเดฏเดต เดจเดฎเตเด•เตเด•เต เดจเต‹เด•เตเด•เดพเด‚!

เด•เตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.: เดฑเดฟเดจเต‹เตผ เดฎเดพเดฒเต‹เด•เตเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‡เดธเตเดฑเตเดฑเดฟเดฏเต‹เดฏเดฟเดฒเต† เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เดณเตเดŸเต† เด…เดŸเตเดคเตเดค เดญเดพเด—เดคเตเดคเต เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเดพเดฏเดฟเด•เตเด•เตเด•, เด…เดคเดฟเดจเตเดฑเต† เดตเดฟเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดธเดฎเต€เดชเดญเดพเดตเดฟเดฏเดฟเตฝ เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเตฝ เดชเดฟเดจเตเดคเตเดŸเดฐเตเด‚. เด…เดชเตเดกเต‡เดฑเตเดฑเต (เดฎเดพเตผเดšเตเดšเต 14): เดฐเดฃเตเดŸเดพเด‚ เดญเดพเด—เด‚ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดตเดฟเดตเตผเดคเตเดคเด•เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•