Demo Site

Friday, April 8, 2011

Facebook වැඩ මෙන්න (Facebook Architecture)


මම නම් ගොඩක් දවසට උදේම දවස පටන් ගන්නෙ facebook පාරක් දාලා තමයි.මම හිතන්නෙ අපේ එළකිරි එකේ ගොඩක් අය එහෙමයි කස්ටිය facebook එක ගැන,Mark Zuckerburg ගැන එහෙම සෑහෙන්න විස්තර දන්නව ඇති නේ.හැබැයි නිකමටවත් හිතුවද මේක වැඩ කරන්නෙ කොහොමද කියල ?
මට නිකමට වගේ හිතුන නිසා පොඩ්ඩක් හොයල බැලුවා. වැඩේ ලේසි නෑ. මොකද facebook technical architecture එක ගැන හරි හමන්
විස්තරයක් හොයාගන්න අමාරුයි. මොකද මේක රහසක් විදියට තියාගන්න facebook team එක මාර ගේමක් දෙන්නෙ.3 tier architecture එක මත පදනම් උන facebook එකේ ඉහලම tier එක වන presentation tier එක ගැන විතරයි ගොඩක් අය දන්නෙ. ඒත් කොහොමහරි පොඩි පොඩි විස්තර ටිකක් හොයාගත්ත
facebook technical architecture එක ගැන.

ගොඩක් අය දන්නව ඇති facebook එක ප්‍රධාන වශයෙන්ම භාවිතාකරන්නෙ PHP කියන programming language එක.ඒ වගේම database සඳහා MySQL තමයි යොදාගන්නෙ. facebook headquaters පිහිටලා තියෙන්නෙ Palo Alto,California වල. හැබැයි ගේම දෙන්නෙ එතනින් නෙමෙයි. ප්‍රධාන server farm එක තියෙන්නෙ Santa Clara වල.මෙතන වැඩ කටයුතු බොහොම රහසිගතව තමයි සිද්ධ වෙන්නෙ.දන්නවනේ අවුලක් උනොත් මොකද වෙන්නෙ කියලා.




දැනට ලෝකය පුරා facebook web servers 30,000 ක් විතර ක්‍රියාත්මකයි. මේ servers වලින් තමයි කෝටි ගානකට facebook සේවය දෙන්නෙ.සාමාන්‍යයෙන් මේ server එකක 8 core processors වලින් සමන්විත 70 GB වගේ RAM තියෙන්නෙ. ප්‍රධානම මෙහෙයුම් පද්ධතිය විදියට භාවිතා කරන්නෙ 64-bit Linux.මොකද මෙයාලා LAMP තාක්ශණය නේ පාවිච්චි කරන්නෙ.(LAMP= Linux,Apache,MySQL,PHP). තනිකරම Open Source යොදා ගන්නෙ. ඒ වගේම facebook
engineers ලා විසින් දියුණු කරන ලද යම් යම් රහසිගත frameworks වලින් තමයි වැඩ කරන්නෙ.

(facebook server farm එකක්)

මම කිව්වනේ PHP තමයි ප්‍රධානම language එක කියලා. මීට අමතරව C++, Java, Python, සහ Ruby කියන languages පාවිච්චි කරනවා.මේ ඔක්කොම languages එකට වැඩ කරන්නෙ මම අර කලින් කියපු frameworks හරහා තමයි.

facebook database වැඩ ගොඩක්ම කරන්නෙ MySQL වලින්. දැනට database servers 3000 ක් විතර ලෝකය පුරා තියනවා. මේවත් 64-bit Linux තමයි දුවන්නෙ.facebook database schema එක රහසක්. මේක එළි උනොත් ඉවරයි. මොකද හැකර්ලට වැඩේ ලේසි වෙනවා.තත්පරයට requests මිලියන 20 ක් handle කරනවා කියන්නෙ ලේසි නෑ. මේ නිසාම 20 terabyte වගේ cache servers කිපයකුත් යොදා ගන්නවා.වැඩේ කියන්නෙ අපි හිතමු ඔයාලා ෆොටෝ ඇල්බම් එකක් බලනවා කියලා.හිතමු පළවෙනි ෆොටෝ එක එන්නෙ ඇමරිකාවෙ database server එකකින් හැබැයි දෙවනි එක එන්නෙ රුසියාවෙ database server එකකින් වෙන්න පුලුවන්.මාරයි නේ..

මිලියන 500 කට වැඩි facebook users ලා හිටියට facebook engineers ල ඉන්නෙ 300 ක් වගේ ගානක්.ඒ වගේම දවසකට terabyte 25 ක විතර log data තියාගන්නවා.

ඔන්න ඔය වගේ තොරතුරු ටිකක් තමයි හොයාගත්තෙ. තව ටිකක් තියනවා ඒවා මම හිතන්නෙ කාටත් වැදගත් වෙන එකක් නෑ. මොකද ඒවා technical වැඩියි වගේ.

මේ තියෙන්නෙ facebook statistics ටිකක්

* Facebook was launched in February 2004 and had 1 million active users by December 2004

* Facebook has more than 500 million
active users

* Facebook had 50 million active users on October 2007

* Facebook had 100 million active users on August 2008

* 50 percent of @facebook active users log on in any given day

* An average @facebook user has 130
friends

* An average @facebook user spends 700 minutes per month on facebook

* More than 30 billion pieces of content
are shared on facebook each month

* An average @facebook user creates 90 pieces of content each month

* Each day, 50% of active @facebook users log in

* Each day, @facebook Pages have created

5.3 billion fans
* Each day, 55 million status updates are made on @facebook

* Each day, 35 million people update their status on @facebook

* Over 300,000 @facebook users helped translate the site to 70 available
translations

* About 70% of @facebook users are outside the United States

* More than 150 million active users
currently access @facebook through their
mobile device

* There are more than 550,000 applications currently on @facebook platform


Facebook users

10 Largest Countries

1. United States 148,867,700

2. Indonesia 34,496,880
3. United Kingdom 28,041,780
4. Turkey 25,420,400
5. Philippines 22,316,340
6. France 20,540,560
7. India 20,475,220
8. Mexico 20,221,700
9. Italy 17,997,800
10. Canada 16,810,340



0 comments:

Post a Comment