Бюджет: 20000 UAH Срок: 3 дня
Добрий день. Имею 14 лет опита на Python. Если интересует- пишите в личку, обговорим детали.
Что должен делать:
- подключение к MySQL;
- выборка изображений определённых товаров (активных);
- проверка: да/нет - существует ли оптимизированное изображение(я) у товара с таким-то id, да - пропуск, нет - выкачиваем, оптимизируем, записываем;
- мультипоточное выкачивание картинок на сервер (50-100 потоков);
- разделение потоков и файлов сразу должно происходить в разные дисковые масивы;
- оптимизировать изображения (согласно заданным параметрам);
- возможность налаживать watermark непосредственно на изображения;
- должно создаваться 3 изображения с нужными размерами и ватермарком (в формате webp)+ сжатый оригинал (на случай смены размера и ватермарка);
- если за картинкой идёт обращение с Safari - нужно отдавать jpg (конвертировать на лету webp to jpg);
- записывать в БД изменённые изображения (ссылки на эти изображения) в отдельную колонку;
Также нужно продумать оптимальную схему хранения и категоризации изображений, т.к. изображений много (больше 2,5 млн).
!!!Плюс ко всему, нужно предусмотреть масштабируемость сервера, т.к. кол-во изображений и возможно функционал будет расширяться.
Прошу читать внимательно и вдумчиво, откликаться только тех, кто действительно сможет выполнить задание! Время на попытки к сожалению нет.
Бюджет: 20000 UAH Срок: 3 дня
Добрий день. Имею 14 лет опита на Python. Если интересует- пишите в личку, обговорим детали.
пока никак
если в один жестак лупонуть 100 потоков он просто умрет ну и отдача опять таки соответственно будет при обращениях в файлам ужастная
С ssd диском нечего не случится, а для hdd предусмотрен ведь RAID. Какие сейчас установлены диски? Сколько их, если есть информацию название\модель?
сервера ещё нет, но думаем этот выбрать - https://www.hetzner.com/storage/storage-share/nx60
Это ведь обычное NAS хранилище для хранения файлов\резервных копий у которого не стоит приоритет на скорость работы (как жесткого диска так и интернет подключения), а приоритет на сохранность данных. Его используют обычно для облачного хранения.
Вот описание https://wiki.hetzner.de/index.php/Storage_Share/ru там стоит nextcloud "Доступ через SFTP или FTPS невозможен. " не говоря уже про запуск скриптов
Интересная задача
1. обойти вредный Safari можно так
<picture> <source srcset=" /uploads/img_small.webp 1x, /uploads/img_big.webp 2x" type="image/webp"> <source srcset=" /uploads/img_small.jpg 1x, /uploads/img_big.jpg 2x" type="image/jpeg"> <img src="/uploads/img_small.jpg"> </picture>2. хранить статику сейчас дешевле и комфортней всего на Amazon S3, (тот же Django умеет статику в S3 хранить)3. как часто будут заливатся новые картинки? насколько они большие. Если не часто и не большие, то ресайзить можно на лету при добавлении. При том разово пережать все что есть в базе (2.5 лямов картинок конечно не мало, но вполне под силу домашнему компютеру)4. можно использовать нечто вроде Celery, он умеет в concurency, хотя я сейчас делаю схожую задачу на более быстром MRQ (моя задача - спарсить 260 лямов сайтов, и весьма ощутимо экономлю ресурсы при большей скорости. Какараз сейчас решаю проблемы по нему некоторые). Если не горит то вполне наработки пойдут в ваш проект уже готовые и отлаженные
5. если решение предполагает что нужно перехватывать запросы и всетаки подставлять свои картинки в сафари. то тут нужен openresty, только думаю это лишнее совсем
6. а какой вообще стек? нужно больше сведений
забыл добавить, на SEO название картинки тоже влияет, поэтому обычно берут slug(название)_little.jpg както так называют
S3, уточняю
https://aws.amazon.com/ru/s3/pricing/?nc=sn&loc=4
это неприлично дешево, хотя я не пиарю амазон (не воспринимайте как рекламу), но дешевле наверное только у себя дома (где не бизнес а дом), где вы взяли 230 баксов за месяц не пойму, объясните пожалуйста. Да и к тому же 2.5 лямов картинок не весят 10 Тб (конечо если это не спутниковые снимки)
1) S3 тарифы, хранилище S3 Standard - 0,023 USD за гигабайт (тут от выбора региона есть и дороже) = 23$ за 1 тб == 230 за 10 тб (и это только хранилище + там будут дополнительные услуги)
2) Будут ли 2.5 млн. картинок весить 10 Тб картинки вполне могут (бюджетная зеркалка в хорошем качестве делать 12 мб в jpeg => 30 Тб, а к примеру айфон делает ~2.5 мб в jpeg => 6.25 Tб), нужно ли для сайта такое качество фото, для большинства проектов нет, но тут зависит от проекта. Но заказчик привел пример выше именно на сервер с 10 Тб.
3) Размещение, есть к примеру крупный дата центр от ovh там можно арендовать сервер с 4-мя дисками по 4 тб и поставить к примеру рейд-10 получить 8 тб места (без рейда 16 тб) и уложиться в 100$ c 1 Гбит\с каналом. Есть еще более бюджетные варианты к примеру kimsufi (бывает выставляет сервера 2 Тб в рейд(0 или1) за 19$, на данный момент доступен без рейда такой )
понял, а как с качеством в этих ovh и kimsufi?
отвали, летенси, падение скорости???
вы знаете, я вот сейчас работаю над проектом размещенным на Hetzer, и напр. у них винты на самых душманских SSD, после записи 50 Гб, скорость записи падает до нуля так и висит около минуты, поэтмоу не все так однозначно может быть. Конечно нигде не написано у них что так всьо плохо, заказчику фиолетово что приходится часами делать бекап базы и пр. неприятности. Поэтому даже если написано что SSD и в рейде, не все так может быть просто. Поэтому нужен личный опыт, вот напр. в Amazon тоже есть приколы что скорость падает когда они делают ресайз дисков и пр. вещи но такое бывает раз в месяц. На Digital Ocean, все подороже но они лучше всех, почти идеал хостинга, разве что у них неудобная оплата. Кроме того нужно учитывать геолокацию потребителей для уменьшения пинга.
SDD диски нужно обслуживать, одни чаще другие реже, тогда будет работать максимально продуктивно. Бекапить большие проекты везде нужен особый подход, что-то бекпится на протяжении дня, что-то нужно производить оптимизацию перед бекапом. Облачные сервисы все работают по теории быстрей, на практики большинство систем в некоторых моментах работают на порядок медленней. Стоимость облачных сервисов обычно от *2 до *5 дороже. Да и облаком из-за постоянных бекапов может пойти нагрузка на ЦП и тд может потом не приятно удивить циником в конце месяца.
У меня вот на одном старом проекте трафик шел 2 Тб в месяц с одного сервера
амазон это бы оцени еще в +180$ в месяц абонплату
Java 6 ставок 5 августа
AI и машинное обучение 77 ставок 5 августа
PHP 78 ставок 4 августа
18 ставок 4 августа
Разработка ботов 71 ставка 31 июля