αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020

αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ DevOps αžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž“αŸ…αžαŸ’αž„αŸƒαž“αŸαŸ‡!

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž‘αžΈαž”αŸ†αž•αž»αžαž”αžŠαž·αžœαžαŸ’αž DevOps αž”αžΆαž“αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž–αž·αž—αž–αž›αŸ„αž€ αž αžΎαž™αž§αž”αž€αžšαžŽαŸ DevOps αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž–αŸαž‰αž“αž·αž™αž˜αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαŸ” αž“αŸαŸ‡αž”αžΎαž™αŸ„αž„αžαžΆαž˜αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž“αŸ’αž“αžΆαž€αžΆαžšαžšαž”αžŸαŸ‹ googleαž…αŸ†αž“αž½αž“αž“αŸƒαžŸαŸ†αžŽαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "αž§αž”αž€αžšαžŽαŸ DevOps" αž€αŸ†αž–αž»αž„αžαŸ‚αž€αžΎαž“αž‘αžΎαž„αž₯αžαžˆαž”αŸ‹αžˆαžš αž αžΎαž™αž“αž·αž“αŸ’αž“αžΆαž€αžΆαžšαž“αŸαŸ‡αž“αŸ…αžαŸ‚αž”αž“αŸ’αžαŸ”

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž DevOps αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž˜αžΌαž› αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αžΈαž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŠαžΉαž„αž αžΎαž™αžαžΆ αž‚αŸ’αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŽαžΆαž’αžΆαž…αž€αŸ’αž›αžΆαž™αž‡αžΆαž§αž”αž€αžšαžŽαŸαžŸαž€αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžšαžŠαŸαž’αŸ†αž‘αžΌαž›αžΆαž™αž”αŸ‚αž”αž“αŸαŸ‡ αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž…αžΌαžšαž”αŸ‚αž„αž…αŸ‚αž€αž§αž”αž€αžšαžŽαŸ DevOps αž‘αŸ…αž‡αžΆαž”αŸ’αžšαž—αŸαž‘ αž αžΎαž™αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™ analoguesαŸ–

  • αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸ
  • αžŸαžΆαž€αž›αŸ’αž”αž„αž§αž”αž€αžšαžŽαŸαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜
  • αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™
  • αž§αž”αž€αžšαžŽαŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
  • αž§αž”αž€αžšαžŽαŸαžŸαž αž€αžΆαžšαŸ”

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αž“αž·αž„αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž€αžΆαžšαž‚αž·αžαž‚αžΌαžš αž’αŸ’αž“αž€αž’αž“αž»αžœαžαŸ’αž DevOps αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž§αž”αž€αžšαžŽαŸαž–αžΈαž€αŸ’αžšαž»αž˜αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžšαžΆαž™αžαžΆαž„αž›αžΎαŸ” αžœαž·αž—αžΆαž‚αž§αž”αž€αžšαžŽαŸαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αžαž€αžαžΆαž“αž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž”αŸ†αž–αž„αŸ‹ CI/CD αŸ”

αž§αž”αž€αžšαžŽαŸαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž‡αž„αŸ‹αž”αŸ†αž–αž„αŸ‹ CI/CD αŸ” αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž‘αžΈαž“αŸαŸ‡! αž§αž”αž€αžšαžŽαŸαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž˜αž½αž™αž•αž›αž·αžαž•αž›αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸαŸ‡ αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αžΈαž€αŸ’αžšαž»αž˜αŸ–

  • αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αžŽαŸ‚ (SCM)
  • αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ (CI)
  • αž€αžΆαžšβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‚αŸ’αžšαž„β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™

GIT αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2020 αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž§αž”αž€αžšαžŽαŸ SCM αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž™αŸ‰αžΆαž„αžšαž›αžΌαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GIT αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CI αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž‡αžΆαž˜αž»αž“αž‚αžΊαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŸαŸ’αžαžΆαž”αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž’αž»αž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ” αž“αŸ…αž–αŸαž›αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžœαžΆαž‘αžΆαž˜αž‘αžΆαžšαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž˜αž€αŸ†αžŽαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž§αž”αž€αžšαžŽαŸ SCM + CI # 1

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– GitLab αž“αž·αž„ GitLab-CI

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž§αž”αž€αžšαžŽαŸαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž“αŸƒαžœαžŠαŸ’αž DevOps αž†αŸ’αž“αžΆαŸ† 2020 αž‚αžΊαž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™ GitLab αž αžΎαž™αžœαžΆαž–αž·αžαž‡αžΆαž“αžΉαž„αž”αž“αŸ’αžαžŠαžΉαž€αž“αžΆαŸ†αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžŠαŸαžαŸ’αž›αžΈαž“αŸαŸ‡αŸ”

αž˜αž»αžαž„αžΆαžšαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹ GitLab αž‚αžΊαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž•αžΆαžŸαž»αž€αž—αžΆαž–αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„ Git αŸ” αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžŠαžΆαž‰αž‚αžΊαžœαž·αž…αžΆαžšαžŽαž‰αžΆαžŽ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαŸ” GitLab αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ αž αžΎαž™αž˜αž€αž‡αžΆ SaaS αž“αž·αž„ on-prem (αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ) αŸ”

αž‚αŸ’αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸ SCM αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αžΆαž“αž”αŸ’αžšαžΎαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αž (CI) αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž›αžΎαžƒαŸ’αž›αžΆαŸ†αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ αž αžΎαž™ GitLab αž”αžΆαž“αž“αž·αž„αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸαŸ‡αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎ GitLab-CI αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž―αž€αžŸαžΆαžš .gitlab-ci.yml αž‘αŸ… root αž€αžΌαžŠαž”αŸ’αžšαž—αž–αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŽαžΆαž˜αž½αž™αž…αŸ†αž–αŸ„αŸ‡αž‚αž˜αŸ’αžšαŸ„αž„αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ” GitLab αž“αž·αž„ GitLab-CI αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž‘αž‘αž½αž›β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αžαžΆβ€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αžŠαžΉαž€β€‹αž“αžΆαŸ†β€‹αž€αŸ’αž“αž»αž„β€‹αž•αŸ’αž“αŸ‚αž€β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜β€‹αž‡αžΆβ€‹αž”αž“αŸ’αžβ€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹ (CI-as-code)αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹ - αž•αž›αž·αžαž•αž›αž˜αžΆαž“αž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαžαžΆαŸ†αž„αž–αžΈαž†αŸ’αž“αžΆαŸ† 2013; αžŸαŸ’αžαŸαžšαž—αžΆαž–; αž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ”
  • αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  - αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžšαž”αžŸαŸ‹ GitLab αž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž“αžΌαž›αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž€αž‰αŸ’αž…αž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžšαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸ‚αž›αž˜αžΆαž“αž‘αŸ†αž αŸ† αž“αž·αž„αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαŸ”
  • Engrained CI - αž‚αŸ’αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„ SCM αžŠαžΌαž…αž‡αžΆ GitLab-CI αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Docker αž’αžΆαž“αžΆαž“αžΌαžœαž€αžΆαžšαžŸαŸ’αžαžΆαž”αž“αžΆαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžšαŸ†αžαžΆαž“ αž αžΎαž™αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž™αžΎαž„αž˜αž·αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž§αž”αž€αžšαžŽαŸαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž“αŸ„αŸ‡αž‘αŸαŸ”
  • αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ - GitLab αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž§αž”αž€αžšαžŽαŸ DevOps αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž“αŸαŸ‡αž’αžΆαž“αžΆαžαžΆαž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αžαŸ‚αž‘αžΆαŸ†αž˜αžΆαž“αž”αŸ’αžšαž—αž–αžαŸ‚αž˜αž½αž™αž“αŸƒαž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŽαžΆαž˜αž½αž™αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž–αŸαž‰αž“αž·αž™αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αžœαžΆαž˜αž·αž“αž›αŸ’αž’αžŠαžΌαž… GitLab αž‘αŸαŸ” αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž˜αžΌαž›αž αŸαžαž»αŸ–

GitHub - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αžŽαŸ‚ SaaS αžŠαŸαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžαžΌαž…αŸ— αž“αž·αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž’αŸ†αŸ— αžŠαŸ‚αž›αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž–αžΈ GitHub αž‚αžΊαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž .OVA αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αŸ” αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αž‡αžΆαž˜αž»αž“ αž€αŸ’αžšαŸ…αž–αžΈαž“αŸαŸ‡ .OVA αž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžαŸ’αž“αžΆαžαž˜αž’αŸ’αž™αž˜αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αžΉαž„αž‚αžΆαŸ†αž„αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž”αž“αŸ’αž‘αž»αž€αž’αŸ†αž‡αžΆαž„αŸ” αž€αž„αŸ’αžœαŸ‡αž“αŸƒαžŸαž€αž˜αŸ’αž˜αž—αžΆαž– GitHub (αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ αž“αž·αž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž˜αž»αž“) ឬ CI-as-code αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸ CI αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ„αŸ‡αŸ” αž‘αžΈαž”αŸ†αž•αž»αž GitHub αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαž‡αžΆαž„αž€αŸ†αžŽαŸ‚αžŽαžΆαž˜αž½αž™αžšαž”αžŸαŸ‹ GitLab αŸ”

Jenkins β€” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆ Jenkins αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž§αž”αž€αžšαžŽαŸαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž€αŸαžŠαŸ„αž™ αžœαžΆαžαŸ‚αž„αžαŸ‚αžαŸ’αžœαŸ‡αžŸαž˜αžαŸ’αžαž—αžΆαž–αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αžŽαŸ‚αŸ” αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ Jenkins αž”αžΌαž€αž“αžΉαž„αž§αž”αž€αžšαžŽαŸ SCM αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžœαžΆαž–αž·αž”αžΆαž€αž–αŸαž€αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› GitLab αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‘αžΆαŸ†αž„αž–αžΈαžšαŸ” αž€αžΆαžšαžšαž…αž“αžΆ Mediocre UX αž˜αž·αž“αžŸαŸαž€αŸ’αžαž·αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΎαž” αž αžΎαž™αž‘αž»αž€αž’αŸ’αžœαžΈαŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ”

BitBucket/αž«αžŸαŸ’αžŸαžΈ - αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαžαŸ‚αž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αž‚αžΆαžαŸ‹αž‡αžΆαž’αŸ’αž“αž€αž…αžΆαž‰αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ– αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž§αž”αž€αžšαžŽαŸαž–αžΈαžšαž“αŸ…αž–αŸαž› GitLab αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™αŸ” BitBucket Cloud αž‚αžΆαŸ†αž‘αŸ’αžšαž˜αž»αžαž„αžΆαžš GitLab-CI / GitHub Action αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αž˜αžΆαž“αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŽαžΆαž’αŸ†αž‡αžΆαž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαžœαžΆαž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ BitBucket αžŠαŸ‚αž›αž˜αž·αž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž”αŸ†αž–αž„αŸ‹ BitBucket!

#1 αž§αž”αž€αžšαžŽαŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– FlywayDB

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžš αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αž·αž“αž•αŸ’αžαž›αŸ‹αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž‘αŸαŸ” αž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž€αž™αžΊαžαŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž‡αžΆαžšαžΏαž™αŸ—αž“αžΆαŸ†αž±αŸ’αž™αž‡αž½αžšαžˆαžš αž¬αžαžΆαžšαžΆαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž“αž·αž„αž”αŸ’αžαžΌαžšαžˆαŸ’αž˜αŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ†αžŽαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž€αŸ†αžŽαŸ‚αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžΆαž…αž“αžΉαž„αž‚αžΆαŸ†αž„αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžΆαž…αž‡αžΆαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜ αžŠαŸ„αž™αžŸαžΆαžšαž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΈαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ” FlyWayDB αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž€αŸ†αžŽαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ - Flyway αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž•αŸ’αž‘αŸαžš αž¬αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡αŸ”
  • Binary ឬ Embedded - αž™αžΎαž„αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Flyway αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž¬αž‡αžΆ Binary executableαŸ” Flyway αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž—αžΆαž–αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸƒαž€αŸ†αžŽαŸ‚αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αžŠαŸ‚αž›αžŸαž˜αžŸαŸ’αžšαž” αžŠαŸ„αž™αžšαž€αŸ’αžŸαžΆαž€αŸ†αžŽαŸ‚αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž±αŸ’αž™αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαŸ” αžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ cmd line ad-hoc αž™αžΎαž„αž•αŸ’αžαž›αŸ‹αž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αžŠαž›αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αžΎαž„αžœαž·αž‰αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž˜αž·αž“αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸαŸ‡αž‘αŸαŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž–αž½αž€αž‚αŸαžαŸ’αž›αŸ‡αŸ–

LiquiBase - Liquibase αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αž“αžΉαž„ FlywayDB αŸ” αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžŠαŸ†αž‘αžΎαž„αžœαžΆαž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ Flyway αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‡αžΆαž˜αž½αž™ Liquibase αŸ”

Flocker - αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž»αž„αžαžΊαž“αŸαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžƒαŸ’αž›αžΆαŸ†αž„αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αž™αŸ‰αžΆαž„αž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎ RDS (Relational Database Service) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž€αž»αŸ†αžŽαŸ‚αž“αžΆαŸ†αž²αŸ’αž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžšαŸ”

αžŸαžΆαž€αž›αŸ’αž”αž„αž§αž”αž€αžšαžŽαŸαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž…αžΌαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž–αž·αž—αžΆαž€αŸ’αžŸαžΆαžšαž”αžŸαŸ‹αž™αžΎαž„αž’αŸ†αž–αžΈαž§αž”αž€αžšαžŽαŸαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ„αž™αž…αžΆαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž–αž½αž€αžœαžΆαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαžΆαž‡αžΈαž‡αŸ’αžšαž»αž„αžŸαžΆαž€αž›αŸ’αž”αž„αŸ”

αž–αžΈαžšαŸ‰αžΆαž˜αžΈαžαžŸαžΆαž€αž›αŸ’αž”αž„ (αžαŸαžŸαŸ’αž) αž˜αžΆαž“ ៀ αž€αž˜αŸ’αžšαž·αžαŸ–

  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž―αž€αžαžΆ - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž―αž€αžαžΆαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘αžαŸαžŸαŸ’αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαžšαžŸαŸαžš αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž―αž€αžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™ (αžŠαŸ‚αž›αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αžαžΆαž‡αžΆ "αž―αž€αžαžΆ") αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž€αžΆαžšαžšαž…αž“αžΆαžšαž”αžŸαŸ‹αžœαžΆ αž“αž·αž„αž˜αžΆαž“αž₯αžšαž·αž™αžΆαž”αžαžŠαžΌαž…αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαž˜αžΆαžŸαž’αžΆαžαž» - αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž₯αžšαž·αž™αžΆαž”αžαž”αž‰αŸ’αž…αžΌαž› / αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžœαžαŸ’αžαž»αžŸαžΆαž€αž›αŸ’αž”αž„αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž“αžΆαžαžΆαž˜αž»αžαž„αžΆαžšαž“αŸƒαžœαžαŸ’αžαž»αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžαžΆαž˜αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› - αž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž˜αŸ‰αžΌαžŒαž»αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αž“αž·αž„αžŸαžΆαž€αž›αŸ’αž”αž„αž‡αžΆαž€αŸ’αžšαž»αž˜αŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž‰αŸ’αž…αž”αŸ‹αž‘αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹ - αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž™αžΎαž„αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž˜αžΌαž› αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž―αž€αžαžΆ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž‡αžΆαžšαžΏαž™αŸ—αž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž§αž”αž€αžšαžŽαŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ‚αž“ DevOps αž‘αŸαŸ”

#1 αž§αž”αž€αžšαžŽαŸαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– αžαŸ’αžšαžŸαž€αŸ‹

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αžαŸ’αžšαžŸαž€αŸ‹αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž“αž·αž„αž―αž€αžŸαžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžšαžŸαŸ‹αž“αŸ…αžαŸ‚αž˜αž½αž™αŸ” αž›αž€αŸ’αžαžŽαŸˆβ€‹αž–αž·αžŸαŸαžŸβ€‹αž‚αžΊβ€‹αžαŸ‚αž„β€‹αžαŸ‚β€‹αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™β€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αžŠαŸ„αž™β€‹αžŸαŸ’αžœαŸαž™β€‹αž”αŸ’αžšαžœαžαŸ’αžαž·β€‹αžŠαŸ„αž™β€‹αžαŸ’αžšαžŸαž€αŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαž”αžαžŽαŸ’αžŒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž–αžΈαž‘αž‘αŸ αž“αž·αž„αž‚αŸ†αžšαžΌαž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰αž“αŸ„αŸ‡ Selenium WebDriver αž‡αžΆαž˜αž½αž™ Java αž“αž·αž„ Cucumber BDD αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŠαŸαž›αŸ’αž’αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž“ αž“αž·αž„αž’αž“αž»αžœαžαŸ’αž Cucumber αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž BDD (αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‡αŸ†αžšαž»αž‰αž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆ - "αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαžΆαž˜αžšαž™αŸˆαž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆ" αž•αŸ’αž‘αž»αž™αž‘αŸ…αž“αžΉαž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž "αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž") - αžαŸ’αžšαžŸαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž BDD αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ†αž”αžΌαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž“αŸαŸ‡αŸ”
  • αž―αž€αžŸαžΆαžšαžšαžŸαŸ‹αž“αŸ… - αž―αž€αžŸαžΆαžšαžαŸ‚αž„αžαŸ‚αžˆαžΊαž…αžΆαž”αŸ‹! αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž€αžΌαžŠ Cucumber αžŸαžΆαž€αž›αŸ’αž”αž„αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž“αž·αž„αž―αž€αžŸαžΆαžšαž˜αžΆαž“αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš - αž™αžΎαž„αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αžΈαž§αž”αž€αžšαžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžŸαž€αŸ‹αž˜αžΆαž“αž’αž“αž’αžΆαž“αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ‚αž›αžšαŸ€αž”αž…αŸ†αž™αŸ‰αžΆαž„αž›αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž›αŸ†αž”αžΆαž€αžŽαžΆαž˜αž½αž™αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž˜αžΆαž“αžαŸ‚αžαŸ’αžšαžŸαž€αŸ‹αž‘αŸαžŠαŸ‚αž›αž’αžΆαž…αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŸαž€αž›αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž”αŸ‹

αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž”αŸ‹ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž•αŸ’αžαŸ„αžαž›αžΎαž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαŸ–

  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž»αžαž„αžΆαžš
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž—αžΆαž–αžαžΆαž“αžαžΉαž„αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž»αžαž„αžΆαžš αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž–αž·αžαž‡αžΆαž€αžΎαžαž‘αžΎαž„αžŠαŸ‚αžšαž¬αž‘αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αžαŸ’αž‰αž»αŸ†αž…αž»αž…αž›αžΎαž’αžΆαžαž»αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒ SPA αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ†αž–αŸαžšαžαŸ‚αž˜αž½αž™) αž”αŸ†αž–αŸαž‰αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ‚αž”αž”αž‘ αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ "αžŠαžΆαž€αŸ‹αžŸαŸ’αž“αžΎ" αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΉαž„αž›αŸαž…αž‘αžΎαž„αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αžŸαžΆαžš "αž‡αŸ„αž‚αž‡αŸαž™!" αž›αŸαž…αž‘αžΎαž„αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹αŸ”

αžœαžΆαž€αŸαžŸαŸ†αžαžΆαž“αŸ‹αž•αž„αžŠαŸ‚αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž…αŸ†αž“αž½αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžŠαžΌαž…αž‚αŸ’αž“αžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αŸ†αž αž»αžŸαŸ”

αž’αžœαžαŸ’αžŠαž˜αžΆαž“αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‘αžΆαŸ†αž„αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ†αž–αž„αŸ‹ CI/CD αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

# 1 αž§αž”αž€αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž”αŸ‹αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž»αžαž„αžΆαžš

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– SoapUI Pro

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
SoapUI αž”αžΆαž“αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αžŸαžΆαž€αž›αŸ’αž”αž„ API αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™ αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ SOAP αž‚αžΊαž‡αžΆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ” αžαžŽαŸˆβ€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž›αŸ‚αž„β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŸαŸαžœαžΆ SOAP αžαŸ’αž˜αžΈ αž αžΎαž™β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžšαž”αžŸαŸ‹β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌαžš αž“αŸ„αŸ‡β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž“αŸαž™β€‹αžαžΆβ€‹αžœαžΆβ€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžœαž·αžœαžαŸ’αžαž“αŸβ€‹αž‘αŸαŸ” SoapUI αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαžŠαŸαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž»αžαž„αžΆαžšαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž αžΎαž™αž”αŸ’αžšαžΎαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž”αŸ†αž–αž„αŸ‹αž”αž„αŸ’αž αžΌαžš CI/CD αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž―αž€αžŸαžΆαžšαž›αž˜αŸ’αž’αž·αž - SoapUI αž˜αžΆαž“αž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžšαžŽαžΆαžŸαŸ‹αž˜αž€αž αžΎαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αžΆαž“αž’αž“αž’αžΆαž“αž’αž“αž‘αžΆαž‰αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž’αžΆαž…αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ”
  • αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ - αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž‚αžΆαŸ†αž‘αŸ’αžšαž–αž·αž’αžΈαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ APIs αž€αŸαžŠαŸ„αž™ αžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹ SoapUI αž“αŸƒαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‘αžΌαž‘αŸ…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαžšαžŸαŸαžšαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

Selenium αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎαžœαžΆ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ JavaαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαž–αŸαž‰αž›αŸαž‰αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“ αžœαžΆαž’αžΆαž…αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž‚αŸ’αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ Java αŸ”

# 1 αž§αž”αž€αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž”αŸ‹αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž—αžΆαž–αžαžΆαž“αžαžΉαž„

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– LoadRunner

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ– αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αžŸαžΆαž€αž›αŸ’αž”αž„αžšαžΆαž›αŸ‹αž’αžΆαžαž»αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž˜αžΆαž“αžαŸ‚ LoadRunner αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ†αž–αŸαž‰αž—αžΆαžšαž€αž·αž…αŸ’αž…αž”αžΆαž“αŸ” αž”αžΆαž‘ αžœαžΆαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒ αž“αž·αž„αž–αž·αž”αžΆαž€αžŠαŸ†αž”αžΌαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ LoadRunner αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžαŸ’αž‰αž»αŸ† αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž‡αžΆαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž‘αŸ†αž“αž»αž€αž…αž·αžαŸ’αžαž–αŸαž‰αž›αŸαž‰αžαžΆαž€αžΌαžŠαžαŸ’αž˜αžΈαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αžšαŸ„αž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž•αŸ’αž‘αž»αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αžŠαŸ‚αžš αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαžœαžΆαžŠαž›αŸ‹αž–αŸαž›αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ LoadRunner αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž‡αžΆαž‡αžΆαž„αž€αŸ’αžšαž»αž˜αžŸαžΆαž€αž›αŸ’αž”αž„αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž―αž€αžŸαžΆαžšαž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™ - LoadRunner αž˜αžΆαž“αž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžšαž˜αž½αž™αžšαž™αŸˆαž˜αž€αž αžΎαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αžΆαž“αž’αž“αž’αžΆαž“αž’αž“αž‘αžΆαž‰αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αž·αž’αžΈαž€αžΆαžš - Load Runner αž‚αžΆαŸ†αž‘αŸ’αžšαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž–αžΈ ODBC αž‘αŸ… AJAX, HTTPS αž“αž·αž„αž–αž·αž’αžΈαž€αžΆαžšαžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαŸ” αž™αžΎαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž˜αž·αž“αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž‡αžΆαžαŸ’αž˜αžΈαž˜αŸ’αžαž„αž‘αŸ€αž αž˜αž·αž“αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŸαž€αž›αž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸαŸ‡αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‚αžΊαž§αž”αž€αžšαžŽαŸαž˜αž½αž™αžŠαŸ‚αž›αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŽαžΆαž˜αž½αž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŽαžΆαž˜αž½αž™αŸ”

αž§αž”αž€αžšαžŽαŸαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž§αž”αž€αžšαžŽαŸβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αžŠαžΆαž€αŸ‹β€‹αž–αž„αŸ’αžšαžΆαž™β€‹αž”αŸ’αžšαž αŸ‚αž›β€‹αž‡αžΆβ€‹αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž’αž—αž·αžœαžŒαŸ’αžβ€‹αžŠαŸ‚αž›β€‹αž‚αŸβ€‹αž™αž›αŸ‹β€‹αžαž·αž…β€‹αž‡αžΆαž„β€‹αž‚αŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžŸαŸŠαžΈαž‡αž˜αŸ’αžšαŸ…αž’αŸ†αž–αžΈαž€αžΌαžŠ αž“αž·αž„αž˜αž»αžαž„αžΆαžšαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ„αŸ‡ αžœαžΆαž–αž·αžαž‡αžΆαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‚αžΊαž‡αžΆαž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ’αž˜αžΈαž˜αž½αž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž–αž½αž€αž‚αŸαž˜αž·αž“αž‘αžΆαž“αŸ‹αž˜αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸαŸ”

αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αž§αž”αž€αžšαžŽαŸαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‡αžΆαž”αžΈαž”αŸ’αžšαž—αŸαž‘αžšαž„αŸ–

  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽ
  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’
  • αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αŸ”

#1 αž§αž”αž€αžšαžŽαŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽ

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ Nexus

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αžƒαŸ’αž›αžΆαŸ†αž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽ Nexus αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŸαŸ†αžαžΆαž“αŸ‹αŸ— αž…αžΆαž”αŸ‹αž–αžΈ Java αž‘αŸ… NPM αžŠαž›αŸ‹ Docker αŸ” αž™αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΎαŸ” αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž€αŸαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž CI αž•αž„αžŠαŸ‚αžš αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αž‰αŸ’αž…αž”αŸ‹αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αŸ” αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž˜αž½αž™αž‘αŸ€αžαž‚αžΊαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž–αŸαž‰αž›αŸαž‰αž“αŸƒαž€αž‰αŸ’αž…αž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαŸ„αž™αžšαžΆαžšαžΆαŸ†αž„αž€αž‰αŸ’αž…αž”αŸ‹αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– (αž–αž½αž€αžœαžΆαž’αžΆαž…αžŠαžΎαžšαžαž½αž‡αžΆαžœαŸ‰αž·αž…αž‘αŸαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžš)αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ - αž•αž›αž·αžαž•αž›αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“; αž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ”
  • αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  - αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž“αžΌαž›αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸαŸ”

#1 αž§αž”αž€αžšαžŽαŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– Ansible

Ansible αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™: αž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹αŸ” αž–αžΈαž˜αž»αž“ αž§αž”αž€αžšαžŽαŸαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαžŠαŸ’αž‹αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž“αŸ…αž–αŸαž›αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž‘αž‘αž½αž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αž αžΎαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αž˜αžΈ αž˜αžΆαž“αžαŸ‚αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αŸ” αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αžΌαžŠαž‚αžΊαž‡αžΆαžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ†αž“αž½αžŸαž€αžΌαžŠαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž”αžšαž·αž™αžΆαž€αžΆαžŸαžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈ

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹ - Playbook αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸ„αž›αžŠαŸ…αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž—αž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž»αž–αžΈαž…αž˜αŸ’αž„αžΆαž™ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŠαžΌαž…αž‡αžΆ Packer αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžœαžαŸ’αžαž»αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αŸ”
  • αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  - αžŠαžΌαž…αž‡αžΆ CentOS, Ansible αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ RedHat αž•αž„αžŠαŸ‚αžšαŸ” αžœαžΆαž‡αž½αž™αžšαž€αŸ’αžŸαžΆαžŸαž αž‚αž˜αž“αŸ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžαŸ’αž–αžŸαŸ‹ αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΌαž›αŸαž‚αž»αž› (αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ Ansible) - αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αžΊαž‡αžΆαž€αžΌαžŠ αžŠαžΌαž…αž‡αžΆαž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŽαžΆαžŸαŸ‹αŸ” αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαž½αž“αžΆαž‘αžΈ Ansible αžšαž”αžŸαŸ‹ Molecule αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αŸ†αž αž»αžŸ αžŠαŸ„αž™αž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αž”αŸ†αž–αž„αŸ‹ CI/CD αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”
  • YAML - αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αž YAML αž„αžΆαž™αž™αž›αŸ‹αž‡αžΆαž„αŸ” αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž‡αžΆαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž DevOps αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰αž‚αžΊαž‡αžΆαž€αžΆαžαžŸαŸ†αž‘αŸαž„αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž…αž»αž„αž—αŸ… OpsCode - αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž‡αžΈαž– DevOps αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‡αžΆαž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαžŸαŸ€αžœαž—αŸ…αž’αŸ’αžœαžΎαž˜αŸ’αž αžΌαž”αŸ” Ruby αž“αž·αž„αž…αž»αž„αž—αŸ…αž–αž·αžαž‡αžΆαžŸαŸ’αžšαž›αžΆαž‰αŸ‹αž”αŸαŸ‡αžŠαžΌαž„αžαŸ’αž‰αž»αŸ†αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹ αž“αž·αž„ cloud-native αžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž“αŸ„αŸ‡αž‘αŸαŸ” OpsCode Chef αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŠαŸαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž•αŸ’αžαŸ„αžαž›αžΎαž’αž“αžΆαž‚αžαŸ”

Puppet - αž’αžΆαž™αŸ‰αž„αž˜αž·αž“αžŠαŸ‚αž›αž˜αžΆαž“αž’αŸ’αž“αž€αž‚αžΆαŸ†αž‘αŸ’αžšαž…αŸ’αžšαžΎαž“αž‘αŸ αž‡αžΆαž–αž·αžŸαŸαžŸαž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™ Chef αž“αž·αž„ Ansible αŸ” αžœαžΆαž›αŸ’αž’αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αžαž›αŸ‹ αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαžαŸ’αžœαŸ‡αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αŸ†αž“αžΎαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαŸ”

αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž›αŸαž 1

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– Terraform

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
Terraform αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž€αžΌαžŠ αž…αžΆαž”αŸ‹αž–αžΈαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž”αžŽαŸ’αžαžΆαž‰ αžšαž αžΌαžαžŠαž›αŸ‹αžšαžΌαž”αž—αžΆαž–αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αŸαž‰αž›αŸαž‰αŸ” αž•αž›αž·αžαž•αž›αž“αŸαŸ‡αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžœαžΆ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„ αž αžΎαž™αžŸαž αž‚αž˜αž“αŸαžŠαŸαžšαžΉαž„αž˜αžΆαŸ†αž”αŸ‚αž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž‘αž‘αž½αž›αž”αžΆαž“αž‡αŸ†αž“αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŽαžΆαž˜αž½αž™αŸ” αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘ (αž€αŸ’αž“αž»αž„αž”αžšαž·αžœαŸαžŽ αž–αž–αž€ αž¬αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αž) αž‚αžΊαž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαŸ€αž”αž•αŸ’αž‘αžΉαž˜αž”αžΆαž“αŸ” αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžš αž“αž·αž„αžαŸ’αž“αžΆαž€αŸ‹αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„ HCL αž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™ Terraform αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž™αž€αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • Environment agnostic - Terraform αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αžŠαžΎαžšαžαž½αž‡αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžšαžœαžΆαž„αž€αžΌαžŠ Terraform αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ APIs αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αž“αž»αž„αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž“αŸαŸ‡β€‹αž˜αžΆαž“β€‹αž“αŸαž™β€‹αžαžΆβ€‹αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αžŸαŸ’αž‘αžΆαžαŸ‹β€‹αž‡αŸ†αž“αžΆαž‰β€‹αžαŸ‚β€‹αž˜αž½αž™β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž αžΎαž™β€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž“αŸ…β€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‘αžΈβ€‹αž€αž“αŸ’αž›αŸ‚αž„αŸ”
  • αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  - αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αžαž½αž›αž§αž”αž€αžšαžŽαŸαž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ! αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž αž‚αž˜αž“αŸαž“αŸ…αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

AWS CloudFormation β€” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž–αž–αž€ AWS αž€αŸαžŠαŸ„αž™ αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ” αž€αžΆαžšαž›αŸ‡αž”αž„αŸ‹αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž€αž˜αŸ’αž›αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ…αž€αžΆαž“αŸ‹αžœαŸαž‘αž·αž€αžΆαžαŸ‚αž˜αž½αž™ αž‚αžΊαž‡αžΆαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŠαŸ‚αž›αž‚αž·αžαžαŸ’αž›αžΈαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αžαŸ’αž˜αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ‚αž„αžαŸ‚αž˜αžΆαž“αž‡αžΆαž˜αŸ‰αžΌαžŒαž»αž› Terraform αž˜αž»αž“αž–αŸαž›αž–αž½αž€αžœαžΆαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ CloudFormation αŸ”

αž§αž”αž€αžšαžŽαŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020

αž‚αŸ„αž›αžŠαŸ…αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŽαžΆαž˜αž½αž™αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž– DevOps αž™αžΎαž„αž…αž„αŸ‹αžŠαžΉαž„αž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“αž‡αžΆαž˜αž½αž™αž”αžšαž·αžŸαŸ’αžαžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αž™αžΎαž„αž€αŸαž…αž„αŸ‹αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαžΆαž‚αž˜αž“αŸαžŠαŸ„αž™αžŠαŸƒαž•αž„αžŠαŸ‚αžšαŸ” αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αŸ’αžœαžΆαž“αŸ”

αž”αŸ’αžšαž—αŸαž‘αžšαž„αž“αŸƒαž§αž”αž€αžšαžŽαŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

  • X-as-a-service (XaaS)
  • αžœαž„αŸ‹αž—αŸ’αž›αŸαž„
  • αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™
  • αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαŸ”

X-tool-as-a-service # 1

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“Amazon Web Services

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
Amazon αžαŸ‚αž„αžαŸ‚αžˆαžΆαž“αž˜αž»αžαž‚αŸαž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž–αž–αž€ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžˆαž”αŸ‹αžαŸ’αžšαžΉαž˜αž“αŸαŸ‡αž‘αŸαŸ– αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ†αž–αž»αž„αž”αžΎαž€αž—αŸ’αž“αŸ‚αž€αŸ” αž“αžΆαŸ†αž™αž€αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ αž“αž·αž„αž‚αŸ†αžšαžΌαžŽαžΆαž˜αž½αž™αž‘αŸ… AWS αž αžΎαž™αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžαž˜αŸ’αž›αŸƒαž“αŸƒαž§αž”αž€αžšαžŽαŸαž‚αžΊαžŸαž˜αž αŸαžαž»αž•αž›αžŽαžΆαžŸαŸ‹αŸ– αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžœαžΆαž‡αžΆαž˜αž½αž™αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αžαŸ‚αž‘αžΆαŸ†αž§αž”αž€αžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸ αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž˜αž»αž“αž–αŸαž›αž…αŸ†αžŽαžΆαž™αž”αŸ’αžšαžΆαž€αŸ‹αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž”αŸ’αžšαŸαžœαŸ‰αžΆαž‘αž„αŸ‹ - αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ AWS αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αŸ” αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž…αžΌαž›αž…αž·αžαŸ’αž AWS αž αžΎαž™αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž€αŸαž–αŸαž‰αž…αž·αžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž‘αžΆαž”αžšαž”αžŸαŸ‹αžœαžΆαž•αž„αžŠαŸ‚αžšαŸ”
  • αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‚αžΊαž‡αžΆαž€αžαŸ’αžαžΆαžŸαŸ†αžαžΆαž“αŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹ AWS αžαž»αžŸαž–αžΈαž˜αž·αžαŸ’αžαž—αž€αŸ’αžŠαž·αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžαŸ’αž‰αž»αŸ†αžŸαžΆαž€αž›αŸ’αž”αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž˜αž»αž“αž–αŸαž›αžαŸ’αž‰αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‘αž·αž‰ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αž„αŸ‹αž…αŸ†αžŽαžΆαž™αžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αžŠαž»αž›αŸ’αž›αžΆαžšαž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‚αžΊαžαŸ‚αž„αžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž‚αŸ†αž“αž·αžαžŽαžΆαž˜αž½αž™αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

Azure β€œAzure αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž•αŸ’αž›αžΌαžœαž†αŸ’αž„αžΆαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž›αžΎαž€αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžœαžΆ αž αžΎαž™αž“αŸ„αŸ‡αž‡αžΆαž€αžΆαžšαžŸαžšαžŸαžΎαžšαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αŸ†αžŽαž„αž”αŸ’αžšαžΆαžαŸ’αž“αžΆαž…αž„αŸ‹αž˜αžΆαž“αž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‚αŸ’αž“αžΆαž”αžΆαž“αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž…αž˜αŸ’αž›αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αžŠαŸ‚αž›αž‡αžΆαžšαžΏαž™αŸ—αž’αŸ’αžœαžΎαž’αŸ„αž™αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαž›αŸ‹αž€αžΆαžšαž„αžΆαžšαŸ” តើ "αžƒαŸ’αž›αžΆαŸ†αž„αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™" αž˜αžΆαž“αž“αŸαž™αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž αžΎαž™αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αžΌαžŠ .NET αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαžšαž”αžŸαŸ‹ Microsoft αžœαžΆαž˜αž·αž“αž‘αŸ†αž“αž„αžŠαŸ‚αž›αžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž”αŸ’αžšαžΎαžαŸ‚ .NET αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΆαž›αŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ„αŸ‡αž‘αŸαŸ”

αž αžΊαžšαŸ‰αžΌαž‚αžΌ β€” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αžœαžΈαž€αŸ’αžšαŸ…αž–αžΈαž‚αž˜αŸ’αžšαŸ„αž„αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž“αŸ…αž›αžΎ Heroku αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹ αž“αž·αž„αžαž˜αŸ’αž›αžΆαž—αžΆαž–αž‘αžΆαž” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž˜αž·αž“αž‚αž½αžšαž”αŸ’αžšαžΎαžœαžΆαž‡αžΆαžœαŸαž‘αž·αž€αžΆαž“αŸ„αŸ‡αž‘αŸαŸ” Heroku αž‚αžΊαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ - β€œαž‘αŸ αž’αžšαž‚αž»αžŽ!”

# 1 αž§αž”αž€αžšαžŽαŸ Orchestration

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– αž’αžΌαž›αž αŸ’αžœαžΈαžŸ

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ Docker αž¬αž’αž»αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž„αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αžΊαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αžœαžΆαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αžŸαž˜αž“αžΉαž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αžΈαž˜αž½αž™αŸ—αž‘αŸαŸ” αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžœαŸαž‘αž·αž€αžΆαžšαžœαž„αŸ‹αž—αŸ’αž›αŸαž„αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” Kubernetes Core (K8s) αž‚αžΊαž‚αŸ’αž˜αžΆαž“αž‚αžΌαž”αŸ’αžšαŸ€αž”αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž§αž”αž€αžšαžŽαŸαŸ” OpenShift αž‚αžΊαž‡αžΆαžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ Kubernetes αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαž˜αžΌαž› Source2Image αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αŸ…αž€αžΆαž“αŸ‹αž•αž αž“αž·αž„αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“ αž“αž·αž„αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” OpenShift αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ prem αž€αŸ’αž“αž»αž„ cloud ឬ on-prem αž“αž·αž„αž€αŸ’αž“αž»αž„ cloud αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ - αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– K8s αž’αžΆαž…αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž‰αŸ’αž‰αžΆαž”αžαŸ’αžšαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αŸ” αžšαžΆαž›αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αžαŸ’αžšαžΌαžœαžαŸ‚αž‚αž·αžαžŠαŸ„αž™αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“ αž αžΎαž™αž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆ! αž™αž“αŸ’αžαž€αžΆαžšαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‡αžΆαž˜αž½αž™ OpenShift αžŠαž€αž”αž“αŸ’αž‘αž»αž€αž…αŸαž‰αž–αžΈαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžœαŸαž‘αž·αž€αžΆαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‡αžΆαž„αž˜αž»αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”
  • αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž˜αž½αž™ - αž˜αž·αž“αžŠαžΌαž… K8s αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž˜αž·αž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž–αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ OpenShift αž˜αžΆαž“αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžαŸ’αž‰αž»αŸ†αž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αž„αŸ’αž αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžš αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž”αž€αžšαžŽαŸ CI/CD αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ… αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ„ αž“αž·αž„αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αž“αŸ…αžαŸ‚αž†αŸ’αž„αžΆαž™αž–αžΈαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αž€αŸαžŠαŸ„αž™ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž•αŸ’αž’αŸ‚αž€αž›αžΎ API αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž”αŸ” αž˜αž·αž“αžŠαžΌαž… GUI αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ K8s OpenShift αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαžšαŸ€αž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αžšαž”αžŸαŸ‹ Kubernetes αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αžŸαž‰αŸ’αž‰αžΆαž”αžαŸ’αžšαž‘αŸ!

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

Docker Swarm - Docker Swarm αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αŸ’αžœαžΎαž±αŸ’αž™ K8s αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαŸ„αž™αž€αž˜αŸ’αž…αžΆαžαŸ‹αžšαžΏαž„αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αžœαžΆαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΌαž…αŸ— αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαž αž‚αŸ’αžšαžΆαžŸ αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαžΌαž…αž‡αžΆ AWS ECS αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž€αŸαž’αžΆαž…αž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™ (Lambda, IAM, αž›)αŸ”

αž§αž”αž€αžšαžŽαŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž›αŸαž ៑

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžαŸ’αž˜αžΈαŸ”

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹ New Relic αž”αžΆαž“αž’αŸ’αžœαžΎαžšαžΏαž„αž˜αž½αž™αž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’ - αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ APM (Application Performance Monitoring) αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž›αž€αŸ’αžαžŽαŸˆαž–αŸαž‰αž›αŸαž‰αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž€αž»αž„αžαžΊαž“αŸαžš αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ - αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαžœαž·αžŸαŸ’αžœαž€αžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŠαŸ‚αž›αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αžšαžΏαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαžŠαžΌαž… New Relic αž“αŸ„αŸ‡αž‘αŸαŸ” αžœαžΆαž‡αžΆ SaaS αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαŸ†αž‘αžΎαž„αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž‘αŸαŸ”
  • αž›αž‘αŸ’αž’αž—αžΆαž–αž˜αžΎαž›αžƒαžΎαž‰αž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž”αŸ‹ - αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž–αŸ’αž™αžΆαž™αžΆαž˜αžαžΆαž˜αžŠαžΆαž“αž’αžΆαžαž»αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžšαž„αŸ’αžœαžΆαžŸαŸ‹αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ processor αž¬αž…αžšαžΆαž…αžšαž”αžŽαŸ’αžαžΆαž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” New Relic αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž“αžΆαŸ†αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž½αž˜αž‚αŸ’αž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŠαŸαž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž€αžΎαžαž‘αžΎαž„αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

Zabbix - αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ†αž”αžΌαž„ αž“αž·αž„αž‡αžΆαž‘αžΈαž–αŸαž‰αž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αŸ…αžαŸ‚αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαžΈαžαž€αžΆαž› αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαžαŸ’αžœαŸ‡αžαžΆαžαž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž–αž–αž€ αž“αž·αž„αž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ APM αŸ” Zabbix αž“αŸ…β€‹αžαŸ‚β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž”αŸ‚αž”β€‹αž”αž»αžšαžΆαžŽβ€‹αž”αžΆαž“β€‹αž™αŸ‰αžΆαž„β€‹αž›αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž“αŸ„αŸ‡β€‹αž‚αžΊβ€‹αž’αŸ†αž–αžΈβ€‹αžœαžΆαŸ”

DataDog - αž•αŸ’αžαŸ„αžαžαŸ’αž›αžΆαŸ†αž„αž–αŸαž€αž‘αŸ…αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž•αž›αž·αžαž€αž˜αŸ’αž˜αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž˜αž·αž“αž˜αŸ‚αž“αž›αžΎαž€αžΌαžŠαžαŸ’αž›αž½αž“αž―αž„αž“αŸ„αŸ‡αž‘αŸαŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ’αžšαž»αž˜ DevOps αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž™αžΎαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž§αž”αž€αžšαžŽαŸαž–αž·αž”αžΆαž€αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αž˜αŸ’αžšαž·αžαž€αŸ†αž–αžΌαž›αž“αŸ„αŸ‡αž‘αŸαŸ”

αž§αž”αž€αžšαžŽαŸαž€αžαŸ‹αžαŸ’αžšαžΆαž›αŸαž ៑

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– Splunk

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αž‡αžΆαž˜αž½αž™ Splunk! αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αž‚αžΆαžαŸ‹αž“αŸ…αžαŸ‚αž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαžŠαŸ„αž™αž”αž“αŸ’αžαž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž›αŸ’αž’αž‡αžΆαž„αž’αŸ’αž“αž€αžŠαž‘αŸƒαŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž“αŸ…αž›αžΎ Prem αž“αž·αž„ SaaS αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ Splunk αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αŸ” αž€αžΆαžšαž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αžŠαŸαž’αŸ†αž‚αžΊαžαž˜αŸ’αž›αŸƒαžšαž”αžŸαŸ‹αžœαžΆαŸ– Splunk αž“αŸ…αžαŸ‚αžαŸ’αž›αŸƒαžαŸ’αž›αžΆαŸ†αž„!

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž—αžΆαž–αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž› - αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž…αžΌαž›αž…αž·αžαŸ’αž Splunk αž αžΎαž™αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž˜αžΆαž“αž›αž»αž™αž‘αž·αž‰αžœαžΆαŸ”
  • αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž‘αžΆαž‰αž™αž€αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž‘αžΎαž„αžœαž·αž‰αž€αŸαžŠαŸ„αž™ αž€αŸαž˜αž»αžαž„αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  analogues αŸ”
  • αž€αžΆαžšαžαŸ‚αžšαž€αŸ’αžŸαžΆ - αž“αž·αž™αžΆαž™αž±αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰ Splunk αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αž·αž„αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž›αŸ’αž’αŸ” αžœαžΆαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž“αž·αž„αž˜αž»αžαž„αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž–αŸαž›αžœαŸαž›αžΆαž’αžΆαž“αž―αž€αžŸαžΆαžšαž αžΎαž™αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αŸ’αžœαžΎαž±αŸ’αž™ Splunk αž’αŸ’αžœαžΎαž€αžΆαžšαž¬αžŒαž·αž‚αŸ’αžšαžΈαž”αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

ELK Stack (ElasticSearch, LogStash αž“αž·αž„ Kibana) "αž§αž”αž€αžšαžŽαŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž–αŸαž‰αž…αž·αžαŸ’αž αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž›αž€αŸ‹αžαŸ’αž›αžΎαž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆαŸ”" αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αžΎαž“αž‘αžΎαž„ αž αžΎαž™αž…αŸ†αž“αž½αž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž›αžΎαž™αž“αŸ’αžαž αŸ„αŸ‡αž€αžΎαž“αž‘αžΎαž„ αž€αžΆαžšαž„αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž–αž·αž”αžΆαž€αŸ” αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„ Splunk αž‡αžΆαž˜αž½αž™αž“αžΉαž„ ELK Stack αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž»αž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž§αž”αž€αžšαžŽαŸ αž˜αž»αž“αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαž•αŸ’αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž’αŸ’αž›αžΆαž”αŸ‹αž˜αžΆαž“αž–αžΈαž˜αž»αž“αž˜αž€αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαž αž€αžΆαžš

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
DevOps αž‡αžΆαž…αž˜αŸ’αž”αž„αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαž”αŸ’αž”αž’αž˜αŸŒαž“αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž€αžΆαžšαž˜αž½αž™αŸ” αž€αžΆαžšαž‘αž·αž‰αž§αž”αž€αžšαžŽαŸαžŽαžΆαž˜αž½αž™αž“αžΉαž„αž˜αž·αž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž–αŸαž‰αž˜αž½αž™αž™αž”αŸ‹αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž–αž·αžαž‡αžΆαž’αžΆαž…αž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžŠαž›αŸ‹αž€αžΆαžšαžŸαž αž€αžΆαžš αž“αž·αž„αžœαž·αž’αžΈαžαŸ’αž˜αžΈαž“αŸƒαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αŸ”

αž”αŸ’αžšαž—αŸαž‘αžšαž„αž“αŸƒαž§αž”αž€αžšαžŽαŸαžŸαž αž€αžΆαžšαŸ–

  • αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž—αžΆαžšαž€αž·αž…αŸ’αž…
  • ChatOps
  • αž―αž€αžŸαžΆαžšαŸ”

#1 αž”αž‰αŸ’αž αžΆαž§αž”αž€αžšαžŽαŸαžαžΆαž˜αžŠαžΆαž“

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– Jira

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
Jira αžšαž€αŸ’αžŸαžΆβ€‹αžαŸ†αžŽαŸ‚αž„β€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αžŠαžΉαž€β€‹αž“αžΆαŸ†β€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž›αž½αž“ αž‘αŸ„αŸ‡β€‹αž”αžΈβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαž€αž½αžβ€‹αž”αŸ’αžšαž‡αŸ‚αž„β€‹αž€αŸ’αž“αž»αž„β€‹αžαŸ†αž”αž“αŸ‹β€‹αž“αŸαŸ‡β€‹αž€αŸ†αž–αž»αž„β€‹αž€αžΎαž“β€‹αž‘αžΎαž„β€‹αž€αŸβ€‹αžŠαŸ„αž™αŸ” αž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‡αžΏαžšαž”αžŸαŸ‹ Jira αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αžαŸ‚αž‘αžΆαŸ†αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž„αžΆαžšαž‚αž˜αŸ’αžšαŸ„αž„ αž“αž·αž„αž€αž·αž…αŸ’αž…αž€αžΆαžšαžšαžαŸ‹αž€αžΆαžšαŸ” αžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž™αžŸαŸαž–αŸ’αž‘ Agile αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαžœαž·αž’αžΈαž’αž˜αŸ’αž˜αžαžΆαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αž˜αž»αž“αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž—αžΆαž–αž–αŸαž‰αž“αž·αž™αž˜ - αžŠαžΌαž…αž‡αžΆαž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αžΆαž…αŸ’αžšαžΎαž“ Jira αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αŸ” αž€αŸ’αžšαž»αž˜αžαžΌαž…αŸ—αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ„αž€ αž“αž·αž„αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“ αž“αž·αž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž€αžΆαžš αžαžŽαŸˆαžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž’αŸ†αŸ—αž’αžΆαž…αž˜αžΆαž“αž›αž‘αŸ’αž’αž—αžΆαž–αž‘αž·αž‰αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαž‡αžΆαž„αŸ”
  • αžŸαž˜αžΆαž αžšαžŽαž€αž˜αŸ’αž˜ - Jira αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αžαŸ’αžšαž½αžŸαžαŸ’αžšαžΆαž™αž•αŸ’αž›αžΌαžœαž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αŸ” αž€αžΆαžšαž–αž·αžαž“αŸαŸ‡αž“αž·αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαž“αŸƒαž•αž›αž·αžαž•αž›αž“αžΆαŸ†αž±αŸ’αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ Jira αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαž“αžαž˜αŸ’αž›αŸƒαž“αŸƒαž§αž”αž€αžšαžŽαŸαŸ” αž™αžΎαž„αž’αžΆαž…αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› Jira αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžšαžΆαž™αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž…αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

Trello - Trello αž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαž‡αžΆαž”αŸ’αžšαž·αž™αž—αžΆαž–αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αžŠαŸ„αž™αžŸαžΆαžšαž§αž”αž€αžšαžŽαŸ Kanban αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΆαž“αž‘αŸ†αž αŸ† αž αžΎαž™αž’αŸ’αž“αž€αž…αŸαž‰αž–αžΈαž€αž·αž…αŸ’αž…αž€αžΆαžšαžšαžΆαž”αŸ‹αžŸαž·αž”αž‘αŸ…αžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹ Trello αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž»αž€αžšαž€ αžŸαŸ’αžœαŸ‚αž„αžšαž€ αž“αž·αž„αžšαžΆαž™αž€αžΆαžšαžŽαŸαŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž˜αžŠαžΆαž“αžŸαŸ†αžαžΆαž“αŸ‹ - αžαŸ’αž‰αž»αŸ†αž‡αžΆαž’αŸ’αž“αž€αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸαž’αŸ†αž“αŸƒαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αžαŸ’αž‰αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ Pivotal Tracker αž‚αžΊαž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αž›αž·αžαž•αž›αž‡αžΆαž‡αžΆαž„αž€αžΆαžšαž„αžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αž›αž·αžαž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„ Jira αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„αž“αŸαŸ‡αž”αž“αŸ’αžαž·αž…αž€αŸαžŠαŸ„αž™ αž€αŸαžœαžΆαž“αŸ…αžαŸ‚αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αž“αŸ’αžαŸ‚αž˜αŸ”

αž§αž”αž€αžšαžŽαŸ ChatOps # 1

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– MatterMost

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ– αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž€αžΆαžšαž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αžŠαŸαž’αŸ†αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž αžΎαž™αž“αŸ„αŸ‡αž‡αžΆαžŠαŸ†αžŽαžΉαž„αž›αŸ’αž’! MatterMost αž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαž‡αžΆαž”αŸ’αžšαž·αž™αž—αžΆαž–αžŠαŸ„αž™αž™αž€αž›αŸ’αž’αž”αŸ†αž•αž»αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž–αžΈαž˜αž»αž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΆαž€αŸ‹αž–αž½αž€αžœαžΆαž“αŸ…αž›αžΎαžαž»αŸ” αž“αŸαŸ‡αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αŸ– MatterMost αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž‡αž½αž™αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž™αžΎαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αž‡αž‰αŸ’αž‡αžΆαŸ†αž„αž—αŸ’αž›αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αžΆαžšαž‡αž‡αŸ‚αž€αž€αžΆαžšαž„αžΆαžšαž‘αŸ€αžαž‘αŸαŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  - αž€αŸ†αžŽαŸ‚αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžšαž”αžŸαŸ‹ MatterMost αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž€αŸ’αžšαž»αž˜αž˜αž’αŸ’αž™αž˜ αž“αž·αž„αž€αŸ’αžšαž»αž˜αž’αŸ†αŸ” αž˜αž·αž“αžŠαžΌαž…αž‚αž˜αŸ’αžšαŸ„αž„αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžšαž”αžŸαŸ‹ Slack αžŠαŸ‚αž›αž›αž»αž”αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αžšαž€αŸ’αžŸαžΆαž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  • αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› - αžŠαŸ„αž™αžŸαžΆαžš API αž‚αžΊαžŸαŸ’αž‘αžΎαžšαžαŸ‚ 100% αž•αŸ’αž’αŸ‚αž€αž›αžΎ Slack API αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› Slack αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™ MatterMost αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

slack - Slack αž‚αžΊαžαŸ’αžšαž‡αžΆαž€αŸ‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž»αžšαžŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž”αžΆαž“αž€αžΎαž“αž‘αžΎαž„αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αŸ’αžšαžΆαž€αŸ‹αž…αŸ†αžŽαŸαž‰αŸ” αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαž„αžαŸ’αžšαž›αž”αŸ‹αž“αŸƒαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž€αŸ†αž–αž»αž„αžαž·αžαž‡αž·αžαž˜αž€αžŠαž›αŸ‹ αžŠαŸ‚αž›αžŠαž€αž αžΌαžαžαž˜αŸ’αž›αŸƒαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ– Slack αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ„αž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαŸ” αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸƒαž€αŸ†αžŽαŸ‚αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‚αžΊαž€αžΆαžšαž›αž»αž”αž”αŸ’αžšαžœαžαŸ’αžαž·αž‡αž‡αŸ‚αž€αŸ”

αž€αŸ’αžšαž»αž˜ Microsoft β€” αžŸαžΌαž˜αžŸαžΆαž€αž›αŸ’αž”αž„αž”αž‰αŸ’αž…αžΌαž›αž•αž›αž·αžαž•αž› Microsoft αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αžšαž”αžŸαŸ‹ Microsoft... αžŸαžΌαž˜αžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’! αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡!

αž§αž”αž€αžšαžŽαŸαž―αž€αžŸαžΆαžšαž›αŸαž ៑

αž’αŸ’αž“αž€αžˆαŸ’αž“αŸ‡αŸ– Confluence

αž§αž”αž€αžšαžŽαŸ DevOps αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž‚αž½αžšαžšαŸ€αž“αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020
αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αž“αž·αž„αžαŸ‚αžšαž€αŸ’αžŸαžΆαž―αž€αžŸαžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž‚αž»αžŽαž—αžΆαž– αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž˜αž½αž™ αž˜αž·αž“αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž’αŸ’αžœαžΈαž“αŸ„αŸ‡αž‘αŸαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž§αž”αž€αžšαžŽαŸαž―αž€αžŸαžΆαžš SaaS αž‡αžΆαž…αŸ’αžšαžΎαž“αž”αžΆαž“αž…αžΌαž›αž˜αž€αž€αŸ’αž“αž»αž„αž‘αžΈαž•αŸ’αžŸαžΆαžšαž“αžΆαž–αŸαž›αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αž€αŸαžŠαŸ„αž™ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž…αŸαž‰αž”αŸ’αžšαž—αž–αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž―αž€αžŸαžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸαžŸαž€αž€αž˜αŸ’αž˜αžŸαŸ†αžαžΆαž“αŸ‹αžŠαž›αŸ‹αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈαŸ” αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž―αž€αžŸαžΆαžšαž“αŸ…αž“αžΉαž„αž€αž“αŸ’αž›αŸ‚αž„ αž αžΎαž™αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž› Confluence αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžœαžΆαŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

  • αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž’αŸ’αžœαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš - αž§αž”αž€αžšαžŽαŸαž―αž€αžšαžΆαž‡αŸ’αž™αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž’αžΆαž…αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αžαŸ’αžšαžΌαžœαž€αžΆαžšαž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αžαŸ’αž›αŸ‡αŸ—αžŠαžΎαž˜αŸ’αž”αžΈαžαŸ‚αž‘αžΆαŸ†αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Confluence αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 10 ឬ 10,000 αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ - αžŸαžΌαž˜αžŸαžšαžŸαžΎαžšαž…αŸ†αž–αŸ„αŸ‡αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαžŸαž–αŸ’αžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž»αž€αžšαž€αžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαž αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹ αž αžΎαž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ„αŸ‡αžŸαŸ„αžŸαž€αŸ’αžαžΆαž“αž»αž–αž›αžŠαžΌαž…αžœαžΈαž‚αžΈαŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„

αž”αžΆαž“β€‹αž…αžΌαž›β€‹αžšαž½αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαž˜αžšαž—αžΌαž˜αž·β€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžˆαŸ’αž“αŸ‡β€‹

αž’αžΆαž“αž―αž€αžŸαžΆαžš β€” αž‘αžΌαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αž»αŸ†αž‚αž·αžαž–αžΈαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”

αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ - αž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž¬αž”αŸ’αžšαž—αŸαž‘αž―αž€αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹ MarkDown αŸ”

Jekyll β€” αž“αŸ…αž–αŸαž›αž…αž„αž€αŸ’αžšαž„αž―αž€αžŸαžΆαžšαž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαžαž‚αŸαž αž‘αŸ†αž–αŸαžšαž‹αž·αžαž·αžœαž“αŸ’αžαžαŸ’αž˜αžΈαžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαžΆαž›αŸ‹αž–αŸαž›αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αžŽαŸ‚αžŸαžΆαž˜αž‰αŸ’αž‰αžšαž”αžŸαŸ‹ Confluence αž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžšαž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αž™αŸ‰αžΆαž„αž…αŸ’αžšαžΎαž“αŸ”

αž…αžΌαžšαžŸαž“αŸ’αž˜αžαž›αž‘αŸ’αž’αž•αž›

αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸ DevOps αžšαžΆαž”αŸ‹αžšαž™αž“αŸ…αž›αžΎαž‘αžΈαž•αŸ’αžŸαžΆαžš αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΉαž„αžαžΆαž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎ αž“αž·αž„αž–αŸαž›αžŽαžΆαžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž‚αž½αžšαž’αž“αž»αžœαžαŸ’αžαŸ” αžŸαžΌαž˜αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸ DevOps αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ†αž–αž„αŸ‹αž”αž„αŸ’αž αžΌαžš CI/CD αž–αŸαž‰αž›αŸαž‰αŸ”

αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸαž–αžΈαž”αŸ’αžšαž—αŸαž‘αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αŸ–

  • αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸ
  • αžŸαžΆαž€αž›αŸ’αž”αž„αž§αž”αž€αžšαžŽαŸαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜
  • αž§αž”αž€αžšαžŽαŸαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™
  • αž§αž”αž€αžšαžŽαŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
  • αž§αž”αž€αžšαžŽαŸαžŸαž αž€αžΆαžšαŸ”

αž’αž“αž»αžŸαžΆαžŸαž“αŸαž…αž˜αŸ’αž”αž„αŸ– αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·!

αž’αžšαž‚αž»αžŽ Zach Shapiro!

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹