“ কন্টেইনারাইজেশন ”, আমার ম্যানেজার দ্ব্যর্থহীনভাবে বলেছিলেন যখন আমি তাকে সফ্টওয়্যার ডেভেলপমেন্ট শিল্পে বিপ্লব ঘটিয়েছে এমন একক জিনিস সম্পর্কে জিজ্ঞাসা করি। তিনি যুক্তি দিয়েছিলেন যে কন্টেইনারাইজেশন ছাড়াই, আজকের সফ্টওয়্যারটির দ্রুত স্কেলিং এবং বিশ্বব্যাপী স্থাপনা অনেক বেশি শক্তিশালী চ্যালেঞ্জ হয়ে উঠত। এটি লক্ষণীয় যে আজ ব্যবহৃত প্রায় সমস্ত সফ্টওয়্যার বিভিন্ন ক্ষমতার মধ্যে কন্টেইনারাইজেশনের সুবিধা দেয়, যা আধুনিক সফ্টওয়্যার ইকোসিস্টেমকে শক্তিশালী করার ক্ষেত্রে এর অপরিহার্য ভূমিকাকে আন্ডারস্কোর করে!
আপনারা যারা জানেন না তাদের জন্য, এখানে AWS এর ওয়েবসাইট থেকে একটি সংজ্ঞা দেওয়া হল ~
*“Containerisation is a software deployment process that bundles an application's code with all the files and libraries it needs to run on any infrastructure. Traditionally, to run any application on your computer, you had to install the version that matched your machine's operating system.”*
চিত্রগুলি কন্টেইনারগুলির জন্য বিল্ডিং ব্লক হিসাবে কাজ করে, যা তাদের সৃষ্টিকে গাইড করার ব্লুপ্রিন্টের মতো। অতএব, লাইটওয়েট এবং সুবিন্যস্ত কন্টেইনার ইমেজ বজায় রাখা স্থাপনার প্রক্রিয়াকে ত্বরান্বিত করে এবং এই ছবিগুলির বিতরণকে সহজ করে। আপনার ডকার ইমেজগুলিকে অপ্টিমাইজ করে, আপনি শুধুমাত্র সামগ্রিক উন্নয়ন চক্রকে ত্বরান্বিত করতে পারবেন না, তবে আপনি আরও শক্তিশালী এবং দক্ষ সফ্টওয়্যার পরিবেশ নিশ্চিত করে নিরাপত্তা ব্যবস্থাগুলিকে শক্তিশালী করতে পারবেন।
এই নিবন্ধে, আমরা দক্ষ ডকার ইমেজ তৈরি করার জন্য বিভিন্ন পদ্ধতি অন্বেষণ করব, শেষ পর্যন্ত আপনার অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করবে।
ভার্চুয়াল মেশিন (ভিএম) এর মত কন্টেইনার ব্যবহার করা এবং একটি একক পাত্রে একাধিক অ্যাপ্লিকেশন প্যাকেজ করা একটি সাধারণ ভুল। আপনার পাত্রের আকার বৃদ্ধি করার সময়, এই অভ্যাসের অন্যান্য খারাপ দিকও রয়েছে।
একটি ধারকটির আয়ুষ্কাল থাকবে বলে আশা করা হচ্ছে যা এটি যে অ্যাপ্লিকেশনটি চলছে তার সাথে ঘনিষ্ঠভাবে সম্পর্কিত। অ্যাপটি শুরু হলে ধারকটি শুরু হওয়া উচিত এবং অ্যাপটি শেষ হলে বন্ধ করা উচিত। কনটেইনার অর্কেস্ট্রেশন সমাধান যেমন ডকার এবং কুবারনেটস পাত্রের এই বৈশিষ্ট্যের উপর উল্লেখযোগ্যভাবে নির্ভর করে। যদি একটি ধারক অনেকগুলি অ্যাপ চালায়, অর্কেস্ট্রেশন সরঞ্জামগুলি আপনার অ্যাপ্লিকেশন সনাক্ত করতে এবং পুনরায় চালু করতে অক্ষম হবে!
চিত্রগুলি স্তরগুলির সমন্বয়ে গঠিত এবং আপনার ডকারফাইলের প্রতিটি নির্দেশ একটি নতুন স্তর যুক্ত করে। কনটেইনারাইজেশন প্রযুক্তি, যেমন ডকার, বিল্ড টাইম কাটানোর জন্য যেখানেই সম্ভব সেখানে পূর্বের বিল্ডগুলি থেকে স্তরগুলি পুনরায় ব্যবহার করার চেষ্টা করবে। একটি স্তরের জন্য ক্যাশে শুধুমাত্র তখনই ব্যবহার করা যেতে পারে যদি পূর্ববর্তী নির্মাণের পর অন্তর্নিহিত স্তরগুলির কোনটিই পরিবর্তিত না হয়।
ইমেজ বিল্ডিংয়ের গতি বাড়ানোর জন্য, আপনার ডকারফাইলের নীচে ঘন ঘন পরিবর্তন হতে পারে এমন নির্দেশাবলী অবস্থান করা উপকারী। এই পদ্ধতিটি ডকারকে তার ক্যাশিং সিস্টেমকে আরও কার্যকরভাবে ব্যবহার করতে সক্ষম করে। উদাহরণস্বরূপ, যেহেতু সোর্স কোড প্রায়শই ঘন ঘন পরিবর্তনের মধ্য দিয়ে যায়, তাই প্রক্রিয়ার শেষের দিকে এটিকে ছবিতে অনুলিপি করার পরামর্শ দেওয়া হয়।
যদিও এটি আপনার চিত্রগুলিকে হালকা করে না, এটি নির্মাণ প্রক্রিয়াটিকে দ্রুত চালায়!
প্রায়শই, কন্টেইনার চিত্রগুলিতে অপ্রয়োজনীয় সরঞ্জাম অন্তর্ভুক্ত থাকে, যা ইমেজ ব্লোট এবং সম্ভাব্য নিরাপত্তা দুর্বলতার দিকে পরিচালিত করে। উদাহরণস্বরূপ, netcat
এর মতো সরঞ্জামগুলি যদি অননুমোদিত অ্যাক্সেস লাভ করে তবে আপনার কন্টেইনারের মধ্যে দূষিত কার্যকলাপ চালাতে হ্যাকারদের দ্বারা ব্যবহার করা যেতে পারে।
আপনার কন্টেইনার ইমেজের সাথে পাঠানো হয় এমন টুলস এবং লাইব্রেরির সেটগুলিকে কঠোরভাবে রক্ষণাবেক্ষণ করা নিরাপত্তার হুমকি কমাতে উল্লেখযোগ্যভাবে সাহায্য করতে পারে এবং এর ফলে ছবি আরও পাতলা হবে। ছোট ছবি দ্রুত ডাউনলোড হয়, যার অর্থ কন্টেইনার দ্রুত শুরু হয়।
আমরা FROM নির্দেশনায় যে চিত্রটি উল্লেখ করি তাকে বেস ইমেজ বলা হয়। বেস ইমেজ তৈরি করা চূড়ান্ত চিত্রের আকারকে ব্যাপকভাবে নির্দেশ করে। আমাদের ছবির চূড়ান্ত আকার কমাতে সম্ভাব্য ক্ষুদ্রতম বেস ইমেজ ব্যবহার করার চেষ্টা করা উচিত।
যেখানেই সম্ভব আলপাইন ছবিগুলি ব্যবহার করার চেষ্টা করুন যেহেতু সেগুলি আকারে ছোট এবং প্রায়শই উন্নয়ন কার্যকলাপকে সমর্থন করার জন্য যথেষ্ট সরঞ্জাম থাকে৷
এমনকি যখন একটি ছোট ছবিতে আপনার প্রয়োজনীয় সমস্ত সরঞ্জাম থাকে না, তখনও এটি ব্যবহার করা একটি ভাল বিকল্প হতে পারে। লাইটার বেস ইমেজের উপরে আপনার প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করা এখনও ভারী ইমেজ ব্যবহার করে সংরক্ষণ প্রদান করতে পারে।
সোর্স কোড কপি করার সময়, অনেক অবাঞ্ছিত ফাইল এবং ফোল্ডারও কপি হয়ে যেতে পারে। এটি আপনার চিত্রের আকার বাড়ায় এবং শেষ পর্যন্ত ফুলে যায়। কপি করা ফাইলের পরিমাণ কমিয়ে আনার চেষ্টা করুন এবং সেগুলোকে সর্বনিম্ন রাখার চেষ্টা করুন।
কন্টেইনার ইমেজ অপ্টিমাইজ করা এবং সর্বোত্তম অনুশীলন প্রতিষ্ঠার তাত্পর্য আমাদের শিল্পে প্রায়ই উপেক্ষা করা হয়। যাইহোক, এই অভ্যাসগুলি মেনে চলা থেকে যে উল্লেখযোগ্য সুবিধাগুলি উদ্ভূত হয় তা বাড়াবাড়ি করা যায় না। বিকাশকারী হিসাবে, পাতলা এবং দ্রুত কন্টেইনার ইমেজ তৈরিতে ধারাবাহিকভাবে অগ্রাধিকার দেওয়া অপরিহার্য।
এর সাথে আমরা এই নিবন্ধের শেষ পর্যন্ত পৌঁছেছি। আশা করি আপনি এটি পড়া উপভোগ করেছেন!