መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

ኩባንያችን የኤስአርአይ ቡድንን የመሳፈር ሂደት ላይ ነው። ወደዚህ ታሪክ የገባሁት ከልማት ጎን ነው። በሂደቱ ውስጥ ከሌሎች ገንቢዎች ጋር መጋራት የምፈልጋቸውን ሀሳቦች እና ግንዛቤዎችን አወጣሁ። በዚህ ነጸብራቅ ጽሑፍ ውስጥ ምን እየተፈጠረ እንዳለ, እንዴት እየተፈጠረ እንዳለ እና ሁሉም ሰው ከእሱ ጋር እንዴት እንደሚቀጥል እናገራለሁ.

መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

በውስጥ ዝግጅታችን ላይ በተደረጉ ንግግሮች ላይ በመመስረት የተፃፉ ተከታታይ መጣጥፎች የቀጠሉ። DevForum:

1. የ Schrödinger ድመት ያለ ሳጥን: በተከፋፈሉ ስርዓቶች ውስጥ የጋራ መግባባት ችግር.
2. መሠረተ ልማት እንደ ኮድ. (እዚሁ ነሽ)
3. C # ሞዴሎችን በመጠቀም የTyscript ኮንትራቶችን መፍጠር. (በሂደት ላይ...)
4. የራፍት ስምምነት ስልተ ቀመር መግቢያ. (በሂደት ላይ...)
...

ሀሳቦቹን በመተግበር የኤስአርአይ ቡድን ለመፍጠር ወስነናል። ጉግል sre. ከራሳቸው አልሚዎች መካከል ፕሮግራመሮችን በመመልመል ለብዙ ወራት ለማሰልጠን ላካቸው።

ቡድኑ የሚከተሉትን የሥልጠና ተግባራት ነበረው ።

  • የእኛን መሠረተ ልማት ይግለጹ, እሱም በአብዛኛው በማይክሮሶፍት አዙር ውስጥ በኮድ መልክ (ቴራፎርም እና በዙሪያው ያሉትን ነገሮች ሁሉ).
  • ገንቢዎች ከመሠረተ ልማት ጋር እንዴት እንደሚሠሩ አስተምሯቸው።
  • ገንቢዎችን ለሾል ያዘጋጁ።

የመሠረተ ልማት ጽንሰ-ሐሳብን እንደ ኮድ እናስተዋውቃለን

በተለመደው የአለም ሞዴል (ክላሲካል አስተዳደር) ስለ መሰረተ ልማት እውቀት በሁለት ቦታዎች ላይ ይገኛል.

  1. ወይም በባለሙያዎች ጭንቅላት ውስጥ በእውቀት መልክ.መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ
  2. ወይም ይህ መረጃ በአንዳንድ የጽሕፈት መኪናዎች ላይ ነው, አንዳንዶቹ በባለሙያዎች የሚታወቁ ናቸው. ነገር ግን የውጭ ሰው (መላው ቡድናችን በድንገት ቢሞት) ምን እንደሚሰራ እና እንዴት እንደሚሰራ ማወቅ የሚችል እውነታ አይደለም. በማሽን ላይ ብዙ መረጃ ሊኖር ይችላል፡ መለዋወጫዎች፣ ክራንጆብስ፣ ማስፈራራት (ተመልከት. የዲስክ መጫኛ) ዲስክ እና ምን ሊከሰት እንደሚችል ማለቂያ የሌለው ዝርዝር. በእውነቱ እየሆነ ያለውን ነገር ለመረዳት አስቸጋሪ ነው።መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

በሁለቱም ሁኔታዎች፣ እራሳችንን ጥገኞች በመሆናችን ወጥመድ ውስጥ እንገኛለን፡-

  • ወይም ሟች ከሆነው ሰው ፣ በህመም ፣ በፍቅር መውደቅ ፣ የስሜት መለዋወጥ እና በቀላሉ እገዳዎች;
  • ወይም በአካል ከሚሠራ ማሽን፣ እሱም ደግሞ የሚወድቅ፣ የሚሰረቅ እና አስገራሚ እና የማይመቹ ሁኔታዎችን ያቀርባል።

በሐሳብ ደረጃ ሁሉም ነገር ሰው ወደሚነበብ፣ ሊቆይ የሚችል፣ በሚገባ የተጻፈ ኮድ መተርጎም እንዳለበት ሳይናገር ይሄዳል።

ስለዚህ መሠረተ ልማት እንደ ኮድ (Incfastructure as Code - IaC) በኮድ መልክ ያሉትን አጠቃላይ መሠረተ ልማቶችን እንዲሁም ከእሱ ጋር አብሮ ለመስራት እና ከእሱ ጋር እውነተኛ መሠረተ ልማትን ለመተግበር ተዛማጅ መሳሪያዎች መግለጫ ነው.

ለምን ሁሉንም ነገር ወደ ኮድ መተርጎም?ሰዎች ማሽኖች አይደሉም. ሁሉንም ነገር ማስታወስ አይችሉም. የአንድ ሰው እና የማሽን ምላሽ የተለየ ነው. በራስ ሰር የሚሰራ ማንኛውም ነገር በሰው ከሚሰራው የበለጠ ፈጣን ነው። በጣም አስፈላጊው ነገር አንድ ነጠላ የእውነት ምንጭ ነው.

አዳዲስ SRE መሐንዲሶች ከየት መጡ?ስለዚህ, አዲስ SRE መሐንዲሶችን ለመቅጠር ወስነናል, ግን ከየት ማግኘት ይቻላል? ትክክለኛ መልሶች ይዘው ይያዙ (Google SRE መጽሐፍ) ይነግረናል፡ ከገንቢዎች። ከሁሉም በኋላ, ከኮዱ ጋር ይሰራሉ, እና እርስዎ ተስማሚውን ሁኔታ ያገኛሉ.

ከኩባንያችን ውጪ ባለው የሰው ኃይል ገበያ ላይ ብዙ ፈልገንላቸው ነበር። ግን ለጥያቄዎቻችን የሚስማማ ሰው እንዳላገኘን መቀበል አለብን። በወገኖቼ መካከል መፈለግ ነበረብኝ።

ችግሮች መሠረተ ልማት እንደ ኮድ

አሁን የመሠረተ ልማት አውታሮችን ወደ ኮድ እንዴት ማስገባት እንደሚቻል ምሳሌዎችን እንመልከት። ኮዱ በደንብ የተጻፈ፣ ከፍተኛ ጥራት ያለው፣ ከአስተያየቶች እና ውስጠቶች ጋር ነው።

የምሳሌ ኮድ ከ Terraforma።

መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

የምሳሌ ኮድ ከአንሲብል።

መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

ክቡራን፣ ምነው ቀላል ቢሆን! እኛ በገሃዱ ዓለም ውስጥ ነን፣ እና እርስዎን ሊያስደንቅዎት፣ በሚያስደንቅ ሁኔታ እና ችግሮችን ሊያቀርብልዎ ሁል ጊዜ ዝግጁ ነው። እዚህም ያለ እነርሱ ማድረግ አይቻልም።

1. የመጀመሪያው ችግር በአብዛኛዎቹ ሁኔታዎች IaC አንዳንድ ዓይነት dsl ነው.

እና DSL, በተራው, መዋቅሩ መግለጫ ነው. በትክክል፣ ምን ሊኖርዎት ይገባል፡ Json፣ Yaml፣ የራሳቸው dsl ይዘው የመጡ አንዳንድ ትልልቅ ኩባንያዎች ማሻሻያ (HCL በቴራፎርም ውስጥ ጥቅም ላይ ይውላል)።

ችግሩ እንደሚከተሉት ያሉ የተለመዱ ነገሮችን በቀላሉ ላይጨምር ይችላል፡-

  • ተለዋዋጮች;
  • ሁኔታዎች;
  • የሆነ ቦታ ምንም አስተያየቶች በሌሉበት ለምሳሌ በጄሰን ውስጥ በነባሪነት አልተሰጡም;
  • ተግባራት;
  • እና እንደ ክፍሎች, ውርስ እና ሌሎች ሾለ እንደዚህ ባለ ከፍተኛ ደረጃ ነገሮች እንኳን አልናገርም.

2. የእንደዚህ አይነት ኮድ ሁለተኛው ችግር ብዙውን ጊዜ የተለያየ አካባቢ ነው. ብዙውን ጊዜ ከ C # ጋር ተቀምጠው ይሠራሉ, ማለትም. በአንድ ቋንቋ፣ በአንድ ቁልል፣ በአንድ ስነ-ምህዳር። እና እዚህ በጣም ብዙ የተለያዩ ቴክኖሎጂዎች አሉዎት።

bash with python Json የገባበት ሂደት ሲጀምር በጣም እውነተኛ ሁኔታ ነው። እርስዎ ይተነትኑታል፣ ከዚያ ሌላ ጄኔሬተር ሌላ 30 ፋይሎችን ያወጣል። ለዚህ ሁሉ የግቤት ተለዋዋጮች ከ Azure Key Vault ይቀበላሉ፣ እነዚህም በጎ ውስጥ ለተጻፈው drone.io በተሰቀለው ፕለጊን ተሰብስበዋል፣ እና እነዚህ ተለዋዋጮች ከ jsonnet አብነት ሞተር በማመንጨት በተፈጠረው በ yaml ውስጥ ያልፋሉ። እንደዚህ አይነት የተለያየ አካባቢ ሲኖርዎት በትክክል የተገለጸ ኮድ ማግኘት በጣም ከባድ ነው።

በአንድ ተግባር ማዕቀፍ ውስጥ ያለው ባህላዊ እድገት ከአንድ ቋንቋ ጋር አብሮ ይመጣል። እዚህ ከብዙ ቋንቋዎች ጋር እንሰራለን.

3. ሦስተኛው ችግር ማስተካከል ነው. ሁሉንም ነገር የሚያደርጉልን አርታዒያን (Ms Visual Studio፣ Jetbrains Rider) ለማቀዝቀዝ እንጠቀማለን። ደደብ ብንሆንም ተሳስተናል ይላሉ። መደበኛ እና ተፈጥሯዊ ይመስላል.

ነገር ግን በአቅራቢያው የሆነ ቦታ VSCcode አለ፣ በውስጡም በሆነ መንገድ የተጫኑ፣ የሚደገፉ ወይም የማይደገፉ አንዳንድ ተሰኪዎች አሉ። አዲስ ስሪቶች ወጡ እና አልተደገፉም። አንድን ተግባር ወደ ተግባራዊ ለማድረግ የሚደረግ ሽግግር (ምንም እንኳን ቢሆን) ውስብስብ እና ቀላል ያልሆነ ችግር ይሆናል። የተለዋዋጭ ቀላል ስም መቀየር በደርዘን ፋይሎች ፕሮጀክት ውስጥ እንደገና ማጫወት ነው። የሚያስፈልጎትን ቢያስቀምጥ እድለኛ ትሆናለህ። እርግጥ ነው, እዚህ እና እዚያ የጀርባ ብርሃን አለ, ራስ-ማጠናቀቅ አለ, የሆነ ቦታ ቅርጸት አለ (ምንም እንኳን በዊንዶው ላይ በቴራፎርም ውስጥ ለእኔ አይሰራም).

ይህ ጽሑፍ በተጻፈበት ጊዜ vscode-terraform plugin ስሪት 0.12ን ለመደገፍ ገና አልተለቀቁም፣ ምንም እንኳን ለ3 ወራት የተለቀቀ ቢሆንም።

ለመርሳት ጊዜው አሁን ነው ...

  1. ማረም።
  2. የመልሶ ማቋቋም መሳሪያ.
  3. ራስ-ሰር ማጠናቀቅ.
  4. በማጠናቀር ጊዜ ስህተቶችን ማግኘት።

በጣም አስቂኝ ነው, ነገር ግን ይህ የእድገት ጊዜን ይጨምራል እና የሚከሰቱትን ስህተቶች ብዛት ይጨምራል.

በጣም መጥፎው ነገር እንዴት እንደምንቀርጽ፣ ፋይሎችን ወደ ፎልደር ማደራጀት፣ መበስበስ፣ ኮዱ እንዲቆይ፣ እንዲነበብ እና የመሳሰሉትን ሳይሆን ይህን ትዕዛዝ እንዴት በትክክል መጻፍ እንደምችል እንድናስብ መገደዳችን ነው፣ ምክንያቱም በሆነ መንገድ ስህተት ስለፃፍኩት ነው። .

ጀማሪ እንደመሆኖ፣ ቴራፎርሞችን ለመማር እየሞከሩ ነው፣ እና አይዲኢው ምንም እየረዳዎት አይደለም። ሰነዶች ሲኖሩ ወደ ውስጥ ገብተው ይመልከቱ። ነገር ግን አዲስ የፕሮግራሚንግ ቋንቋ እየገቡ ከሆነ አይዲኢ እንዲህ አይነት አይነት እንዳለ ይነግርዎታል ነገር ግን እንደዚህ አይነት ነገር የለም። ቢያንስ በ int ወይም በstring ደረጃ። ይህ ብዙውን ጊዜ ጠቃሚ ነው.

ስለ ፈተናዎቹስ?

ትጠይቃለህ፡ “ስለ ፈተናዎቹስ፣ የተከበሩ ፕሮግራመሮች?” ከባድ ወንዶች ሁሉንም ነገር በምርት ላይ ይፈትኑታል፣ እና ከባድ ነው። ከድር ጣቢያው ለቴራፎርም ሞጁል የአንድ ክፍል ሙከራ ምሳሌ እዚህ አለ። Microsoft.

መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

ጥሩ ሰነዶች አሏቸው. ማይክሮሶፍት ለሰነድ እና ለሥልጠና አቀራረቡ ሁል ጊዜ ወድጄዋለሁ። ግን ይህ ፍጹም ኮድ አለመሆኑን ለመረዳት አጎት ቦብ መሆን አያስፈልግዎትም። ማረጋገጫውን በቀኝ በኩል ያስተውሉ.

የአንድ አሃድ ሙከራ ችግር እኔ እና አንተ የጄሰን ውፅዓት ትክክለኛነት ማረጋገጥ እንችላለን። 5 መለኪያዎች ወረወርኩ እና 2000 መስመሮች ያለው የጄሰን የእግር ልብስ ተሰጠኝ። እዚህ ምን እየተካሄደ እንዳለ መተንተን እችላለሁ፣ የፈተናውን ውጤት አረጋግጥ...

በ Go ውስጥ Jsonን መተንተን ከባድ ነው። እና በ Go ውስጥ መጻፍ ያስፈልግዎታል ፣ ምክንያቱም በ Go ውስጥ ቴራፎርም በሚጽፉበት ቋንቋ ለመሞከር ጥሩ ልምምድ ነው። የኮዱ አደረጃጀት እራሱ በጣም ደካማ ነው. በተመሳሳይ ጊዜ, ይህ ለሙከራ በጣም ጥሩው ቤተ-መጽሐፍት ነው.

ማይክሮሶፍት ራሱ ሞጁሎቹን ይጽፋል, በዚህ መንገድ ይሞክራቸዋል. በእርግጥ ክፍት ምንጭ ነው። ስለ አንተ የማወራው ሁሉ መጥተህ ማስተካከል ትችላለህ። በአንድ ሳምንት ውስጥ ተቀምጬ ሁሉንም ነገር ማስተካከል እችላለሁ፣ ክፍት ምንጭ ቪኤስ ኮድ ፕለጊኖች፣ ቴራፎርሞች፣ ለአሽከርካሪው ፕለጊን መስራት እችላለሁ። ምናልባት ሁለት ተንታኞች ይፃፉ ፣ ሊንተሮችን ይጨምሩ ፣ ለሙከራ ቤተ-መጽሐፍት ያበርክቱ። ሁሉንም ነገር ማድረግ እችላለሁ. ማድረግ ያለብኝ ግን ያ አይደለም።

ምርጥ ልምዶች መሠረተ ልማት እንደ ኮድ

እንቀጥል። በ IaC ውስጥ ምንም ፈተናዎች ከሌሉ አይዲኢ እና ማስተካከያ መጥፎ ናቸው፣ እንግዲያውስ ቢያንስ ምርጥ ልምዶች ሊኖሩ ይገባል። አሁን ወደ ጎግል አናሌቲክስ ሄጄ ሁለት የፍለጋ መጠይቆችን አነጻጽሬአለሁ፡ ቴራፎርም ምርጥ ልምዶች እና ሐ # ምርጥ ልምዶች።

መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

ስለምንታይ? ጨካኝ ስታቲስቲክስ ለእኛ አይጠቅመንም። የቁሱ መጠን ተመሳሳይ ነው. በC# ልማት ውስጥ በቀላሉ በቁሳቁስ ተጥለቀለቀን ፣እጅግ በጣም ጥሩ ልምዶች አሉን ፣በባለሙያዎች የተፃፉ መጽሃፍቶች እና እንዲሁም እነዚያን መጽሃፎች በሚተቹ ሌሎች ባለሙያዎች የተፃፉ መጽሃፎች አሉ። ኦፊሴላዊ ሰነዶች ፣ መጣጥፎች ፣ የሥልጠና ኮርሶች ፣ እና አሁን ክፍት ምንጭ ልማት።

የIaC ጥያቄን በተመለከተ፡ እዚህ ከሃይሎድ ወይም ከሃሺኮንፍ ዘገባዎች፣ ከኦፊሴላዊ ሰነዶች እና በ Github ላይ ካሉ በርካታ ጉዳዮች መረጃን በጥቂቱ ለመሰብሰብ እየሞከርክ ነው። እነዚህን ሞጁሎች በአጠቃላይ እንዴት ማሰራጨት እንደሚቻል, ከነሱ ጋር ምን ይደረግ? ይህ የምር ችግር ይመስላል... ማህበረሰብ አለ፣ ክቡራን፣ ለማንኛውም ጥያቄ በ Github ላይ 10 አስተያየቶች ይሰጡዎታል። ግን በትክክል አይደለም.

በሚያሳዝን ሁኔታ, በዚህ ጊዜ, ባለሙያዎች ገና ብቅ ማለት ጀምረዋል. እስካሁን ድረስ በጣም ጥቂት ናቸው. እና ማህበረሰቡ እራሱ በጀማሪ ደረጃ እየተንገዳገደ ነው።

ይህ ሁሉ ወዴት እየሄደ ነው እና ምን ማድረግ እንዳለበት

ሁሉንም ነገር ጥለው ወደ C#፣ ወደ ጋላቢው አለም መመለስ ይችላሉ። ግን አይደለም. መፍትሄ ካጣህ ለምን ይህን ለማድረግ ትቸገራለህ። ከዚህ በታች የእኔን ተጨባጭ መደምደሚያዎች አቀርባለሁ. በአስተያየቶቹ ውስጥ ከእኔ ጋር መሟገት ይችላሉ, አስደሳች ይሆናል.

በግሌ፣ በጥቂት ነገሮች ላይ እወራረድበታለሁ፡-

  1. በዚህ አካባቢ ልማት በጣም በፍጥነት እየተከናወነ ነው. ለDevOps የጥያቄዎች መርሃ ግብር እነሆ።

    መሠረተ ልማት እንደ ኮድ: የመጀመሪያ ትውውቅ

    ርዕሱ ማበረታቻ ሊሆን ይችላል፣ ነገር ግን ሉል እያደገ መምጣቱ የተወሰነ ተስፋ ይሰጣል።

    የሆነ ነገር በፍጥነት የሚያድግ ከሆነ ምን ማድረግ እንዳለቦት እና ምን ማድረግ እንደሌለብዎት የሚነግሩ ብልህ ሰዎች በእርግጠኝነት ይታያሉ። የታዋቂነት መጨመር አንድ ሰው በመጨረሻ ፕለጊን ወደ jsonnet for vscode ለመጨመር ጊዜ ይኖረዋል ወደሚለው እውነታ ይመራል, ይህም በ ctrl+shift+f በኩል ከመፈለግ ይልቅ ወደ ትግበራው እንዲቀጥሉ ያስችልዎታል. ነገሮች በዝግመተ ለውጥ, ተጨማሪ ቁሳቁሶች ይታያሉ. ስለ SRE መጽሐፍ ከGoogle መውጣቱ ለዚህ ጥሩ ምሳሌ ነው።

  2. እዚህ በተሳካ ሁኔታ ተግባራዊ ልናደርጋቸው የምንችላቸው በተለመደው ልማት ውስጥ የተገነቡ ቴክኒኮች እና ልምዶች አሉ. አዎን፣ ከሙከራ እና ከተለያዩ አከባቢዎች ጋር፣ በቂ ያልሆነ መሳሪያ አለ፣ ነገር ግን ጠቃሚ እና አጋዥ ሊሆኑ የሚችሉ እጅግ በጣም ብዙ ልምምዶች ተከማችተዋል።

    ቀላል ምሳሌ፡- በጥንድ ፕሮግራሚንግ ትብብር። እሱን ለማወቅ በጣም ይረዳል። አንድን ነገር ለመረዳት የሚሞክር በአቅራቢያዎ ያለ ጎረቤት ሲኖራችሁ፣ አብራችሁ በደንብ ትረዳላችሁ።

    ማሻሻያ እንዴት እንደሚደረግ መረዳቱ በእንደዚህ ዓይነት ሁኔታ ውስጥ እንኳን ለማከናወን ይረዳል. ያም ማለት ሁሉንም ነገር በአንድ ጊዜ መቀየር አይችሉም, ነገር ግን ስያሜውን ይቀይሩ, ከዚያም ቦታውን ይቀይሩ, ከዚያም የተወሰነውን ክፍል ማጉላት ይችላሉ, ኦ, ግን እዚህ በቂ አስተያየቶች የሉም.

መደምደሚያ

ምንም እንኳን የእኔ አስተሳሰብ ተስፋ አስቆራጭ ቢመስልም ፣ የወደፊቱን በተስፋ እጠባበቃለሁ እና ሁሉም ነገር ለእኛ (እና እርስዎ) እንደሚሠራ ከልብ ተስፋ አደርጋለሁ።

የጽሁፉ ሁለተኛ ክፍል ቀጥሎ እየተዘጋጀ ነው። በውስጡ፣ የመማር ሂደታችንን ለማሻሻል እና ከመሰረተ ልማት ጋር ለመስራት ቀልጣፋ የልማት ልምዶችን እንዴት ለመጠቀም እንደሞከርን እናገራለሁ።

ምንጭ: hab.com

አስተያየት ያክሉ