প্রকল্প সম্পর্কে

Zyvor Fabric হলো সাধারণ লিনাক্স সার্ভারে KVM-এর উপর ভিত্তি করে তৈরি প্রাইভেট ক্লাউডের জন্য একটি সেলফ-হোস্টেড কন্ট্রোল প্লেন। এটি API, অথেন্টিকেশন, নেটওয়ার্কিং, স্টোরেজ এবং মনিটরিংকে একটি একক Rust ডেমোন, zyvor-fabricd-এর মধ্যে প্যাকেজ করে। VM এক্সিকিউশন নিজেই বাস্তবায়নের পরিবর্তে, এটি দুটি সহযোগী প্রজেক্টের উপর অর্কেস্ট্রেশন এবং UX লেয়ার হিসেবে কাজ করে: FluxVM (VM ইঞ্জিন, যা 127.0.0.1:7788-এ REST-এর মাধ্যমে অ্যাক্সেস করা হয়) এবং GuestKit (প্রথম বুটের আগে অফলাইন ডিস্ক ইন্সপেকশন এবং কাস্টমাইজেশনের জন্য ব্যবহৃত)। ইন্টারফেস এবং অটোমেশন একই ডেমোন চারটি ফার্স্ট-ক্লাস ফ্রন্ট এন্ড পরিচালনা করে: zyvorctl কমান্ড-লাইন টুল, API-এর সাথে পরিবেশিত একটি ওয়েব কনসোল (ডিফল্ট পোর্ট ৯০৯৫), একটি Kubernetes অপারেটর যা একটি রানিং fabricd ইনস্ট্যান্সের বিপরীতে VirtualMachine কাস্টম রিসোর্সগুলোকে রিকনসাইল করে এবং একটি Terraform প্রোভাইডার। এর সাথে Ansible কন্টেন্ট এবং একটি "Fabric Doctor" প্রিফ্লাইট টুলও অন্তর্ভুক্ত রয়েছে। ডিক্লারেটিভ VM ডেফিনিশনগুলো zyvorctl apply -f এর মাধ্যমে প্রয়োগ করা যায় এবং VM তৈরির ক্ষেত্রে ঐচ্ছিক টেন্যান্ট স্কোপিং সমর্থন করে। README-তে উল্লেখ করা হয়েছে যে, ডেমোনটি ৪৮০টির বেশি REST এন্ডপয়েন্ট এবং তিনটি WebSocket চ্যানেল এক্সপোজ করে এবং এতে প্রায় ৪৮টি Rust ক্রেট এবং Rust ও TypeScript মিলিয়ে প্রায় ৮৭ হাজার লাইন কোড রয়েছে। নিরাপত্তা এবং মাল্টি-টেন্যান্সি অথেন্টিকেশনের জন্য JWT ব্যবহৃত হয়, যেখানে টেন্যান্ট ক্লেইমগুলো লিস্ট, গেট এবং মিউটেট অপারেশনগুলোকে স্কোপ করে। প্রজেক্টটিতে RBAC রোল, অডিট এক্সপোর্ট এবং এনক্রিপশন অ্যাট রেস্ট-এর তালিকা রয়েছে এবং OIDC/SSO ও SCIM আইডেন্টিটি ইন্টিগ্রেশন এবং ক্লায়েন্ট টিউটোরিয়ালসহ একটি OpenStack কম্প্যাটিবিলিটি লেয়ার নথিভুক্ত করা হয়েছে। নেটওয়ার্কিং README-তে দুটি পলিসি প্লেনের মধ্যে পার্থক্য করা হয়েছে যা গুলিয়ে ফেলা উচিত নয়: Fabric SDN (লেবেল-চালিত nftables হোস্ট আইসোলেশন, যা /api/network-policies এর মাধ্যমে পরিচালিত হয়) এবং VM-edge Network Fabric ডেটাপ্লেন, যা প্রতিটি VM-এর হোস্ট-সাইড ইন্টারফেসে TC/eBPF প্রোগ্রাম যুক্ত করে। এজ ডেটাপ্লেনটি প্রতি-VM IPv4/IPv6 CIDR অ্যালাউলিস্ট (LPM ম্যাপ), L4 প্রোটোকল/পোর্ট এনফোর্সমেন্ট, Mbps/PPS রেট লিমিট এবং প্রতি-VM স্ট্যাটিস্টিকস ও LRU ফ্লো রেকর্ড সমর্থন করে, যা /api/vms/{name}/dataplane/{status,policy,stats,flows} এবং সংশ্লিষ্ট zyvorctl dataplane সাবকমান্ডের মাধ্যমে পড়া এবং লেখা যায়। পলিসি আপডেটগুলোকে ইন-প্লেস BPF ম্যাপ রিরাইট হিসেবে বর্ণনা করা হয়েছে, যেখানে রিকনফিগারেশনের সময় কোনো allow-all গ্যাপের পরিবর্তে একটি সংক্ষিপ্ত over-deny উইন্ডো নথিভুক্ত করা হয়েছে। তিনটি মোড নথিভুক্ত করা হয়েছে: শুধুমাত্র লেগাসি nftables, VM এজে eBPF এবং একটি Cilium কো-এক্সিস্টেন্স মোড। একটি পৃথক Service Fabric লেয়ার Maglev VIP লোড ব্যালেন্সিং এবং সংশ্লিষ্ট সুবিধা প্রদান করে। ডিউরেবল পলিসি /var/lib/fluxvm/network-policy-এ থাকে এবং পিনড প্রোগ্রাম ও ম্যাপগুলো /sys/fs/bpf/fluxvm-এর অধীনে থাকে। GPU এবং অনুরূপ ডিভাইসের জন্য জেনেরিক PCI/VFIO পাসথ্রু REST API-এর মাধ্যমে এক্সপোজ করা হয়েছে। ডেপ্লয়মেন্ট চারটি নথিভুক্ত পথ রয়েছে: systemd বা হেল্পার স্ক্রিপ্টসহ সরাসরি বাইনারির মাধ্যমে বেয়ার মেটাল (এক-কমান্ড "ship" ফ্লো সহ), /dev/kvm এবং হোস্ট নেটওয়ার্কিং সহ লোকাল ইভালুয়েশনের জন্য Docker/Podman Compose, প্রিভিলেজড hostNetwork DaemonSets এবং Helm চার্ট ও একটি রিমোট k3s ল্যাব স্ক্রিপ্ট ব্যবহার করে Kubernetes, এবং বিদ্যমান ডেমোনের বিপরীতে GitOps ওয়ার্কফ্লোর জন্য অপারেটর-অনলি মোড। Kubernetes-এর প্রয়োজনীয়তার মধ্যে রয়েছে নোডগুলোতে /dev/kvm, একটি প্রিভিলেজড পড সিকিউরিটি লেভেল এবং বিল্ড হোস্টের উপর একটি রুটফুল কন্টেইনার ইঞ্জিন। অ্যাডমিন ক্রেডেনশিয়ালগুলো ডেপ্লয়মেন্টের সময় জেনারেট করা হয় এবং ডিস্ক থেকে অথবা zyvor-fabric-secrets Kubernetes Secret থেকে উদ্ধার করা যায়, এবং এগুলো সেট বা রিসেট করার জন্য এনভায়রনমেন্ট ভেরিয়েবল উপলব্ধ রয়েছে। মূল্যায়নের জন্য নোট README-তে তুলনামূলক উপাদান রয়েছে যেখানে দাবি করা হয়েছে যে VM-এজ পলিসির ক্ষেত্রে প্রজেক্টটির পদ্ধতি libvirt/nftables, শেয়ারড-ব্রিজ ফায়ারওয়ালিং, QEMU ইউজার-মোড NAT এবং সাধারণ microVM-plus-CNI সেটআপের চেয়ে এগিয়ে; এগুলো মেইনটেইনারদের নিজস্ব দাবি এবং উদ্ধৃত বেশ কিছু পারফরম্যান্স ফিগার (যেমন পলিসি-আপডেট ল্যাটেন্সি) ল্যাব পরিমাপ হিসেবে বর্ণনা করা হয়েছে। ইন-রেপো প্রাথমিক ডকুমেন্টেশন সেটে কুইক স্টার্ট, Kubernetes, Docker, আর্কিটেকচার, নেটওয়ার্কিং, ওয়েব UX, হোস্ট লাইফসাইকেল, গভর্ন্যান্স এবং সিকিউরিটি পলিসি কভার করা হয়েছে। লাইসেন্সিং হলো Apache-2.0।