পৃথিবীর সবচেয়ে বড় প্রজেক্ট চলছে পিএইচপি (PHP) প্রোগ্রামিং ল্যাংগুয়েজ দিয়ে। শুধু পিএইচপি নয় বরং আরও প্রায় ১ ডজন নিজস্ব প্রযুক্তি আছে ফেইসবুকের। ফেইসবুকের প্রযুক্তি জানতে দেখুন এই আর্টিকেলটি
হিপহপ ভার্চুয়াল মেশিন
ফেইসবুক পিএইচপি ব্যবহার করলেও ব্যাকইন্ডে পিএইচপি কোড এক্সিকিউট হয়না বরং এক্সিকিউট হয় C++. HHVM বা HipHop Virtual Machine নামের একটি ট্রান্সপাইলার (transpiler) ব্যবহার করে পিএইচপি কোডকে C++ এ রুপান্তর করে native কোড বানিয়ে ফেলে এবং এ কারনেই ফেইসবুকের পারফর্মেন্স (দ্রুততা) এত বেশি। HHVM ফেইসবুকের নিজের তৈরী মেশিন। বিশাল কোডবেস হওয়ার পরেও ফেইসবুকের দ্রততার কারন হল এই HHVM. ২০০৮ সালে এটার কাজ শুরু হয়েছিল ২০১০ সালে প্রোডাকশনে এসেছে।
ট্রান্সপাইলার হল এমন এক ধরনের কমপাইলার যা High-level ল্যাংগুয়েজ থেকে High-level ল্যাংগুয়েজে কোড রুপান্তর করে। আবার মনে করিয়েননা যে PHP কোডকে C++ কোডে এমনভাবে রুপান্তর করে যে সেটা কোন কোডার পড়তে পারবে বরং মেশিনের জন্য উপযোগী করে রুপান্তর করে। বাইট কোডে রুপান্তর করে আসলে। এটার নাম HHBC (HipHop bytecode)
ডেটাবেস
ডেটাবেস মাইসিক্যুয়েল ব্যবহার করে তবে আমরা আম ডেভেলপাররা যে মাইসিক্যুয়েল ব্যবহার করছি সেটা নয়। বরং এই মাইসিক্যুয়েলকে প্রচুর কাস্টমাইজ করে নিজের মত বানিয়ে নিয়েছে। কাস্টমাইজেশনের তথ্য পেতে চাইলে MySQL at Facebook লিখে সার্চ করে দেখতে পারেন।
চ্যাট সিস্টেম
চ্যাট সিস্টেমের জন্য Cassandra (কাসান্দ্রা) ডেটাবেস ব্যবহার করেছে আর ল্যাংগুয়েজ erlang। রিয়েল টাইম এপ্লিকেশনের জন্য erlang বর্তমানে বস ল্যাংগুয়েজ।
ক্যাশিং
ক্যাশিং এর জন্য ব্যবহার করেছে Memcached, এটা মেমরি অবজেক্ট ক্যাশিং এর জন্য একটি পাওয়ারফুল টুল।
হ্যাডুপ এবং হাইভ (Hadoop & Hive)
বিশাল ডেটা ক্যালকুলেশনের জন্য যে এলগরিদম সেট ব্যবহার করে সেটার নাম Hadoop, এটা এপাচির প্রজেক্ট এবং ওপেন সোর্স। আর এখানে কোয়েরি সম্পর্কিত কাজগুলি করে এপাচির আরেকটা টুল দিয়ে যার নাম Hive. আমরা SQL দিয়ে যেভাবে কোয়েরি করি Hive এও এরুপ ল্যাংগুয়েজ আছে এবং নাম HiveQL
হেয়স্টাক (HayStack)
প্রতিদিন কোটি কোটি ছবি আপলোড হয় ফেইসবুকে, এই ফটোগুলি হ্যান্ডেল করে HAYSTACK নামের একটি (এক ধরনের অবজেক্ট স্টোরেজ বলতে পারেন) প্রযুক্তি দিয়ে, এটাও তাদের নিজের তৈরী।
সার্ভার তথ্য
বর্তমানে বিশ্বব্যাপি ফেসবুকের ৬০ হাজারেরও অধিক সার্ভার আছে। সার্ভারের হার্ডওয়্যার সম্পূর্ন নিজের মত করে তৈরী করে নিয়েছে তারা।
বিগপাইপ (BigPipe)
বিগপাইপ ব্যবহার করা হয় দ্রত পেজ লোড হওয়ার জন্য। এই প্রযুক্তি ব্যবহার করে একটা পেজকে কয়েকটি ভাগে ভাগ করে। প্রতিটি ভাগের নাম পেজলেট। সাধারনত একটি ওয়েবসাইট যেভাবে লোড হয় সেভাবে ফেইসবুক লোড হয়না বরং একটা একটা অংশ করে লোড হয়। বিস্তারিত
অন্যান্য ব্যবহৃত প্রযুক্তি
Thrift, Scribe, hBase (ডেটাবেস), Varnish (ক্যাশিং সিস্টেম), epoll সার্ভার (চ্যাটের জন্য)