ඒකක
1. DevOps සහ Cloud AI සඳහා හැඳින්වීම: භූමිකාවන්, සීමා මායිම්, සත්‍යාපනය, ආරක්ෂාව සහ රහස් 2. කෘතිම බුද්ධිය සහිත CI/CD නල මාර්ග සැලසුම් කිරීම: GitHub ක්‍රියා සහ GitLab CI 3. කේතය ලෙස යටිතල පහසුකම් කළමනාකරණය: Terraform සහ IaC සමඟ කෘතිම බුද්ධිය 4. බහාලුම්කරණය: කෘතිම බුද්ධිය සමඟින් ඩොකර්ෆයිල් සහ රූප ප්‍රශස්තකරණය 5. කුබර්නෙටස්: මැනිෆෙස්ට්, හෙල්ම් සහ AI-බලවත් වාද්‍ය වෘන්දය 6. අධීක්‍ෂණය සහ නිරීක්ෂණ හැකියාව: මෙට්‍රික්, ලොග්, ට්‍රේස් සහ එලාම් රීති 7. සිදුවීම් කළමනාකරණය සහ පශ්චාත් මරණ පරීක්ෂණය: කෘතිම බුද්ධිය සමඟ මූල හේතුව විශ්ලේෂණය 8. Cloud Cost Optimization (FinOps): කෘතිම බුද්ධිය සමඟ අපද්‍රව්‍ය සඳහා දඩයම් කිරීම 9. ස්ක්‍රිප්ට් සහ ස්වයංක්‍රීය ජනනය: Bash, Python සහ PowerShell 10. ආරක්ෂාව සහ රහස් කළමනාකරණය: DevSecOps සහ කෘතිම බුද්ධිය 11. නිෂ්පාදන සත්‍යාපනය, මුදා හැරීමේ උපාය මාර්ග සහ අවසානය සිට අවසානය දක්වා AI කාර්ය ප්‍රවාහය
ඒකකය 4 / 11

බහාලුම්කරණය: කෘතිම බුද්ධිය සමඟින් ඩොකර්ෆයිල් සහ රූප ප්‍රශස්තකරණය

ලාභ:

  • බහාලුම් සහ ඩොකර්ෆයිල් සංකල්ප, මූලික උපදෙස් සහ ස්ථර තර්කනය අවබෝධ කර ගැනීමේ හැකියාව සහ කෘතිම බුද්ධිය නිෂ්පාදනයට සූදානම් ඩොකර්ෆයිල් නිෂ්පාදනය කරයි
  • බහු-අදියර ගොඩනැගීම සහ කුඩා පාදක රූපය සමඟ රූපයේ ප්‍රමාණය අඩු කිරීමට සහ යෙදවීමේ වේගය සහ ආරක්ෂාව වැඩි කිරීමට හැකියාව
  • රූපයේ රහස කාවැද්දීම නොකිරීම, root වෙනුවට අනවසර පරිශීලකයෙකු සමඟ එය ධාවනය කිරීම සහ රූපය ස්කෑන් කිරීම යන ආරක්ෂක මූලධර්ම යෙදීමේ හැකියාව

"It was run on my computer" යන වාක්‍යය මෘදුකාංග ඉතිහාසයේ මිල අධිකම වාක්‍යයයි. විවිධ පුස්තකාල අනුවාදයන් හේතුවෙන් එකම කේතය වෙනත් සේවාදායකයක පුපුරා යයි. බහාලුම් තාක්‍ෂණය මෙම ගැටළුව හරියටම විසඳයි: එය ඔබගේ යෙදුම ධාවනය කිරීමට අවශ්‍ය සියල්ල - පුස්තකාල, ධාවන කාලය, සැකසුම් - තනි අතේ ගෙන යා හැකි පැකේජයකට තබයි. මෙම පැකේජය සෑම තැනකම හරියටම සමාන වේ. වඩාත් පොදු බහාලුම් මෙවලම ඩොකර් වේ.

කන්ටේනරයක විස්තරය Dockerfile ලෙස හැඳින්වේ: එය ඔබගේ යෙදුම ආරම්භ වන්නේ කුමන පාදක රූපයෙන්ද, කුමන ගොනු පිටපත් කරන්නේද සහ කුමන විධානයන් ක්‍රියාත්මක වේද යන්න විස්තර කරන පෙළ ගොනුවකි. මෙම වට්ටෝරුවෙන් රූපයක් නිපදවනු ලැබේ; රූපය ක්රියාත්මක වන විට, එය බහාලුමක් බවට පත් වේ. AI Dockerfile ලිවීමට ඉතා දක්ෂ වන අතර - වඩාත් වැදගත් - එය කුඩා කිරීම සහ සුරක්ෂිත කිරීම. නමුත් ජනනය කරන ලද වට්ටෝරුව කුමක් කරන්නේද සහ එයින් රහස් කාන්දු විය හැක්කේ කොතැනින්ද යන්න තේරුම් ගැනීම ඔබේ කාර්යයයි.

Dockerfile හි මූලික උපදෙස්

Dockerfile විගණනය කිරීමට, ඔබ මූලික උපදෙස් දැන සිටිය යුතුය:

  • `FROM`: මූලික රූපය තෝරයි (උදාහරණයක් ලෙස python:3.12-slim). රූපයේ විශාලත්වය සහ ආරක්ෂාව බොහෝ දුරට පැමිණෙන්නේ මෙයයි.
  • `WORKDIR`: වැඩ කරන නාමාවලිය සඳහන් කරයි.
  • `COPY` / `ADD`: රූපයට ගොනු පිටපත් කරයි.
  • `RUN`: ගොඩනැගීමේදී විධානයක් ක්‍රියාත්මක කරයි (උදා: පරායත්තයක් ස්ථාපනය කරයි). සෑම RUN එකක්ම නව ස්ථරයක් සාදයි.
  • `ENV`: පරිසර විචල්‍යය නිර්වචනය කරයි.
  • `EXPOSE`: කන්ටේනරය සවන් දෙන ලේඛන.
  • `CMD` / `ENTRYPOINT`: බහාලුම ආරම්භ වන විට ක්රියාත්මක වන විධානය තීරණය කරයි.

තීරනාත්මක සංකල්පයක් වන්නේ ස්ථරයයි: ඩොකර් සෑම උපදෙස්ම ස්ථරයක් ලෙස හැඹිලි කරයි. නිතර වෙනස් වෙන Steps ටික අන්තිමට දැම්මොත් cache එකෙන් වෙනස් නොවන layers ඇවිත් build එක speed වෙනවා.

ඉඟිය: රූපයේ ප්‍රමාණය අඩු කිරීම සඳහා ඇති විශාලතම ලීවර දෙක නම්: (1) සිහින් හෝ ඇල්පයින් වැනි කුඩා මූලික රූපයක් තෝරා ගැනීම; (2) බහු-අදියර ගොඩනැගීම භාවිතා කිරීම - එක් අදියරකදී ගොඩනැගීමේ මෙවලම් අතහැර අවසන් නිෂ්පාදනය තුනී රූපයකට පමණක් මාරු කිරීම. AI හට අවශ්‍ය විටෙක මේ දෙක ප්‍රවීණ ලෙස ක්‍රියාත්මක කළ හැකිය.

කුඩා රූපය එතරම් වැදගත් වන්නේ ඇයි? මන්ද රූපයේ ප්‍රමාණය තැටියේ ගැටලුවක් පමණක් නොවේ. විශාල රූපයක් එක් එක් යෙදවීම සමඟ අදින්නට වැඩි කාලයක් ගතවේ, රෙජිස්ට්‍රියේ වැඩි ඉඩක් ගනී, එය පරිමාණය වන විට නව පොඩ්ස් ආරම්භය මන්දගාමී කරයි, සහ එහි වැඩි පැකේජ අඩංගු බැවින්, එය විශාල ප්‍රහාරක මතුපිටක් සපයයි - එනම්, ප්‍රහාරකයෙකුට සූරාකෑමට විවෘත ඉඩක් සපයයි. 1 GB රූපයක් වෙනුවට 100 MB රූපයක් භාවිතා කිරීම; එය යෙදවීමේ කාලය කෙටි කරයි, පිරිවැය අඩු කරයි සහ ආරක්ෂාව වැඩි කරයි. Dockerfile ප්‍රශස්ත කිරීම යනු මෙම ප්‍රතිලාභ තුන එකවර නෙළා ගැනීමයි. ප්‍රශස්ත Dockerfile එකක් සඳහා AI වෙතින් විමසන විට "කුඩාම අවසාන රූපය" ඉලක්කය පැහැදිලිව සඳහන් කරන්න; මේ අනුව, එය සම්පාදන අදියර වෙන් කිරීමට සහ අනවශ්‍ය පැකේජ ඉවත දැමීමට ප්‍රමුඛත්වය දෙයි.

පියවරෙන් පියවර: AI සමඟ Dockerfile උත්පාදනය කිරීම සහ ප්‍රශස්ත කිරීම

  1. යෙදුම විස්තර කරන්න. භාෂාව, අනුවාදය, ආදාන විධානය, සවන් දුන් වරාය.
  2. පළමු කෙටුම්පත නිෂ්පාදනය කරන්න. සරල වැඩ කරන Dockerfile එකක් ඉල්ලන්න.
  3. එය ප්‍රශස්ත කරන්න. බහු-අදියර ගොඩනැගීම, සුළු මූලික රූපය සහ ස්ථර අනුපිළිවෙල ප්‍රශස්තකරණය සඳහා එකම AI වෙතින් විමසන්න.
  4. ආරක්ෂාව පරීක්ෂා කරන්න. රහස තැන්පත් වී තිබේද, එය root ලෙස ක්‍රියා කරයිද, අනවශ්‍ය මෙවලම් තිබේද?
  5. ප්‍රමාණය ගොඩනඟා මැනීම. ඩොකර් ගොඩනැගීමෙන් පසු ඩොකර් රූප සමඟ ප්‍රමාණය බලන්න.
  6. ස්කෑන් කරන්න. ඩොකර් බාලදක්ෂ හෝ ට්‍රයිවි වැනි සූරාකෑමේ ස්කෑනරයක් සමඟ දන්නා දුර්වලතා සඳහා පරීක්ෂා කරන්න.

ආරක්ෂාව: බහාලුම් විශේෂිත අවදානම්

බහාලුම් ආරක්ෂාව පහසුවෙන් නොසලකා හරිනු ලැබේ. නීති තුනක්:

  1. රූපය තුළ රහසක් ඇතුළත් නොකරන්න. ENV API_KEY=... හෝ COPY .env වැනි රේඛා රූපයේ ස්තරවලට රහස ස්ථිරව ලියන්න; පින්තූරය ලැබෙන ඕනෑම කෙනෙකුට එය කියවිය හැකිය. පරිසර විචල්‍යයක් ලෙස හෝ සුරක්ෂිතාගාරයෙන් ධාවන වේලාවේදී රහස දෙන්න.
  2. root ලෙස ධාවනය වේ. පෙරනිමියෙන්, බහාලුම් root ලෙස ධාවනය වේ; විවරයක් කන්ටේනරයෙන් ගැලවීමක් බවට පත්විය හැකිය. USER උපදෙස් සමඟ අනවසර පරිශීලකයෙකු වෙත ඇද දමන්න.
  3. කුඩා සහ යාවත්කාලීන මූලික රූපය. පිම්බුණු රූප දෙකම මන්දගාමී වන අතර වැඩි අවදානම් සහිත වේ. සිහින්/ඇල්පයින් තෝරන්න, අනුවාදය සවි කරන්න (භාවිතා නොකරන්න: නවතම).
අවවාදයයි: ඔබ RUN හි රහසක් භාවිතා කර එය මකා දැමුවත්, එය මිඩ්ල්වෙයාර් හි පවතින අතර ඩොකර් ඉතිහාසය හරහා නැවත කියවිය හැක. ගොඩනැගීමේදී රහසක් අවශ්‍ය නම්, ENV/COPY නොව Docker's --secret යාන්ත්‍රණය භාවිතා කරන්න.

ප්‍රශස්තිකරණ බලපෑම් වගුව

තාක්ෂණික

මොනවද කරන්නේ

සාමාන්ය බලපෑම

සිහින්/ඇල්පයින් පාදක රූපය

අනවශ්‍ය පැකේජ ඉවතලයි

900MB → 120MB

බහු අදියර ගොඩනැගීම

ගොඩනැගීමේ මෙවලම් බැහැර කරයි

700MB → 90MB

.dockerignore

ගොඩනැගීමේදී අනවශ්‍ය ගොනු ඇතුළත් නොවේ

වේගවත් ගොඩනැගීම, කුඩා සන්දර්භය

ස්ථර වර්ග කිරීම

හැඹිලි පහර වැඩි කරයි

මිනිත්තු 5 → තත්පර 40 ගොඩනැගීම

අනුවාද සවි කිරීම (:15)

පුනරාවර්තන හැකියාව + ආරක්ෂාව

හදිසි පිරිහීම වළක්වයි

කුඩා නඩු තුනක්

අවස්ථාව 1 — 1.1 GB රූපය 95 MB දක්වා අඩු කරන ලදී. එක් කණ්ඩායමක Node.js රූපය 1.1 GB විය; සෑම යෙදවීමකටම මිනිත්තු කිහිපයක් ගත විය. ඔවුන් AI ට පැවසුවේ "මෙය බහු-අදියර ගොඩනැගීම සහ ඇල්පයින් සමඟ ප්‍රශස්ත කරන්න" යනුවෙනි. AI විසින් සම්පාදන අදියර වෙන් කර ජනනය කරන ලද ගොනු පමණක් තුනී රූපය වෙත ගෙන යන ලදී; ප්රතිඵලය 95 MB, යෙදවීමේ කාලය තුනෙන් එකකින් අඩු විය.

නඩුව 2 - වළලනු ලැබූ රහස හසු විය. YZ විසින් නිෂ්පාදනය කරන ලද Dockerfile හි ENV DB_PASSWORD=prod_secret රේඛාව ඉංජිනේරුවෙකු දුටුවේය. AI විසින් මුරපදය රූපයට කාවැද්දූ නිසා එය "වැඩ" කරයි. ඉන්ජිනේරුවරයා මෙය ඉවත් කර ධාවන වේලාවේදී පාරිසරික විචල්‍යයෙන් මුරපදය කියවීමට වෙනස් කළේය. එසේ නොමැති නම්, පින්තූරය අල්ලා ගත් ඕනෑම කෙනෙකුට මුරපදය කියවිය හැකිය.

නඩුව 3 - මුල් ගැලවී යාමේ අවදානම. ස්කෑනිං මෙවලමක් වාර්තා කළේ AI විසින් නිපදවන ලද රූපය root ලෙස ක්‍රියාත්මක වන අතර තීරනාත්මක අවදානමක් අඩංගු බවයි. කණ්ඩායම USER appuser එක් කර මූලික රූපය වත්මන් අනුවාදයට තල්ලු කළේය; ස්කෑන් ඉවත් කර ඇත. පාඩම: පළ කිරීමට පෙර සෑම රූපයක්ම පරිලෝකනය කර අනවසර පරිශීලකයින්ට නිරාවරණය කරන්න.

පිටපත් කළ හැකි සැකිලි හතරක්

1) Optimized Dockerfile ජනනය කිරීම:

[භාෂාව/FRAMEWORK] යෙදුම සඳහා නිෂ්පාදනයට සූදානම් Dockerfile ලියන්න. මාර්ගෝපදේශ:- බහු-අදියර ගොඩනැගීම භාවිතා කරන්න; අවසාන රූපය හැකි තරම් කුඩා කරන්න.- පාදක රූපය සිහින්/ඇල්පයින් වන අතර අනුවාදය සවි කර ඇත (": නවතම" භාවිතා නොකරන්න).- අනවසර පරිශීලකයෙකු සමඟ කන්ටේනරය ධාවනය කරන්න, root නොවේ.- කිසිවිටෙක රූපයේ රහස කාවැද්දීමෙන් වළකින්න; ධාවන වේලාවේදී පරිසර විචල්‍ය සඳහා රැඳී සිටින්න. - .dockerignore යෝජනාව එක් කරන්න. ආදාන විධානය: [X], සවන්දීමේ වරාය: [Y].

2) පවතින ඩොකර් ගොනුව ප්‍රශස්ත කරන්න:

අවම කිරීමට සහ වේගවත් කිරීමට මෙම Dockerfile පරීක්ෂා කරන්න. ස්ථර අනුපිළිවෙල, බහු-අදියර ගොඩනැගීම, මූලික රූපය සහ අතිරික්ත පැකේජ අනුව කොන්ක්රීට් වෙනස්කම් නිර්දේශ කිරීම; එක් එක් වෙනසෙහි ඇස්තමේන්තුගත ප්‍රමාණය/වේග බලපෑම ලියන්න. ඩොකර් ගොනුව: [අන්තර්ගතය]

3) ආරක්ෂක විගණනය:

ආරක්ෂාව සඳහා මෙම Dockerfile පරීක්ෂා කරන්න: කාවැද්දූ රහස්, මූල භාවිතා කරන්නන්, සවි නොකළ අනුවාද, අනවශ්‍ය මෙවලම්, යල් පැන ගිය මූලික රූප තිබේද? සොයාගැනීම් වැදගත්කම සහ ඕනෑම නිවැරදි කිරීම් අනුපිළිවෙලට ලැයිස්තුගත කරන්න. ඩොකර් ගොනුව: [අන්තර්ගතය]

4) දෝෂ විසඳීම ගොඩනැගීම:

මෙම ඩොකර් ගොඩනැගීමේ දෝෂයට හේතුව කුමක්ද සහ එය විසඳන්නේ කෙසේද? මට මූලික හේතුව සහ විසඳුම අවම වෙනස්කම් සහිතව ලබා දෙන්න. ඔබ Secret දකින තැන සැබෑ අගය නිපදවන්න එපා, placeholder භාවිතා කරන්න. දෝෂය: [LOG] Dockerfile: [CONTENT]

දුර්වල ක්ෂණික / ශක්තිමත් විමසුම

දුර්වල: "මගේ නෝඩ් යෙදුම සඳහා ඩොකර් ගොනුවක් ලියන්න."

ප්‍රතිඵලය: විශාල මූලික ප්‍රතිරූපය, මූල පරිශීලකයා, තනි අදියර, සමහරවිට රහසේ අවදානමට ලක් විය හැක; ප්‍රමාණය සහ ආරක්ෂාව නොසලකා නිමැවුමකි.

ශක්තිමත්: "මගේ Node 20 යෙදුම සඳහා නිෂ්පාදන-සූදානම් Dockerfile ලියන්න: බහු-අදියර ගොඩනැගීම, node:20-ඇල්පයින් පාදක රූපය (අනුවාදය ස්ථාවර), අනවසර USER සමඟ ධාවනය, රහස් කාවැද්දීම, වරාය 3000 මත සවන්දීම, login node dist/server.js. එසේම යෝජනා කරන්න .dockerignore."

වෙනස: දෙවන කඩිනම් අනුවාදය ප්‍රශස්තිකරණ තාක්ෂණය, ආරක්ෂක රීතිය සහ පිවිසුම් විධානය ලබා දෙයි; ප්රතිදානය කුඩා, ආරක්ෂිත සහ සෘජුවම භාවිතා කළ හැකි බවට පත් වේ.

පොදු වැරදි

  • 'ENV`/`COPY` සමඟින් රූපයට රහස එබ්බවීම. එය ස්ථර වල පවතින අතර නැවත කියවනු ලැබේ.
  • root ලෙස ධාවනය වේ. USER උපදෙස් මඟ හැරීම බරපතල ආරක්ෂක අවදානමකි.
  • ': නවතම' භාවිතා කරමින්. එය නැවත කළ නොහැකි ගොඩනැගීම් සහ අනපේක්ෂිත බාධා ඇති කරයි.
  • බහු-අදියර ගොඩනැගීම මඟ හැරීම. සම්පාදන මෙවලම් අනවශ්‍ය ලෙස අවසන් රූපය පුම්බා ඇත.
  • `.dockerignore` ලියන්න එපා. .git සහ node_modules වැනි විශාල නාමාවලි ගොඩනැගීමට ඇතුළත් වේ.
  • රූපය ස්කෑන් කිරීමකින් තොරව ප්‍රකාශනය කිරීම. ඒවා නොදැන දන්නා දුර්වලතා ඇති කිරීම.

සාරාංශයක් ලෙස

බහාලුම් යෙදුම සෑම තැනකම එකම ලෙස ක්‍රියා කරන අතේ ගෙන යා හැකි පැකේජ බවට පත් කරයි; වට්ටෝරුව Dockerfile වේ. නිෂ්පාදන-සූදානම් සහ ප්‍රශස්ත Dockerfiles නිෂ්පාදනය කිරීමට AI බලවත් වේ - නමුත් ඔබට පැහැදිලිවම බහු-අදියර ගොඩනැගීම්, කුඩා මූලික රූප, අනවසර පරිශීලකයින් සහ රහස් අවශ්‍ය විය යුතුය. රූපයේ ප්රමාණය අඩු කිරීම යෙදවීම වේගවත් කරයි; රහස කාවැද්දීම නොකිරීම, මූලයෙන් ගැලවීම සහ රූපය ස්කෑන් කිරීම ආරක්ෂාව සහතික කරයි. එක් එක් වට්ටෝරුව කරන්නේ කුමක්ද සහ එය කාන්දු වන ස්ථානය තහවුරු කිරීම ඔබේ වගකීමයි.

යෙදුම් කාර්යය

සරල යෙදුමක් තෝරන්න. AI හට "Optimized Dockerfile උත්පාදනය" අච්චුව සහිත Dockerfile එකක් ජනනය කිරීමට සලස්වන්න. පසුව: (1) "ආරක්ෂක චෙක්පත්" අච්චුව සමඟ කාවැද්දූ රහස් සහ මූල පරිශීලකයා පරීක්ෂා කරවා ගන්න; (2) හැකි නම්, ඩොකර් ගොඩනඟා ඩොකර් රූප සමඟ ප්‍රමාණය මැන බලන්න; (3) ඊළඟ පියවර ලෙස රූපය අඩු කිරීම සඳහා වඩාත් ඵලදායී වන්නේ කුමන තාක්ෂණයද යන්න සටහන් කරන්න.

පිරික්සුම් ලැයිස්තුව

  • [ ] මම මගේ විමසුමට භාෂාව/රාමුව අනුවාදය, ආදාන විධානය සහ වරාය එක් කළෙමි.
  • [ ] Dockerfile තුළ කාවැද්දූ රහස් නොමැත; රහසිගත ධාවන වේලාවේදී අපේක්ෂා කෙරේ.
  • [ ] කන්ටේනරය ධාවනය වන්නේ අනවසර USER සමඟ මිස root නොවේ.
  • [ ] මූලික රූපය කුඩා (සිහින්/ඇල්පයින්) වන අතර එහි අනුවාදය ස්ථාවරයි (no:latest).
  • [ ] මම බහු-අදියර ගොඩනැගීම සහ .dockerignore භාවිතා කළා.
  • [ ] මම අවදානම් ස්කෑනරයකින් රූපය ස්කෑන් කළෙමි.