Раді Вас бачити! » Увійти » Створити новий профіль

ФЗВ Программисты PHP - :help:

Re: ФЗВ Программисты PHP -  :help:
dmp

хм.. а если сервер перестал справляться и  без "моего кода", то что произойдет?

попробуйте сами понять чем эти ситуации различаются.
   
Re: ФЗВ Программисты PHP -  :help:
fam

попробуйте сами понять чем эти ситуации различаются.

ничем, я думаю
   
Re: ФЗВ Программисты PHP -  :help:
dmp

ничем, я думаю

ОК, я попробую объяснить, хотя выше ключевое слово уже назвали :)

Вообще довольно регулярно вижу, что программисты не верят в свои проекты, не задаются вопросом "а что будет если мой проект станет популярным?" Есть ли план что делать, если нагрузка будет резко расти? Пусть сегодня это проект на PHP+MySQL, но принимая то или иное техническое решение всегда полезно задаваться этим вопросом и держать план реагирования на рост под рукой.

Предположим имеем ваш PHP код и сервер базы данных на одном сервере, ну и при модификации базы данных скешировали в файл что-то там. Все работает замечательно.

Но тут вы получаете рост нагрузки. Что делаем первым делом? Логично разнести приложение и базу данных по разным серверам. База данных пыхтит отдельно, кеш с админкой на одном web сервере.

Все пока работает, но нагрузка растет и видно, что PHP приложение не справляется, логично что сделать? Правильно, запускаем еще один web сервер. Уже возникает проблема, файл к кешем создается на одном веб сервере, с админкой, а нужен еще и на втором. Ну вроде не страшно, скопировали файл и живем дальше. Стало немножко неудобно копировать каждый раз после модификации базы данных, но пережить можно.

Нагрузка еще выросла, вы запустили 10 серверов. Копировать файл руками вам надоело и вы стали его при модификации автоматически пихать на сервера. Пришлось немного написать кода, но все ведь работает!

Тут выяснилось, что вы сделали супер сервис и он нужен всем! Нагрузка выросла сильно и вы запустили 100 инстансов веб сервера. С процедурой копирования файла начались сложности, выяснилось, что не все 112 серверов работают одновременно, кто-то перегружается, а кто-то сломался. Выяснилось, что  push работает не очень здорово сам по себе, нужно еще делать запрос конфигурации из какого-то центрального хранилища при старте инстансов и еще как-то это совместить с процедурой деплоя свежих версий приложения.

Фак.

p.s. и тут начинает дымить сервер базы данных и вам требуется кешировать не десяток полей, а немного больше....



Останнє редагування: 20 листопада 2017 13:27:20 від dmp
   
Re: ФЗВ Программисты PHP -  :help:
fam

ОК, я попробую объяснить, хотя выше ключевое слово уже назвали :)

Вообще довольно регулярно вижу, что программисты не верят в свои проекты, не задаются вопросом "а что будет если мой проект станет популярным?" Есть ли план что делать, если нагрузка будет резко расти? Пусть сегодня это проект на PHP+MySQL, но принимая то или иное техническое решение всегда полезно задаваться этим вопросом и держать план реагирования на рост под рукой.

Предположим имеем ваш PHP код и сервер базы данных на одном сервере, ну и при модификации базы данных скешировали в файл что-то там. Все работает замечательно.

Но тут вы получаете рост нагрузки. Что делаем первым делом? Логично разнести приложение и базу данных по разным серверам. База данных пыхтит отдельно, кеш с админкой на одном web сервере.

Все пока работает, но нагрузка растет и видно, что PHP приложение не справляется, логично что сделать? Правильно, запускаем еще один web сервер. Уже возникает проблема, файл к кешем создается на одном веб сервере, с админкой, а нужен еще и на втором. Ну вроде не страшно, скопировали файл и живем дальше. Стало немножко неудобно копировать каждый раз после модификации базы данных, но пережить можно.

Нагрузка еще выросла, вы запустили 10 серверов. Копировать файл руками вам надоело и вы стали его при модификации автоматически пихать на сервера. Пришлось немного написать кода, но все ведь работает!

Тут выяснилось, что вы сделали супер сервис и он нужен всем! Нагрузка выросла сильно и вы запустили 100 инстансов веб сервера. С процедурой копирования файла начались сложности, выяснилось, что не все 112 серверов работают одновременно, кто-то перегружается, а кто-то сломался. Выяснилось, что  push работает не очень здорово сам по себе, нужно еще делать запрос конфигурации из какого-то центрального хранилища при старте инстансов и еще как-то это совместить с процедурой деплоя свежих версий приложения.

Фак.

спасибо за информацию. интересно.

одно но - всегда надо быть реалистом и решать задачи, исходя из ВОЗМОЖНЫХ реалий.

или лучше на всякий случай перейти на oracle заранее?
   
Re: ФЗВ Программисты PHP -  :help:
dmp

спасибо за информацию. интересно.

одно но - всегда надо быть реалистом и решать задачи, исходя из ВОЗМОЖНЫХ реалий.

или лучше на всякий случай перейти на oracle заранее?

Вы считаете успех вашего проекта невозможным? Так зачем им заниматься?

Oracle - не панацея, он ляжет под нагрузкой как и все остальные, возможно чуть позже, но и дороже.

Вы спросили как сделать лучше, вам и попытались объяснить как лучше кешировать данные и какие проблемы могут вылезти из тривиального решения.
Конкретное техническое решение конечно же за вами, вы знаете свою специфику, а я не хочу в нее вникать :)

Хорошим вариантом (имхо) является redis.
   
Re: ФЗВ Программисты PHP -  :help:
fam

Вы считаете успех вашего проекта невозможным? Так зачем им заниматься?

я просто знаю, что даже если проекту и суждено стать самым лучшим в мире по своей тематике, то посещаемость вряд ли когда -то достигнет 20К/день
   
Re: ФЗВ Программисты PHP -  :help:

   
Re: ФЗВ Программисты PHP -  :help:

Если ваш проект станет на столько популярным у вас будут ресурсы решать возникающие задачи, проектов которые реально могут перерасти возможности обычного PostgreSQL на максимально заряженном серваке от обычного вендора аля SuperMicro реально немного.
   
Re: ФЗВ Программисты PHP -  :help:

Засіб
Прекрасно можно на PHP/Hack писать большие проекты с красивым кодом и гавно кода на Python, Ruby, JS
написано тож не мало.
   
Re: ФЗВ Программисты PHP -  :help:
fam

просто обычно все должно быть максимально просто, дабы легко разобраться в последствии в том числе другому челу. У тебя уже есть база, вот там стоило и хранить. Исключений в таком случае обычно мало (типа требования заказчика). Никаких проблем при хранении этого твоего добра в базе - не возникало, кроме мифической дополнительной нагрузки на базу :D

Ладно короче, по второму кругу идем, бросаю :)

Чечкин, Вы правы. В том, что надо все держать в базе. ПризнаЮ.

как выше упомянул, это я и делал до момента, когда решил добиться бОльшей универсальности. без лишних передач переменных в функции, присваивания значений одного другому, и т.д.

в фреймворке это никак не выходило, хотя облазил соотв. обсуждения (но, может, и проглядел что-то, допускаю).

нужен был, фактически, аналог константы, типа определенной с помощью define('ABC', 'la-ala.....').

и только сейчас, решив еще раз подумать над рекомендациями, допер сделать в конструкторе контроллера простое, как колумбово яйцо: define ('MYFUCKUNGDATA', $this->MCommon->ExtractMyFuckingDat aFomMySQL());

фсё.

теперь могу обращаться к этому делу, откуда угодно - в контроллере, модели, представлении, и т.д. без дополнительных операций.

спасибо.



 



   

Цю тему переглядають:

0 Користувачів і 1 гість
 
Повна версія