ආරම්භකයින් සඳහා පියවර පහකින් ඔබේ පළමු DevOps දාමය ගොඩනැගීම.
DevOps ඉතා මන්දගාමී, විසන්ධි වූ සහ වෙනත් ගැටළු සහගත සංවර්ධන ක්රියාවලීන් සඳහා කෝකටත් තෛලයක් බවට පත්ව ඇත. නමුත් ඔබට DevOps හි අවම දැනුමක් අවශ්ය වේ. එය DevOps දාමය සහ පියවර පහකින් එකක් සාදන ආකාරය වැනි සංකල්ප ආවරණය කරයි. මෙය සම්පූර්ණ මාර්ගෝපදේශයක් නොවේ, නමුත් පුළුල් කළ හැකි "මාළු" පමණි. අපි ඉතිහාසයෙන් පටන් ගනිමු.
DevOps සඳහා මගේ හැඳින්වීම
මම Citi Group හි වලාකුළු සමඟ වැඩ කිරීමට සහ Citi හි ක්ලවුඩ් යටිතල පහසුකම් කළමනාකරණය කිරීමට IaaS වෙබ් යෙදුමක් සංවර්ධනය කිරීමට පුරුදුව සිටියෙමි, නමුත් සංවර්ධන දාමය ප්රශස්ත කිරීම සහ සංවර්ධකයින් අතර සංස්කෘතිය වැඩිදියුණු කරන්නේ කෙසේද යන්න පිළිබඳව මම සැමවිටම උනන්දු වෙමි. Cloud Architecture සහ Infrastructure සඳහා වන අපගේ CTO Greg Lavender මට මෙම පොත නිර්දේශ කළේය.
සමාගම් නව අනුවාදයන් කොපමණ වාරයක් නිකුත් කරන්නේද යන්න පිටුපස ඇති වගුව පෙන්වයි:
Amazon, Google සහ Netflix මෙතරම් ප්රචාරණය කිරීමට කළමනාකරණය කරන්නේ කෙසේද? එය සරලයි: ඔවුන් පරිපූර්ණ DevOps දාමයක් නිර්මාණය කරන්නේ කෙසේදැයි සොයා ගත්හ.
අපි DevOps වෙත මාරු වන තෙක් Citi හි අපට දේවල් බෙහෙවින් වෙනස් විය. එවිට මගේ කණ්ඩායමට විවිධ පරිසරයන් තිබුනා, නමුත් අපි සංවර්ධන සේවාදායකයට බෙදා හැරීම අතින් සිදු කළෙමු. සියලුම සංවර්ධකයින්ට IBM WebSphere යෙදුම් සේවාදායක ප්රජා සංස්කරණය මත පදනම් වූ එක් සංවර්ධන සේවාදායකයකට පමණක් ප්රවේශ විය. බෙදා හැරීමට සමගාමී උත්සාහයක් සමඟ, සේවාදායකය "වැටුණු" අතර, සෑම අවස්ථාවකදීම අපි අප අතර "වේදනාකාරී" සාකච්ඡා කිරීමට සිදු විය. අපට පරීක්ෂණ සමඟ ප්රමාණවත් කේත ආවරණයක් නොතිබුණි, කාලය ගතවන අතින් බෙදා හැරීමේ ක්රියාවලියක් සහ යම් කාර්යයක් හෝ සේවාදායක අවශ්යතාවයක් සමඟ කේතය බෙදා හැරීම නිරීක්ෂණය කිරීමට ක්රමයක් නොමැත.
යමක් හදිසියේ කළ යුතු බව පැහැදිලි වූ අතර, මට සමාන අදහස් ඇති සගයකු හමු විය. අපි එක්ව පළමු DevOps දාමය නිර්මාණය කිරීමට තීරණය කළෙමු - ඔහු අතථ්ය යන්ත්රයක් සහ ටොම්කැට් යෙදුම් සේවාදායකයක් සැකසූ අතර, මම ජෙන්කින්ස්, Atlassian Jira සහ BitBucket සමඟ ඒකාබද්ධ කිරීම මෙන්ම පරීක්ෂණ සමඟ කේත ආවරණය කිරීම ගැන සැලකිලිමත් විය. ව්යාපෘතිය සාර්ථක විය: අපි සංවර්ධන දාමය සම්පූර්ණයෙන්ම ස්වයංක්රීය කළෙමු, සංවර්ධන සේවාදායකයේ 100% ක් පමණ අතිකාල ලබා ගත්තෙමු, පරීක්ෂණ සමඟ කේත ආවරණය නිරීක්ෂණය කිරීමට සහ වැඩිදියුණු කිරීමට හැකි වූ අතර, Git ශාඛාවක් ජිරා බෙදා හැරීමකට සහ නිකුත් කිරීමට සම්බන්ධ කළ හැකිය. තවද අපි DevOps දාමය තැනීමට භාවිතා කළ මෙවලම් සියල්ලම පාහේ විවෘත මූලාශ්ර විය.
ඇත්ත වශයෙන්ම, අපි ජෙන්කින්ස් හෝ ඇන්සිබල් භාවිතා කර උසස් වින්යාසයන් පවා යෙදුවේ නැති නිසා දාමය සරල කර ඇත. නමුත් අපි සාර්ථක වුණා. සමහර විට මෙය මූලධර්මයේ ප්රතිවිපාකයක් විය හැකිය
DevOps සහ CI/CD දාමය පිළිබඳ කෙටි විස්තරයක්
DevOps විවිධ අර්ථකථන ඇත. Agile වැනි DevOps විවිධ විෂයයන් ඇතුළත් වේ. නමුත් බොහෝ දෙනා පහත නිර්වචනය සමඟ එකඟ වනු ඇත: DevOps යනු මෘදුකාංග සංවර්ධනයේ ක්රමයක් හෝ ජීවන චක්රයක් වන අතර, එහි ප්රධාන මූලධර්මය වන්නේ සංවර්ධකයින් සහ අනෙකුත් සේවකයින් “එකම තරංග ආයාමයකින්” සිටින සංස්කෘතියක් නිර්මාණය කිරීමයි, අතින් ශ්රමය ස්වයංක්රීය වේ, සෑම කෙනෙකුම ඔවුන් හොඳම දේ කරයි, බෙදා හැරීමේ වාර ගණන වැඩි වේ, කාර්යයේ ඵලදායිතාව වැඩි වේ, නම්යශීලී බව වැඩි වේ.
DevOps පරිසරයක් නිර්මාණය කිරීමට මෙවලම් පමණක් ප්රමාණවත් නොවන අතර, ඒවා අත්යවශ්ය වේ. මේවායින් වඩාත් වැදගත් වන්නේ අඛණ්ඩ ඒකාබද්ධ කිරීම සහ අඛණ්ඩ බෙදා හැරීම (CI/CD) ය. එක් එක් පරිසරය සඳහා දාමයේ විවිධ අවධීන් ඇත (උදා: DEV (සංවර්ධනය), INT (ඒකාබද්ධ කිරීම), TST (පරීක්ෂණ), QA (තත්ත්ව සහතිකය), UAT (පරිශීලක පිළිගැනීම පරීක්ෂා කිරීම), STG (සූදානම් කිරීම), PROD (භාවිතය)) , හස්තීය කාර්යයන් ස්වයංක්රීය වේ, සංවර්ධකයින්ට ගුණාත්මක කේතයක් නිෂ්පාදනය කිරීමට, එය ලබා දීමට සහ පහසුවෙන් නැවත ගොඩනැංවීමට හැකිය.
මෙම සටහන විවෘත කේත මෙවලම් භාවිතයෙන් පහත පින්තූරයේ පෙන්වා ඇති පරිදි පියවර පහකින් DevOps දාමයක් සාදා ගන්නා ආකාරය විස්තර කරයි.
අපි වැඩේට බහිමු.
පියවර 1: CI/CD වේදිකාව
මුලින්ම, ඔබට CI/CD මෙවලමක් අවශ්ය වේ. Jenkins යනු DevOps ව්යාපාරය ප්රචලිත කළ සහ CICD සඳහා තථ්ය ප්රමිතිය බවට පත් වූ ජාවා හි ලියා ඇති MIT බලපත්ර ලත්, විවෘත මූලාශ්ර CI/CD මෙවලමකි.
ජෙන්කින්ස් යනු කුමක්ද? ඔබට විවිධ සේවා සහ මෙවලම් සඳහා ඉන්ද්රජාලික පාලක පැනලයක් ඇති බව සිතන්න. තනිවම, ජෙන්කින්ස් වැනි CI/CD මෙවලමක් නිෂ්ඵල වේ, නමුත් විවිධ මෙවලම් සහ සේවාවන් සමඟ, එය සර්වබලධාරී බවට පත්වේ.
ජෙන්කින්ස්ට අමතරව, තවත් බොහෝ විවෘත මූලාශ්ර මෙවලම් තිබේ, ඕනෑම එකක් තෝරන්න.
CI/CD මෙවලමක් සමඟ DevOps ක්රියාවලියක් පෙනෙන්නේ කෙසේද යන්න මෙන්න
ඔබට localhost හි CI / CD මෙවලමක් ඇත, නමුත් තවම කිරීමට බොහෝ දේ නොමැත. අපි ඊළඟ පියවරට යමු.
පියවර 2: අනුවාදනය
CI/CD මෙවලමක මැජික් පරීක්ෂා කිරීමට හොඳම (හා තර්ක කළ හැකි පහසුම) ක්රමය නම් එය මූලාශ්ර පාලන කළමනාකරණ (SCM) මෙවලමක් සමඟ ඒකාබද්ධ කිරීමයි. ඔබට අනුවාද පාලනය අවශ්ය වන්නේ ඇයි? අපි හිතමු ඔයා යෙදුමක් හදනවා කියලා. ඔබ එය Java, Python, C++, Go, Ruby, JavaScript හෝ වැගන් සහ කුඩා කරත්තයක් වැනි වෙනත් ඕනෑම භාෂාවකින් ලියන්න. ඔබ ලියන දේ source code ලෙස හැඳින්වේ. මුලදී, විශේෂයෙන් ඔබ තනිවම වැඩ කරන්නේ නම්, ඔබට සියල්ල දේශීය නාමාවලියකට සුරැකිය හැක. නමුත් ව්යාපෘතිය වර්ධනය වන විට සහ වැඩි පිරිසක් එකතු වන විට, ඔබට කේත වෙනස් කිරීම් බෙදා ගැනීමට ක්රමයක් අවශ්ය නමුත් වෙනස්කම් ඒකාබද්ධ කිරීමේදී ගැටුම් වළක්වා ගත යුතුය. තවද ඔබ උපස්ථ භාවිතා නොකර සහ කේත ගොනු සඳහා පිටපත්-පේස්ට් ක්රමය භාවිතා නොකර පෙර අනුවාද කෙසේ හෝ ප්රතිසාධනය කළ යුතුය.
තවද මෙහි SCM නොමැතිව ඕනෑම තැනක. SCM කේත ගබඩා තුළ ගබඩා කරයි, එහි අනුවාද කළමනාකරණය කරයි, සහ සංවර්ධකයින් අතර එය සම්බන්ධීකරණය කරයි.
SCM මෙවලම් බොහොමයක් ඇත, නමුත් Git සත්ය ප්රමිතිය බවට පත්ව ඇත. එය භාවිතා කිරීමට මම ඔබට උපදෙස් දෙමි, නමුත් වෙනත් විකල්ප තිබේ.
SCM එකතු කිරීමෙන් පසු DevOps නල මාර්ගය දිස්වන ආකාරය මෙන්න.
CI/CD මෙවලමට මූලාශ්ර කේත උඩුගත කිරීම සහ බාගත කිරීම සහ කණ්ඩායම් සහයෝගීතාවය ස්වයංක්රීය කළ හැක. නරක නැහැ? නමුත් දැන් බිලියන ගණනක් පරිශීලකයින් විසින් ආදරය කරන මෙයින් වැඩ කරන යෙදුමක් සාදා ගන්නේ කෙසේද?
පියවර 3: ස්වයංක්රීයකරණ මෙවලම සාදන්න
සෑම දෙයක්ම විය යුතු පරිදි සිදුවෙමින් පවතී. ඔබට කේතය උඩුගත කිරීමට සහ මූලාශ්ර පාලනයට වෙනස්කම් සිදු කිරීමට සහ ඔබ සමඟ වැඩ කිරීමට මිතුරන්ට ආරාධනා කිරීමට හැකිය. නමුත් ඔබට තවමත් යෙදුමක් නොමැත. මෙය වෙබ් යෙදුමක් වීමට නම්, එය සම්පාදනය කර බෙදාහැරීම සඳහා ඇසුරුම් කළ යුතුය හෝ ක්රියාත්මක කළ හැකි එකක් ලෙස ධාවනය කළ යුතුය. (JavaScript හෝ PHP වැනි අර්ථකථනය කරන ලද ක්රමලේඛන භාෂාවක් සම්පාදනය කිරීම අවශ්ය නොවේ.)
ගොඩනැගීමේ ස්වයංක්රීය මෙවලමක් භාවිතා කරන්න. ඔබ තෝරා ගන්නා මෙවලම කුමක් වුවත්, එය කේතය නිවැරදි ආකෘතියෙන් එකලස් කර පිරිසිදු කිරීම, සම්පාදනය කිරීම, පරීක්ෂා කිරීම සහ බෙදා හැරීම ස්වයංක්රීය කරයි. ගොඩනැගීමේ මෙවලම් භාෂාව අනුව වෙනස් වේ, නමුත් පහත විවෘත මූලාශ්ර විකල්ප බහුලව භාවිතා වේ.
පරිපූර්ණ! දැන් අපි ගොඩනැගීමේ ස්වයංක්රීය මෙවලම් වින්යාස ගොනු ප්රභව පාලනයට ඇතුළු කරමු එවිට CI/CD මෙවලම ඒවා ගොඩනඟයි.
හොඳට දැනෙනවා. නමුත් මේ සියල්ල දැන් පෙරළීමට කොහෙද?
පියවර 4: වෙබ් යෙදුම් සේවාදායකය
එබැවින්, ඔබට ක්රියාත්මක කළ හැකි හෝ පෙරළීමට හැකි ඇසුරුම් කළ ගොනුවක් තිබේ. යෙදුමක් සැබවින්ම ප්රයෝජනවත් වීමට නම්, එයට යම් ආකාරයක සේවාවක් හෝ අතුරු මුහුණතක් තිබිය යුතුය, නමුත් ඔබ ඒ සියල්ල කොතැනක හෝ තැබිය යුතුය.
වෙබ් යෙදුමක් වෙබ් යෙදුම් සේවාදායකයක් මත සත්කාරකත්වය දැක්විය හැක. යෙදුම් සේවාදායකය ඔබට ඇසුරුම් කළ තර්කනය ක්රියාත්මක කිරීමට, අතුරු මුහුණත් විදැහුම් කිරීමට සහ සොකට් එකක් හරහා වෙබ් සේවා නිරාවරණය කිරීමට පරිසරයක් සපයයි. යෙදුම් සේවාදායකය ස්ථාපනය කිරීමට ඔබට HTTP සේවාදායකයක් සහ වෙනත් පරිසරයන් කිහිපයක් (උදාහරණයක් ලෙස අතථ්ය යන්ත්රයක්) අවශ්ය වේ. දැනට, ඔබ යන විට ඔබ මේ සියල්ල සමඟ ගනුදෙනු කරන බව මවාපාමු (මම පහත බහාලුම් ගැන කතා කරමි).
විවෘත වෙබ් යෙදුම් සේවාදායක කිහිපයක් තිබේ.
අපට දැනටමත් පාහේ වැඩ කරන DevOps දාමයක් ඇත. නියම වැඩක්!
මූලධර්මය අනුව, ඔබට මෙහි නතර කළ හැකිය, එවිට ඔබට එය තනිවම හැසිරවිය හැකිය, නමුත් එය කේතයේ ගුණාත්මකභාවය ගැන කතා කිරීම වටී.
පියවර 5: පරීක්ෂණ ආවරණය
පරීක්ෂා කිරීම සඳහා බොහෝ කාලයක් සහ වෑයමක් අවශ්ය වේ, නමුත් අවසාන පරිශීලකයින් සතුටු කිරීමට වහාම දෝෂ සොයා ගැනීම සහ කේතය වැඩිදියුණු කිරීම වඩා හොඳය. මෙම කාර්යය සඳහා, කේතය පරීක්ෂා කිරීමට පමණක් නොව, එය වැඩිදියුණු කිරීමට උපදෙස් දෙන බොහෝ විවෘත මෙවලම් තිබේ. බොහෝ CI/CD මෙවලම්වලට මෙම මෙවලම්වලට සම්බන්ධ කර ක්රියාවලිය ස්වයංක්රීය කළ හැක.
පරීක්ෂණ කොටස් දෙකකට බෙදා ඇත: පරීක්ෂණ ලිවීම සහ ක්රියාත්මක කිරීම සඳහා පරීක්ෂණ රාමු සහ කේතයේ ගුණාත්මක භාවය වැඩි දියුණු කිරීම සඳහා ඉඟි සහිත මෙවලම්.
පරීක්ෂණ රාමු
ගුණාත්මක ඉඟි සහිත මෙවලම්
මෙම මෙවලම් සහ රාමු බොහොමයක් ජාවා, පයිතන් සහ ජාවාස්ක්රිප්ට් සඳහා ලියා ඇත්තේ C++ සහ C# හිමිකාරීත්වය (GCC විවෘත මූලාශ්රය වුවද).
අපි පරීක්ෂණ ආවරණ මෙවලම් යොදවා ඇති අතර, දැන් DevOps නල මාර්ගය නිබන්ධනයේ ආරම්භයේ ඇති පින්තූරය මෙන් දිස්විය යුතුය.
අමතර පියවර
බහාලුම්
මම කලිනුත් කිව්වා වගේ Application server එකක් virtual Machine එකක හරි server එකක හරි හොස්ට් කරන්න පුලුවන් නමුත් කන්ටේනර් වැඩිය ජනප්රියයි.
බහාලුම් සඳහා, වෙනත් විකල්ප තිබුණද, ඩොකර් සහ කුබර්නෙට්ස් සාමාන්යයෙන් ගනු ලැබේ.
Docker සහ Kubernetes ගැන ලිපි කියවන්න
Middleware ස්වයංක්රීයකරණ මෙවලම්
අපගේ DevOps දාමය සහයෝගීව ගොඩනැගීම සහ යෙදුමක් බෙදා හැරීම කෙරෙහි අවධානය යොමු කර ඇත, නමුත් ඔබට DevOps මෙවලම් සමඟ කළ හැකි වෙනත් රසවත් දේවල් තිබේ. උදාහරණයක් ලෙස, Infrastructure ලෙස Code (IaC) මෙවලම් භාවිතා කරන්න, එය මිඩ්ල්වෙයාර් ස්වයංක්රීය මෙවලම් ලෙසද හැඳින්වේ. මෙම මෙවලම් මිඩ්ල්වෙයාර් සඳහා ස්ථාපනය, කළමනාකරණය සහ අනෙකුත් කාර්යයන් ස්වයංක්රීය කිරීමට උපකාරී වේ. උදාහරණයක් ලෙස, ස්වයංක්රීය මෙවලමකට නිවැරදි වින්යාසයන් සහිත යෙදුම් (වෙබ් යෙදුම් සේවාදායකය, දත්ත සමුදාය, අධීක්ෂණ මෙවලම්) ගෙන ඒවා යෙදුම් සේවාදායකයට තල්ලු කළ හැකිය.
විවෘත මිඩ්ල්වෙයාර් ස්වයංක්රීය මෙවලම් සඳහා විකල්ප කිහිපයක් මෙන්න:
ලිපිවල විස්තර
ඇසිබල් ආරම්භ කිරීමේ මාර්ගෝපදේශය Ansible සමඟ යෙදවීමේ ස්වයංක්රීයකරණ උපාය මාර්ග Top 5 Configuration Management Tools
දැන් මොකක්ද?
මෙය අයිස් කුට්ටියේ කෙළවර පමණි. DevOps දාමයට තවත් බොහෝ දේ කළ හැකිය. CI/CD මෙවලමකින් ආරම්භ කර ඔබේ කාර්යය පහසු කිරීමට ඔබට ස්වයංක්රීය කළ හැකි තවත් මොනවාදැයි බලන්න. ගැන අමතක කරන්න එපා
ආරම්භකයින් සඳහා තවත් හොඳ DevOps ලිපි කිහිපයක් මෙන්න:
DevOps යනු කුමක්ද? 5 DevOps සංවර්ධකයෙකුගේ කුසලතා සෑම කෙනෙකුටම DevOps DevOps හි අනාවැකි විශ්ලේෂණ සඳහා හැඳින්වීම
ඔබට විවෘත කඩිසර මෙවලම් සමඟ DevOps ඒකාබද්ධ කළ හැකිය:
මූලාශ්රය: www.habr.com