ফেসবুক আর্কিটেকচার [বন্ধ]


169

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

  1. ফেসবুক বিজ্ঞান এবং সামাজিক গ্রাফ (ভিডিও)
  2. ফেসবুকে স্কেল
  3. ফেসবুক চ্যাট আর্কিটেকচার
  4. ফেসবুক ব্লগ
  5. ফেসবুক ক্যাসান্দ্রার আর্কিটেকচার এবং ডিজাইন
  6. ফেসবুক ইঞ্জিনিয়ারিং নোটস
  7. Quora - ফেসবুক আর্কিটেকচার
  8. ফেসবুক 600M ব্যবহারকারীদের জন্য
  9. হাদুপ এবং তার ব্যবহার ফেসবুকে
  10. ফেসবুকে এরলং: চ্যাট আর্কিটেকচার
  11. ফেসবুক পারফরম্যান্স ক্যাচিং
  12. ফেসবুক কানেক্ট আর্কিটেকচার

আমার আরও 2 টি লিঙ্ক রয়েছে তবে এই সাইটে সীমাবদ্ধতার কারণে পোস্ট করতে পারছি না। এছাড়াও, কারও ভালো কিছু থাকলে দয়া করে ভাগ করুন (কেবল ফেসবুকের সাথে সম্পর্কিত হওয়ার দরকার নেই)।

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


2
২. ফেসবুকের স্কেল (ভিডিও) - infoq.com/preferencesations/Scale-at-Facebook 3. ফেসবুক চ্যাট - তথ্যউইচ.কম
শ্রীকর অ্যাপলরাজু

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

1
ফেইসবুক প্রকৌশল ব্লগ মাঝে মাঝে তাদের আর্কিটেকচার এবং স্কেলিং চ্যালেঞ্জ মধ্যে উল্লেখযোগ্য অর্ন্তদৃষ্টি হয়েছে।
কলিন পিকার্ড

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

@ গর্ডন কীভাবে এফবি উইকি ট্যাগ যুক্ত করবেন? 'ফেসবুক' ট্যাগটি ইতিমধ্যে সেখানে নেই? যথেষ্ট কি যথেষ্ট নয়?
শ্রীকর অপালরাজু

উত্তর:


33

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

আমি মনে করি তাদের হাতা সবচেয়ে বড় টেক্কা হিপহপ হয়। http://developers.facebook.com/blog/post/358 আপনি হিপহপ নিজেই ব্যবহার করতে পারেন: https://github.com/facebook/hiphop-php/wiki

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

রেসিন / কুইক্রাসের মতো জিনিসের মাধ্যমে জাভা থেকে পিএইচপি পর্যন্ত রয়েছে। আবার, এটি সবকিছু সমর্থন করে না ...

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

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

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

এখন হিপহপ আপনাকে কীভাবে সাহায্য করবে? এটা হবে না। এটা পারে না। আপনি নতুন করে শুরু করছেন, আপনি পিএইচপি 5.3 ব্যবহার করতে পারেন। আমি পিএইচপি 5.3 ফ্রেমওয়ার্কগুলি এবং পিএইচপি 5.3 এসপিএল লাইব্রেরিগুলির সাথে টেবিলটিতে আনা সমস্ত নতুন সুবিধাগুলি সন্ধান করার পরামর্শ দিচ্ছি এবং আপনার ডাটাবেস সম্পর্কেও ভাবি। আপনি সম্ভবত একটি ডাটাবেস থেকে সামগ্রী পরিবেশন করছেন, সুতরাং মংগডিবি এবং অন্যান্য ধরণের ডাটাবেসগুলি যা স্কিমা-কম এবং নথিভিত্তিক are এগুলি সর্বাধিক "সাধারণ" ওয়েব সাইট / অ্যাপ্লিকেশনের জন্য অনেক বেশি দ্রুত এবং উন্নত।

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


1
আপনি যা বলেছেন তার বেশিরভাগের সাথে একমত হয়েছেন। এই লিঙ্কগুলি কেবল কৌতূহলের স্বার্থে। কখনও কখনও আপনি প্রযুক্তির একটি অংশের দিকে তাকান এবং বলে যে "আরে! দুর্দান্ত" ...
শ্রীকর অপালরাজু

এলোমেলোভাবে আমার উত্তর দুটি জিনিস আবার পর্যালোচনা। # 1, আমি সি প্রযুক্তিগত বিশ্বাস করি না এবং আমার প্রযুক্তিগত খারাপ সি ++ না ... তবে আরও গুরুত্বপূর্ণ বিষয় হল # 2, ফ্যালকন একটি নতুন পিএইচপি ফ্রেমওয়ার্ক যা গতির জন্য পিএইচপি এক্সটেনশনে অনেক কিছুকে রূপান্তর করে। যদিও আপনার নিজের কোডের বেশিরভাগটি অবশ্যই সি তে চলবে না এবং অন্য যে কোনও লাইব্রেরি আপনি সম্ভবত ব্যবহার করছেন তা নাও হয়। যাইহোক, কিছু অতিরিক্ত পারফরম্যান্স আটকানোর জন্য হিপহপের মতো এটি একটি চতুর ধারণা।
টম

... এবং আমরা আবার তাদের হাতের আস্তে নিয়ে আবার যাই। বছরখানেক পরে পিছনে তাকানো আমাদের এই হ্যাক ভাষা আছে (হিপহপ স্টাফ থেকে নিজস্ব আইডিই সহ কম জন্মগ্রহণ করেছে)। এটি কি আরও ভাল কিছু হয়ে উঠেছে? আমরা দেখব. এটা কি আপনাকে সাহায্য করতে পারে? হতে পারে তবে এখন মনে হচ্ছে আপনিও ঠিক ফেসবুকের মতোই তৈরি করতে সক্ষম হবেন। এটি কেবল প্রায় 4 বছর সময় নিয়েছিল =) যদিও ব্যক্তিগতভাবে, আমি কুল-এইড পান করতে এত তাড়াতাড়ি করব না।
টম

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

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

18

ফেসবুক এলএএমপি কাঠামো ব্যবহার করছে । ফেসবুকের ব্যাক-এন্ড সার্ভিসগুলি সি ++, জাভা, পাইথন এবং এরলং সহ বিভিন্ন প্রোগ্রামিং ভাষায় রচিত এবং সেগুলি প্রয়োজনীয়তা অনুসারে ব্যবহৃত হয়। ল্যাম্পের সাথে ফেসবুক বিপুল সংখ্যক অনুরোধকে সমর্থন করতে কিছু প্রযুক্তি ব্যবহার করে, যেমন

  1. মেমকেচে - এটি একটি মেমরি ক্যাচিং সিস্টেম যা পাঠের সময় কমাতে র‌্যামে ডেটা এবং বস্তুগুলি ক্যাশে করে গতিশীল ডাটাবেস-চালিত ওয়েবসাইটগুলিকে (ফেসবুকের মতো) গতি বাড়ানোর জন্য ব্যবহৃত হয়। মেমক্যাচ ফেসবুকের ক্যাচিংয়ের প্রাথমিক ফর্ম এবং এটি ডেটাবেস লোড হ্রাস করতে সহায়তা করে। ক্যাচিং সিস্টেম থাকার ফলে ফেসবুক যত দ্রুত আপনার ডেটা পুনরায় কল করতে পারে তত দ্রুত হতে দেয়।

  2. থ্রিফ্ট (প্রোটোকল) - এটি স্কেলযোগ্য ক্রস-ল্যাঙ্গুয়েজ পরিষেবাগুলির বিকাশের জন্য একটি হালকা দূরবর্তী প্রক্রিয়া কল ফ্রেমওয়ার্ক। থ্রিফ্ট সি ++, পিএইচপি, পাইথন, পার্ল, জাভা, রুবি, এরলং এবং অন্যান্য সমর্থন করে।

  3. ক্যাসান্দ্রা (ডাটাবেস) - এটি একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেম যা অনেকগুলি সার্ভারে ছড়িয়ে থাকা প্রচুর পরিমাণে ডেটা হ্যান্ডেল করার জন্য ডিজাইন করা।

  4. পিএইচপি -র জন্য হিপহপ - এটি পিএইচপি স্ক্রিপ্ট কোডের জন্য একটি উত্স কোড ট্রান্সফর্মার এবং সার্ভারের সংস্থানগুলি সংরক্ষণ করার জন্য তৈরি করা হয়েছিল। হিপহপ পিএইচপি উত্স কোডটি অনুকূলিত সি ++ এ রূপান্তর করে। এটি করার পরে, এটি মেশিন কোডে সংকলন করতে g ++ ব্যবহার করে।

আমরা যদি আরও বিশদে যাই তবে এই প্রশ্নের উত্তর আরও দীর্ঘ দিন। আমরা নিম্নলিখিত পোস্টগুলি থেকে আরও বুঝতে পারি:

  1. ফেসবুক কীভাবে কাজ করে?
  2. ডেটা ম্যানেজমেন্ট, ফেসবুক-স্টাইল
  3. ফেসবুকের ডাটাবেজের ডিজাইন?
  4. ফেসবুক ওয়াল এর ডাটাবেস কাঠামো
  5. ফেসবুক ডেটা স্ট্রাকচারকে "লাইক" দেয়

7

"এমন বিশাল ট্র্যাফিক পরিচালনা করে এমন সাইটগুলি সম্পর্কে জানার ফলে নতুন সাইটগুলি ডিজাইন করার সময় স্থপতিদের জন্য প্রচুর পয়েন্টার পাওয়া যায় certain"

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

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

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


1
হ্যাঁ, সম্ভবত খুব বেশি লোকের এত ভারী ট্র্যাফিক মোকাবেলা করার প্রয়োজন নেই। তবে স্কেলিবিলিটি এবং ফেসবুকের মতো একটি দুর্দান্ত সংস্থা কীভাবে এত বড় ট্র্যাফিকের মোকাবেলা করে তা বোঝা সর্বদা ভাল। কিছু ভাল ডিজাইনের যোগ্যতা থাকতে পারে :)
ট্রিলিয়ন

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

আমি আপনার পয়েন্ট দেখুন. সম্মত হন :)
ট্রিলিয়ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.