Stateless Web Tier (স্টেটলেস ওয়েব টিয়ার)
Web Tier স্কেল করার জন্য, আমাদের Web Layer থেকে State সরিয়ে ফেলতে হবে। ভালো অনুশীলন হলো Session data (অর্থাৎ ব্যবহারকারীর তথ্য) ওয়েব টিয়ারের বাইরে রাখা — যেমন Relational Database বা NoSQL-এ।
তাহলে প্রতিটি Web Server যেকোনো HTTP Request নিতে পারবে, কারণ State Database-এ থাকে।
Stateful Architecture (স্টেটফুল আর্কিটেকচার)
Stateful Server মনে রাখে Client এর State (session data) request-এর মধ্যে।
চিত্র ১২ (Figure 12) — Stateful Architecture: User A, B, C সবাই সব Web Server ব্যবহার করতে পারে, কারণ State Shared Storage-এ থাকে।
সমস্যা কী?
- User A কে সবসময় Server 1-এ পাঠাতে হয় কারণ User A-এর session data সেখানে আছে।
- যদি Server 1 বন্ধ হয়, User A-এর session data হারিয়ে যাবে।
- নতুন সার্ভার যোগ করা কঠিন হয়ে পড়ে।
এই সমস্যাগুলো সমাধান করে Stateless Architecture।
Stateless Architecture (স্টেটলেস আর্কিটেকচার)
Stateless Server-এর মধ্যে কোনো State থাকে না। HTTP request যেকোনো Web Server-এ পাঠানো যায়। State আলাদা Shared Data Store-এ রাখা হয়।
চিত্র ১৩ (Figure 13) — Stateless Architecture: User → Load Balancer → Web Servers → Shared Database / Cache / NoSQL। State-কে Web Tier থেকে সম্পূর্ণ বের করে নেওয়া হয়েছে।
Stateless Architecture-এর সুবিধা
| বিষয় | Stateful | Stateless |
|---|---|---|
| Session Storage | Web Server-এ | External Store-এ |
| Horizontal Scaling | কঠিন | সহজ |
| Failover | সমস্যাযুক্ত | মসৃণ |
| নতুন সার্ভার যোগ | জটিল | সহজ |
Stateless Architecture সিস্টেমকে সহজে স্কেল করতে, নতুন সার্ভার যোগ করতে এবং failover সামলাতে সক্ষম করে তোলে। এটিই আধুনিক বড় সিস্টেমের ভিত্তি।