Aisamiery

Aisamiery
Рейтинг
319
Регистрация
12.04.2015
livetv #:
SPA сложнее.

Что там сложного? Уже напилили полную коробочку инструментов. Разделять фронт и бэк сейчас сильно проще.

frerf10 :
Заменят SPA приложение полностью MPA сайты?

Вопрос мне кажется не совсем правильный.

Cuys #:
Если нагрузка более 1 млн в сутки, только самопис.

Нагрузка на статичный контент? Это шутка?

Виктор Горняков #:
Laravel или самопис + сервер нормальный (виртуалка для начала) от 8 ОЗУ, и 4 или 8 ядер

Почему ларавел? Почему вообще php или в чем разница php laravel или php wordpress? Laravel заставит написать вас просто все ручками дав набор инструментов, но никто не запрещает так же ручками написать и в wordpress, просто то что это laravel это не значит что ручками напишут нормально =)))

Виктор Горняков #:
Даже если и перевести на ПОСТГРЕСС, для ускорения

В чем будет ускорение на примерах от PerconaDB (fork mysql) или даже mysql8?

yandrey #:
Для нагрузки, если считать нагрузкой десятки-сотни запросов в секунду, вряд ли существует готовая CMS

С сотней запросов в секунду в целом я думаю справится любая CMS на выделенном сервере, у нас битрикс тянет больше 2500 запросов в секунду и это интернет магазин, а не статический контент =))

Владимир #:
для минимизации нагрузки на базу, новости должны работать через псевдо ЧПУ, то есть выгребаться они должны по идентификатору, но в адресе могут быть также человекопонятные фразы, например site.com/4321-Novost.html, то есть новость будет выгребаться из базы не по текстовому ключу, а по идентификатору 4321

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

krock :
Другой вопрос - нагрузка в плане посещаемости и количества материалов. Может, у кого-то есть опыт, что бывает с CMS, когда там находятся сотни тысяч материалов, и столько же пользователей, тысячи из которых заходят каждый день

По своему опыту работы в хайлоад проектах могу сказать что профиль нагрузки разный на разных проектах и не бывает чтобы CMS или работала или не работала, есть какие то участки где алгоритм не оптимален или делается больше запросов или запрос тяжелый и так далее, то есть оптимизация как правило происходит по факту появления проблем, изначально заниматься такой ерундой нет смысла, в вертикальном масштабировании расти можно очень долго, а потом просто БД вынести на отдельный сервер и снова расти долго =)) Ну а если упретесь в ресурсы всегда можно переписать проект на го или расте =))

Да у меня такая проблема пару лет назад была на ростелекоме, у них там даже пункт в договоре есть про это на самом деле, обычно это прям проблема когда на локальном домене делаешь работу и тут тебе реклама прилетает постоянно

Я тоже думал про расбери пи для домашнего сервера, но какая то дика дорогая штука за такие скромные параметры, в итоге я поставил домой себе вот такое чудо докупил в dns памяти и винт и коробочка стоит на холодильнике =)) Но я не использую под сайты, у меня там стоит всякие домашние штуковины, например ПО для управления умным домом, файло облака, "шары", потоковое видео с торрентов и так далее, в общем чисто домашние прикладные задачки, но Intel N100 мне понравился, там хоть вентилятор есть но я пока его ни разу не слышал вот его нагрузка сейчас


Хотя у меня там и MQTT брокеры которые обслуживают с десяток дачиков и релюшек, базы данных, вэб серверы для интерфейсов и так далее, плюс запас еще по мощности есть

Сервер с одним ядром это либо VPN либо раздача статики, для сервера где есть несколько приоритетных процессов одно ядро это катастрофа по сути, они будут его нещадно делить, а при этом есть еще и системные задачи. VPS для сайтов нужно хотя бы 2 ядра минимум и вот тут наверное 2 ядра по 5ГГц будет лучше чем 4 ядра по 2.8ГГц, хотя опять же лучше проверить тестами так как профиль нагрузки у всех разный, например принять 1000 запросов от клиентов на 4 ядрах будет быстрее, но в рамках одного запроса частота будет решать. Для простоты объяснения герцы это количество операция в секунду которые может сделать процессор, то есть 1 ГГц =  1 000 000 000 операций в секунду на процессоре

livetv #:

У пользователя в докере нет прав на файлы из-за того, что он не знает группы.

Попробую.

Вышло ранее добавлением группы в работающий контейнер и рестартом php/nginx.

Но после перезапуска контейнера все пропадает.

Вам надо понимать, что такое пользователь и группа в linux это по сути какой то ID числовой. В контейнере не свои ID, а точно такие же. То есть если у вас есть на хост системе пользователь например webuser с ID 1001, то в контейнере тоже надо создать пользователя с 1001 ID, тогда у него будут такие же права для файлов. Выше способ я показал как можно запустить процесс от того же пользователя, у меня в продакшене так работает. Ну и не правильно чтобы nginx и php были в одном контейнере. Путь докера (docker way) это то, что в одном контейнере один основной процесс.

keklodoq #:

можно ли таким образом с помощью докера управлять ресурсами? например выделить для PID 1 скажем 4 ядра и столько-то памяти, а для PID 2 побольше

да можно ограничить контейнеру ресурсы https://docs.docker.com/config/containers/resource_constraints/

GitHub и GitLab уже предлагали? Правда не читал оферты, но мои репозитарии бестолковые с тестовыми заданиями висят уже много лет бесплатно =))
livetv #:
Как в композе добавить группу и пользователя в группу?

Смотря для чего вам это надо, запустить основной процесс от пользователя и его группы в композ (версии 3) можно вот так

PS. Да забыл, только надо экспортунть эти переменные окружения

export UID="$(id -u)"
export GID="$(id -g)"
lutskboy :
у меня есть образ ubuntu. я его запустил. создается контейнер. установил там openssh-server и сменил пароль от root

Вы немного не поняли суть докера, это не виртуализация как например виртуалбокс, задача докера изолировать 1 процесс с PID 1 только за ним он и следит. То есть докер контейнер это запуск одной программы изолированно, например  openssh-server, для примера nginx + php-fpm+mysql это будет 3 разных докер контейнера, при том если хотите lets encrypt это будет четвертый контейнер, крон пятый и так далее.

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

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

Преимущество докера раскрывается на самом деле в управлении окружением, вы можете запустить с десяток php-fpm процессов различных версий, библиотек и конфигураций, что гарантирует (почти) одинаковое поведение на любой хост системе где установлен докер. Так же это помогает именно раскатки приложения в продакшене, вы можете подготовить и сконфигурировать образ для приложения, потом при изменениях в гите делать слой в образе накатывая туда код и записывать готовый образ с приложением в регистре (registry - хранилище образов), а системы деплоя уже увидят что изменился образ и подтянут его, запустят 100500 контейнеров после чего переключат на них трафик, так что деплой приложений стал простым и контролируемым. Но все это к стейтлесс частям приложения, стейтфул системы (базы данных, хранилища файловые) в докер как правило не запихивают для этого есть другие инструменты. 

Всего: 4110