ááá 1ᥠáľá/á ááľáŽááľ
á ááá¨á°: áá
á˝áá áá° áŠá˛áŤá á¨á°á°á¨áá á¨ááááŞáŤá ááŁáĽá ááá˘
á á áá áá á¨á´ááŚááľ áአá IT á˘ááąáľáľáŞ ááľáĽ á áŁá á¨áááááľ ááľáĽ á ááą ááᢠáłáá á¨áľáŤ ááá áŁá˘áŤáá˝á á¨á¨ááą áĽá á á°ááá áŤáŁáŤá
á¨DevOps áá á¨á°áŤáŤá áľáŤáá˝ á áááአá ááľ áá áááá¸áá áŤáŤáᢠááá áá áá
á áááááľ á¨ááŤáááá°á 'á˛áá¨á' áŚáł áááá áá, áá
á áĽáŠá á¨áá°á áá
ááśá˝, á¨á´áááá áĽá ááłáŞáŤáá˝ áĽáááľ áĽááłáá áŤááááłá. áá
á°áá áŤáá°áá¨á á¨áááľ á á áŤá áá á¨á°áŤáŤá á¨áá°á áááááľ áá á áĽáŽ áááŁá. áááᣠDevOps áá áĽáá°áá áááłáľ ááááᢠááááŞáŤ áá á¨áľááá á¨á°áᨠá°á ááá ááá á ááá á¨áᢠá¨áá
á áá ááşáá˝ á¨áááá, áĽáá° áá´, áááśá˝, áŁá
áá áááľáá, á¨á
áá°-ááłáŚá˝ áĄáľá, ááá° á¨ááłá°á áĽá ááá áĽá áľáááá áľáá˝á áĽááááá.
á¨áĽá áľááťáááá˝á á¨áá°á á ááśáá˝á áááá˛áľ (QA á ááśáá˝á áááá˛áľ) ááᣠááá áá á áŤáľ-áá¨áŤáá˝á á¨ááťá ááá á¨áá¨áŤ áááá á ááá´áá¸áá á¨ááłá á áá áĽáť ááŤáŤá áĽáá°ááá áľ á ááááᢠá 2020ᣠáľá á ááśáá˝á áá á¨á° áááľ áĽáááľá á áľááá ááᢠáá á ááśáá˛á áá°áąá áĽáŤáľá áĽáá˛áŤá°áŤá ááá áľáááłá ᣠáá¨áŤáá˝á á¨ááŤááľ áĽáľá¨ ááŚá˝á áá á¨áľ áááá áŁááľááť á áŤááľ áá¤áľá ááľá áľá˘ á áá¤áąáᣠáľáŤáá ááá¨ááá á¨á´ááŚááľ á˝ááłáá˝ á¨ááľ áá¸áᢠáĽá áá áá áĽáŠ áá, áá á ááŤáłáá áááł, á˝áá á á (spoiler: áá á˝áá áá á á˝áá ááááá ááááŤá). ááĽáĄ DevOps á¨áŁáľ ááᢠáĽá áá ááá˝ áá, ááááŤáąá áŠáŁááŤáá˝ áááĽáŤáľ ááá ááá ááá áĽá áááἠá áá¨ááá ... á DevOps ááá ááľáĽ áĽá ááĽá áŤáá¸á ááłáŞáŤáá˝, ááá˝ áĽá áááśá˝ á á. áá á á°áá á ááŤá ááááŞáŤ áá á áŁá á¨áŁáľ áá áĽá á á°á áŤáá á´áááŤá áááľ áá á¨á°áá°á¨á° áá.
ááá:
áĽáá ááááŁáľ á¨ááá˘áŤáá ááá ááá áĽáá¨áá°ááá áĽá á áá á˝áá ááá áá áĽáá°áŠáŤááá˘
áá á˝áá áľá áááľá áá?
á áá á˝áá ááľáĽ á¨áá¨áŤ á ááśáá˝á áá á¨á° áááľá á¨ááááŁáľ áááľ ááŤááá˝á ááᢠá á áááá¨áĽ áá áľá á¨á°ááŤáŠ ááłáŞáŤáá˝ áĽá áĽáá´áľ áĽáá°áá áááŁá¸á áĽá á¨áá¨á áááŽá˝ á á ᣠáá áĽááąá á á ááśááľáľ á ááľ ááľáĽ áĽáť áá¨áľ áĽááááá ᢠáĽá á ááśáá˝á áááá˛áśá˝ áĽááľá á¨á°áááĄáľá áá°ááá˝ áŤáá°áŠ ááá áĽááąá ááá á á ááá ááľ á¨ááá°áĄ á˛áá áááłáá áŤááá áĽáŹ á ááááᢠá áá ááááŤáľ áá°ááá˝ áá áŤáááŁá¸á áááá áĽá áĽááąá ááááá áá ááĽááľ á ááĽááľá˘ áĽáá°áá ᣠá á፠ááááŞáŤ áá ᣠáá á áŁá á¨áŁáľ áľáŤ ááá áá˝áá-á¨áľááš ááłáŞáŤáá˝ á ááľá á˝áá áááľááᾠᣠáĽáá´áľ áĽáá°áááᥠᣠáĽáá°ááŤáá አáĽá áĽáá°ááá¨áŁá¨áĄ á áĽá ἠááá°áᢠá ááłááľ ááŤáŞáá˝ ááĽááłáł áá° DevOps (á°áá˝) ááááłá áĽáᣠáĽáááąá áĽáááááᣠáá á áŤááľ áá°áŤáᢠá ááá áĽááááśá˝ áá áłáááľ áľáááá á áĽá á ááŁááá˝ áá áĽá¸áá á ááŤá ááá áá˝ááᢠáá áĽáá°ááááá, DevOps á áŁá áľáŤ á¨áá ááŁá¸á áááśá˝ áá¸á, ááááŤáąá á áľáá áą / áĄáľá áá á áááľá¨áľ áľá á á ááá á¨áŠáŁááŤá áá á¨á° áááľ, áá°ááŤáľ, ááľáľá, áááᎠá°ááŞáľ áĽá ááá˝ á°ááłáłá áľáŤáá˝ áá°áĽ á ááŁá¸á. áĽáá°á°ááá°á á ááśáá˛á á áľá፠á¨áá°á á ááłá á áá°ááᢠá áĽáá°áá ááááľ áááł, á áĽá á áŠá á á°áťá áá á á¨ááááŞáŤá áĽáľá¨ áá¨á¨áť áľá¨áľ áááá ááá áááľá¨á ááá¨á á ááĽá. áá áĽááááśá˝á ááááłá, á¨áľáŤ áá°áľá áŤááĽáá, á˝ááłá˝áá áŤáťá˝áá áĽá áĽá¨áá áŤááá ááá á¨á áá áĽááľáá áŤáľá˝ááá.
á˝áá á áŁá á°ááłá áĽá á°ááłá ááłáŞáŤáá˝á áŤáááŁá áĽá á ááśáá˝á áá á¨á° áááľá á°á¨á á á°á¨á áááááŁáľ áĽáá´áľ áĽáá°áá áááŁá¸á áŤáłáŤá. áĽáŤááłááą áĄáľá á áá áááľ á á°áá°á ááłáŞáŤáá˝ ááá¨áá. áá ፠áááľ á ááľ á áááľ ááá áá áá á ááĽááľ áááľ á áá°áá. ááłáŞáŤááš áĽáŤáłá¸á á áľááá á áá°áá, ááłáŤá áĽá áá áŤáááŁá¸á áááá. á¨áĽá á¨áá ááľáľá áľáŤ áá°á¨áłá áááá˝á áá¨áłáľ áá-ááá á¨áá áĄáľá ááłáŞáŤáá˝ áŤáľááááá áĽá áá á áááľ á¨áľáŤ á˝ááŽá˝á á áĽááą áĽááłáł áááłáľ áĽáá˝ááá. ááá á áá á áĽáŤááłááą ááá áá¨á¨áť áá á áľáá áľá ááľáĽ áĽá á áá ááá á¨áá˝á á°ááłáłá ááłáŞáŤáá˝ áá á áááá˝á á¨áá°ááá˘
á áá á˝áá ááľáĽ á¨áá ááá
á˝áá áľá áአááłáŞáŤáá˝ áĽááłááá á áľáá áĽá°áááá, áľááá á¨á°ááśá˝ áĽá á¨á°áá°á áľáááá˝ ááááŤáá˝ ááľáĽ ááá áŽáľ ááľáá˘áŤ á áááá. ááá áá á áĽáŤááłááą ááá áá¨á¨áť áá ááááá áĽááľ á áááá˝á áĽá°áááá.
áá á¨áá°á¨áá á :
- áá ááłááľ á á°ááŤáŠ áááŽá˝ (á°ááśá˝ ᣠáá˝ááὠᣠá¨áŞá˛áŽ áŽááśá˝) áááááľ á áŁá ááá áá á˘
- áá° áĽáááľ áááľ á¨áááá, á¨áá á á˝áá 10, 20, 30 áááá˝á ááá á ááĽá (áĽá áśáš 2-3 á˛áá);
- á°ááłáłá ááŚá˝á áááłáŤáľ ááá˝ ááłáŞáŤáá˝á áá áá áľáááľááá ááá á ááŁá¨á á áááááá˘
ááááľ
áá
á˝áá áááá ἠáĽá ááááłáľ áĽáť áłááá ááĽáŤááłááą á ááŁá˘ á áá áĽáá˛áá á áĽáááľ áĽáááááᢠá ááááá áĽááľ ááľáĽ ááááľ á áŁá á áľááá á áŤá áá. ááá
á ááá
áťáá
áá áľ
á°á¨á
á´áááá
ááŁáŞáŤáá˝
1
á¨á áŤáŁá˘ áŠáŤ (á¨áľá / á ááľáŽááľ ááłáŤ áá¨áŤáá˝á áŤááá áĽá á á áŤáŁá˘á áŤááąáľ)
Node.jsᣠSeleniumᣠAppium
2
á¨áľáŞáľ ááĽáĽá áľáááśá˝
Git
3
ááŤáŁ
áśá¨áᣠá´ááá¨á áááááᣠá´ááááľ (áľáᣠá ááľáŽááľ)
4
CI/á˛á˛
Gitlab CI
5
á¨á°áá á¨ááłáŞáŤ áĽáááśá˝
Google á°áá á¨ááłáŞáŤ áĽáááľ
6
áŚááŹá˝á
áŠáŁááŤáśá˝
7
áá á¨á° áááľ áĽáá° áŽáľ (IaC)
á´áŤááá ᣠááťá á¨áá˝á
á¨áĽáŤááłááą ááá ááá á
áľá¨áŤáá ááá˝ áááľá¨á áĽáŤááłááą ááá á áá¨á°áá ááľá áá°á¨áľ ááááťááĄ
- á¨á´ááááá á áá ááá፠áŁ
- áá ááśáá˝á áá á¨á° áááľ áá áŁ
- á¨áá á¨á° áááľ á ááłáŽá˝ áá áłá áááłá á¨ááŤáłá ááá፠áŁ
- áááĽááľ á áááá˝ áŁ
- á°ááłáłá ááłáŞáŤáá˝.
1. áá¨áŤáá˝á á á áá ááľáĽ áŤáŤááą
á¨á´ááááá á áá ááááŤ
áá á¨ááłáŤ áá¨áŤáá˝á á á áá ááľáĽ áááľáŹáľ áĽá áááá¸áá ááá¨ááἠá¨ááá áľ á°á¨á ááᢠá á°ááŁáŤáá ááá, Node.js áĽá á áá áááá, ááá áá á¨ááŽááŤá á ááŁáĽ ááá áĽá ááľá¨á á áľááá á áá°áá áĽá á áŠáŁááŤá ááľáĽ áĽá á áá á¨ááááľá áá áá áá˝áá.
ááá ááᣠáĽáá° á ááśáá˝á ááłáŞáŤáá˝áŁ á áááĽááľ á°á¨ááá˝ á¨áĽááá ááłáŞáŤáá˝ áá áááľáŤáľ á¨á°á á á¨áśá¨á ááľáá˝á áľáááá ááᣠá´ááá¨á ááĽDriverá ááľá ááľá¨áŽá˝ áĽá á áá¨áá áá ááľáŽááľ ááľá¨á áĽááľáľá áá áĽáááŤááᢠá¨áá á á áá á¨áĽáŤ ááľáááśá˝á á ááĽááľ áĽááá ááłáŞáŤáá˝ á áá ፠ááľáĽ á áŁá á¨áááá áá¸á.
áĽááľá áĽááłáľá°áááľáŁ á¨ááááá¨á°á á¨áľá áĽá á¨á ááľáŽááľ áá¨áŤáá˝á áĽáť ááᢠáĽáá° á áááłá°á áá iOS áášá á¨á°áᨠáłáŞá áá (á áá áĽááá°áááá)ᢠIOS á°ááá áááľááá˝á áĽá áááśá˝á á áááĽááľ áááá˝ áááłá¨áľ áĽá áľ á áá.
áá ááśáá˝á áá á¨á° áááľ áá
á¨áá á¨á° áááľ á ááá á á áá ááľáĽ ááŽáĽ ááá áá á áá°áĽáᢠáá°áááš á á áŤáŁá˘áŤáá áá˝á áá á á áŤáŁá˘áŤá á áłážá˝ áĽá á˛ááá°áŽá˝ ááľáĽ áĽáá°áá°áŠ áĽáť áá á¨ááŤá¨áááĄáľá˘ áá á ááááá áááł áá á áľááá áááť áá.
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝
á¨á˛ááá¨á á áá¨á Android á áťáťá ᨠSelenium JS GitHub ááłááá˝ Appium JS GitHub ááłááá˝
á°ááłáłá ááłáŞáŤáá˝
- á¨á´ááá¨á/Appium áá°ááá˝ áá á áá°áŁá á á¨áááąáľá á¨ááŽááŤá á ááŁáĽ ááá;
- ááááá áá°ááá˝;
- ááááá á¨áá¨áŤ áŻáá˘
2. á¨áľáŞáľ ááĽáĽá áľáááśá˝ (ááľ)
á¨á´ááááá á áá ááááŤ
á¨áľáŞáľ ááĽáĽá á áĄáľáá áá á áá áĽá á á áŁá á áľááá á¨áá á¨áĽáľááľ á áŤá áá áĽáŹ áĽááá áááá áľáá áááἠá ááááᢠá á°ááŤáŠ áááŽá˝ áá á áááľá¨áľ, Git á áŁá á°ááłá á°ááŤá áá áĽá á áĽááá áááľ áááá ááťáá. á¨áľáŞáľ ááĽáĽá áľáááľ áĽáá° áŽáľ áááŤáľáŁ áľáŞáśá˝á áá¨áá¸áľáŁ áá° ááľá á áááŤáá˝ ááááľáŁ á¨ááŽáááľ áłáŞáá áá¨áłá°á áĽá ááľáŹáá˝á á¨ááłá°á áĽá áĽá áá˝á áá°áŁáᢠáľááĽáŤááłááą ááĽáĽ á áááá á áááŤáá ááááŤáąá áĽáąá á á°áἠáĽáá°ááłáááľ áĽá á áááľ á°áááľ áĽáŤá ááľáĽ áĽáá°áá ááá áľ áĽááá á ááᢠáá á áľáááľ áŤááá ᣠáá áá á˝áá áááá ἠáá áĽáŹ áĽá á á°áťá ááĽááľ áá áá ááá°áľ áááááľ áĽáááŤáá á˘
áá ááśáá˝á áá á¨á° áááľ áá
áĽá áĽáá ááááŤáłá áĽáŤá áá á¨á áá˝áá: "ááá áľá Git áááá¨áá? áá áá ááá á°á áŤááá áĽá áááąáá ááááľ áŽáľ áĽá ááŤáľ-áá¨áŤ áŽáľ áá áááᢠáá á áá áľááá áľáááá , ááá áá á áá á˝áá ááľáĽ áľá áá á¨á° áááľ áĽá¨á°ááááá áá áĽá áá ááá áááá 7 áĽáá° á áľá-áĽááł áá áŤááááá: "áá°á¨á° áááľ áĽáá° áŽáľ (IaC)". ááĽá áá áááľ áá¨áŤá á¨áᎠá á ááá áá á¨á° áááą á áŽáľ ááá ááááťáᣠáľááá á¨áľááá° ááááá˝á á áĽáą áá á°ááŁáŤá ááľá¨á áĽá áĽáá° áááľ áĽá á ááśáá˝á áŽáľ á°ááłáłá áĽá áá˝á ááááľ áĽáá˝áááá˘
á á°á¨á 7 áá IaCá á á áá áááá áĽáááá¨áłáá ááááá á áá áĽááłá á¨á áŤáŁá˘ áá¨ááť á ááá á Gitá áá áá áááá áľá˝ááá ᢠá¨áááľ áá¨ááť áá° áá á¨á° áááľ áľáá¨áá áľáá áĽáá ááľáááá˘
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝
á°ááłáłá ááłáŞáŤáá˝
SVN áááŠáŞáá ááááŽáśááľ á˛á¤áá¤áľ (á áá ᨠAzure DevOps á áááááśá˝ á áŤá áá)
3. ááŤáŁ (áśá¨á)
á¨á´ááááá á áá ááááŤ
áŽáá´áááŹá˝á á¨á¨ááłáá á áááľ áĽáá´áľ áĽáá°ááá á áááłá¨áľáŁ áá° áĽááľ á áľááľ á ááłáľ áá° áá áĽááááľá˘ áŤá á°áá˝ áá°áá áŞáŤáá˝á ááááľ á¨á áááá áá˝áá˝á ááá°á áá áá áá áᢠááá áá á á áĽááááš áááłáá˝ á áľáááááš á¨á áá áááŽá˝ á áľááľáá á ááłááá áá á. á áá ááááŤáľ áŠáŁááŤáá˝ ááľ áĽá áááá á ááááŽá˝á á ááááľ áááἠá ááĽá°áá, ááá áá á ááłááľ á¨áá á á á áá á áá áĽá á áá á áááá.
á¨áááĽáá á¨áááá° ááἠá°á¨á á¨áášáá áá˝áá˝ (VMs) á˛áá áá á áĽá á áá áááá ááĽáśá˝ áááἠá¨ááŁá¨á á˝ááá ááłá˘ áá á´áááá áá ááá á¨á°ááá áŚáł á ááá°áĽ á á°ááłáłáŠ á áááá ááľáĽ á áááŹá˝áá˝á ááĽáťá ááááľ á áľá˝ááᢠáá á ááŤáłáá áááł, ááááá á´áááá á¨áŤáą áľáááśá˝ á ááľ. VMá ááľáŹáľ áá áŚááŹá˛áá á˛áľá°áá áááááᣠáĽáąá á˛ááŠáŁ RAMᣠáá¨ááť á¨ááá áĽá áĽáá° OSá áá á áááľá¨áľ á¨áááľ ááŞáá˝á áááľ ááľáĽ ááľááŁáľ áŤáľááááᢠáĽááá ááááŤáśá˝ á¨ááŤá ááĽááľ áá á°á˝áĽá áŤáłáľáŤá áĽá á°áááłáá˝ááľ á áľá¸á᪠áŤá°áááłá.
áĽá á áá áá° ááŤáŁ (áŽáá´ááá) ááĽá°áá. á ááá áá á´áááá áŤáááá á˝áá áááłá, ááááŤáąá áŽáá´áááŽá˝ áá áľááá° ááá áľáááá áá, áá á á¨áá°á áá á áŤáá ááĽáľá ááť á ááľá¨á áĽá áá°áááłáá˝ááľ ááŁá áĽá á°áááá áááľá áá°áŁá.
áĽááἠáŽáá´áááááá˝á á´áááá á á˛áľ ááá á áá°áá áĽá áááááŞáŤ áá á¨á°ááá¨á á 70 ááš áááŁá°á áá ááᢠá áĽáá፠áááŤáľ áĽá áĽááśá˝, áĽáľááśá˝ áĽá áá¨áŤáá˝ á°áŤáá°áá. ááá áá áá áá á´áááá á áľá°áŤáá ááĽááá á°á°áŤá˝ áĽáá˛áá áŤá°á¨áá áśá¨á ááᢠá á áá áá, áľá áŽáá´áááŽá˝ áľáááá, á á áĽááááš ááłáŽá˝ áśá¨á áááľ áá. áľá áśá¨á áŽáá´áááŽá˝ áľáááá á¨ááááľ áŽáá´áááŽá˝ áááłá˝á ááᢠááŤáŁáá˝á áááľáŹáľ á¨áááśááľ áĽá áááŚá¤áľ áľáááśá˝á áá áá áĽáá˝ááá, ááá áá á áá ááłá áá á°á¨á᪠ááĽááĽá áĽáá°ááłá áá¨áłáľ á áľááá áá. áááłáᣠDocker on Mac á ááá ááĽá°áľ á ááááľ áŞá¤á ááľáĽ ááŤáŁáá˝á á ááĽáł áŤáľáŹáłáᢠá ááľáŽááľ á˘ááá°áŽá˝á á áŽáá´áááŽá˝ ááľáĽ ááľáŹáľ áľáááŤá áá°áá áááľ áĽááááłáá áľááá áĽáá áá á¨á áá á áááá ááááá áŤáá áľ á áŁá á áľááá á¨áá ááŠááľ á áá˘
áá ááśáá˝á áá á¨á° áááľ áá
áŽáá´áááŹá˝á áĽá áśá¨á á áŞá áááá¸áá á°áá°áá áłáᢠáĽáŤááłááą ááłáŞáŤ ááá á´áááá á ááľá á˝áá áááłáľ áľááá áľ áá áá á¨á ááśáá˝á á ááá áĽáá¨áᢠá áŠá á áá¨áŤáá˝ á ááľ ááľáĽ á¨áá°á á ááśáá˛á ááá˝ á˝ááŽá˝á áĽááááááĄ-
- á´ááá¨á áĽá á á°ááá á áá¨á á˛áá áĽá á á áŁá áĽá áĽáááá˝;
- á á áłážá˝, á á˛ááá°áŽá˝ áĽá á á á˝á¨ááŤáŞáá˝ áľáŞáśá˝ ááŤá¨á á¨á°áłááááľ á˝ááŽá˝;
- áá áłážá˝ / á áľááłááá˝ áááá°á áŚáł á áááá, á á°ááá ááľáአáŠáŤ á áŁá á áľááá áá;
- á á°ááłáłá áá 10 ᣠ50 ᣠ100 ááá 1000 á áłážá˝á ááľáŹáľ á¨ááá áááľá°áłá°á áĽá ááá áá á áľá¸á᪠ááá˘
ááá áá á´ááá¨á á áŁá áłááá á ááśáá˝á ááłáŞáŤ áľááá áĽá áśá¨á á áŁá áłááá á¨ááŤáŁ ááłáŞáŤ áá, á ááľ á°á á¨áá á¨á°á ááąáľá á˝ááŽá˝ ááááłáľ áááá ááłáŞáŤ áááá á áĽááąá áááŁáá ááá¨áŠ ááá á áŤáľá°áá á. áĽáá°ááá áŤááľá áááľááá˝ á á áá áááá áĽáááá¨áľ.
á¨á˛ááá¨á ááááá á áśáá°á ááľáĽ
áá ááłáŞáŤ á á ááŤáł áá˝áá˝ áá áĽá á áłážá˝á ááááľ áĽá á¨ááá¨áá ááĽá¨á áááľá°áłá°á á á´ááá¨á á áá ááľáĽ á áŁá áłááá ááᢠáááááᣠá˘áŤááľ 2 áááá˝á ááááἠá ááĽá ᥠHub áĽá Node(áá˝)ᢠHub áááá áĽáŤááá˝ á¨áá¨áŤáá˝ á¨ááá á áĽá áá° á°áᢠááľááá ááááľ á¨ááŤá°áŤá ááá¨áá ááľ ááᢠááĽáŤááłááą ááľááá ááááľ á ááľ á¨á°áá°á áá á áááá áĽáá˝áááᣠáááłá á¨áááááá á áłá˝ áĽá áľáŞáąá á áááá˝á˘ ááá áá, áĽá áĽáŤáłá˝áá á°áłáá á¨á áłá˝ ážááŽá˝á ááá¨áŁá¨áĽ áĽá á á°áááá ááśá˝ áá ááŤá á ááĽá. á áá ááááŤáľ, á¨á´ááá¨á ááááá á áášá ááá áĽá á áá á áááá, á ááááľ áŚá¤áľ áá ááŤá á¨ááá˝á á áłážá˝ áá ááľáŤáľ áŤááĽá á áľá°áá. áááá˝ ááłáŽá˝ ááᣠááá á¨áá á°áááá áĽá áľáááá áááľá ᨠSelenium grid Hub áĽá Nodes áááľáŹáľ Docker ááľáá˝á áá áá ááᢠá¨ááááááá ááľá á¨á°áŤá á áłážá˝ áĽá ážááŽá˝ áá á°áłáá á áá áľáŞáśá˝ ááá¨áĽ áľáááá˝á áá á áŤááľ á¨ááľááá ááááľ á áľá°áłá°áá á áĽá á áŤááááá˘
áľá áá¨áááľ á ááłá áááááá˝ á˘ááŠáᣠá á°ááá áĽá ááĽá áŤáá¸áá ááśá˝ á áľáአá˛áŤááąáŁ á¨á´ááá¨á ááááá á ááá á¨á´ááá¨á áá¨áŤáá˝á á áľáአáááľáŹáľ á áŁá áłááá ááłáŞáŤ ááᢠá¨áá ááłáŞáŤ á¨á°ááŤáŠ ááťáťáŤáá˝ áĽá ááťáťáŤáá˝ á á¨ááá á á°ááŤáŠ ááááá˝ á¨ááá á áááľ ááá ááľáĽ áĽá¨áłáŠ áááá¸áá áἠáááľ áŤáľááááá˘
á´ááááľ ááľá
áá ááłáŞáŤ á ááĽáł á¨áłáĽá ááľáĽ áľááá°áŤ áĽá á¨áĽá á ááśáá˝á áááá˛áśá˝á á áááľ á áŁá ááá á áľáááłá á á´ááá¨á á áá ááľáĽ áľáá áááľ ááᢠá ááááŞáŤ á°á¨á, áá á¨á´ááá¨á ááááá áá ááťáťáŤ á áá°áá. á ááľáŠáŁ ááá˘ááš á áááá ááľáĽ áá ááá á á˛áľ á¨áá á¨á´ááá¨á áἠáĽáľá áá áŠáŁ áá á áá°ááŤáŠ á áłážá˝ á¨ááá ááĽá°áľ Docker ááľáá˝ áá á°áłáᎠááá¨áŤ á ááśáá˛á áĽáľááľ á á á¨áłá˝ áá áᢠá¨áá á á áá á á´ááá¨á ááŞáľ ááľáĽ áááá á áľááá á¨áááľá á áłážá˝ áĽá áľáŞáśáťá¸áá á áľááľáá ááá°á á ááĽá, áá á á¨á ááľ á áłá˝ áá áĽáť á˛á°áŤ á˝áá á áá°áá. ááá áá áá° áĽá á¨áá°áá á áłážá˝ á˛áᣠá´ááááľ 'á ááááľ áá áŤá á áłá˝' áŁá áŞá ááľáá áááŁá ááĽá á ááľ áááľá ááᢠá¨áĽá á¨áá á áá á áľááá á¨áááľá ááľáá˝ á¨á áłážá˝ áá á áľááľáá ááá¨áľ áĽá Selenoid á¨ááááá áľá á¨áá á ááá áááá ááᢠá´ááááľ á¨áá°ááá˝ áĽáŤá á¨á°áá á á áá á¨áááááá ááŤáŁ á á°áááá á áłá˝ á áŤáľ-á°á ááááŤáᢠáá°áá á˛á ááá , Selenoid ááŤáŁáá áĄá¨áł áŤááŁá, á áá á ááá°ááľ áĽáŤááá˝ áááááŤáá˝á áŤáľáá áá. áá á áŤááľ á á´ááá¨á ááááá ááľáĽ áĽá áá á¨ááŤááĽááá á¨'ááľááá áá áá¸áľ' á˝ááá áá á áá áŤáľáááłáá˘
áá ᣠáᎠᣠá´ááááľ á ááá á¨áĽá áĽááľ á áá°ááᢠ'á ááááľ áá áŤá á áłá˝' áŁá ᪠á ááá°ááᣠááá áá 'á ááááľ áá áŤá ááĽáśá˝' áŁá ᪠á ááá á ááááᢠá´ááááľá ááá áá á á áŤáá áááľáá ááá á VM áá áá°ááŤáľ á ááĽáᣠáá áááľ áá áŤá á ááĽáśá˝ ááá°áĽ áĽááłááŁá¸á á áľááľáá ááá á ááĽáᢠá áľáአ10ᣠ20 ááá 30 á áłážá˝á áááŤáľáŹáą áľááá˝ ááŽáááśá˝ áá á˝áá áĽááłááá áĽáááłááᢠáá 100, 500, 1000 ááá á¨á፠á áá áĽáááááľ? áĽá ááĽáśá˝á áá áá ááá¨áľ áĽá áááá ááá áľááá á¨áááᢠá áá á˝áá ááá 5 áĽá 6 áá áĽááľáá ááááŤáľ á¨ááŤáľá˝áááľá áááľááá˝ áĽáááááŤáá, á áá á á¨áŠáŁááŤáá ááŞáá˝ á áĽá á ááááłá.
á´ááááľ áá ááľáŽááľ
ᨠSelenoid áĽáá° á¨áľá á ááśáá˝á ááłáŞáŤ á¨á°áłáŤ á áá á°áá˝ á Android á°ááłáłá á¨áá ááá áááááᢠáĽá á°á¨á°á° - á´ááááľ á á ááľáŽááľ áľáá á°áááᢠá¨á¨áá°á á°á¨á á¨á°á áá áĽááł á ááťá á¨á á áŤáŠ ááá á¨áľá á ááśáá˛á áá á°ááłáłá áá. ááŠááą á¨á áłá˝ áŽáá´áááŽá˝ ááá á´ááááľ á¨á ááľáŽááľ á˘ááŠáá°á áŽáá´áááŽá˝á áá°áŤáᢠá áĽá á áľá°áŤá¨áľ áá á á áá áá á¨á ááľáŽááľ áá¨áŤáá˝á á áľáአáááľáŹáľ á áŁá ááááá áá ááłáŞáŤ ááá˘
á áŁá áľááá°áľáŠáľ á¨áá á ááłáŞáŤ á ááłá áá˝áłáá˝ á áľááá áááá á ááááá. áá á ááá ᣠá áľá á ááśáá˛á áá á¨áá°áá አáĽá á¨ááľáŹáľ áá á¨á°ááŤá á°ááłáłá ááłáśá˝ á áᢠá¨áá á á°á¨á᪠ááłáŞáŤáá áááááŞáŤ áá áŤáááá ááŤáľá°áá áľááá˝á á ááľ á°á¨á᪠áá°áĽ ááááá á ááĽá. á¨á ááľáŽááľ ááľáá˝á áááľáŹáľáŁ á¨áá áááŁá áľáá áŤáá á áŤáá áá˝á ááá áŞá¤á áĽááááááᢠá áááŞáŤá ááľáĽáŁ áá áá á ááááľ áŞá¤á áá áĽáá´áľ ááááľ áĽáá°ááťá á áłááťááᢠááá ááᣠáĽááľá á¨áááŽáľ á°á áá á¨áá áĽá Selenoidá á á áŤáŁá˘á áá°ááŤáľ á¨áááᣠáá á¨á ááľáŽááľ áá¨áŤáá˝á ááŤááľ á ááťááᢠááá áá áá áá ááááľ áŞá¤áá á á áá ááľáĽ 'nsted virtualization' áá á áĽá á´ááááľá áá° ááľáĽ áá°ááŤáľ áá˝ááá˘
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
á áá á˝áá á ááľ ááľáĽ áá á¨á° áááľá áááłá¨áľ 2 ááłáŞáŤáá˝á áĽáá¨ááŤáá. áĽááá ááľá áá¨áŤáá˝ á¨á´ááá¨á ááááá áĽá Selenoid áá ááľáŽááľ áá¨áŤáá˝ áá¸áᢠá GitHub á áἠáľáá á ááľáĽáŁ á¨áἠáá¨áŤáá˝á áááŤááľ Selenoidá áĽáá´áľ áá áá áĽáá°áá˝áá á áłááťááá˘
ááá°áľ á áááá˝
Docker: áá ááŤáŁ áá áśá¨áᥠááá 5 á¨ááŤáŁ á ááŤáŽá˝ á Docker á¨á°ááá¨á ááááá á´ááá¨á áśá¨á á´ááááľ á´ááááľ Github KVM áááá áá ááľáŽááľ emulators áśá¨á áĽáá áłáá áá˝áá
á°ááłáłá ááłáŞáŤáá˝
- ááá˝ á¨ááŤáŁ ááłáŞáŤáá˝ á á, ááá áá áśá¨á á áŁá á°ááłá áá. áá ááá ááá¨á á¨áááᣠá¨á´ááá¨á áá¨áŤáá˝á á áľáአáááľáŹáľ á¨á¸ááá¸á ááłáŞáŤáá˝ á¨áłáĽá áá áĽáá°ááá°áŠ áŤáľáłááąá˘
- áá°á á˛á áĽáá°á°ááá¨á ᣠá¨á´ááá¨á ááááá áĽá ááťáťáŤáá˝ á á ᣠáááłá áŁ
áááá¨á .
4.CI/á˛á˛
á¨á´ááááá á áá ááááŤ
ááŁáááľ áŤáá áá á°áľ ááááľ á áááľ ááľáĽ á áŁá áłáá áĽá á¨áľáŞáľ ááĽáĽá áľáááśá˝ áá áĽáŠá ááᢠáá áá áá á áááľ á áááá á፠áááŁáľ áĽááłá áá°áááᢠá áá á ááá ááľáĽ á¨áá á´áááá 3 ááťáťáŤáá˝á á¨á áĽááł áááá˝ áĽáááááᢠá á áááá¨áĄ áá á¨á°ááŤáŠ áľááááá˝ áŤáá¸á áĽá ááŁáĽáá˝á áŤááá, áĽá á¨áĽááľá á áľá°áŤá¨áľ á¨á°áᨠá¨áá áášá á¨á°ááá° áá. á áŁá á áľáááá ááá áĽááľá á¨áľáŤ áŁáá°á¨áŚá˝á áá á á°ááłáłá áá˝ áá áááá¸á ááá˘
áľááá , 3 áááľ á á: CI - ááŁáááľ áŤáá áá á°áľ, á˛á˛ - ááŁáááľ áŤáá á á ááŚáľ áĽá áĽáá°áá á˛á˛ - ááŁáááľ áŤáá áá°ááŤáľ. (á¨áá á áłá˝ áĽááá á áááľ á áĽááááá áĽá ááááá˘). áĽáŤááłááą ááťáťáŤ á áĽáľááľ á§áá§á áá á ááŤáł á°á¨á᪠á°á¨ááá˝á áá¨ááŤáᢠáá áá ááŁá (ááŁá) á áŁá á áľáááá ááá áá. á áá ááá°-á˝ááᣠáŤáááá¨áĽ ááá á áĽá áŁáá ááĽááľ á¨ááááŞáŤá áĽáľá¨ áá¨á¨áť á¨áá ááá áááłá˝á ááᢠá áá á ááľ CI & á˛á˛ áĽá á˛á˛ áĽááá˘
- ááŁáááľ áŤáá áá á°áľ áá á¨áááá° ááἠá¨ááááŞáŤ á°á¨á ááᢠá á˛áľ áŽáľ áá° á áááአáŤáľááŁá á áá áááŚáťá˝á á°á á áĽáá°áá ááŁá ááĽá¨ áááľ áĽáá áĽáááᢠá á°áááśáŁ CI á¨áľáłá˛á áŽáľ áááááŞáŤ ááłáŞáŤáá˝á áĽá á¨áŠááľ/ááľáŁá á¤áá á áá¨áŤáá˝á áŤáŤáľáłáá˘áá á áĽááľ á´áŽááśá˝/á°áá ááľáĽ áľá áŽáľ áá¨á áĽááľááá áŤáľá˝áááá˘
- á°á¨áłáłá ááľá¨áľ áá á°áľ/UI áá¨áŤáá˝á á¨áááŤááľá áľ á¨áá á°á¨á ááᢠááá áĽáá á áá á°á¨á áá áĽáá° CI á ááĽááľ áá¤áśá˝á á áááá. á ááááŞáŤ áĽááá á áááľ áá°ááá˝ ááá ááá á¨á á áá áááľáłá. á ááá°á á°á¨áᣠá¨ááááá á ááľáŁ áááŚáťá˝áá ááá¨áŤ/áááá á áŤáŁá˘ áá°ááŤáľ á ááĽáᢠá¨áá á á áá áľá ááŁáá áááľ áĽá¨á°ááááá á¨áá á°á¨á᪠áĽááá á¨áĽáá áá°áá áŞáŤ áááŁáł áááá á ááłáŤá.
- ááŁáááľ áŤáá áá°ááŤáľ ááá á°ááŁáááľ áá°ááá˝ á áá°ááľ á°á¨ááá˝ áŤáá áááŚáťá˝áá á áŤáľ-á°á áá° áááľ áĽáá°áááá áŤáľáŁáᢠá¨áá á á°á¨ááŞ, á¨á°áááá á°á¨á á áá, á¨á°ááŤáŠ á°á¨ááá˝á áááá áá˝áá, áááłá á ááá¨áľ áá á¨ááľ áá¨áŤáá˝á ááŤááľ áĽá á¨ááááľ áááŞáŤáá˝á áá°áĽá°áĽ. ááŁáááľ áŤáá áá°ááŤáľ á¨ááťáá á áĽáŠ á˝áá á áŤáľ á°á áá¨áŤáá˝ áĽáť ááᢠáá¨áŤá á¨áᎠáááá¸áá á¨áĽá áŁááááĽááśá˝ á áľááá á¨áá áá á¨á áá á áá á áá°ááᢠááŁá (á¨áá á)ᢠá¨ááŤá á¨áĽá á¨á§á᧠ááľáá ááŁáááľ áŤáá á á ááŚáľá áĽáť á¨ááŤá¨áĽá áá áááľ áĽáá˝ááá.
áá ááśáá˝á áá á¨á° áááľ áá
á áá ááá ááľáĽáŁ áľá á¨áŤá áĽáľá¨ áŤá á¨áŠá á áá°ááá˝ áľáááááᣠá áŤáŁá˘áá˝á áááá°á˝ áááŚáťá˝áá áĽá á°áŤáŤáĽ á áááááśáťá˝áá áá°ááŤáľ á ááĽá áááľ áĽáá°áá ááá˝ ááľá¨á á ááĽáᢠááŁáááľ áŤáá áá á°áľ - áá°áą ááá á°ááŁá á°ááá á áááá áĽá á˘áŤááľ á°á¨áłáłá á¨ááľá¨áľ áááśá˝á á°ááŁáŤá áááľá¨á áĽááá ááľá¨á á ááĽá. ááŁáááľ áŤáá áá°ááŤáľ áĽáá˛á á UI áá¨áŤáá˝ á ááľ ááľáĽ á áááľ ááľáĽ áááŤááľ á¨áááá áľááá áá°áŁáá˘
áĽá á¨á ááá´áá¸á áááĽá ááłá á¨áááá¨áłá˝á á ááľáŁ áľá GitLab CI áĽááľ áááľ áááľ áĽáááááᢠáĽáá°ááá˝ CI/CD ááłáŞáŤáá˝áŁ GitLab á¨áááľ áá¨ááť áĽá ááá˝ áĽá á°á¨á᪠áŁá áŞáŤáľá áá°áŁáᢠáľááá á GitLab á¨CI á áá ááᢠá ááľáĄá á¨ááá áŽáľ á áľá°áłá°ááᣠAgile managementᣠCI/CD pipelinesᣠá¨áá ááľá¨á፠ááłáŞáŤáá˝á áĽá á¨áłáĽá ááľáĽ á¨áááŞáŤáá˝á áá°áĽá°áĽá áŤáŤáľáłáᢠá¨ááľáἠá ááá´áá¸á Gitlab CI/CD áĽá GitLab Runnerá áŤáŤáľáłáᢠá¨áŚáá´ááá áľá áŁá˘áŤ á áá ááá፠áá¸áááĄ-
Gitlab CI/CD áááąá á áá¨á ááľ ááľáĽ á¨ááŤá¨áá˝áŁ ááŽáááśá˝á á¨ááŤáľá°áłáľá/á¨áááᣠáĽá á¨á°á áá á áááá˝ á¨ááŤááἠá¤áá á áŤáá á¨áľá áá°áá áŞáŤ ááᢠGitLab Runner á áá°áľ á¨áááᣠáá°áá áŞáŤ ááᢠááĽáťá áá°á፠áá˝áá áĽá ᨠGitLab CI/CD áá á á¤áá á á áŠá áá°áŤáᢠááá¨áŤáá˝ áááąá á¨ááľáἠááłá áĽá áŻá áŤáľáááááłáá˘
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝
ááá˛á áááᥠááŁáááľ áŤáá áá á°áľ GitLab CI/á˛á˛ ááŁáááľ áŤáá áá á°áľ áá˝áá ááŁáááľ áŤáá á¨áááŞáŤ áá˝áá
á°ááłáłá ááłáŞáŤáá˝
ááá¨áá TeamCity Travis - áĽá ááá˝ áĽá
5. á¨á°áá ááľá¨áŽá˝
á¨á´ááááá á áá ááááŤ
á áá ááá 'á¨ááἠá°áá' áľáá°áŁáá áłáá á ááá፠áĽáááááŤáá. á¨áá á¨á°ááášáľ á¨áášáááááá˝á áĽá áŽáá´áááááá˝á á´áááááá˝ á¨ááŤá á¨ááąáľ áľáá áĽá á á˘ááá á¨áŽáááá°á ááĽááśá˝á á ááá áĽááááááᢠáŠáŁááŤáá˝ ááľ á ááááŽá˝á áááá ááá á¨ááἠááá¨áá˝á áá¨áŤáŤá, ááá áá á áá áááł áá áŤá á ááĽáśá˝ áĽáá°ááŤáľáááá, á 24/7 áĽá ááá ááááá˝ áĽáá°ááá ááá áľ áľááľ (á ááłááľ áá á¨áĽáááłá á¨áŤá) ááľá¨á á áľááá áá. áááłáᣠáááľ XNUMX/XNUMX á¨áá°áŤ á áááá áŤáľáááááᣠááá áá á¨áľáŤ á°á áłáľ á᪠ááá¨áŤ á°ááłáłá ááĽááśá˝ áĽáááááá? áĽáá˛áá á ááááŤá ááááľ áá á¨á°áá°á¨á° áá. áááłá á áááľáą áá¤áľ áááááľ á áľáŤ á°á áłáľ ááľáĽ ááá°áŤá áŤááľáá¸á á¨áááľ/á¨ááááľ áá°ááá˝ áá¸áᢠááá áá á áĽááá áááľ XNUMX/XNUMX á áááá ááááľ á¨áŤá áĽáľá¨ áŤá á ááśáá˛á áá¨áŤáá˝ á áŤáľáááá áĽá á á°ááá á áĽá áááá°á á áŤáŁá˘áá˝ á áŤáľááááᢠááĽáá°áá á áááľ áááłáá˝ á ááááľ á¨áááááá áŤá á ááĽáľ ááááľáŁ áá áá áĽá á áááááá áľ áá áááá ááá áĽáŠ ááᢠá¨áá á á áá áĽááľ á¨ááłááľ á á áłáá˝á á ááľá¨á ááá áááľ áľááŞááśá˝á á áááľ á á á˝á áľ ááá á á áŁá áĽáŠ ááᢠá¨á áἠá°áá áĽá á áá á¨áááá ááá ááᢠáľáááá áĽáááá¨á°ááĄ-
"á¨á áἠá°áá áááľ á áśáľá°á ááá á á áŤá˘áá˝ á ááá á áááá¨áĽ á¨áá°áĄ á¨áŽáááŠá°á á áááááśá˝ áá ᣠáá á áĽááąá ááá áá ááá áááááľ ááááá áááááá á°á á°á°áŤá˝ áŤá°ááááᢠááť ááá ááá á áľááá áá¸áĄ áá˝ááᣠáá á á°áá áá˝ ááá áááľ á¨á˛áአáá°áśá˝áŁ áá¨ááť ááá á¨áá°ááá፠áááľ á á á ááá áĽáť áĽáá˛á¨áá áŤáľá˝áá¸ááá˘
á¨á áἠá°áá ááľ áá á¨áá á áľá°áŤá¨áľ á áᢠááá áá ááá ááłáŁá¸á á¨áŠáŁááŤáá á᪠ááááľ áá. áá°á á˛á áĽáá°á°áááá, á¨á áἠá°áááá˝ á ááááľ ááĽáśá˝á áĽáá˛áŤáá áĽá áá°á ááá áľ áá áĽáť áĽáá˛á¨áá áŤáľá˝áááłá. áĽáá˛áá á ááłááľ áá á°áŤá°áá˝ á°ááá áĽáá°ááá á áĽáá¨áłááá, áĽá áľááťááľáśá˝á ááľ ááĽáľ áá¸á. á¨á áἠá°áá á¨áá á¨á° áááľ áľááá á áŁá ááá ááľá¨á áááľ ááľáĽ áááŁáľ á áá áľ, áá á áááá˛áśá˝ áá áἠá áľááá á áá á°ááŁáŤáľ áá áĽáá˛áŤá°áŠáŠ áŤáľá˝áá¸áá.
áá ááśáá˝á áá á¨á° áááľ áá
á¨áŤá áĽáľá¨ áŤá á UI áá¨áŤáá˝ áá á áááľ áአááááá˝ áŤáľááááá? á áá á¨áą áĽááá á¨áášáá áá˝áá˝ ááá áááľá°á (á ááŁáŠ ááá áľá Kubernetes áĽáááááŤáá) á áłážá˝á áĽá á˘ááŠáá°áŽá˝á ááááľ ááᢠáĽá á áłážá˝ áĽá á˘ááá°áŽá˝ á á ááľ áá áĽáá˛á°áŠ á áááá ááĽá á˛áአáĽá áá᪠á¨áááááľ áĽá áĽá áááἠáááá á ááĽáᢠáľááá á áá¨áŤ á ááśáá˛á á ááľ ááľáĽ áŤá á¨á áἠá°áááá˝ áĽá ááĽá (100, 200, 1000 ...) á áłážá˝á / á˘ááá°áŽá˝á á ááááľ áĽááľááľáŹáľ áŤáľá˝ááá, á¨áá°á áá¤áśá˝á á á°áťá ááĽááľ áááááľ áĽá ááĽáá°áá ááááą áĽáĽáľ ááĽáľ-á°áŽá áá፠áááá áŤááá. ááá.
á áŁá áłááá á¨á°áá á á áŤá˘áá˝ Amazon Web Services (AWS)ᣠMicrosoft AzureᣠGoogle Cloud Platform (GCP) áá¸áᢠáááŞáŤá áá˛áá áĽáá´áľ áá áá áĽáá°ááťá ááłááá˝á áá°áŁá ááá áá á á á ááá ááŤáľ-á°á áľáŤáá˝ á¨áá áááľ ááá á˝áá á¨áááᢠááá á áááľ á°ááłáłá á°ááŁá áá°áŁá. á á°áááś á á áŤá˘á áááá¨áĽ ááá áááą á¨ááŤá°áŠá¨á á áŠáŁááŤá á á ááá áá á¨á° áááľ áĽá á¨áááľ áĽáŤ ááľáááśá˝ áá á˛áá áá á á¨á˝áá áá°á á áá ááᢠáá ááśáá˝á áááá˛áśá˝áŁ á¨á°áá á á áŤá˘áá˝á á á ááá á á°áá ááá¨áŤ ááá áááłá áĽáá° áłááľ ááĽáľáŁ BrowserStackᣠBitBar áĽá á¨ááłá°ááľá á¨á°áá ááľá¨áŽá˝á á á ááá áá áááłá°á á¨á áá á áľá°áłá˝ ááááᢠáľááá áĽáá áĽááľááá! á áĽá á áľá°áŤá¨áľ, Sauce Labs á áŁá áłááá á¨á°áá ááá¨áŞáŤ áĽááť áá, ááá á áá áááááá á¨á°á áááŠáľ.
GCP vs Sauce Labs ááŤáľ-á°á ááááá˝áĄ-
8 á¨áľá áá¨áŤáá˝á áĽá 8 á¨á ááľáŽááľ áá¨áŤáá˝á á á ááľ áá ááŤááľ áĽááłááĽá áĽááľáĽá˘ ááá á áá˛áá áĽáá áááá áĽá 2 áááŁá áá˝áá˝á á Selenoid áĽáá°áŤááᢠá ááááŞáŤá áá 8 ááŤáŁáá˝á á¨á áłážá˝ áá áĽáááłáá. á ááá°áá áá á˘ááŠá°áŽá˝ áŤááľ 8 ááŤáŁáá˝ á á. áááášá áĽáááá¨áľáĄ-
á ááľ ááŤáŁ á Chrome áááľáŹáľ áŤáľááááá n1-áá°á á-1 ááŞá. á Android áááł ááľáĽ áááá n1-áá°á á-4 áá ááľ emulator. á áĽááṠᣠá¨á áá á°áááá áĽá ááŤá˝ ááááľ á¨á°áá°á á¨á°á áá áĽá´áśá˝á áá˛áአ/ áá
á°á¨ áľááľáł áááá áá ᣠáá á á áá áá áá
ᨠSauce Labs áá áááááá á áľááá á áá°ááá˘
áĽá ᨠSauce Labs ááá áá áłáŞáá˝ áĽáá á áá˘
á áľááľáá ááŠááąá áĽááłáľá°áá á áááá ᣠáá á ááá áá°ááŁáŤá˝á áľááśá˝á á¨áŤá á áá á¨áĽ á áááŁáá-
á áľááá ááĽáśá˝
á áááá
á¨áľáŤ á°ááľ(á¨áá 8 á°ááľ - 8 á°ááľ)
á¨áľáŤ á°ááľ+ ááááľ á¨áá˝á
GCP ááľá
n1-standard-1 x 8 = n1-standard-8
$194.18
23 áááľ * 12 á° * 0.38 = 104.88 áśáá
23 áááľ * 12 á° * 0.08 = 22.08 áśáá
Sauce Labs ááľá
áááŁá Cloud8 áľáአáá¨áŤáá˝
$1.559
-
-
GCP áá ááľáŽááľ
n1-áá°á á-4 x 8: n1-áá°á á-16
$776.72
23 áááľ * 12 á° * 1.52 = 419.52 áśáá
23 áááľ * 12 á° * 0.32 = 88.32 áśáá
Sauce Labs á á ááľáŽááľ
áĽááá°á ááŁáŞáŤ ááááľ 8 áľáአáá¨áŤáá˝
$1.999
-
-
áĽáá°áááá¨áąáľ, á¨ááá ááŠááľ á áŁá áľáá áá, á á°ááá áá°ááá˝á á á áľáŤ áááľ á°ááľ á¨áľáŤ áá ááľáĽ áĽáť á˘áŤáŤááą. ááá áá á áľááľá ááłá¨á á¨áá˝á áá˝áá˝á á¨á°á áá á¨á áá ááŞá ááááľ áá˝ááᢠáááľáá áá?
ááľá ááᣠá¨áá˝á áŞá¤á á¨áá°á á áááłáá˝ á á áá áá ááá á áĽá ááľáŹáľ á¨áá˝áá áľ ááłá ááᢠááá ááᣠCompute Engine áĽáááŤá ááĽáśá˝ áááá˝ á°ááŁáŤáľ ááľá¨áľá á¨áááá á¨áá áĽááá á á ááŁááá˝ ááŤááἠ(á áľá-ááá áľ) ááŤá°áá áá˝ááᢠááááą á¨áá˝á á ááŁááá˝ á¨áá á á áá á¨áŽáááŠá°á áá°á á á á áá¸áᣠáľááá á¨áĽááą á°ááááľ áĽáá° á á ááá áááŤáŤáá˘
á¨áĽááľá áá°áá áŞáŤáá˝ áľá á°áľá á¨áááá á¨áá áĽá ááá á¨áá˝á á¨á áĽááľ á áľá-áááśá˝á á¨áááá á¨áá á áľááľá ááá°áą á¨áá˝á á ááŁááá˝ á¨áŽáááŠáľ áá°á ááŞáá á áĽá á ááááą áá˝ááᢠáááłáᣠáŁá˝ ááááŁá áŞáŤ áľáŤáá˝ ááááą á áá˝á áááłáá˝ áá áá°áŠ áá˝ááᢠá¨áĽááá á ááŁááá˝ ááŤá¨á á ááłááśáš á áá°áľ áá áĽáŤá áŤáá¨áĄáŁ áľáŤá ááááłá ááá áá áá á áá á ááááᢠááááą á¨áá˝á á ááŁááá˝ á áá áŁáááľ ááłáŽá˝ áá á°á¨á᪠á¨áľáŤ áŤá áłáŤáľááᥠáĽá áá°á¨á᪠áá°á á áááłáá˝ áá áá áĽáá˛á¨áá áłáŤáľáááá¸á á¨áĄáľá ááááŁá áŞáŤ áľáŤáá˝áá áŤá áá ááá˘
áĽá á ááá á áááá! áĽáá° áĽáááą á¨áá ááá á°á áŤá áĽá¨ááľ á12 á°á áłáľ áá°áá áĽáá°ááá°áŤ áĽááá á ááᢠáĽá áĽáá°á፠á¨ááᣠá¨áášáá áá˝áá˝á á áááááá áľ áá á áŤáľ á°á áááá áĽá ááá áá˝ááᢠáľááááá á¨á á ááá áá á áá áá° 6 á°á áłáľ ááááľ áá˝ááᢠá¨ááŤá á á°ááŁáŤá˝á á ááľ ááľáĽ áŤáá áá፠á 11 á áłážá˝ á áá áá° $ 8 ááááłá. áá áľáá á áá°áá? ááá áá á á áľá-ááľ á áá˝á áá˝áá˝ áĽááá áĽá ááááŤá¨áĽ áĽá á ááá¨áááľ áááááľ á ááĽá, ááá áĽááłá áĽááá áááłáá˝ á áśááľáá ááľáĽ áááᥠáĽá ááŤá áá˝áá. áá á áá!
áá á ááá ááአ'á¨Cloud áá¨áŤ áĽááťáá˝á á ááŤá˝ á áľá áá' áĽáŤáአá áá°ááᢠá ááŤáł áĽá áá˝ á áá¸á. á ááááŞáŤ á°á¨á, áá áááŁá áá˝á áĽáť á áá°áá, ááá áá á¨á°áá á¨áá¨áŤ á ááśáá˛á áááľá á¨áłáĽá ááľáĽ á¨á°ááŁáŤáááľ áľáĽáľáĽ áá: á¨áááľ ááłá¨áť, áááἠááľáłááťáá˝, á á˝á áłá áá˝ áĽááłáá˝, á¨áŞá˛áŽ áá¨áť, á¨á°ááŤáŠ á áłážá˝ áĽá á áŤáá á°áááłáá˝ ááłáŞáŤáá˝. á áĽá áááłáá˝ áá á áŁá á áľááá á ááŤá ááá áá˝áá. á¨ááá¨áŞáŤ ááľá¨áŽá˝ á á°áá áá ááŚá¤áľ á ááśáá˝á á áá áá¸áᣠá¨á áἠá°áááá˝ ááááľ/áááśááľ á˛áľá°áá˝á áĽáť ááŤááᥠáá˝ááᢠáá á áááĽááľ á˝ááá˝ ááľáĽ áľá iOS áĽáááááŤáá. áááłáá áááá áĽáá˛ááá¨áą áĽá á¨á°ááŁáŽáš áĽáá˛ááአáĽáááŤáá: á á ááłááľ áááłáá˝ á¨á áἠá°áááá˝á áá áá ááŤá˝ áĽá á¨á áá áááŁá áá, áĽá á ááá˝ ááľáĽ á¨áá¨áŤ ááľá¨áŽá˝ á áĽááá áááľ á¨áááŁá áááἠáá á áá¸á.
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝
á.á˛.á. áá˛áᥠááááľ á¨áá˝á GCPᥠá¨áŞá¤á áá á á°áŁáĽ SauceLabs á¨á°áá á á áŤá˘áá˝á áááłá°á
á°ááłáłá ááłáŞáŤáá˝áĄ-
6. áŚááŹáľáľáŤ
á¨á´ááááá á áá ááááŤ
áĽáŠ áá á áá - áá° ááŁáĽá áá¨á¨áť áá áá! á á áá ááᣠá¨áĽá á ááśáá˝á áá á¨á° áááľ á¨áľá áĽá á ááľáŽááľ áá¨áŤáá˝á áŤáá ááᣠáĽááá á á GitLab CI á áľáአá Docker-enabled tools: Selenium grid áĽá Selenoid áĽáá ááááᢠá¨áá á á áá á áá˛á á áŠá á¨á°áá አá¨áášáá áá˝áá˝á áĽáá áááá áŽáá´áááŽá˝á á¨á áłážá˝ áĽá á˘ááá°áŽá˝ ááᢠááŞá áááááľ áĽááá á áááŁá áá˝áá˝ á ááááľ áĽáť áĽááááŤáá áĽá áá¨áŤ á ááá°á¨áá áľ áá áĽáááá¸áááᢠáá á¨á° áááłá˝áá ááŤáťá˝á á¨áá˝á áá ááá á á? áááą á á áá! á¨áŠá áááľáľ (K8s) áá áá°ááá!
á ááááŞáŤáŁ áŚááŹáľáľáŤáŁ áááľá°á áĽá áŠá áááľáľ á¨áááľ áááľ áĽáá´áľ áĽááľ á ááľ áĽáá°ááááą áĽáááá¨áľá˘ á á¨áá°á á°á¨á, áŚááŹáľáľáŤ á áááŹá˝áá˝á á¨ááŤá°á፠áĽá á¨ááŤáľá°áłáľá áľáááľ áá. ááá¨áŤ á ááśáá˛á áĽáá°áá áŤá á áŽáá´ááá á¨á°áŤá á áááŹá˝áá˝ á´ááá¨á ááŞáľ áĽá á´ááááľ áá¸áᢠDocker áĽá K8s áĽááľ á ááľ áá°ááááᢠá¨ááááŞáŤá ááľáá ፠áááááľ, ááá°áá ááŚááŹáľáľáŤ áľáŤ áááá. á á°áŤáᣠK8s ááá ááᢠá¨áááľá°á á°ááŁá áŞá¤ááá˝á áĽáá° ááľááá ááááľ áá áá á˛áá áá á á á ááľ á áááá (áááľá°á) ááľáĽ á¨á°ááŤáŠ á°ááŁáŤáľá ᣠááŽááŤáá˝á áĽá á áááááśá˝á áĽáá˛áá áŤáľá˝áááłáᢠá ááłá¸áá ááśá˝ áŤáá°áłáŤáŁ ááá˝ ááśá˝ áááłáᣠáá á áŤáá°áá¨á á¨áá°áá áŞáŤá˝áá á á áŤá áŤá¨áááŁáᢠá¨áá á á°á¨á᪠K8s á¨ááľáŹáľ áá á¨á°áŤáŤá á áá á°ááŁá á ááᣠááá á ááľáá áááŁáá á áááą áá á°ááľáá°á á¨áá°ááá á¨ááĽáľ áá á áĽááľááá áááá˘
áĽáá° áĽáááą á¨áá áŠá áááľáľá á¨áŁáś áá°ááŤáľ ááá áľáŤ á áá°ááᢠ"Kubernetes The Hard Way" áĽáá´áľ áĽáá°áá፠ááłááá á áááá áĽá°áááá áĽá ááááľ áŤááľ, áááááąáľ áá˝áá. áá áĽáá° áĽáľá áá, á ááŤá áá´áá˝ áĽá ááłáŞáŤáá˝ á á. á áŁá ááá ááááľ Google Kubernetes Engine (GKE) á áá˛á ááľáĽ áá áá ááᣠáá á á áĽááľ á á áłáá˝ ááľáĽ ááá á¨áá áááľá°á áĽááľáłáá áŤáľá˝áááᢠááá ááááá áá á á áŤááľ áĽááľáľá áá áĽáááŤáá ááááŤáąá ááľáŁá ááááš áĽááľ á ááľ áĽáá´áľ áĽáá°ááááą á¨ááá ááá K8 á áĽáá´áľ ááľáŤá áĽáá°áá áá á ááá áá áĽáá˛áŤá°áŠáŠ ááá áľáááłá.
áá ááśáá˝á áá á¨á° áááľ áá
K8s á¨ááŤáááŁá¸áá áĽááľ á áá áŁá áŞáŤáľá áĽáááá¨áľáĄ-
- á¨áá°áá áŞáŤ ááááł: á¨áŞá¤áá¤áľ ááá áŁááĽá-ááśá˝ áááľá°á á áá áá;
- á°áááá ááŹáľ: á ááááľ áĽáť áĽá á áá á¨ááááľá ááĽáśá˝ áá ááááłá;
- áŤáľá ááááľ: á¨ááłáá˝ á ááśáá˛á áááś ááá (á áá ááááŤáľ áŽáá´áááŽá˝ áá°áá áŠá áľ ááááłá);
- ááťáťáŤáá˝á áááá áĽá á¨áááŚá˝ áááś áááááŤáá˝ áŤáááá¨áĽáĄ ááŁáŞáŤáá˝áᣠá áłážá˝á áĽá á˘áááá°áŽá˝á áááá á¨á áá á°á áááá˝á áľáŤ á áŤáááĽáá˘
áá K8s á ááá á¨áĽá áĽááľ á áá°ááᢠáĽá áĽáŤá°áĽáá¸á áŁááľ ááłáŞáŤáá˝ á ááľ ááľáĽ áŤááľá áááá áĽá
áá˝ áĽá áá°áŚá˝ ááá¨áłáľ (á´ááá¨á ááŞáľ, á´ááááľ) áľá K8s á áááá á á áአáĽáááááŤáá. áááľá°á áááľ á áááľ ááśá˝á ááááᥠááľá°á ááśá˝ áĽá á¨á°áŤá°áá˝ á áááá˝á˘ ááľá°á ááśá˝ á¨á áľá°áłá°áᣠá¨áá°ááŤáľ áĽá á¨áááááĽá ááłááá˝á á¨ááľá¨á áááááľ á ááŁá¸áᢠá¨á°áŤá°áá˝ á áááá˝ á áááŹá˝áá˝ á¨ááŤááąá áľ ááᢠá áááá˝ á¨áŽáá´ááá á ááľ áá á áŤáŁá˘á ááááᢠá áĽá áááł, áá
áśá¨á áá, áĽáąá á¨áŽáá´ááá áá áá°áŤáŤá áľáŤáá˝ áááááľ áŤáá. áá áĽáá° á ááŤá áááľááá˝á á á
á¨áááŞáŤ áŁá áŞá ááá áá áĽá á áááąá á áááá˝ á áááľá°á ááľááá áááł áĽá á ááľááá ááá ááľáĽ áŁá ááľáá˝ áá áá°áá á áá˝ááᢠááááąá á áááá˝ áĽá ááľáá˝ á¨áá°áá አ2 ááááľ á áááśá˝ á áᢠá¨ááááŞáŤá ááááľ á ááľá áá - á áááľ á¨áá¨á°á°á á ááľááá ááááľ / á ááłáá˝ ááĽá á áá¨áá áá. áá á áááľ á¨á áá á°ááŤá áá. ááá°áá ááááľ, á áá áá á¨áľ, áἠáŤá áá. áľáŹá á¨áá°á¨áá á¨ááśá˝/ááśá˝ áá á á áá¨áá áĽáá ááĽáŤá¸á á áá°ááá˘
á áá ááłáŞáŤááťá˝áá á¨áá áŁááľ áááľ á ááľ ááľáĽ áĽááá˘
á¨á´ááá¨á ááááá
áá°á á˛á áĽáá°á°á áá°á, á¨á´ááá¨á ááááá á áŁá á°ááłá ááłáŞáŤ áá, áĽá ááŤáŁá ááŤá ááá á áŤáľá°áá á. áľááá , á¨á´ááá¨á ááááá á K8s ááľáĽ áááááľ ááťá ááá á áŤáľá°áá á. áá áá áĽáá´áľ ááľá¨á áĽáá°ááťá ááłá á K8s áŚáá´áá áá¨ááť ááľáĽ ááááᢠáĽáá°á°ááá°á á ááá áá¨á¨áť áá á áááá˝á á áŤáááá. á á°á¨ááŞá, áĽáá´áľ-áááŞáŤá áá áá á Terraform ááľáĽ áĽáá´áľ áĽáá°áá°áŤ áŤáłáŤá. áĽáá˛áá á¨á áłá˝ áŽáá´áááŽá˝á á¨áŤá á¨ááłáá˝ áĽááľ áĽáá´áľ áĽáá°áááá áááŞáŤáá˝ á áᢠááá áá á K8s á ááľ ááľáĽ áŤáá á¨áŤáľ-á°á ááŹáľ á°ááŁá á ááá áá á áá ááá˝ á¨áá áľáŤ á áá°áá. ááĽááľ áľááá ááá á°ááŁáŤá áááŞáŤ ááá áááŽá˝ á áááááᢠá¨á ááŤáł áĽááśá˝ áĽá áá¨áŤáá˝ á áá á á´ááŚááľ áĄáľá áľáá ᣠá á ááľ á¨á°áŤá°á ááľááá ááááľ ááľáĽ á¨ááá á á ááľ ááľ ááľáĽ á áľááá á¨áá á áłážá˝ áŤáá¸á áŽáá´áááŽá˝á á¨ááłá°á áá´á áá¨áĽáᢠáá áá´ ááĽáŤá¸áá á áá¨áá á¨á áááá˝á á ááľá á ááľá á ááááĽá á°ááŁáŤá áááľá¨á áŤáľá˝ááá. áá ááá°ááą áĽáá°áááἠá°áľá á á°áááá áĽá á¨á°áťá á ááŤá¨áŚá˝á áĽá ááá áááľááá˝á á á°ááá á¨á´ááá¨á ááááá 4 á¨á°ááá ááľáŁá á ááá´áá¸á áá á°á¨á᪠ááááŤáá˝á áĽááŤáá.
á´ááááľ:
á´ááááľ á K8s ááľáĽ áá°ááŤáľ á á áá áá áľáá á°áľá á áľááŤá ááᢠá¨ááŁáŁá á áá°ááᢠá ááľá ááłáĽáŁ ᨠSelenoid ááŤáŁá á ááľ ááľáĽ ááłá°á áĽáá˝áááᣠááá áá á´ááááľ áŽáá´áááŽá˝á á á áłážá˝ ááľááá á˛ááá á ááá á á°ááłáłá ááľ ááľáĽ áááŤáᢠáá ááŹáąá á¨áááťá áŤá°áááá áĽá á áá¤áąá ᣠᨠSelenoid á áááľá°á ááľáĽ áŤáá áĽáŤ á áááŁá áá˝á ááľáĽ áŤáá áĽáŤ á ááááᢠá¨áłáŞáŠ áá¨á¨áťá˘
á¨á¨á:
á¨á´ááááľ áá á áá°áŠá áľ áá áá áá ááá áľáááŤáá ááá˘ááš áá á¨á°áŁá á¨á áá áááá ááłáŞáŤ ááááᢠáá ááłáŞáŤ á ááááŞáŤ á¨á°áá°áá á¨áŠá áááľáľ áá áááľáŤáľ ááᣠá áá¤áąáᣠá¨áŤáľ-áľáŹá áŁá áŞá áĽá á áá ááá áá˝áá áĽá áĽá á áá ááá á áá áľá˘ á¨áá á á áá á á áá áá áĽáá°á፠áá áĽááá áĽá¸áá á á´ááá¨á á áá ááľáĽ áŤá ááłáŞáŤáŁ á¨áłáĽá áá ᨠK8s áááľá°á áľáá áŤáá (á¨á áá á áá á ááááᣠá¨áááĽááá ááłáŞáŤ áááá¨áą ). áá áá áľáá á¨áá°áĄáľ á¨á¨á¨á ááá áŁá áŞáŤáľáĄ-
áá á áá á áá á ááŁá˘ á´ááááľ á á áá áá áľááááą á¨á áłá˝ ááá-áááá˝ á¨áá á°á¨ áľááľáł áá¨áá áŤá¨ááťáᢠá áá ááááŤáľ áá°áą á¨á°á áḠ- ááá á ááľ ááá áááá˝ á áá°áá. á¨á¨á á á°ááŤáá ááľáŁá áááł á¨ááľá áĽá á áá¨á ááĽá¨áá˝ ááľáĽ ááŁá áá˝áá. á ááľ ááá á¨á፠á áá á ááá˝ á˘áááąá á¨á áłá˝ ááá-áááá˝ á ááááľ áááŤáá˘
áľááá , á¨á¨á á áŁá áĽáŠ áááľá áá, áá á ááľ á˝áá á á: áá á áá°áá. ááá á ááá-áááá˝ áĽááľ ááá°áá. á¨0-4 ááá áááá˝á áĽáť á ááť áááľ áá˝ááᣠáá á á á°áá á áá á áá°ááᢠááá ááᣠá¨á ááľá°áá ááá áá áááŽáŁ ááĽáŤááłááą $5 áááá á ááŚáľá˘ áááłá á¨áŠáŁá፠áá° áŠáŁá፠áááŤá áá˝áá, ááá áá á áĽá áááł, áá áá áá ááá áááł á¨ááá. á¨áá áĽáá°ááá˝áŠáľ áŞá¤ááá˝á á Selenium Grid á ááááľ ááľáŹáľ ááá á áááľá°á ááľáĽ áŤááľá á¨ááśá˝ áĽááľ áá¨áá áĽáá˝áááᢠáá ááľ á¨á§á᧠ááľáá á áááľ 500 á áłážá˝á áĽááľáááŤáá áĽá áá°áááš á¨á°á ááá á áá áááá ááĽáśá˝ áĽáááááᢠáá á¨á°á ááá ááá áŤá á áá áá°ááá˝á áĽááŤááľ á áá á°á¨á᪠500 x 5 = 2500 áśáá áááá á ááĽáᢠá ááá áá á áľá áá áĽáŤáአá áá°ááᢠááĽááľá á°ááŁáŤáľáŁ áá á áŁá á áľááá áááľá ááá áá˝ááᣠáááłáᣠá áľáá áľá ááľáĽ áĽá ááŽáááśá˝/áĄáľáá˝ áŤáááľ áĽá áááá á°á á¨ááá áľáá á¨á፠áľáĽáľáĽ á¨áááᢠáĽáá° ááááá, áá¨á¨áť áá á ááľ á ááá áľáťáá áĽá áááá á áľááá áľááśá˝ á áľáŤá á ááľ ááľáĽ áĽáá˛áŤá°áá áĽáááŤáá.
Callisto: (áľáŠá¨áľ! áá á ááá á˝áá ááľáĽ á áá°áá áĽá á áŠá˛áŤá áľááá ááľáĽ áĽáť á°ááá)
áĽááłááŠáľ á´ááá¨á á áŁá á°ááłá ááłáŞáŤ áá, áĽá á¨á áᲠááľá á áŁá á ááĽááľ áĽáŤá°á áá. á áľááá áá áĽá¨á°áŤá áĽáŤá áŤááľáś á¨ááŁá á á˛áľ á°áľá á°áŞ ááłáŞáŤ á áľáŠ áá áłá¨ (á°áá áłááá¨áľ áĽá ááá˝ á´ááá¨á ááłá)ᢠá¨K8s áá á¨áá°áŤá áĽá ᨠSelenoid áŽáá´áááŽá˝á á ááľ ááľáĽ áĽáá˛áŤááą ááá áľáááłáᣠá ááľááá ááááľ áá°áŤáŤáᢠá ááśáá˛áá á¨áᎠááá ááá á¨áłáĽá ááľáĽ á áľááá áá°áŤáᢠáľáá ááá áá ááá¨á á áá áľá˘ áá á ááłáŞáŤ á áľááľá ááá°ááŤáľ áĽá áĽá áá¨áŤáá˝á áááŤááľ á˝áŤááᢠááá áá áá°áá°á፠áá áááľá¨áľ á áŁá áá áá, á¨á¨áĽá áááľ áá áá¤áśá˝á á¨á°áá áአá áá, ááááŁáľ á áááĽááľ á˝ááá˝ áá áááá á á°áááá. áá áá ááááá°á áááá á áááá˝á áĽáť áĽá°ááááá˘
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝
áŠá áááľáľáĄ áááá áŠá áááľáľáĄ á áľá¸ááŞá ááááľ áŠá áááľáľáĄ á´ááá¨á GCP: Kubernetes áá°á á¨á¨á á¨áŠá áááľáľ áá˝áá Kubernetes á áá áá á¨á°á°áŤá¨ á ááśáá˝á á´ááá¨á ááŞáľ 4 Callisto GitHub Wrike TechClub (Callisto)
á°ááłáłá ááłáŞáŤáá˝
7. áá á¨á° áááľ áĽáá° áŽáľ (IaC)
á¨á´ááááá á áá ááááŤ
áĽá á áá áá° á¨áá¨á¨áťá ááá á°áá°áá. á á°áááś áá á´áááá áĽá á°ááá á°ááŁáŤáľ á¨á ááśáá˝á áááá˛áśá˝ áááááľ á áá°ááᢠááá á ááááŤáśá˝ á á. á ááááŞáŤ ᣠá áĽá áľáá áśá˝ ááľáĽ ᣠá¨áá á¨á° áááľ ááłáŽá˝ á á´ááŚááľ á˛áááľáááľ ááĽáĽá áľá áá¸á áĽá á¨áááľ áĄáľááš á¨á§á᧠ááľáá áá áĽáá°áá°áŤ áĽá á¨áĽáą áá á¨á°ááááá áá áĽáá´áľ áá°áá áĽááłáá áľ á áľááá á áá¨áááᢠá ááá°á á°á¨áᣠáĽáááąá áĽááááá á¨á°áŁáᣠá¨áá á¨á° áááľ áĽáá° áŽáľ (IaC) á á áŤá á áĽá áŠáŁááŤáá˝ ááľáĽ á ááá á°ááŁáááľ á¨áááᢠááá áá á áĽááá áááľ áłáá á ááá፠ááá áĽáá á¨áĽáą áá á á°áŤáŤá áá°áśá˝, á ááŤá¨áŚá˝ áĽá ááłáŞáŤáá˝ ááľáĽ áááłá°á ááá¨á á áľááá áá. ááá á˘áŤááľ áĽáá°á°ááá áááŠá˘
áá áá á áŤááľ ááá áá áŁáá á°ááłá˝ááľ áĽááááᢠá GitlabCI ááľáĽ áá¨áŤáá˝á áááŤááľáŁ Gitlab Runnerá áááľáŹáľ á˘áŤááľ ááĽáśá˝á áĽáá°ááŤáľáááá á áľááľáá á°ááŤáá°ááᢠáĽá áŽáá´áááŽá˝á á¨á áłážá˝/á˘ááá°áŽá˝ áá áááľáŹáľ áŞá¤á ááá áááľá°á ááľáŤá á ááĽáᢠá¨áá¨áŤ ááĽááśá˝ á á°á¨á᪠áááľáᣠááá áľáᣠá¨áááľ á áŤáŁá˘áá˝á ááá°áá á¨áá°á áá á áŤáá á á á áŤáľáááááᣠáá á á¨ááἠááłáá˝áᣠá ááśáá˛á ááá ááĽáŽá˝áᣠá¨ááľááá á ááááŽá˝áᣠá¨ááľ áááá˝áᣠá¨á°á áá ááĽáśá˝á áĽá á¨ááłá°ááľá áŤáŤáľáłáᢠááá ááłá áááá ááá°áá á¨ááŤáľáááá áĽá¨áľ ááᢠáááŚá˝á áááľá¨á áĽá ááťáťáŤáá˝á á¨áááá á áľ áĽá ááááśá˝ á áᢠáááłá á áá˛á á ááľ ááľáĽ á¨UI áŽááśáá á á áłáš ááľáĽ ááá áá áĽá á ááŤáŽá˝á á á á ááľá¨á áááá áľáááśá˝ ááá¸á áĽáá˝áááᢠá¨á°áá á áŤááľ áá ááááááľ á¨á¤áá á áĽáŞáá˝á áá áá ááá ᨠgcloud áľááá ááľáá áááááŤá á áá áá á¨á°ááááá ááá áá á áá áá á ááŤá ááᢠááá áá á áĽáááą áĽá ááĽá áŤáá¸á á¨á°ááŤáŠ á áŤááľ áĽá á¨áá á¨á° áááľ á áŤáᾠᣠáááá áľáŤáá˝ á áĽá ááá¨ááá á áľá¸á᪠ááá áĽááłá á¨áááťá ááááᢠá¨áá á á áá áĽááá áá á¨áĽá áĽáŤáá˝ á¨ááĽáĽá á᪠áá¸á. á¨ááá¸á á ááľ ááááá áááľááŁá¸áᣠá¨áľáŞáľ ááĽáĽá áľáááľá áá áá áĽá áá° ááľá°áą ááááŤáľ á¨áááľá áááŚá˝ á ááĽááľ ááááľ á áá˝ááᢠáĽáá°ááá áŤááľá á˝ááŽá˝ ááááłáľ áááá˛áśá˝ á ááĽááľ áááá ἠᣠááá¨áłáľ ᣠááá áá áĽá á áĽáááľ ááᤠáááťáťá ááá áľáááá á ááśáá˛á áŁá˝ / áźá áľááŞááśá˝á ááĽá¨á áá አᣠá¨áá°ááľ áá´áá˝ á áŁá á¨á°áťá á áá°áá á˘
á áá á˝áá ááľáĽ áĽá áĽáá´áľ áĽáá°áááŤ, ᨠIaC ááááľ áá á¨á°áŤáŤá 2 ááłáŞáŤáá˝á áĽá áááá. áĽááá á´áŤááá áĽá ááá á¨áá˝á áá¸áᢠá ááłááľ á°áá˝ á°ááŁáŤá¸á á°ááłáłá áĽá á°áááá áľááá áĽááąá á á°ááłáłá áá áá áá ááá áľááá á¨ááá áĽáá áŤáááᢠáĽáááłá áá ááááŞáŤ áá áá ááá á¨á°ááŤáŠ áľáŤáá˝ á°á°áĽáˇá¸áá. áĽá áĽááá ááłáŞáŤáá˝ áĽááľ á ááľ áá°ááá á ááŁá¸á á¨ááá áĽáááł HashiCorp áĽá RedHat á¨áááá ááá˘áá˝ á á፠áŁá°á¨ááľ á ááŤá¨áĽ á°á¨ááá§áᢠá¨ááłáĽ ááŠááľ á´áŤááá á ááááŽášá áĽáŤáłá¸á áááľá°áłá°á á¨ááŤáááá ááłáŞáŤ ááᢠAnsible á ááá á ááááŽá˝ áá áśááľááŽá˝á ááŤáᣠáááá áĽá ááľá°áłá°á á¨áá á¨áá á¨áľ ááá áááľ ááłáŞáŤ ááá˘
á¨áĽááá ááłáŞáŤáá˝ ááá ááá áá፠áŁá ᪠á¨áŽá˛áá ááᤠáá. áĽáá° bash áĽá Ansible á á°áá¨áŁ á´áŤááá á á áááá ááááŤáľ á¨áááááá á¨áá¨á¨áť áááł ááá፠áá á áááľá¨áľ ááá ááá¤á áá áááᢠáááłá 10 áŞá¤á ááááĽá áĽá áááŚášá á Terraform á¨á°á ááá 10 áŞá¤á áĽáááááᢠáľááŞááąá áĽáá°áá áŤáľáŹáľáá 10 áŞá¤áá¤áľ áľááá ááá ááá á áá¨á°áľá áĽá á´áŤááá áľááá ááłá áŤááá ááááŤáąá á áá áŤááá á¨áá á¨á° áááľ áááł á áááľ ááá ááľáĽ áŤá¨ááťáᢠáá Ansible á¨áĽáááľ á áŤááľá áá ááá áĽá 10 áŞá¤á áĽáá˛ááĽá á¨á á¨á á ááááŞáŤ á áá áá áĽáá° á´áŤááá 10 áŞá¤á áĽáááááᢠáá áĽáá°áá á¨áááá á áá 20 áŞá¤áá¤áľ ááá¨ááᢠáá á áľáááá ááŠááľ áá. á áĽáááľ ááᤠᣠá áá áŤááá áááł á áá¨áá˝á áĽá á ááá áá¨ááá áŤááŁá¸áá á¨áĽááááá˝ á á°á á°á¨á°á áĽááááááᢠáĽááἠáá, á¨á°ááŤáŠ áááłáá˝á ááľá°áááľ áĽáá˝ááá, áááĽáśá˝ ááá áĽá á áá áľááá áááł á ááŤáł áá°áťáá˝á áá¨á áĽáá˝ááá, ááá áá áááŤá˝áá ááŁá¨á áĽá áá áá á áááᎠááááŁá á áĽá¨áľ ááľá¨á ááá áááł á¨ááá. á á°á¨ááŞá, áá áľá á°áľ á¨ááĽáŤáľ á á°áá áá¨ááŤá.
á¨áá á¨á°á ááąáľá áá á á áá á áľááá áľáááá˝ á´áŤááá áĽá ááá ááľ á áááá á ááááŽá˝á ááá á¨áĽ áá áἠá°áľáá ááŁáŞáŤ áá¸á áĽáá áá°áá°á áĽáá˝áááᢠááá áá á¨ááááŞáŤ á áľá°áłá°á áľáŤá áá áá˛á áááá ááľá áľ á¨á°áťá áá. ፠á¨ááááą ááŞáŁ á¨á á ááá ááłáŽá˝á á¨á ááśáá˝á á ááľ ááľáĽ áĽááá˘
áá ááśáá˝á áá á¨á° áááľ áá
áĽáá áá¨áąáľ á¨áááŁá áĽá¸áá á áľááá ááá á¨áá¨áŤ á ááśáá˝á áá á¨á° áááľ áĽáá° á á ááá á¨áŠáŁááŤá áá á¨á° áááľ á áŤá á°á°áá ááá°áľ á áá áľá˘ áá áááľ ááá ᨠIaC ááááśá˝ á á áá á áá á°á¨á ááľáá áą ááĽáśá˝ á áá áá°áá á á ááŁá¸á áááľ ááᢠááá á°á áŤáá áá áá á áĽááľá áá°áśá˝ áá á¨á°áá°á¨á° áá. á áĽááá ááłáŽá˝ áá á¨á´ááŚááľ áĄáľá á¨á áá áááľ áŤáá ááᣠáĽá¨á°á¨á°á° áŤááá á á ááá ááľá áááá¨áłáᢠááá áĽáá ᨠQA áááá˛áśá˝ á ááśáá˛áá á ááááŁáľ áá°áľ áĽá á¨á§á᧠ááľáá ááá á ááľáĽ á¨á áá ááłá°áá, áá á áááá á áľááá áááŚá˝á áĽá á¨ááťáťá áĽáľáá˝á á á°áťá áááł ááá¨áľ áŤáľá˝áá¸áá. á¨áá á áá áá¤áľ áááááľ á á፠ááľáŤáľáŁ áĽáááľá ááłáĽ ááááἠá¨á°áťáá á ááŤá ááá˘
á áá¨áŤ á ááśáá˛á á ááľ ááľáĽ Terraform áĽá Ansible á¨áá áá áĽááľ ááłááá˝ áĽá á¨áá á ááľ á¨á°áááááá¸á ááłáŞáŤáá˝áĄ-
1. á´áŤáááá á áá áá á¨áŞá¤á áĽá áááľá°á á áľááá áŁá áŞáŤáľá áĽá áááŞáŤáá˝á áááášá˘
2. Ansibleá á áá áá ááá¨áŤ á áľááá á¨áááľá ááłáŞáŤáá˝áĄ- dockerᣠSelenoidᣠSelenium Grid ááŤá áĽá á¨áááááľá á¨á áłážá˝/emulators áľáŞáśá˝ áŤáááąá˘
3. á´áŤáááá á áá áá GitLab Runner á¨ááááá áľá á¨VM áŁá áŞáŤáľ áááášá˘
4. GitLab Runner á áĽá á áľááááášá á°ááłá ááłáŞáŤáá˝ ááťá á¨áá˝áᣠá ááĽáŽá˝á áĽá á ááááŽá˝á á áá áá ááŤáá˘
á áá áŤáá á¨áá á¨á° áááľ áááł ááłá
ááá°áľ á áááá˝áĄ-
Terraform á¨áá ፠Asible áĽá Terraform á¨á°áťá á áĽá¨á áá´áŤááá á á ááá áááŞáŤ á´áŤáááá á¨ááá ááá ááááľáá áĽáá áźááŁá áťááááľáŁá°áťááŁá¨á¨á áľáłá ááá CloudFormation á áá°áá GCPᥠIaC
á°ááłáłá ááłáŞáŤáá˝
áĽáá áááá!
á°á¨á
á´áááá
ááŁáŞáŤáá˝
áá ááśáá˝á áá á¨á° áááľ áá
1
á¨á áŤáŁá˘ áŠáŤ
Node.jsᣠSeleniumᣠAppium
- ááľá áĽá ááŁáá á áŁá áłáá ááłáŞáŤáá˝
- áĽá ááááá˝á áĽá ááľá¨áŽá˝á áá°ááá (Node.jsá á¨ááŽ)
2
á¨áľáŞáľ ááĽáĽá áľáááśá˝
Git
- á¨áááľ áŽáľ áá á°ááłáłá áĽá áá˝
3
ááŤáŁ
áśá¨áᣠá´ááá¨á áááááᣠá´ááááľ (áľáᣠá ááľáŽááľ)
- á áľáአáá¨áŤáá˝á ááŤááľ
- áááá°á á áŤáŁá˘áá˝
- áááᣠá°áááá áľáŞáľ ááťáťáŤáá˝
- áĽá á áá áŤááá ááĽáśá˝á á á°áááá ááá
- ááááá á ááá
4
CI/á˛á˛
Gitlab CI
- á¨á§á᧠ááľáá áááá áááľáťá
- ááŁá ááá˝
- áááá áŠáŁááŤ/áĄáľá áłáááľ
5
á¨á°áá á¨ááłáŞáŤ áĽáááśá˝
Google á°áá á¨ááłáŞáŤ áĽáááľ
- á ááááľ áá áŤá ááĽáśá˝ (á áľááá á áááá áľ áá áĽáť áĽáá¨áááá)
- áááľá°áłá°á áĽá ááááá ááá
- á¨ááá ááĽáśá˝ áłáááľ áĽá ááĽáĽá
6
áŚááŹá˝á
áŠáŁááŤáśá˝
á ááľ ááľáĽ á¨á áłážá˝/emulators áá á ááŤáŁáá˝ á ááľ ááľáĽáĄ-
- áááá/áŤáľ-á°á ááŹáľ
- áŤáľá ááááľ
- áŤáááá¨áĽ ááááá˝ áĽá áááś áá°áŤáŤáá˝
7
áá á¨á° áááľ áĽáá° áŽáľ (IaC)
á´áŤááá ᣠááťá á¨áá˝á
- á¨áááľ áá á¨á° áááľ áá á°ááłáłá áĽá áá˝
- á¨áŽáľ áĽáľá ááá áĽá áá˝
- áááŚá˝á áááľá¨á áĽá ááá áá ááá
- áá á áá á áŤáľ-á°á
á¨á áĽáᎠáŤááł ááľáá˝: á¨áá á¨á° áááľ áááá° áááĽ
á°á¨á 1: á áŤáŁá˘áŤá
á°á¨á 2: VCS
á°á¨á 3: ááŤáŁ
á°á¨á 4: CI/CD
á°á¨á 5: á¨ááááľ ááľá¨áŽá˝
á°á¨á 6: áŚááŹáľáľáŤ
á°á¨á 7: IaC
ááĽá áááľáá?
áľááá á¨á˝áá áá¨á¨áť áá ááᢠáá á áá áááŤá á¨áĽááľá áá á ááłááľ áľááááśá˝á áááľá¨áľ áĽááááá.
á¨ááá
ááááŞáŤ áá áĽáá°ááá˝áŠáľ á˝áá á á°ááŁáŤá áĽá
á áá áĽáá˛áá áĽá áŤáááľá áĽáááľ á áĽááá°á áľáŤ áá áĽáá˛á°ááĽáŠ áĽáá˛á¨áłááľ áĽááááá. áĽáá°áá áĽá¨ááŤáá
ááá áá á¨á፠á áá áĽááłá á áŤáá, á áááááą, á°ááá á áááá˝á áĽá áá˝ááá˝á áŤá á, á áŠáŁááŤá ááľáĽ áĽáá´áľ áĽáá°áá°áŤ ááá, ááťáťá á¨áá˝á áŚáłáá˝á áááá áĽá á áĽáą ááľáĽ ááłá°á. áááŤá áááľ!
á¨áá
á¨áááą áá á¨ááááŞáŤá ááá áĽáť áááá áá¨áľ áá˝áá. ááá áĽááłá áĽáą á áŁá áľáá á˘ááá ᣠá áľááá ááá° ááłáŽá˝ á ááá áĽáá á áá°áŤá°áąáᢠá ááá°áá ááá, á IOS á ááľ ááľáĽ á ááśáá˝á áá á¨á° áááľá ááááá¨áľ áĽá áľ á áá. á áá á¨á ááŚá¤áľ á˛ááá°áŽá˝á á ááᎠá˛áľá°á áá áĽáť áááľáŹáľ á á°á á áá°áĽ ááááŤáľ á¨áááľá áááá˝á áĽá¨á á á ááᢠáááłáᣠáááŁá áá˝áá˝á áááľáŹáľ Docker á ááá áá á áľááłá ááá á¨á áἠá°ááá áá áá á ááťáááᢠáá áááľ áá ááá˝ á ááŤáŽá˝ á¨áá áááľ á áá°ááᢠá¨áá áááľááá˝á áĽá áááá ááłáŞáŤáá˝á áá áłá áááľá¨á áĽáááŤáá!
á á°á¨ááŞáᣠá¨ááľáľá áá á¨á°áŤáŤá á áŁá áľáá áááśá˝á á áááá˝áŠáᢠá ááá 3 ááľáĽáŁ á áŁá áłáá á¨áááľá á¨áá á¨á° áááľ áá¨áłá°áŤ ááłáŞáŤáá˝á áĽá á¨áľáášá áá¨ááá˝ áĽá áááŞáŤáá˝ á¨áááľ ááľáĽ ááľááŁáľ áĽááłááĽá áĽááá¨áłááá˘
áĽá á áá¨á¨áťá. ááá°ááą, á¨áá¨áŤ áá á¨á° áááľá áĽá áłáá ááłáŞáŤáá˝á áľáááááŁáľ á¨áŞá˛áŽ áŽááľ ááááá áĽá áľ á áá. á á áá áá á áááá¨áĽ áá á á´ááŚááľ áá á áŁá áĽááľ áŽááśá˝ áĽá áľáá ááśá˝ á á ᣠáá ááá ááłááśá˝ á¨ááááĄáľ á áĽáľááľ á ááľ ááľáĽ áá áĽáá á¨áá¨áŤ á ááśáá˛á á áá°ááᢠá áá ááłá ááᣠáĽáá˛á ááááą áŽááľ áááŤáŞáá˝ áĽá á ááśáá˝á áááá˛áśá˝ áá á á¨á°áĽ á áľá°áłá˝ áĽá á áá ááá á ááááá áá ááĽá¨ áááľ áĽáááááᢠá¨áá°á ááľáá!
ááá: hab.com