áá»áœááºá¯ááºááá¯á·á¡áá»á¬ážá
á¯ááẠIT blogosphere ááá¯á·ááá¯áẠconference ááœáẠáá±á¬ááºáááºá¡áá¯á¶ážá¡ááŸá¯ááºážá¡áá
áºáá
áºáá¯ááᯠáááááŒá¯ááááŒááŒá®áž áááŒá¬áá® ááá¯á·ááá¯áẠáá±á¬ááºááá¯ááºážááœáẠá¡áá¬ážáá°áá±ážááœááºážáá
áºáá¯ááᯠáá±ážáá«- âáá«á áá¬áá²á á¡ááŒá¬áž buzzword á "buzzword" ááá¯á·ááá¯áẠá¡ááŸááºáááẠá¡áá®ážááẠá¡á¬áá¯á¶á
áá¯ááºá áá±á·áá¬ááẠááŸáá·áº ááá¯ážáá¯ááºá
ááºááá¯ááºážáá
áºáá»á¬áž á¡ááœáẠáááááŒá¯ááá¯ááºáá±á¬ á¡áá¬áá
áºáá¯áᬠááŒá
áºáááºá á¡áá¯á¶ážá¡ááŸá¯ááºážáá²á·áááºáž á¡áá¬ážáá°áá«áá²á GitOps áá
áºáá»áááºá ááŸáááŒá®ážáá¬áž áá±á¬ááºážáá«ážáá»á¬ážá
áœá¬á¡ááŒáẠáá¯áá¹ááá®á០áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážá ááá¯áá¯ááá»á¬ážáá«ááŸááááºá
á áá¬ážáá ááº, áá±á«áá¬ááá¡áá áºá¡áááºážááŸáá·áº áááºááẠGitOps áá»áœááºá¯ááºááá¯á·á áááŒá¬áá±ážáá®á á á áºáááºážá á€ááá¯á·ááá¯áááº- á á áºáááºážáá±á¬ááºáá°áá¶ááá°áá»á¬ážá áááºáááºáá»á±á¬áºááẠáááºážááá°áá»á¬ážááᯠá áááºáá¯ááºáá±á¬ááºááŒááºážáááŸááá±ážáá±á
áá«ááŒá±á¬áá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ á á®áá¶ááá·áºááœá²ááŸá¯ ááŒá¿áá¬áᬠá¡áá áºá¡áááºážáá±á¬á· ááá¯ááºáá«áá°ážá cloud áá¶á·ááá¯ážáá±ážáá°á¡áá»á¬ážá¡ááŒá¬ážááẠá¡áá»á¬ážáá°ááŸá¬á¡áá¯á¶ážááŒá¯ááá¯ááºáááºááŸá¬ ááŸá áºáá«áááºáá±á¬ááºááŸáááŒá®ááŒá áºááŒá®áž á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠá¡ááœáẠáá¬áááºááŸáááá·áºá¡ááœá²á·áá»á¬ážá áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááá¯ážááŸááºážááœááºáá°á á±ááá·áºáááºá ááá¯á·áá¬ááœááºá á¡ááá®áá±ážááŸááºážááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáá¯ááºáááºážá ááºááŸáá·áº ááŸáá¯ááºážááŸááºáá«á (á¡ááá¯á¡áá»á±á¬ááºá áá áºááẠá¡ááá·áºá¡áá áºááá¯á·áá±á¬ááºááŸááá±ááá·áº) á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á á®áá¶ááááºážáá»á¬ážááœáẠáááŒá¬áááááºá áœá²á¡áá¯ááºáá»á¬ážáá«áááºáá±áá±ážááŒá®áž á¡áá°ážáááŒáá·áº á¡ááŸá¬ážáá¶ááá¯ááºáááºá áá»á±á¬á·ááŒá±á¬ááºážááŸá¯á áá»á²á·ááœááºááá¯ááºááŸá¯ááŸáá·áº áá»á±á¬á·áá»á±á¬ááºážááŸá¯ááá¯á·á¡ááœáẠá¡áá°ážááŒá¯á¡ááááá¬ááŸáá·áº áá»áœááºážáá»ááºááŸá¯áá»á¬áž ááá¯á¡ááºáá«áááºá
Cloud áááºáá±á¬ááºááŸá¯áá»á¬ážááẠá€ááá¯á¡ááºáá»ááºáá»á¬ážááᯠá¡ááœááºá¡á±á¬ááºááŒááºá áœá¬ ááŒáá·áºáááºážáá±ážáá²á·ááŒá®áž áááºážááẠáá»ááºážáááºááŸá¯ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠáááá¬áááºááŸá¬ážáá±á¬ ááœááºážá¡á¬ážáá áºáá¯áá±ážáá²á·áá°ááŒá áºáááºá IAC. á€áááºááᯠáá¬ážáááºááá¯ááºáááºá áá±á¬ááºáá¯á¶ážááœááºá áááºážááá¯á·ááẠáá¯á¶ážá virtual áá±áá¬á ááºáá¬ááᯠá á®á ááºáááºááŸááºááá¯ááºá á±áá²á·áááº- áá¯ááºááá¯ááºážááá¯ááºáᬠáá¬áá¬áá»á¬ážá ááááºááááºážáá»á¬áž ááá¯á·ááá¯áẠááœááºááẠá¡á áááºá¡ááá¯ááºážáá»á¬áž áááŸáááŒá±á¬ááºážá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá áºáá¯áá¯á¶ážááᯠscripts ááŸáá·áº configuration ááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá±á¬áºááŒááá¯ááºáááºá
áá«ááᯠá¡ááá¡áá»ááœá¬ááŒá¬ážáá»ááºááá¬áá²á GitOps ÐŸÑ IAC? á€áá±ážááœááºážááŒáá·áº áá»áœááºá¯ááºá á á¯á¶á ááºážá á áºáá±ážááŸá¯ááᯠá áááºáá²á·áá«áááºá áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážááŸáá·áº á áá¬ážááŒá±á¬ááŒá®ážáá±á¬ááºááœááºá áá»áœááºá¯ááºááẠá¡á±á¬ááºáá« ááŸáá¯ááºážááŸááºáá»ááºááᯠáá±á¬áºáá¯ááºááá¯ááºáá²á·áá«áááºá
GitOps
IAC
áá¯ááºá¡á¬ážáá¯á¶ážááᯠgit repository ááœáẠááááºážáááºážáá¬ážáááºá
áá¯ááºáá¬ážááŸááºážááᯠááœá±ážáá»ááºááá¯ááºáááºá
Declarative Code áá±á¬áºááŒáá»áẠ/ Ideempotency
ááŒá±ááŒá¬áá»ááºááŸáá·áº á¡áá±ážáá«áá±á¬ áá±á¬áºááŒáá»ááºááŸá áºáá¯áá¯á¶ážááᯠáááºáá¶ááá¯ááºáááº
Merge Request/Pull Request ááá¹ááá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááẠá¡áá»áá¯ážáááºáá±á¬ááºáááºá
ááá±á¬áá°áá®áá»ááºá á¡áááºááŒá¯áá»ááºááŸáá·áº áá°ážáá±á«ááºážáá±á¬ááºááœááºááŒááºážááá¯á·ááẠááœá±ážáá»ááºááá¯ááºáááº
á¡ááºááááºá áááºááŒááºážáá¯ááºáááºážá ááºááẠá¡ááá¯á¡áá»á±á¬ááºááŒá áºáááºá
á¡ááºááááºá áááºááŒááºážáá¯ááºáááºážá ááºááẠá á¶áá»áááºá á¶ááœáŸááºážááá®áá« (á¡ááá¯á¡áá»á±á¬ááºá áááºá áœá²á á¬á¡á¯ááºá ááá¯ááºáá»á¬ážáá°ážáá°ááŒááºážá á¡áááá·áºáá±ážá á¬ááá¯ááºáž á áááºááŒáá·áº)
áá áºáááºážááŒá±á¬ááááºáá±á¬á· GitOps áááá¬ááá»á¬ážááᯠá¡áá¯á¶ážáá»ááŒááºážá¡á¬ážááŒáá·áº á¡ááá¡áá» ááœá±ážááœá¬ážáá¬áá²á·áááºá IAC. ááááŠážá áœá¬á á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸáá·áºááœá²á·á ááºážáá¯á¶áá»á¬ážááᯠááá¯á¡áá« á¡ááá®áá±ážááŸááºážáá»á¬ážáá²á·ááá¯á·ááẠááááºážáááºážáá¬ážááá¯ááºááŒá®ááŒá áºáááºá áá¯ááºááẠááááºážáááºážááẠááœááºáá°áááºá áá»áŸáá±áááºá ááŸáá¯ááºážááŸááºáááºá ááŸáá·áº áá¬ážááŸááºážáá¯ááºááá¯ááºá áœááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááœááºáá°áááºá áá¬ážááŸááºážáá»á¬ážá á¡ááá¯ááºážá¡áááºáá»á¬ážá áááá¯ááºážáá»á¬ážá ááŒá®ážáá±á¬á· áá«ááœá±á¡á¬ážáá¯á¶ážáᬠá¡ááœá²á·áá áºáá¯áá¯á¶ážááᯠáá°ááááŸááºááŒá¬ážáááá¯ááºáá²á· áá±áá¬áá áºáá¯áá²ááŸá¬áá«á ááá¯á·ááŒá±á¬áá·áº áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠáá¯á¶ážáááá¬áá¡áá»á±á¬áẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá¬áá²á·áááºá á¡áá°ážáááŒáá·áº git ááẠáá°ááŒáá¯ááºá¡áá»á¬ážáá¯á¶ážááŒá áºáááºá
áá áºáááºááœááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ á á®áá¶ááá·áºááœá²ááŸá¯ áá¯ááºáááºážá ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠáá¯ááºáá±á¬ááºááẠááŒá áºááá¯ááºáááºá ááá¯á¡áá« áááºážááᯠááá¯ááá¯ááŒááºáááºá ááá¯ááá¯áá¯á¶ááŒááºá áááºáá»áááŒá®áž á á»á±ážáááºáá¬á áœá¬ áá¯ááºáá±á¬ááºááá¯ááºááŒá®ááŒá áºáááºá ááá¯á·á¡ááŒáẠCI/CD á á¡ááŒá±áá¶áá°áá»á¬ážááẠáá±á¬á·ááºáá²áá±ážááœá²áá°áá»á¬ážááŒá¬ážááœáẠáá°áááá»á¬ážááŒá®áž áá±áááºážá á¬ážáá±ááŒá®ááŒá áºáááºá ááááŒá®ážáá¬áž á¡ááááá¬ááŸáá·áº á¡áááºááá¬áá»á¬ážááᯠáááºáááºá¡áá áºááá¯á· ááœáŸá²ááŒá±á¬ááºážá¡áá¯á¶ážáá»áááºáᬠááá¯á¡ááºáá«áááºá ááá¯á·áá±á¬áº á€á¡áá±á·á¡áá»áá·áºáá»á¬ážááẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠá á á¶áááºááŸááºáá»ááºááᯠáá¯ááºá¡ááŒá Ạáá»á±á¬áºááœááºááœá¬ážáá±á¬ááŒá±á¬áá·áº á¡áá°á¡áááŒá áºáááºá GitOps.
á ááºá á¯áááºá GitOpsááá¯á·á¡ááŒááºá áááºážááẠáá±á¬ááºážáá»áá°ááŸáá·áº áááºá ááºáá±áá±á¬ áá¯ááºáá¯ááºá ááááºá¡áẠááá¯á·ááá¯áẠááááºáá±á¬ááºážáá áºáá¯áááºáž ááá¯ááºááŒá±á¬ááºážáááºáž ááááááºá áááºážááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áºáááºážááŸá®ážáá±á¬ á¡ááŒá¬ážá¡áá¯á¶ážá¡ááŸá¯ááºážááŸáá·áº áááºáá°áááº- DevOpsá
á¡ááá¯áá«áá¯áá¹ááá®
GitOps ááẠáá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á áá°ážáá±á«ááºážááŸá¯á áá°ážáá±á«ááºážááŸá¯á áá®ážááŸá¯ááºááŸá¯á CI/CD áá²á·ááá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡áá±á¬ááºážáá¯á¶áž DevOps á¡ááŒá±áá¶áá°áá»á¬ážááᯠáá°áá±á¬ááºáᬠá¡ááá¯á¡áá»á±á¬áẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ á á®áá¶ááá·áºááœá²ááŸá¯á á áááºáá±á«áºááŸá¯áá»á¬ážááœáẠá¡áá¯á¶ážáá»ááá·áº áááºážá áá áºáá áºáá¯ááŒá áºáááºá
áá¯ááºáááºážá ááºá¡á¬ážáá¯á¶áž GitOps ááŸáááŒá®ážáá¬ážáááááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá¯ááºáá¯ááºáá«áááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá¯ááºá¡á¬ážáá¯á¶ážááᯠáááºážááŸá®ážááŒá®ážáá¬áž git repository ááœáẠááááºážáááºážáá¬ážááŒá®ážá á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááẠá¡ááŒá¬ážáááá¯ááááºáá¯ááºáá»á¬ážáá²á·ááá¯á· áá°áá®áá±á¬ á¡áááºááŒá¯áá»ááºáá¯ááºáááºážá ááºááᯠááŒááºáááºážááœá¬ážáááºááŒá áºááŒá®ážá ááŒáá·áºáá»áááá·áºáá¯ááºáááºážá ááºááẠá¡ááá¯á¡áá»á±á¬ááºááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·á¡á¬áž áá°áá¬ážá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáá»áŸá±á¬á·áá»áááºá áá¯á¶ááŒááºá áááºáá»áááŸá¯ááŸáá·áº ááŒááºáááºáá¯ááºáá¯ááºááá¯ááºááŸá¯ááá¯á·ááᯠááá¯ážááŒáá·áºá á±áá«áááºá
áááºááœá±á·áá»áá» ááŸá¯áá±á¬áá·áºááá± áá±á¬áºááŒáá«áááºá GitOps á¡á±á¬ááºáá«á¡ááá¯ááºáž:
á€áá±á¬áºááŒá°áá¬á á¡ááá á¡á áááºá¡ááá¯ááºážáá»á¬ážáá²á០áá áºáá¯á¡ááŒá Ạá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡á¬áž áá¯ááºá¡ááŒá Ạááœá±ážááœá±ážááŒá®ážááŒá áºáááºá áá»ááºáá«áááºáá°áá»á¬ážááŸáá·áº ááááºáááºáá±ážáá«áá á±á
Merge Request (á¡ááŒá¬ážá¡ááẠPull Request)á áá¯ááºáááºážá ááºá ááºážáááºážá¡á MR ááẠáá¯ááºá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡áá¯á¶ážáá»ááŒá®áž á¡ááá¯ááºážá¡áááºáá»á¬ážááᯠáá±á«ááºážá ááºážááẠáá±á¬ááºážááá¯áá»ááºááŒá áºáááºá ááá¯á·áá±á¬áºáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áºáááááá¬áá»á¬ážáá ááºážáááºážáá»ááºáá»á¬ážá¡áá á€á¡áá¬ááẠááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒá®ážááŒáá·áºá á¯á¶áá±á¬áá¯á¶áá áºáá¯á¶áááŸáááẠá¡ááœáá·áºá¡áá±ážááŒá áºáááº- á¡áá»áá¯á·áá±á¬ commits á¡áá±á¡ááœááºá០á á¯áá±á¬ááºážáá¬ážáá±á¬ áá¯ááºááœá¬ááŒá¬ážááŸá¯áá»á¬ážáá¬áá á¡ááŒá±á¬ááºážá¡áá¬á á á áºáá±ážááŸá¯ááááºáá»á¬ážááŸáá·áº áá±á¬ááºáá¯á¶ážáá»áŸá±á¬áºááá·áºáá¬ážááá·áºááááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá¯ááºá¡ááŒá±á¬ááºážááŒá±á¬áá±áá»áŸáẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áááºáá²á·ááá¯á·ááŒá±á¬ááºážáá²áááºá á¡áááºážá¡ááŒá áºá¡áá áºáááºáá»áŸááá·áºááẠááá¯á·ááá¯áẠáááºááŸá¬ážáááºá ááŒá±á¬ááºážáá²áááºááᯠáá»áœááºá¯ááºááá¯á·á áááºáááºá á¬ážáá«áááºá ááá¯á¡áááºááŒá±ááŒá®áž áááºáááœááºáá°áá±á¬ áá±á¬áºáááºá¡áá»áá¯á·ááœáẠááŒá áºááá¯ááºáááºá cloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážá¡ááœááºá á€ááŒá±á¬ááºážáá²ááŸá¯áááá¹áá¬áá±ážááá¯ááºáá¬áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááááŸáááẠááá·áºáá»á±á¬áºáá«áááºá
ááá¯á·áá±á¬áº MR ááẠáá°ážáá±á«ááºážáá±á¬ááºááœááºááŒááºážá á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááŸáá·áº áááºááœááºááŸá¯áááºážáááºážáá áºáá¯áááºážááŒá áºáááºá á¡ááŒááºá¡ááŸááºááááºážáá»á±á¬ááºážááŸá¯á áá Ạá áááºáá¯ááºáá±á¬ááºááá·áºáá±áá¬á ááá¯ážááŸááºážáá±á¬ááŸááºáá»ááºáá»á¬ážá០ááá¬ážáááºááœáá·áºááŒá¯áá»ááºáá»á¬ážááŸáá·áº á¡áááºááŒá¯áá»ááºáá»á¬ážá¡ááá
áá±á¬ááºážááŒá®á áá±á¬ááºáá¯á¶ážá¡á áááºá¡ááá¯ááºáž- CI/CD ááẠáá»áœááºá¯ááºááá¯á·áááá¬ážááŒá®ážááŒá áºááá·áºá¡ááá¯ááºážá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááá¯ááºáá¬ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº á ááºážáááºááŒááºážáá¯ááºáááºážá ááºááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááá¯ááºá á±ááẠ(ááá¯ážááŸááºážáá±á¬ syntax á á áºáá±ážááŒááºážá០ááá¯ááá¯ááŸá¯ááºááœá±ážáá±á¬ static code ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡áá)á áá»á¶á·ááœáá·áºááŸá¯á áá±á¬ááºáááºááœá² ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááœááºáááºáž á áá áºá á¡á á áºá¡ááŸááºááŸáá·áº á¡ááá¯ááŸááá±á¬ á¡ááŒá±á¡áá±ááŒá¬áž ááœá¬ááŒá¬ážáá»ááºáá»á¬ážá á¥ááá¬á¡á¬ážááŒáá·áºá ááœáá·áºááŒá¯áá»ááºáááŸááá² áá°ááá¯ááºááá¯ááºááŒá±á¬ááºážáá²ááŒááºáž ááá¯á·ááá¯áẠá áá áºáá»ááºááœááºááŒááºážáááááºá
áá¯ááºáá²á·á á¡áá¯á¶ážá¡ááŸá¯ááºáž GitOps áá¯á¶ážáá¡áá áºáá±á¬á¡áá¬ááᯠáá»áœááºá¯ááºááá¯á·á¡á¬áž ááááºáááºáá±ážááŒááºážáááŸááá«á áá®ážááᯠááŒááºáááºáá®ááœááºááŒááºážáááŸááá«á ááá¯á·áá±á¬áº á§áááá¬á¡áá áºááœáẠá á¯áá±á¬ááºážááŒá®ážáá¬ážá¡ááœá±á·á¡ááŒá¯á¶ááᯠááá¯ážááŸááºážá áœá¬á¡áá¯á¶ážáá»áá«á áá«âáá±ááá·áºâ áá®âáá±áá¬ááŸá¬ áá°á·áá²á· á áœááºážááá¬áž ááŸááááºâá
á¡áááºá áááºááẠá€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºááœá±á·ááœáẠáááºááá¯á·ááŒááºááááºááᯠáá¯ááºáááẠá
áááºáááºáá
á¬ážááŒá
áºáá¬áá«áá áá»áœááºá¯ááºááá¯á·ááᯠááŒáá·áºááŸá¯ááẠááá·áºááᯠááááºáá±á«áºáá«áááºá
-
GitOps á á¡ááŒá±áá¶áá°áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá«á
-
cloud á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ (Yandex Cloud áááá°áá¬ááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá¯áá¯ááºáá«)
-
áááºááŒáœáá±á¬á á±á¬áá·áºááŒáá·áºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á á¡ááá¯á¡áá»á±á¬ááºá áá áºá០ááœá±á·áá»á¬ážááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºááŸá¬ááœá±ááŒááºážá
https://bit.ly/34tRpwZ
source: www.habr.com