Kompaniya idorasi Moskvadagi, Leningrad prospekti 47-uyda joylashgan.
Asosiy statistika:
2006-yil:
• Loyiha 2006-yil mart oyida o'z faoliyatini boshladi. Sayt muallifi, Popkov Albert Mihaylovich, Londonda istiqomat qiladi va telekommunikatsiya (IT) sohasida faoliyat yuritadi.
Bu shaxs Yevropamamlakatlarida ham „Odnoklassniki“ga oʻxshash ijtimoiy tarmoqlar yaratishda ishtirok etgan.
• Noyabr oyida saytda foydalanuvchilar soni 1,5 millionga etdi.
2007-yil:
2007-yilning iyul oyida Odnoklassniki.ru saytini foydalanuvchilar soni ikki martaga oshib 4 millionga etdi.
2009-yil:
2009-yil iyul oyidagi maʼlumotlarga koʻra sayt Rossiyaning 14-55 yil oraligʻidagi internet foydalanuvchilari orasida peshqadamlarning (lider) biri boʻldi.
2010-yil: Odnoklassniki.ru saytida roʻyhatdan oʻtganlar soni 45 millionga etdi. Aprel oyining boshida saytda i-Jet kompaniyasi yaratgan oʻyinlar paydo boʻldi.
• Saytga eng ko'p tashriflar vaqti 2.8 mln foydalanuvchi online bo’lgan:
• Kuniga 7.5 mlrd so’rov amalga oshirilgan (sekundiga 150 000 so’rov):
• Barcha ma`lumotlari 2400 ta serverda joylashgan:
• Tarmoq trafigi foydalanuvchilar ko’p vaqtda 32 Gb/s ni tashkil etgan.
Arxitekturasi:
Prezintation layer (Sloy taqdim etuvchi yoki HTML ni generatsiya qiladigan oddiy web server);
Bussines services layer (tanlashlarni va qayta ishlashlarni amalga oshiradigan server);
Caching layer (ko’p qo’llaniladigan ma`lumotlarni KESH lash);
Persistence layer (Ma`lumotlar bazasi serveri);
Common infrastructure system (ro’yxatdan o’tgan foydalanuvchilarni statistikasini olib borish, dasturiy konfiguratsiyalar, resurslarni lokalizatsiyalash, monitoring);
Loyiha kodi asosan Java da yozilgan. Ba`zi qo’shimcha modullar uchun C va C++ dan foydalanilgan. Asosida o’zlari ishlab chiqishgan Framework ishlatilgan. Ma`lumotlarni keshlash uchun “qo’lda yozilgan” odnoklassniki-cache modulidan foydalaniladi. Keshlanadigan ma'lumotlar asosan foydalanuvchi profayli, undagi rasmlar, guruhga oid rasmlar, va boshqalar.
Ma`lumotlarni umumiy hajmi (rezervlarsiz) 160 Tb ni tashkil qiladi. Ma`lumotlarni saqlash va ularga xizmat ko’rsatish uchun MS SQL va BerkeleyDB dan foydalaniladi. Ma`lumot turidan kelib chiqib ikkitadan to’rttagacha nusxalanadi. Har 15 minutda rezervli nusxalash amalga oshiriladi.
Ikkita protsessor 4 ta yadroli server qo’llaniladi. Tezkor Xotira xajmi 4 dan 48 Gb gacha boradi. Ma`lumotlar server xotirasida, yoki server disklarida va yoki tashqi disklarda saqlanadi. Barcha qurilmalar 3 ta Data Center da joylashtirilgan. Qariyb 2400 ta server va ma`lumot saqlash qurilmalari ishlatiladi. Data senter optik xalqa bilan bog’langan. Usha vaqtdagi ma`lumotga ko’ra xar bir mashurt tezligi 30 Gb/s ni tashkil etgan. Tarmoq ikkiga ajratilgan: tashqi va ichki. Tashqi tarmoq web serverlari butun jahon uchun javob beradi, ichki tarmoqda serverlar bir biri bilan aloqada bo’ladi. Serverdagi ma`lumotlar ombori sifatida MS SQL 2008 qo’llanilgan.
• Operatson sistemalar: MS Windows, OpenSUSE
• Soobsheniya, Obsujdeniya, Opoveshsheniya modullari uchun GWT interfeysidan foydalanilgan
Web server : Apache Tomcat.
Proyekt ustida 70 ta texnik mutaxassislar ishlashadi. Shulardan 40 tasi dasturchilar, 20 tasi administrator va injenerlar. 8 tasi testerlar. Jamoa 1-3 talik mayda guruhlarga bo’lingan. Har bir guruh o’ziga tegishli vazifa ustida ishlaydi. Dasturlashni hayotiy sikli 3 asosiy bosqichlarga bo’linadi:
• 0 - hafta arxitekturani aniqlash:
• Dasturlash va dasturchilar kompyuterlarida testlash:
• Pre-production vositasida testlash, production vositasida realizatsiyalash.
Yuklashni yengillashtirish uchun barcha tashqi resurslarni keshlanadi, CSS va JavaScriptlarni iloji boricha mimallashtiriladi. Sahifani birinchi ochilayotganida faqat ishni boshlash uchun kerak bo’ladigan resurslarni yuklanadi va hokazo… quyida bitta kichkina misol tariqasida faqat jo’natilgan xabarlar statistikasini kodi keltirilgan:
public void sendMessage(String message) {
long startTime = LoggerUtil.getMeasureStartTime();
try {
/**
* business logic - send message */
LoggerUtil.operationSuccess(LogFactory.getLog({log's appender name}), startTime, "messageService", "sendMessage");
} catch (Exception e) {
LoggerUtil.operationFailure(LogFactory.getLog({log's appender name}), startTime, "messageService", "sendMessage");
}
}
©Muallif: Mashxur Insonlar Bisotidan guruxi:
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев