Tweens এবং কিশোর-কিশোরীদের মধ্যে Snapchat সুপরিচিত। আপনি সম্ভবত 25 এর উপরে আছেন যদি আপনি এটি কীভাবে কাজ করে তা বুঝতে না পারেন। স্ন্যাপচ্যাট, সবচেয়ে জনপ্রিয় সোশ্যাল মিডিয়া অ্যাপ্লিকেশানগুলির মধ্যে একটি, বাচ্চাদের এবং কিশোর-কিশোরীদের তারা যা চায় ঠিক তা প্রদান করে: সাধারণ ঘটনাগুলি ভাগ করে নেওয়ার একটি সহজ পদ্ধতি এবং তাদের দুর্দান্ত দেখায়৷
Facebook এবং Twitter এর বিপরীতে, যা আপনি যা কিছু করেন তা রেকর্ড করে এবং প্রকাশ করে, Snapchat এমন বার্তা ব্যবহার করে যেগুলি অদৃশ্য হয়ে যাওয়ার কথা (দেখুন কীভাবে তারা হয় না)।
স্ন্যাপচ্যাট সম্পর্কে অনেক কিছু রয়েছে এবং আপনি যদি একজন বিকাশকারী হন তবে এটি আরও বেশি। সুতরাং, এই পোস্টটি আপনাকে স্ন্যাপচ্যাটের একটি উচ্চ-স্তরের ভিউ দেবে ব্যবস্থা পরিকল্পনা এবং আরো অনেক অন্তর্দৃষ্টি।
ভূমিকা
Snapchat একটি US-ভিত্তিক সামাজিক যোগাযোগ অ্যাপ যা ব্যবহারকারীদের অবিলম্বে সংযোগ করতে, ছবি শেয়ার করতে এবং আরও অনেক কিছু করতে দেয়।
- বার্তা এবং ছবি (বা স্ন্যাপ) এর 24-ঘন্টার সময়সীমা রয়েছে। লোকেদের তাদের গল্প গোষ্ঠীতে ভাগ করতে উত্সাহিত করে।
- স্ন্যাপ ম্যাপ ব্যবহারকারীদের একটি মানচিত্রে দেখতে দেয় যেখানে তাদের বন্ধুরা আছে৷
- স্মৃতি ব্যবহারকারীদের এক বছর পরে সেভ করা বা শেয়ার করা ফটোগুলির কথা মনে করিয়ে দেয়।
- স্ন্যাপচ্যাট তরুণ প্রজন্ম, বিশেষ করে কিশোর-কিশোরীদের কাছে অত্যন্ত জনপ্রিয়। অ্যাপটিতে 319 মিলিয়ন সক্রিয় ব্যবহারকারী রয়েছে এবং প্রতিদিন 5.4 বিলিয়ন স্ন্যাপ পাঠানো হয়।
গুরুত্বপূর্ণ ডিজাইনের শর্তাবলী
মনোলিথিক আর্কিটেকচার - একটি একক-স্তরযুক্ত অ্যাপ্লিকেশন যা অন্যান্য অ্যাপ্লিকেশনগুলির থেকে স্বাধীনভাবে কাজ করে একটি মনোলিথ (একশিলা স্থাপত্য) হিসাবে পরিচিত। একটি মনোলিথ একটি টাস্ক সম্পূর্ণ করার জন্য প্রয়োজনীয় সমস্ত ক্রিয়াকলাপ সম্পাদন এবং পরিচালনা করার জন্য ডিজাইন করা হয়েছে। অ্যাপ্লিকেশনটি শুরু থেকে শেষ পর্যন্ত সমস্ত কার্য সম্পাদন করে।
মাইক্রো সার্ভিস - এটি মনোলিথের বিপরীত মেরু। মাইক্রো সার্ভিস একটি স্থাপত্য পদ্ধতি যা পরিষেবার সংগ্রহ হিসাবে একটি অ্যাপ্লিকেশন সংগঠিত করে। এই পরিষেবাগুলি একটি অ্যাপ্লিকেশনের অনেক দিক নিয়ন্ত্রণ করতে ব্যবহৃত হয়। একজন গ্রাহক একটি অর্ডার দেয়, একজন ওয়েটার এটি নেয় এবং বিতরণ করে এবং একজন শেফ এটি প্রস্তুত করে। এই উদাহরণে, প্রতিটি উপাদান অন্যদের থেকে স্বাধীনভাবে এবং আলাদাভাবে কাজ করে; অন্যরা ঠিক কী করছে তা কেউ জানে না এবং একই তথ্যে কারও অ্যাক্সেস নেই৷
তাদেরকে JSON: এটি একটি পাঠ্য-ভিত্তিক বিন্যাস যা জাভাস্ক্রিপ্ট অবজেক্ট, লিটারেল, অ্যারে এবং ডেটা প্রদর্শন করতে ব্যবহার করা যেতে পারে। এই টেক্সট-ভিত্তিক বিন্যাসটি পড়তে এবং লিখতে সহজ এবং সেইসাথে সফ্টওয়্যার দ্বারা হজমযোগ্য হওয়ার উদ্দেশ্যে তৈরি করা হয়েছে। JSON সাধারণত সার্ভার এবং অনলাইন অ্যাপ্লিকেশনের মধ্যে ডেটা এবং তথ্য স্থানান্তর করতে ব্যবহৃত হয়।
অর্কেস্ট্রারচনা: অনেক অপারেশন স্বয়ংক্রিয় করার কৌশল অর্কেস্ট্রেশন নামে পরিচিত। এই কাজগুলির মধ্যে রয়েছে কম্পিউটার সিস্টেম এবং সফ্টওয়্যার কনফিগারেশন, সমন্বয় এবং প্রশাসন।
প্রক্সি: একটি প্রক্সি একটি ক্লায়েন্ট একটি সম্পদ খুঁজছেন এবং এটি প্রদানকারী সার্ভারের মধ্যে একটি যান হিসাবে কাজ করে।
জাল: একটি পরিষেবা জাল হল একটি সফ্টওয়্যার আর্কিটেকচার প্যাটার্ন যা প্রক্সির মাধ্যমে পরিষেবাগুলির মধ্যে নিয়ন্ত্রিত, পর্যবেক্ষণযোগ্য এবং নিরাপদ যোগাযোগের অনুমতি দেওয়ার জন্য একটি অবকাঠামো স্তরে একটি স্তর যুক্ত করে৷
উচ্চ-স্তরের নকশা
মনোলিথিক সমস্যা
স্ন্যাপচ্যাট গুগল অ্যাপ ইঞ্জিনের উপর ভিত্তি করে একটি ক্লাউড-ভিত্তিক মনোলিথ হিসাবে উদ্ভূত হয়েছে। যাইহোক, যেহেতু প্রোগ্রামটি জনপ্রিয়তা বৃদ্ধি পেয়েছে এবং আরও বেশি ব্যবহারকারী এবং ডেটা অর্জন করেছে, স্কেলেবিলিটি একটি সমস্যা হয়ে উঠেছে।
উপরন্তু, মনোলিথের মধ্যে একটি বিশাল বিস্ফোরণ ব্যাসার্ধের সাথে, সিস্টেম-ব্যাপী ব্যাঘাত ঘটানো সম্ভব ছিল। স্ন্যাপচ্যাটের সমস্যাগুলির মধ্যে একটিকে "কমনের ট্র্যাজেডি" হিসাবে সংজ্ঞায়িত করা হয়েছিল, যেখানে বৈশিষ্ট্যগুলি সংস্থানগুলিতে অ্যাক্সেসের জন্য প্রতিযোগিতা করেছিল; অ্যাপ লঞ্চের সময় বৈশিষ্ট্যগুলি লোড হচ্ছিল, কিছু বৈশিষ্ট্যগুলিকে দ্রুত লোড করার অনুমতি দেয় কিন্তু অন্যগুলি ধীরে ধীরে লোড হয়৷
প্রকৌশলীরা উন্নয়নের দৃষ্টিকোণ থেকে তাদের উপাদানগুলির স্পষ্ট দৃশ্যমানতা, পৃথকীকরণ এবং মালিকানা চেয়েছিলেন, যাতে পরিষেবাটি নমনীয় এবং দক্ষ হতে পারে।
রুপান্তর
Snapchat প্রসারিত হওয়ার সাথে সাথে, ফার্মটি বুঝতে পেরেছিল যে এটির একচেটিয়া অবকাঠামোকে আরও ছোট, আরও দক্ষ টুকরোগুলিতে ভেঙে ফেলা দরকার। কম লেটেন্সি প্রদান করার জন্য, সংস্থাটি একটি মাইক্রোসার্ভিস-ভিত্তিক ডিজাইন তৈরি করার সিদ্ধান্ত নিয়েছে।
সেই লক্ষ্যগুলি পূরণ করার জন্য, স্ন্যাপচ্যাট অ্যামাজন ডায়নামোডিবি ব্যবহার করে তার সফ্টওয়্যার আপডেট করতে বেছে নিয়েছে, একটি স্কেলযোগ্য NoSQL ডাটাবেস পরিষেবা। ফার্মটি তার প্রচেষ্টার ফলস্বরূপ 20% দ্বারা মধ্যবর্তী বিলম্ব কমাতে সক্ষম হয়েছিল।
অ্যাপটি কর্পোরেশন দ্বারা অসংখ্য ছোট অ্যাপ্লিকেশনে পুনরায় লেখা হয়েছিল। Snapchat একটি ক্যামেরা, চ্যাট, স্মৃতি, ছবি সম্পাদনা, বিষয়বস্তু ব্যবহার এবং একটি মানচিত্র সহ অসংখ্য অ্যাপ্লিকেশন দিয়ে শুরু হয়েছিল। যদিও এই প্রোগ্রামগুলিকে একটি একক মনোলিথে একত্রিত করা গ্রাহকদের জন্য সুবিধাজনক ছিল, এটি ভাল কার্যকারিতা বজায় রাখার ক্ষেত্রে একটি গুরুতর প্রযুক্তিগত সমস্যা তৈরি করেছে।
একটি পুনর্লিখনের জন্য, কর্পোরেশন অনেক স্থল নিয়ম প্রতিষ্ঠা করেছে। প্রিলোড করবেন না; প্রতিটি বৈশিষ্ট্য তার নিজস্ব অ্যাপ হওয়া উচিত এবং এটি দ্রুত হওয়া উচিত। স্ন্যাপচ্যাট পুনর্লিখন সক্ষম করার জন্য বিভিন্ন জায়গায় পরিবর্তনগুলি বন্ধ করে দিয়েছে, এটিকে কঠোরভাবে একটি প্রযুক্তিগত কাজ করে তুলেছে।
অতিরিক্ত বৈশিষ্ট্য একীকরণ
স্ন্যাপচ্যাটের ক্যামেরা অ্যাপে লেন্স, ফিল্টার, বিটমোজি এবং অন্যান্য জিনিসের মধ্যে অগমেন্টেড রিয়েলিটি অ্যানিমেশন যোগ করার ক্ষমতা রয়েছে। স্ন্যাপচ্যাটের চ্যাট অ্যাপ ব্যবহারকারীদের ফটোগ্রাফ সংরক্ষণ করতে, আলোচনা সংরক্ষণ করতে, ইমোটিকন যোগ করতে এবং আরও অনেক কিছু করতে দেয়।
স্ন্যাপচ্যাটের মানচিত্র, অন্যান্য জিনিসগুলির মধ্যে, আপনাকে বন্ধুদের মনিটর করার অনুমতি দেয় যদি তারা আপনাকে চায়। মেমরি, ফটো এডিটিং, এবং কন্টেন্ট খরচ সবই আলাদা স্ন্যাপচ্যাট অ্যাপ তাদের অনন্য ক্ষমতা।
স্মৃতি আপনাকে পরবর্তীতে ব্যবহারের জন্য ফটোগ্রাফ বা ভিডিও সংরক্ষণ বা সংশোধন করার পাশাপাশি আপলোড বা পাঠাতে দেয়। ব্যবহারকারীরা ফিল্ম কাটতে, টেক্সট যোগ করতে, স্টিকার যোগ করতে এবং আরও অনেক কিছুর জন্য ছবি সম্পাদনা ব্যবহার করতে পারেন।
Snapchat এর বাহ্যিক বিষয়বস্তু ব্যবহার বোঝায় এটি ব্যবহারকারীদের বিভিন্ন প্যারামিটারের উপর ভিত্তি করে যা দেখায়।
মাইক্রো সার্ভিস
প্রোগ্রামটি সেই সময়ে নেটওয়ার্ক প্রশ্নগুলি সম্পাদন করার জন্য JSON-এর উপর ব্যাপকভাবে নির্ভর করত। যাইহোক, JSON পার্স করা সময়সাপেক্ষ এবং অদক্ষ ছিল। Snapchat এই সমস্যাটি মোকাবেলা করার জন্য বাস্তবায়নের বিশদ হিসাবে JSON-এর ব্যবহার মাস্ক করতে একটি কেন্দ্রীভূত নেটওয়ার্ক পরিচালনা API ব্যবহার করেছে।
মাইক্রোসার্ভিস অ্যাপ্লিকেশান স্টেট ম্যানেজমেন্ট, সার্ভিস কমিউনিকেশন এবং ব্যর্থতা ব্যবস্থাপনার চ্যালেঞ্জগুলিকে পরিচয় করিয়ে দেয়। Snapchat একটি শক্তিশালী এবং নির্ভরযোগ্য সিস্টেম তৈরি করার জন্য অর্কেস্ট্রেশন অসুবিধাগুলি কাটিয়ে উঠতে টেম্পোরালের মতো ওপেন-সোর্স প্রযুক্তি ব্যবহার করেছে।
ফলস্বরূপ, সংস্থাটি একটি পরিষেবা জাল নকশা প্যাটার্ন ব্যবহার করার সিদ্ধান্ত নিয়েছে। এই প্যাটার্নটি অর্জন করার জন্য স্ন্যাপচ্যাট এনভয় ব্যবহার করেছে, আরেকটি ওপেন-সোর্স টুল যা প্রক্সি হিসেবে কাজ করে। দূত অবকাঠামোর মাধ্যমে পরিষেবা ট্র্যাফিকের প্রবাহ পরিচালনা করেছেন, ডেভেলপারদের সম্ভাব্য অসুবিধাগুলির দৃশ্যমানতা প্রদান করেছেন।
Snapchat পরিষেবা জালের মধ্যে সুইচবোর্ড নামে একটি অভ্যন্তরীণ অ্যাপ তৈরি করেছে। সুইচবোর্ড Snap-এর পরিষেবাগুলির জন্য একটি কন্ট্রোল প্যানেল হিসাবে কাজ করে, যা ব্যবহারকারীদের ট্র্যাফিক স্থানান্তর করতে, পরিষেবা নির্ভরতাগুলি পরিচালনা করতে দেয় (একটি বৈশিষ্ট্য যা একটি পরিষেবাকে অন্যের অবস্থার উপর নির্ভর করে পরিচালনা করতে দেয়) এবং অঞ্চলগুলিকে ড্রেন করতে দেয়৷
পরিষেবার মধ্যে সম্ভাব্য কনফিগারেশনের জটিলতাকে সহজ করার জন্য, পুরো এনভয় এপিআই প্রকাশ করার পরিবর্তে সুইচবোর্ড ব্যবহার করা হয়েছিল। Snap-এর একটি সাধারণ অভ্যন্তরীণ এবং আঞ্চলিক নেটওয়ার্ক রয়েছে যা মাইক্রোসার্ভিসের জন্য সার্ভিস মেশের জন্য ধন্যবাদ।
একই অঞ্চলের পরিষেবাগুলি সর্বজনীন ইন্টারনেট ব্যবহার না করেই একে অপরের সাথে সংযোগ স্থাপন করতে পারে এবং কোনও বহিরাগত নেটওয়ার্ক ট্র্যাফিক অভ্যন্তরীণ নেটওয়ার্ক অংশগুলির সাথে যোগাযোগ করতে পারে না।
নিরাপত্তার কারণে শুধুমাত্র গেটওয়েগুলিকে ইন্টারনেটে নিজেদের প্রকাশ করার জন্য অনুমোদিত করা হবে। উদাহরণস্বরূপ, API গেটওয়েগুলি সহজেই সামনের দরজা হিসাবে কাজ করতে পারে, ক্লায়েন্ট/ব্যবহারকারীদের কাছ থেকে অনুরোধ প্রক্রিয়াকরণ এবং নেটওয়ার্কের সাথে তাদের রাউটিং করতে পারে।
নেটওয়ার্ক এবং API গেটওয়ে
Snapchat ক্লায়েন্ট থেকে সমস্ত প্রশ্ন API গেটওয়ের মাধ্যমে আসে। এটি একই এনভয় ইমেজ ব্যবহার করে এবং আমাদের অভ্যন্তরীণ মাইক্রোসার্ভিসের মতো একই কন্ট্রোল প্লেনের সাথে সংযোগ করে। আমাদের কন্ট্রোল প্লেন আমাদের কাস্টম এনভয় ফিল্টার সক্ষম করতে দেয়।
Snapchat এর প্রমাণীকরণ সিস্টেম, সেইসাথে আমাদের রেট সীমিতকরণ এবং লোডশেডিং প্রযুক্তিগুলি এই ফিল্টারগুলি দ্বারা পরিচালিত হয়৷ ফিল্টার চেইন সম্পূর্ণ হওয়ার পরে দূত প্রাসঙ্গিক মাইক্রোসার্ভিসে অনুরোধগুলি রুট করতে পরিষেবা মেশ ব্যবহার করে।
উপসংহার
স্ন্যাপচ্যাটের এপিআই গেটওয়ে অ্যাপের অনেক কার্যকারিতায় বহিরাগত ট্রাফিককে রুট করে। কনফিগারেশন অবস্থা পরিবর্তন করার জন্য ব্যবহারকারীদের অনুরোধ সার্ভার দ্বারা পরিচালিত হয়, যা তারপর তথ্য প্রদান এবং অ্যাপের অসংখ্য পরিষেবার তথ্য।
সামগ্রিকভাবে, স্ন্যাপচ্যাটের বর্তমান নকশাকে একটি একক অপারেটিং সিস্টেমে চলমান বেশ কয়েকটি প্রোগ্রামের সাথে তুলনা করা যেতে পারে, যা এই ক্ষেত্রে স্ন্যাপচ্যাট অ্যাপ। আমি আপনাকে স্ন্যাপচ্যাট সিস্টেম ডিজাইনের একটি উচ্চ-স্তরের ওভারভিউ প্রদান করার জন্য খুব চেষ্টা করেছি। আশা করি তুমি এটার ভালোদিক খুজে পাবে.
নির্দেশিকা সমন্ধে মতামত দিন