Download - Netage Lecture Series 1
Lecture Series
Проектиране на уеб приложения за голямо натоварване
Lecture Series
Кои сме ние?
• Дейност: уеб проектиране, дизайн и разработка
• Фокус: големи и сложни уеб проекти
• Начало: 1998 / България
• Екип: 65
• Клиенти: 170
• Проекти: 270+
Lecture Series
Защо сме тук?
• Да споделим опит• Да се запознаем• Да пием по бира заедно
Lecture Series
Защо точно тази тема?
• Приключихме договора с УМГ• www.topsport.bg• www.news.bg• www.money.bg• www.lifestyle.bg• www.vsi4ko.bg• international.news.bg• www.ibox.bg
• Нарастващ брой запитвания за “уеб портали”
Lecture Series
Малко история
• Запитването
Lecture Series
Lecture Series
Малко история
• Запитването• Подхода
• custom framework• единна платформа
Lecture Series
Малко история
• Запитването• Подхода
• custom framework• единна платформа
• Резултати
Lecture Series
Резултати
• Администратори: 100
• Материали: 500 / ден
• Общо материали: 270 000
• Коментари: 10 000 / ден
• Pageviews: 650 000 / ден
• Рекламни показвания: 3 000 000 / ден
Lecture Series
Lecture Series
По същество (съдържание)
• Що е то?• Проблеми• Решения• Въпроси и дискусия
Lecture Series
Голямо натоварване / Performance
Какво разбират клиентите под “Искам сайта мида работи добре при голямо натоварване”?
• Availability• Scalability• Response time
Lecture Series
Често срещани проблеми
• База данни: ограничен брой връзки към базата
• Уеб сървър: ограничен брой едновременни заявки
Lecture Series
Lecture Series
Решаване на проблеми с базата
• Купуваме по-мощен ДБ сървър• Клъстерираме базата данни• Кешираме съдържанието
Lecture Series
Техники за кеширане на съдържанието
• Кеширане на целия request (цяла страница)
Lecture Series
Техники за кеширане на съдържанието
• Кеширане на целия request (цяла страница)• Кеширане на резултатите, които се връщат от
базата
Lecture Series
Техники за кеширане на съдържанието
• Кеширане на целия request (цяла страница)• Кеширане на резултатите, които се връщат от
базата• Кеширане на отделни автономни части от
съдържанието
Lecture Series
… кеширане на отделни автономни части от съдържанието
Lecture Series
Проблеми при кеширане на съдържанието
• Актуалност на данните
Lecture Series
Проблеми при кеширане на съдържанието
• Актуалност на данните• Инвалидация базирана на време
Lecture Series
Проблеми при кеширане на съдържанието
• Актуалност на данните• Инвалидация базирана на време• Инвалидация базирана на събития
Lecture Series
… инвалидация базирана на събития
Lecture Series
… инвалидация базирана на събития
Lecture Series
Проблеми при кеширане на съдържанието
• Актуалност на данните• Инвалидация базирана на време• Инвалидация базирана на сигнали
• Брой на кеш файловете
Lecture Series
... разпределяне на кеш файловете
/cache/2/1/211m.php/cache/2/5/255-BLOCK-MOST-COMMENTED.php/cache/2/5/256-BLOCK-MOST-VIEWED.php/cache/2/4/247-BLOCK-TOP-MATERIAL.php
Lecture Series
Решаване на проблемите с уеб сървърите
• Клъстър от уеб сървъри: load balancer, squid
Lecture Series
... клъстър от уеб сървъри
Lecture Series
Решаване на проблемите с уеб сървърите
• Клъстър от уеб сървъри: load balancer, squid• Memcached – съхраняване на
потребителската сесия на едно място
Lecture Series
Решаване на проблемите с уеб сървърите
• Клъстър от уеб сървъри: load balancer, squid• Memcached – съхраняване на
потребителската сесия на едно място• Споделен файлов сървър
Lecture Series
... споделен файлов сървър
Lecture Series
Решаване на проблемите с уеб сървърите
• Клъстър от уеб сървъри: load balancer, squid• Memcached – съхраняване на
потребителската сесия на едно място• Споделен файлов сървър• Отделен домейн за статичното съдържание
Lecture Series
И да припомним за какво говорихме
Lecture Series
Последно
• Въпроси?• Идеи?• Коментари?
Lecture Series
Благодаря за вниманието!
Георги Иванов[email protected]
Венера Александрова[email protected]
www.netage.bg