Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2010-04-22

Масштабируемость и производительность это разные вещи

22 апреля, однако. Дедушка Ленин родился нам на беду. И еще много разного произошло.

Прочел хорошую статью про масштабирование веб-приложений. С акцентом на Django. Очень внятно изложены основные принципы и приемы масштабирования, с хорошими отсылками на реальные технологии. Запишу тезисно, для памяти.

- Постройте стенд, чтобы не экспериментировать на производственных мощностях.
- Гоняйте на стенде запросы и найдите самые тормозные запросы к БД.
- Перепишите запросы, оптимизируйте структуру БД.
- Подключите кэш. Самое сложное тут — обеспечить аккуратную и своевременную инвалидацию кешей.
- Задействуйте балансировщики для раскидывания нагрузки на сервера кластера. Программные, железные — по средствам.
- Используйте очереди заданий для асинхронного выполнения фоновых задач.
- Займитесь распределением БД. Репликации мастер-слейв, проблемы лага репликации когда надо прочесть записанное немедленно, федерация, шардинг, partitioning.
- Подумайте, а нужна ли вам реляционная БД? NoSQL-базы могут очень неплохо масштабироваться.

So there's no magic here: building a really big application is a really big commitment. You'll need to think carefully about your architecture and plan for future needs. But as long as you keep an eye on your stats, keep your caches primed, your queues short, and your data tier distributed, your site should be able to handle whatever the net can throw at it. Guess it's time to start working on that business model.

djangoadvent.com/1.2/scaling-django


Сцылки дня:

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)