প্রকল্প সম্পর্কে
Firecracker হলো একটি ওপেন-সোর্স ভার্চুয়ালাইজেশন প্রযুক্তি যা সার্ভারলেস অপারেশনাল মডেলের সাথে সুরক্ষিত, মাল্টি-টেন্যান্ট কনটেইনার এবং ফাংশন-ভিত্তিক পরিষেবা তৈরি ও পরিচালনার জন্য বিশেষভাবে তৈরি করা হয়েছে। এটি মাইক্রোভিএম নামক লাইটওয়েট ভার্চুয়াল মেশিনে ওয়ার্কলোড পরিচালনা করে, যার লক্ষ্য হলো হার্ডওয়্যার ভার্চুয়ালাইজেশনের নিরাপত্তা ও পৃথকীকরণ এবং কনটেইনারের গতি ও নমনীয়তার সমন্বয় ঘটানো।
মূল উপাদানটি হলো লিনাক্স কার্নেল ভার্চুয়াল মেশিন (KVM)-এর উপর নির্মিত একটি ভার্চুয়াল মেশিন মনিটর (VMM)। এর নকশা ইচ্ছাকৃতভাবে মিনিমালিস্টিক: এটি অপ্রয়োজনীয় ডিভাইস এবং গেস্ট-ফেসিং ফাংশনালিটি বাদ দেয় যাতে মেমরি ফুটপ্রিন্ট এবং আক্রমণের পৃষ্ঠতল কমানো যায়, যা প্রকল্পটি জানায় যে নিরাপত্তা উন্নত করে, স্টার্টআপ সময় হ্রাস করে এবং হার্ডওয়্যার ব্যবহার বৃদ্ধি করে। Firecracker অ্যামাজন ওয়েব সার্ভিসেসে (AWS) AWS Lambda এবং AWS Fargate-এর মতো পরিষেবাগুলিকে সমর্থন করার জন্য তৈরি করা হয়েছিল এবং এটি Apache 2.0 লাইসেন্সের অধীনে প্রকাশিত। এটি Kata Containers এবং Flintlock-এর মতো কনটেইনার রানটাইমগুলিতেও অন্তর্ভুক্ত করা হয়েছে।
একবার চালু হলে, Firecracker OpenAPI ফরম্যাটে নির্দিষ্ট করা একটি API এন্ডপয়েন্ট হোস্টের কাছে প্রকাশ করে। এই API-এর মাধ্যমে ব্যবহারকারীরা একটি মাইক্রোভিএমের vCPU সংখ্যা (ডিফল্ট 1) এবং মেমরি সাইজ (ডিফল্ট 128 MiB) কনফিগার করতে পারে, CPU টেমপ্লেট প্রয়োগ করতে পারে, নেটওয়ার্ক ইন্টারফেস সংযুক্ত করতে পারে, রিড-রাইট বা রিড-অনলি ফাইল-ব্যাকড ব্লক ডিভাইস যোগ করতে পারে, গেস্ট চালু থাকা অবস্থায় ব্লক ডিভাইস রিস্ক্যান ট্রিগার করতে পারে, বুটের আগে বা পরে একটি ব্লক ডিভাইসের ব্যাকিং ফাইল পরিবর্তন করতে পারে, virtio ডিভাইসের জন্য রেট লিমিটার কনফিগার করতে পারে, লগিং এবং মেট্রিক্স সেটআপ করতে পারে, vsock, এনট্রপি এবং pmem ডিভাইস যোগ করতে পারে, মেমরি হটপ্লাগিং পরিচালনা করতে পারে এবং (ডেভেলপার প্রিভিউতে) virtio PCI ডিভাইস হট-প্লাগ বা হট-আনপ্লাগ করতে পারে। একটি মাইক্রোভিএম একটি কার্নেল ইমেজ, রুট ফাইল সিস্টেম এবং বুট আর্গুমেন্ট দিয়ে শুরু করা হয়; শুধুমাত্র x86_64-এ থামানো সমর্থিত। বিল্ট-ইন ক্ষমতার মধ্যে রয়েছে ডিমান্ড ফল্ট পেজিং, ডিফল্টভাবে CPU ওভারসাবস্ক্রিপশন, থ্রেড-নির্দিষ্ট seccomp ফিল্টার এবং একটি Jailer প্রসেস যা প্রোডাকশন ডিপ্লয়মেন্টের জন্য cgroup/namespace পৃথকীকরণ প্রয়োগ করে এবং বিশেষাধিকার হ্রাস করে।
শুরু করা সম্ভব রিলিজ বাইনারি ডাউনলোড করে বা সোর্স থেকে বিল্ড করে। বিল্ড করার জন্য Docker এবং bash সহ একটি Unix/Linux সিস্টেম প্রয়োজন; প্রকল্পটি একটি ডেভেলপমেন্ট কনটেইনার এবং একটি devtool বিল্ড কমান্ড প্রদান করে, যার বাইনারি build/cargo_target-এর অধীনে স্থাপন করা হয়। ডকুমেন্টেশনে একটি কুইকস্টার্ট গাইড, প্রোডাকশন হোস্ট সেটআপ, নকশা, API রিকোয়েস্ট, CPU টেমপ্লেট, vsock, এনট্রপি, pmem, মেমরি হটপ্লাগ, ডিভাইস হটপ্লাগ এবং জেইলার ব্যবহার অন্তর্ভুক্ত রয়েছে। রিলিজগুলি GitHub-এ প্রায় প্রতি দুই থেকে তিন মাসে একটি চেঞ্জলগ এবং একটি নথিভুক্ত রিলিজ নীতিসহ প্রকাশিত হয়।
প্রকল্পটি Intel, AMD এবং Graviton পরিবারের AWS EC2 মেটাল ইনস্ট্যান্স জুড়ে একটি পরীক্ষিত-প্ল্যাটফর্ম ম্যাট্রিক্স প্রকাশ করে যা বিভিন্ন হোস্ট কার্নেল, গেস্ট রুটফস এবং গেস্ট কার্নেল সমর্থন করে। একটি পরিচিত সীমাবদ্ধতা হলো যে aarch64-এ pl031 RTC ডিভাইস ইন্টারাপ্ট সমর্থন করে না, তাই RTC অ্যালার্মের উপর নির্ভরশীল গেস্ট প্রোগ্রাম (যেমন hwclock) কাজ করবে না। পারফরম্যান্স বৈশিষ্ট্যগুলি একটি স্পেসিফিকেশন ফাইলে নথিভুক্ত করা হয়েছে এবং ক্রমাগত ইন্টিগ্রেশন পরীক্ষার মাধ্যমে বলবৎ করা হয়। নিরাপত্তা গোপনীয়তা প্রকল্পের নিরাপত্তা নীতি অনুযায়ী ব্যক্তিগতভাবে পরিচালনা করা হয় এবং সম্প্রদায়ের সাথে যোগাযোগ Slack, GitHub ইস্যু এবং ইমেইলের মাধ্যমে উপলব্ধ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.