# Fully Booked - শূন্য ডাউনটাইমে সেলফ হোস্টেড কুবারনেটিসে মাইগ্রেশন

Company: Fully Booked
Service: ডেভঅপস ইঞ্জিনিয়ারিং
Period: 2026-05 - 2026-06
Tech: Kubernetes, Docker, Cloudflare, Terraform, CI/CD, Linux, Node.js, PostgreSQL
Web: https://fully-booked.uk
Canonical: https://webanion.com/bn/portfolio/fully-booked-zero-downtime-migration-to-self-hosted-kubernetes

Fully Booked চলত ম্যানেজড ক্লাউড অবকাঠামোয়, যার বিল প্রতি মাসে বাড়ত আর পুরো স্ট্যাকের মালিকানা কারও হাতে ছিল না। আমরা পুরো প্ল্যাটফর্মটি সেলফ হোস্টেড কুবারনেটিস ক্লাস্টারে সরিয়ে এনেছি, ব্যবহারকারীদের জন্য এক মিনিটও ডাউনটাইম ছাড়া। কাটওভারে ছিল DNS, ইনগ্রেস, ডেটাবেস এবং রিলিজ পাইপলাইন, এমনভাবে সাজানো যে প্রতিটি স্তর নতুন ক্লাস্টারে প্রমাণিত হওয়ার পরেই ট্রাফিক সরানো হয়েছে। সেই সপ্তাহে অ্যাপ ব্যবহারকারী কেউ টের পাননি কিছু ঘটেছে, আর সেটাই ছিল উদ্দেশ্য। মাসিক বিল হয়ে গেল নিজস্ব হার্ডওয়্যার, এবং এখন সেই ক্লাস্টারই প্ল্যাটফর্মের সাপ্তাহিক রিলিজ বহন করে।

## পুরো গল্পটা

বাড়তে থাকা ক্লাউড বিল থেকে নিজস্ব হার্ডওয়্যারে, রেকর্ডকৃত শূন্য ডাউনটাইমসহ। মাইগ্রেশনটি কীভাবে সাজানো, প্রমাণিত ও ফ্লিপ করা হলো, তারই গল্প এটি।

### এক বিল যা কেবল বাড়ে, এক স্ট্যাক যার মালিক কেউ নয়

<p>Fully Booked চলছিল DigitalOcean-এর সেই ড্রপলেটগুলোতে, যেগুলোকে সে ছাড়িয়ে গিয়েছিল: ভাড়া করা অবকাঠামোয় দিনে প্রায় হাজারখানেক মানুষ, স্কেলিংয়ের প্রতিটি সিদ্ধান্তের দাম ঠিক করে ভেন্ডর, আর মাসিক বিল চলে কেবল এক দিকেই। চাওয়াটা বলা সহজ, করা কঠিন। পুরো প্ল্যাটফর্মকে ব্যবসার নিজের হার্ডওয়্যারে নিয়ে যাও, এবং অ্যাপ ব্যবহারকারী কেউ যেন টেরও না পায় যে কিছু বদলেছে।</p>

### আগে প্যারিটি, তারপর ট্রাফিক

<p>মাইগ্রেশনটি এমনভাবে সাজানো হয়েছিল যেন ট্রাফিক সরার আগে আস্থা অর্জিত হয়। নিজস্ব হার্ডওয়্যারে দাঁড়াল মাল্টি-নোড k3s ক্লাস্টার, UFW আর fail2ban দিয়ে শক্ত করা, আর প্রতিটি সার্ভিস কন্টেইনারাইজ করা হলো যেন দুই অবকাঠামোতেই হুবহু একইভাবে চলে। সার্টিফিকেট, নিয়মিত ব্যাকআপ আর মনিটরিং সুইচের আগেই জায়গায় ছিল, পরে জোড়া লাগানো নয়। তারপরই ট্রাফিক সরতে শুরু করল, একেকটি সারফেস ধরে, প্রতিটি ধাপে তাৎক্ষণিক রোলব্যাক হাতে রেখে।</p>

### কাটওভার মানে এক প্রক্সি ফ্লিপ

<p>DNS, ক্যাশিং আর TLS-এর জন্য Cloudflare আগে থেকেই প্ল্যাটফর্মের সামনে ছিল, আর শেষ ধাপটি শান্ত হওয়ার কারণ সেটিই: কাটওভার ছিল DNS-এর জুয়া নয়, এক প্রক্সি ফ্লিপ। এজের পেছনে ক্লাস্টার চালায় একটি কন্ট্রোল প্লেন আর ওয়ার্কার নোডগুলো, যেখানে পোর্টাল, অ্যাডমিন, ব্যাকএন্ড আর জব পডগুলো চলে, সঙ্গে মনিটরিং নজর রাখে আর ব্যাকআপ চলে নির্ধারিত সূচিতে। ডায়াগ্রামে কোনো IP বা হোস্টনেম নেই, কারণ সিস্টেমের আকৃতিই তার গোপন তথ্য নয়।</p>

### শূন্য ডাউনটাইম, মেপে দেখা

<p>কাটওভার জুড়ে রেকর্ড হলো শূন্য ডাউনটাইম, আর সেই সপ্তাহে অ্যাপ ব্যবহার করা কেউ জানতেই পারল না কিছু ঘটেছে, যা ছিল পুরো উদ্দেশ্যটাই। পুনরাবৃত্ত ক্লাউড বিল হয়ে গেল নিজস্ব অবকাঠামো, DNS থেকে ডিস্ক পর্যন্ত প্রতিটি স্তর এখন ক্লায়েন্টের নিয়ন্ত্রণে, আর সেই একই ক্লাস্টার এখন বহন করে প্ল্যাটফর্মের সাপ্তাহিক রিলিজ। এই যাত্রা যে প্ল্যাটফর্মকে বহন করল, তার গল্প আছে <a href="/portfolio/fully-booked-all-in-one-smart-booking-solution">Fully Booked-এর গল্পে</a>।</p>
