গাইড

কীভাবে স্ট্যাটাস পেজ বানাবেন: কম্পোনেন্ট, ইনসিডেন্ট ও আপটাইম চেক

একটি স্ট্যাটাস পেজ এক জায়গায় আপনার ব্যবহারকারীদের জানায় আপনার সার্ভিস ঠিকমতো চলছে কিনা। এটি বানাতে আপনার দরকার কম্পোনেন্টের একটি তালিকা (ওয়েবসাইট, API, পেমেন্ট, ইমেইল ডেলিভারি), প্রতিটির বর্তমান অবস্থা, সময়সহ আপডেট দেওয়া ইনসিডেন্ট, আগের ইনসিডেন্টের ইতিহাস, এবং ঐচ্ছিকভাবে সাবস্ক্রিপশন, যাতে মানুষকে বারবার না দেখেই সমস্যার খবর জানানো যায়। পেজটি নিজে সহজ। গুরুত্বপূর্ণ সিদ্ধান্ত হলো এটি কোথায় চলবে: স্ট্যাটাস পেজকে আপনার অ্যাপ বন্ধ থাকলেও চালু থাকতে হবে, তাই এটি যে জিনিসের খবর দেয় তার সঙ্গে হোস্টিং, ডেটাবেস বা ডিপ্লয় পাইপলাইন শেয়ার করা উচিত নয়।

স্ট্যাটাস পেজ কেন দরকার

কিছু ভাঙলে ব্যবহারকারীরা তিনটি জিনিস জানতে চান: শুধু কি আমারই সমস্যা, আপনারা কি জানেন, আর কখন ঠিক হবে। একটি স্ট্যাটাস পেজ এই তিনটির উত্তর একসঙ্গে দেয়, সাপোর্টে ঝড় না তুলেই। সময়ের সঙ্গে এটি আস্থাও তৈরি করে, কারণ স্পষ্ট ইনসিডেন্ট ইতিহাস ও সৎভাবে লেখা ব্যাখ্যা দেখায় আপনি সমস্যা কীভাবে সামলান।

এটি চেঞ্জলগ নয়। নতুন ফিচারের খবর যায় চেঞ্জলগ পেজে; আউটেজ ও রক্ষণাবেক্ষণের খবর যায় এখানে।

পেজে যা লাগবে

ডেটা

টেবিলমূল ফিল্ড
কম্পোনেন্টনাম (ওয়েব অ্যাপ, API, পেমেন্ট, ইমেইল ডেলিভারি), বিবরণ, বর্তমান অবস্থা, প্রদর্শনের ক্রম, গ্রুপ
ইনসিডেন্টশিরোনাম, প্রভাব (সামান্য, বড়, গুরুতর), অবস্থা (তদন্ত চলছে, চিহ্নিত হয়েছে, পর্যবেক্ষণ চলছে, সমাধান হয়েছে), প্রভাবিত কম্পোনেন্ট, শুরুর সময়, সমাধানের সময়
ইনসিডেন্ট আপডেটইনসিডেন্ট, বার্তা, তখনকার অবস্থা, পোস্টের সময়, পোস্টকারী
রক্ষণাবেক্ষণের সময়শিরোনাম, প্রভাবিত কম্পোনেন্ট, নির্ধারিত শুরু ও শেষের সময়, বার্তা
সাবস্ক্রাইবারইমেইল, নিশ্চিত হয়েছে কিনা (হ্যাঁ/না), কোন কম্পোনেন্ট নিয়ে আগ্রহী, আনসাবস্ক্রাইব টোকেন

কম্পোনেন্টের অবস্থা সাধারণত একটি ছোট, নির্দিষ্ট তালিকা: চালু আছে, পারফরম্যান্স কমেছে, আংশিক আউটেজ, বড় আউটেজ, রক্ষণাবেক্ষণ চলছে।

পেজসমূহ

  • পাবলিক স্ট্যাটাস পেজ: একটি সামগ্রিক ব্যানার (“সব সিস্টেম চালু আছে” বা সবচেয়ে খারাপ বর্তমান অবস্থা), প্রতিটি কম্পোনেন্ট ও তার অবস্থা, কোনো চলমান ইনসিডেন্ট ও তার আপডেট, আসন্ন রক্ষণাবেক্ষণ, এবং চেক ডেটা থাকলে ৯০ দিনের ইতিহাসের একটি স্ট্রিপ।
  • ইনসিডেন্ট পেজ: একটি ইনসিডেন্টের সব আপডেটের পূর্ণ সময়রেখা, নিজের আলাদা URL সহ, যাতে সাপোর্ট সরাসরি লিংক দিতে পারে।
  • ইতিহাস: মাস অনুযায়ী আগের ইনসিডেন্ট।
  • সাবস্ক্রাইব: ইমেইল সাইন-আপ, নিশ্চিতকরণসহ এবং প্রতি কম্পোনেন্টের জন্য আলাদা পছন্দ।
  • অ্যাডমিন: নতুন ইনসিডেন্ট তৈরি, আপডেট পোস্ট, কম্পোনেন্টের অবস্থা বদলানো, রক্ষণাবেক্ষণের সময় ঠিক করা।

অনুমতি

পাবলিক সবকিছু দেখতে পারে যা প্রকাশিত হয়েছে। শুধু আপনার দল পোস্ট করতে পারে। সম্ভব হলে স্ট্যাটাস পেজের অ্যাডমিন লগইন আপনার মূল অ্যাপের লগইন সিস্টেম থেকে আলাদা রাখুন, যাতে আপনার অথেন্টিকেশন প্রোভাইডার বন্ধ হলে নিজের স্ট্যাটাস পেজ থেকেই আপনি আটকে না যান।

মূল সিদ্ধান্ত: এটিকে স্বাধীন রাখুন

ঘরে বানানো স্ট্যাটাস পেজ সাধারণত এখানেই ব্যর্থ হয়। যদি আপনার স্ট্যাটাস পেজ:

  • আপনার অ্যাপের একই সার্ভার বা হোস্টিং অ্যাকাউন্টে চলে,
  • একই ডেটাবেস থেকে পড়ে,
  • একই ডোমেইন সেটআপ বা CDN কনফিগারেশনের ভেতরে থাকে,
  • অথবা একই পাইপলাইন দিয়ে ডিপ্লয় হয়,

তাহলে অনেক আউটেজে সেটিও বন্ধ হয়ে যাবে, ঠিক যখন মানুষের এটি দরকার। ব্যবহারিক পদক্ষেপ:

  • আলাদা হোস্টিং। মূল অ্যাপ থেকে ভিন্ন প্রজেক্ট বা প্রদানকারী।
  • নিজস্ব সাবডোমেইন, যেমন status.example.com, DNS-এ আলাদাভাবে পয়েন্ট করা। দেখুন ডোমেইন ও DNS কীভাবে কাজ করে।
  • নিজস্ব ডেটা। ইনসিডেন্ট থাকবে স্ট্যাটাস পেজের নিজস্ব স্টোরেজে, আপনার অ্যাপের ডেটাবেসে নয়।
  • স্ট্যাটিক ফলব্যাক। কিছু দল পাবলিক পেজটি স্ট্যাটিক রাখে এবং প্রতিটি আপডেটে আবার বানায়, তাই ভাঙার মতো প্রায় কিছুই থাকে না।

হাতে আপডেট, নাকি স্বয়ংক্রিয় চেক

হাতে (শুরু এখান থেকে)

আপনার দল অ্যাডমিন পেজ থেকে ইনসিডেন্ট পোস্ট করে এবং কম্পোনেন্টের অবস্থা নিজে বদলায়। বাস্তবে অনেক স্ট্যাটাস পেজ এভাবেই চলে, কারণ মানুষের বিচার (“কিছু ধরনের কার্ডে পেমেন্ট ধীর হচ্ছে”) একটি স্বয়ংক্রিয় লাল বিন্দুর চেয়ে বেশি কাজের।

সমস্যা দ্রুত জানতে একটি বাইরের আপটাইম মনিটর ব্যবহার করুন, যা প্রতি মিনিট বা কাছাকাছি সময়ে আপনার অ্যাপ পরীক্ষা করে এবং ইমেইল, SMS বা চ্যাটে সতর্ক করে। অনেক মনিটরিং সার্ভিসের বিনামূল্যের স্তর আছে।

স্বয়ংক্রিয়

স্বয়ংক্রিয়তার মানে হলো নিয়মিতভাবে কিছু একটি প্রতিটি কম্পোনেন্ট পরীক্ষা করে এবং তার অবস্থা আপডেট করে। এর জন্য দরকার এমন কোড, যা নির্দিষ্ট সময়ে চলে এবং আপনার মূল অ্যাপের অবকাঠামোর বাইরে থেকে কাজ করে। দুটি সাধারণ ধরন:

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

স্বয়ংক্রিয় পরিবর্তন ধীর নেটওয়ার্কে অস্থির হতে পারে (উপরে, নিচে, আবার উপরে)। অবস্থা বদলানোর আগে দুই-তিনবার ব্যর্থতা দাবি করুন, আর বড় আউটেজ ঘোষণার আগে একজন মানুষকে নিশ্চিত করতে দিন।

ইনসিডেন্ট আপডেট লেখার নিয়ম

  • দ্রুত পোস্ট করুন। কয়েক মিনিটের মধ্যে “আমরা লগইন ব্যর্থতার রিপোর্ট নিয়ে তদন্ত করছি”, একঘণ্টা পরের নিখুঁত বার্তার চেয়ে ভালো।
  • ব্যবহারকারী যা লক্ষ্য করবে তা বলুন, ভেতরে কী ভাঙল তা নয়।
  • পরের আপডেটের সময়ের প্রতিশ্রুতি দিন, এবং সেটি রাখুন।
  • সমাধানের পর একটি ছোট সারাংশ দিন: কী হয়েছিল, কতক্ষণ লেগেছে, আপনি কী বদলাচ্ছেন।

কাজ করে এমন প্রথম প্রম্পট

আমাদের অ্যাপ Parcelio-র জন্য একটি আলাদা স্ট্যাণ্ডএলোন স্ট্যাটাস পেজ বানান, যা status.parcelio.com-এ আলাদাভাবে হোস্ট হবে। কম্পোনেন্ট: Website, Tracking API, Notifications, Payments; প্রতিটির অবস্থা হবে চালু আছে, পারফরম্যান্স কমেছে, আংশিক আউটেজ, বড় আউটেজ বা রক্ষণাবেক্ষণ চলছে। পাবলিক পেজে সবচেয়ে খারাপ বর্তমান অবস্থা দিয়ে একটি সামগ্রিক ব্যানার, প্রতিটি কম্পোনেন্ট ও তার অবস্থা, চলমান ইনসিডেন্ট সময়সহ আপডেট সহ (নতুনটি আগে), আসন্ন রক্ষণাবেক্ষণ, এবং মাস অনুযায়ী আগের ইনসিডেন্টের তালিকা দেখাবে। প্রতিটি ইনসিডেন্টের নিজস্ব পেজ থাকবে। একটি পাসওয়ার্ড-সুরক্ষিত অ্যাডমিন পেজ যোগ করুন, যেখানে ইনসিডেন্ট তৈরি (শিরোনাম, প্রভাব, প্রভাবিত কম্পোনেন্ট), আপডেট পোস্ট (বার্তা ও অবস্থা: তদন্ত চলছে, চিহ্নিত হয়েছে, পর্যবেক্ষণ চলছে, সমাধান হয়েছে), কম্পোনেন্টের অবস্থা বদলানো এবং রক্ষণাবেক্ষণের সময় ঠিক করা যাবে। একটি POST /api/check-result এন্ডপয়েন্ট যোগ করুন, যা বাইরের মনিটর থেকে একটি কম্পোনেন্টের নাম ও up/down নেবে, একটি গোপন টোকেন দিয়ে সুরক্ষিত থাকবে, এবং টানা তিনটি down হওয়ার পরেই কম্পোনেন্টকে পারফরম্যান্স কমেছে হিসেবে চিহ্নিত করবে। সবকিছু এই অ্যাপের নিজস্ব ডেটাবেসে রাখুন। সহজ, শান্ত ডিজাইন, যা ফোনে দ্রুত লোড হয়।

বিল্ড ধাপসমূহ

  1. পাবলিক পেজ ও হাতে ইনসিডেন্টসহ অ্যাডমিন। শুধু এটুকুই একটি কাজের স্ট্যাটাস পেজ।
  2. আলাদাভাবে হোস্ট করুন এবং একটি সাবডোমেইন পয়েন্ট করুন।
  3. ইনসিডেন্ট পেজ ও ইতিহাস।
  4. রক্ষণাবেক্ষণের সময়।
  5. সাবস্ক্রিপশন। ডাবল অপ্ট-ইন ইমেইল সাইন-আপ এবং নতুন ইনসিডেন্ট ও আপডেটের নোটিফিকেশন। ইমেইলের জন্য একটি প্রদানকারী লাগে; দেখুন অ্যাপ থেকে ইমেইল পাঠানোর উপায়।
  6. মনিটর ওয়েবহুক, যদি স্বয়ংক্রিয় স্ট্যাটাস পরিবর্তন চান।
  7. একটি মহড়া চালান। একটি নকল ইনসিডেন্ট তৈরি করুন, আপডেট দিন, সমাধান করুন, ইমেইল যাচাই করুন, তারপর সেটি মুছে ফেলুন।

সাধারণ ভুল

  • অ্যাপের সঙ্গে একসঙ্গে হোস্ট করা। সবচেয়ে বেশি দেখা যায় এবং সবচেয়ে গুরুতর ভুল।
  • এমন একটি পেজ যেটি সবসময় “সব সিস্টেম চালু আছে” দেখায়। সমস্যা কখনো না দেখালে মানুষ আস্থা হারায়।
  • সময় বা টাইম জোন না থাকা। সবসময় জোনসহ সময় দেখান।
  • অ্যাডমিন পেজের জন্য মূল অ্যাপের লগইনের ওপর নির্ভর করা।
  • আপডেটের মাঝখানে নীরবতা। “কোনো পরিবর্তন নেই, এখনও কাজ চলছে” একটি বৈধ আপডেট।
  • অস্থির স্বয়ংক্রিয় অবস্থা। পরিবর্তনের আগে বারবার ব্যর্থতা দাবি করুন।

কখন হোস্টেড স্ট্যাটাস পেজ সার্ভিস ভালো পছন্দ

হোস্টেড স্ট্যাটাস পেজ সার্ভিসগুলো স্বাধীনতার সমস্যাটি মাথায় রেখেই তৈরি: এরা আলাদা অবকাঠামোতে চলে, ইমেইল ও SMS দিয়ে সাবস্ক্রাইবারদের নোটিফিকেশন পাঠায়, এবং প্রায়ই মনিটরিং ও ইনসিডেন্ট টুলের সঙ্গে ইন্টিগ্রেশন থাকে। আপটাইম যদি আপনার গ্রাহকদের কেনা জিনিসের অংশ হয়, অথবা ইনসিডেন্ট জানানোর চুক্তিগত বাধ্যবাধকতা থাকে, তাহলে আলাদা সার্ভিসই সাধারণত লাভজনক। ছোট দলের জন্য অনেকেরই বিনামূল্যের বা সস্তা স্তর আছে, তাই বানানোর আগে দেখে নিন।

নিজে বানান যখন ডিজাইন ও শব্দচয়ন পুরোপুরি নিজের নিয়ন্ত্রণে চান, আপনার প্রয়োজন সহজ (কয়েকটি কম্পোনেন্ট, হাতে আপডেট), অথবা স্ট্যাটাস পেজ অন্যদের জন্য তৈরি করা কোনো পণ্যের অংশ।

Mythex দিয়ে বানানো

Mythex-এ আপনি স্ট্যাটাস পেজটি নিজের আলাদা প্রজেক্ট হিসেবে বানাতে পারেন, মূল অ্যাপ থেকে আলাদা, তাই আলাদা হোস্টিং ও নিজস্ব ডেটাবেস পাবেন। চ্যাটে বর্ণনা দিন, লাইভ প্রিভিউতে দেখে নিন, তারপর প্রকাশ করে status.yourdomain.com-এর মতো একটি সাবডোমেইন যুক্ত করুন (কাস্টম ডোমেইন Pro-তে পাওয়া যায়)। মনে রাখবেন, প্রকাশিত Mythex অ্যাপ ও তাদের ডেটাবেস নিষ্ক্রিয় থাকলে ঘুমিয়ে যায় এবং পরের ভিজিটে জেগে ওঠে, তাই শান্ত সময়ের পরের প্রথম লোড একটু ধীর হতে পারে; একটি সহজ, হালকা পেজ এতে সাহায্য করে।

Mythex-এ স্ট্যাটাস পেজ-সংক্রান্ত শিডিউল করা জব নথিভুক্ত নেই, তাই স্বয়ংক্রিয় চেকের জন্য একটি বাইরের আপটাইম মনিটর ব্যবহার করুন, যা আপনার স্ট্যাটাস পেজের একটি ওয়েবহুক এন্ডপয়েন্ট ডাকে (ওয়েবহুক রেসিপি দেখুন)। সাবস্ক্রাইবারদের ইমেইল আপনার নিজের প্রদানকারীর মাধ্যমে যায়, কী প্রজেক্ট সিক্রেট হিসেবে সংরক্ষিত (ইমেইল পাঠানোর রেসিপি)।

প্রশ্নোত্তর

স্ট্যাটাস পেজ কী?

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

আমার স্ট্যাটাস পেজ কি আমার অ্যাপের সঙ্গে একই জায়গায় হোস্ট করা উচিত?

না। যদি এটি আপনার অ্যাপের হোস্টিং, ডোমেইন সেটআপ বা ডেটাবেস শেয়ার করে, তাহলে যে আউটেজের খবর দেওয়ার কথা, সেই আউটেজেই এটিও বন্ধ হয়ে যেতে পারে। আলাদাভাবে হোস্ট করুন, যেমন status.yourdomain.com এর মতো একটি সাবডোমেইনে।

স্বয়ংক্রিয় মনিটরিং কি লাগবে?

এটি সাহায্য করে, কিন্তু শুরু করতে বাধ্যতামূলক নয়। অনেক ছোট দল হাতে ইনসিডেন্ট পোস্ট করে এবং নিজেদের সতর্ক করতে একটি বাইরের আপটাইম মনিটর ব্যবহার করে। স্বয়ংক্রিয় স্ট্যাটাস পরিবর্তন পরে যোগ করা যায়।

একটি ইনসিডেন্ট আপডেটে কী লেখা উচিত?

কী প্রভাবিত হচ্ছে, ব্যবহারকারীরা কী লক্ষ্য করবেন, আপনি কী করছেন এবং পরের আপডেট কখন আসবে। ছোট, সহজ ও সময়সহ লিখুন, এমনকি আপডেটটি যদি শুধু “এখনও তদন্ত চলছে” হয়।

Mythex · Pricing · AI দিয়ে যা খুশি বানান · ওয়েবসাইট ও অ্যাপের টেমপ্লেট · Mythex-এর তুলনা · AI অ্যাপ তৈরির শব্দকোষ · AI অ্যাপ তৈরির বিনামূল্যের টুল · English

English አማርኛ العربية Български Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)