03. Docker - Containers
Containers
නැවක බඩු ප්රවාහනය සලකමු.Containers යනුවෙන් දෙයක් නැත්නම් නැවක බාන්ඩ ප්රවාහනය effective ලෙස කරගත නොහැකිය.මක්නිසාද යත්, toys transport කරනන් ඕනෙනම් කරන්න වෙන්නේ ඒවා ගෝනිවලා වගේ දාලා අදාළ
උපරකන භාවිතයෙන් ඒවා නැවට පටවලා නැවේ අසුරන්න එක.ගෝනි එක උඩ එක දන්න පුළුවන්
සීමාවක් ද තියනවා.වාහන ද transport කරනන් ඕනෙනම් එකටත්
කරන්න වෙන්නේ කලින් කල දේවල්ම තමා.නමුත් වාහන නැව ලගට ගෙන ඒමට,නැවට පටවන්න, නැවේ අසුරන්න
ඕනේකරන tools වෙනම ඒවා වෙනවා.toys
වලට ගත්ත ඒවා ගන්න බැ.වෙන
වෙන දේවල් transport කරන්න ඕනේ උනත් ඒවාට
අදාළ tools සහ process වෙනස් වෙන්න පුවන්.ඒ වගේම තමා නැවේ තිබෙන ඉඩෙන් උපරිම
බඩු ප්රමාණයක් transport කරගන්නත් බැ වගේම තමා
නැවේදී පටවපු බඩු maintain කරන්නත් ලේසි නෑ.නැවෙන්
ගිහින් බඩු වෙනත් fort එකකට බාද්දී උනත් ප්රශ්න
ගොඩකට මුහුණ දෙන්න සිදු වෙනවා.
මෙන්න මේ නිසා නැවෙන් කරන්නේ මොකද්ද, container කියලා එකක් හදුන්වලා දෙනවා.එවන සෑම දෙයක්ම මෙම container එකට දාලා නැවට එවන්න ඕනේ.ඉතකොට fort එකේ කරන්නේ container handle කරන එක විතරයි.container handle කරන්න ඕනේ tools
ටික තමා mainly ඕනේ වෙන්නේ.දැන් නැවට වැඩේ ලේසි වගේම තමා නැවේ තියන area එකන් maximum බඩු ප්රමාණයක් වඩා
effective ලෙස transport කරගන්න පුළුවන් ද වෙනවා.නැව
responsible වෙන්නේ container transport කරන එක ගැන විතරයි.ඒවාට බඩු අසිරිම, ඒවගේ තියන බඩු මොනාද,කොහොමද
තියෙන්නේ අරව මේවා වැඩක් නැ.ඒවා ගෙන worry
වෙන්නේ සහ responsible වෙන්නේ ඒවාට බඩු අසුරන අය.නැව කරන්නේ container එකක් අවොත් එක transport කරන එක විතරයි.
Software ලෝකෙත් ඒ වැඩේ ඒ වගේම
තමා වෙන්නේ.කලින් example එකේ බාන්ඩ, software වලදී software එකක් වෙනවා.ඉතාකොට කරන්නේ software එකක් run වෙන්න ඕනේ කරන සියලුම දේවල් (dependencies,
runtime environment වගේ සියලුම දේවල්) container එකකට දාලා තනි container එකක් එලියට දීම තමා කරන්නේ.මෙවිට software එක කුමන language
එකකින් කුමන architecture එකකින් build කරල දුන්නත් ප්රශ්නයක් නෑ.මොකද අවසානයේ එලියට දෙන්නේ එම software එක සහ ඒක run වෙන්න ඕනේ සියලුම දේවල් එකට දාල හදන container එකක් නිසා (Polyglot හෙවත් එක එක technology වලින් ලියපුcomponents සමජාතීය ලෙස සලකන්නු ලබයි).නැවට container එක ඇතුලේ තියෙන්නේ මොනවද කියලා වැඩක් නැ එය container එක transport
කරනවා වගේ, container run කරන්න පුළුවන් environment එකකට ගිහින් මෙම software එක අඩංගු container
එක එක එම environment එක මගින් එම container එක run කරවනවා.
මෙම containers හදල දෙනෙන් ඒවා manage කරන්නේ docker, containerd වගේ ඒවා මගින් වන අතර ඒවා එම container, container runtime environment එකකට ගිහින් දාලා run කරවාන්න පුළුවන්.
Advantage of docker
Efficient – resource utilization විදිහට efficient.
Container user කරන්නේ නැත්තම්, එක එක language වලින් application develop කරලා run කරද්දී අපිට ඒ ඒ language run වෙන්න අදාලව environment same machine එකක් හෝ different machine වල හදල maintain කරන්න සිද්ද වෙනවා.example ලෙස java application එකක් run කරන්න java තියන server machine එකක run කරන්න සිද්ද වෙනවා, node application නම් node තියන server machine එකක run කරන්න සිද්ද වෙනවා , C# application නම් C# තියන server machine එකක run කරන්න සිද්ද වෙනවා.එත් container බාවිතයේදී එහෙම ප්රශ්නයක් වෙන්නේ නැ මොකද different technology වලින් different architecture වලින් ලියපු multiple application container එකකට ඔබලා දෙන නිසා එකම machine එකේ විවිද technology වලින් ලියපු multiple applications run කරවන්න පුළුවන් container runtime environment එකක් හරහා.(එය machine එකේ os එකේ kernel එක access කරනුලබයි).තවද containers වලදී isolate කරලා තියන්න පුළුවන් එයට ගන්න පුළුවන් CPU එකේ ප්රමාණය memory වගේ ඒවා.එම නිසා resource utilization එකක් වෙනවා.
Portable
Application එක container එකක් ඇතුලේ තියන නිසා ඕනෙම තැනක container runtime environment එකක් උඩ run කරන්න පුළුවන්.එම container එක test server, staging server, live server, aws, google cloud, ms cloud වල දැම්මත් එක වගේ වැඩ.මෙහිදී අපිට dependencies දදා configuration කර කර දාගන්ලන්න දෙයක් නැ.
Easy to scale
Light weigh නිසා easily deploy කරන්න පුළුවන්.තවද, Container එකක් ලෙස තිබෙන නිසා එම application එක run වෙන්න ඕනේ machine එකකම මේක deploy කරන්න ඕනේ කියා කියා දාගන්ලන්න දෙයක් නැ. Container runtime environment තියන ඕනෙම machine එකක මේක deploy කරන්න පුළුවන්.
Security
Container එක කඩන් ගිහින් OS එකට attack කරලා CPU එක හෝ memory එක වැඩිපුර අරන් system එකම අවුල්කරනන් බැ.Docker container orchestrate කරන අතර එම orchestrate කරන එක පාලනය කරන්නේ Kubernetes වලින්ය.
Comments
Post a Comment