অ্যাপ ইঞ্জিন বনাম ফায়ারবেস - বিজারো ওয়ার্ল্ডে আপনাকে স্বাগতম

এটি প্রায় 2018 এর, এবং আপনি নতুন বছরের রেজোলিউশন খুঁজছেন। এখানে কিছু ভাল আছে:

  • আমি স্বীকার করতে যাচ্ছি যে ব্যবহারকারীর শংসাপত্রগুলির সাথে আমার বিশ্বাস করা যায় না
  • আমি নিজের ব্যবহারকারীর প্রমাণীকরণের প্রবাহ লিখতে যাচ্ছি

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

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

প্রমাণীকরণ - অন্য কেউ এটি করতে পারে না?

অন্য কেউ এটা করতে পারে না?

গুগল, ফেসবুক, টুইটার, গিথুব, প্রচুর পরিমাণে সরকারী প্রমাণীকরণ সরবরাহকারী রয়েছে। তাদের সকলকে সমর্থন করা জটিল, তবে এটি করার জন্য আপনি তৃতীয় পক্ষের পরিষেবাগুলি অ্যাথ 0 এর মতো ব্যবহার করতে পারেন।

অ্যাপ ইঞ্জিন প্রকল্পগুলির ক্ষেত্রে, গুগল ক্লাউড প্ল্যাটফর্মে আমাদের দুর্দান্ত বিল্ট-ইন বিকল্প রয়েছে।

বা, ভাল, প্রায় গুগল ক্লাউড প্ল্যাটফর্মে। এটি বিজারো ওয়ার্ল্ড ক্লাউড প্ল্যাটফর্মে রয়েছে, অন্যথায় ফায়ারবেস নামে পরিচিত।

ফায়ারবেস - বিজারো অ্যাপ ইঞ্জিন

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

আপনারা যারা অ্যাপ ইঞ্জিনের সাথে পরিচিত তাদের এটি স্ট্যান্ডার্ড ক্লায়েন্ট-সার্ভার ধরণের পদ্ধতিতে ব্যবহার করতে ব্যবহৃত হবে, যেমন: পরিষেবা হিসাবে প্ল্যাটফর্ম:

অ্যাপ ইঞ্জিন, পরিষেবা হিসাবে প্ল্যাটফর্ম (PAAS)

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

ফায়ারবেস, সার্ভিস হিসাবে ব্যাকএন্ড (বাএএস)

লক্ষ্য করুন যে ক্লায়েন্টরা আপনার জাভাস্ক্রিপ্ট ক্লাউড ফাংশনস কোড (বউ! একটি শালীন ভাষার বিষয়ে কী!) সহ অন্যান্য পরিষেবাগুলিতে সংঘটিত ইভেন্টগুলির উপর ভিত্তি করে সেই পরিষেবাগুলির দ্বারা ট্রিগার হয়ে ওয়েব এবং মোবাইল এনভায়রনমেন্টের জন্য বিশেষ এসডিকে ব্যবহার করে ফায়ারবেসে পরিষেবাদিগুলিতে সরাসরি কথা বলে Notice ; ক্লায়েন্টরা কখনও আপনার কোড কল করে না, আপনি এপিআই তৈরি করতে পারবেন না।

এটি অ্যাপ ইঞ্জিনের বিপরীতে, যেখানে আপনার ক্লায়েন্টদের কল করার জন্য আপনাকে অবশ্যই একটি API লিখতে হবে এবং তারপরে আপনি ক্লায়েন্টের পক্ষে অন্য জিসিপি পরিষেবাদির সাথে কথা বলবেন।

ফায়ারবেসের বিজারো ওয়ার্ল্ড আর্কিটেকচার সম্পর্কে সত্যই ইতিবাচক বিষয় হ'ল এটি কিছু জিনিস আরও ভাল করে। আমার উদ্দেশ্যগুলির জন্য সর্বাধিক উল্লেখযোগ্য হ'ল যথার্থতা এবং পরিবর্তন বিজ্ঞপ্তি (যথাক্রমে ফায়ারবেস প্রমাণীকরণ এবং রিয়েলটাইম ডেটাবেসসের মাধ্যমে)।

ফায়ারবেস + অ্যাপ ইঞ্জিন - বিড়াল কুকুরের স্থাপত্য

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

ফায়ারবেস + অ্যাপেনজিন - পরিষেবা হিসাবে বিড়াল কুকুর (সিডিএএস)

এটি পরের দু'টি নিবন্ধে কোড সহ আমি প্রকাশ করব basic বেসিকগুলি হ'ল:

1 - ক্লায়েন্ট ফায়ারবেস প্রমাণীকরণের মাধ্যমে প্রমাণীকরণ করবে।

2 - এটিতে তখন অ্যাপ ইঞ্জিনের সাথে কথা বলার সময় ব্যবহার করার জন্য একটি প্রমাণীকরণ টোকেন থাকবে।

3 - অ্যাপ ইঞ্জিনে যখন উল্লেখযোগ্য ইভেন্টগুলি ঘটে যা আমরা ক্লায়েন্ট সম্পর্কে জানতে চাই, আমরা ফায়ারবেস রিয়েলটাইম ডেটাবেসগুলিতে তথ্যটি ঠেলে দেব।

4 - ফায়ারবেস রিয়েলটাইম ডেটাবেস ক্লায়েন্টের পরিবর্তনের দিকে ঠেলে দেবে। ক্লায়েন্টটি পছন্দসই হিসাবে রিয়েলটাইম ডেটাবেসকেও জিজ্ঞাসা করতে পারে।

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

এছাড়াও নোট করুন যে আমরা রিয়েলটাইম ডেটাবেসে অনেক কিছু স্থাপন করব না; এটি ব্যয়বহুল ($ 5 / গিগাবাইট!)। আমরা এটি কেবলমাত্র বিজ্ঞপ্তি পরিবর্তনের জন্য ব্যবহার করব এবং ক্লাউড ডেটাস্টোরের আসল ডেটা রাখব।

এরপর কি?

পরের নিবন্ধে আমরা ফায়ারবেসআইআই ব্যবহার করে উপরের 1 এবং 2 পদক্ষেপগুলি সামলানোর সাথে সাথে আমরা আসল কোডে প্রবেশ করব। আমরা একটি দরকারী কঙ্কালটি শেষ করব যা ফায়ারবেস প্রমাণীকরণ ব্যবহার করে একটি একক পৃষ্ঠার ওয়েব অ্যাপ্লিকেশনটিতে সাইন-ইন / সাইন-আউট নিয়ে আলোচনা করে সম্ভবত পাইথন ফ্লাস্কের ব্যাক এন্ডের সাথে কথা বলে।

পোস্ট স্ক্রিপ্ট: ক্লাউড ফায়ার স্টোর সম্পর্কে কী?

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

ফায়ারবেসের ক্লাউড ফায়ার স্টোর হ'ল কয়েকটি অতি শীতল পরিবর্তন সহ জিসিপির ক্লাউড ডেটাস্টোর (যেমন: মেগস্টোর):

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

দুর্ভাগ্যক্রমে, এটি কিছু ত্রুটিগুলিও পেয়েছে:

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

তবে আমার কাছে সবচেয়ে বড় অসুবিধা হ'ল এটি ফায়ারবেসের অংশ হওয়ায় এটি আর্কিটেকচারটি দেখতে এই রকম:

এটির সাথে আমার সমস্যাটি হ'ল এটি আমার বাহ্যিক কলার এবং আমার পিছনের শেষের কোডের মধ্যে আমার ডাটাবেস স্থাপন করতে চায়। যা আমার মনের কাছে সত্যই ককামমি আর্কিটেকচার।

আমি বুঝতে পারি কেন এটি এভাবে কাজ করতে চায়; এইভাবে করা, আপনি ক্লায়েন্টদের যথাযথভাবে রিয়েলটাইম পরিবর্তন বিজ্ঞপ্তিগুলি করতে পারেন, এবং ফায়ারব্যাসের বাকী অংশগুলির সাথে সংহতকরণ আরও ভাল better তবে, আমি এই কনফিগারেশনে আপনি কীভাবে সত্যিকারের সিরিয়াস ব্যাক এন্ড অ্যাপটি তৈরি করেন তা আমি দেখতে পাই না এবং আপনি যদি গুরুতর কিছু বানাতে না চান তবে আপনি কীভাবে একটি মেগস্টোর-ভিত্তিক সমাধান ব্যবহার করতে যাচ্ছেন (যা শক্তিশালী) শক্তিশালী, তবে যত্ন সহকারে পরিচালনা প্রয়োজন)?

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