Devops: развернуть небольшой кластер для data science
Цена договорная
Общая задача: нужен легко масштабируемый и дешевый кластер для работы с данными в python. Стэк - pandas/dask/xgboost.
Use case - 80% времени тихий data science небольшой группой, 20% времени вычисления, требующие много CPU и хорошо поддающиеся параллелизации. В реальности вряд ли нам потребуется больше 80 CPU в пике, что примерно равно 10 виртуалкам, объединенным в кластер, и 3 машин в спокойном режиме. Хотим иметь систему, позволяющую оптимально расходовать деньги на мощности и быстро масштабироваться как вверх, так и вниз.
Мы думаем, что хотим построить все на Hetzner cloud + Kubernetes + пачке скриптов для масштабирования облака в зависимости от текущей нагрузки, но открыты к более рациональным предложениям, если Вы знаете, что есть путь легче/дешевле.
Как мы видим нужный сетап:
1. Создать и настроить кастомный образ Ubuntu, из которого будут подниматься все остальные:
- две группы пользователей, sudo и обычные
- Anaconda, python 3.7, некий набор пакетов в ней
- доступ через ssh/mosh
- tmux для всех пользователей с простеньким конфигом
2. Поднять 3 машины в Hetzner cloud, добавить к ним shared диск для всех.
3. Поднять Kubernetes. Придумать и рассказать нам, как его легко масштабировать вверх-вниз и как отслеживать его состояние.
4. Настроить JupyterHub и Dask Distributed поверх Kubernetes.
5. Настроить nginx и вывести на субдомены доступ к web dashboard даска и jupyter hub, настроить SSL/https и обеспечить базовую безопасность доступа (в идеале не ходить дальше private keys для ssh, но как и в основной задаче, мы рассчитываем, что исполнитель сам предложит хорошее решение и расскажет нам, почему оно хорошее и удобное :))
Мы рассчитываем получить предложение по бюджету в часах/деньгах от исполнителя. Предполагаем, что при понимании процесса исполнителем это не должно занимать больше 20 часов, готовы принять аргументированное расширение бюджета.
Use case - 80% времени тихий data science небольшой группой, 20% времени вычисления, требующие много CPU и хорошо поддающиеся параллелизации. В реальности вряд ли нам потребуется больше 80 CPU в пике, что примерно равно 10 виртуалкам, объединенным в кластер, и 3 машин в спокойном режиме. Хотим иметь систему, позволяющую оптимально расходовать деньги на мощности и быстро масштабироваться как вверх, так и вниз.
Мы думаем, что хотим построить все на Hetzner cloud + Kubernetes + пачке скриптов для масштабирования облака в зависимости от текущей нагрузки, но открыты к более рациональным предложениям, если Вы знаете, что есть путь легче/дешевле.
Как мы видим нужный сетап:
1. Создать и настроить кастомный образ Ubuntu, из которого будут подниматься все остальные:
- две группы пользователей, sudo и обычные
- Anaconda, python 3.7, некий набор пакетов в ней
- доступ через ssh/mosh
- tmux для всех пользователей с простеньким конфигом
2. Поднять 3 машины в Hetzner cloud, добавить к ним shared диск для всех.
3. Поднять Kubernetes. Придумать и рассказать нам, как его легко масштабировать вверх-вниз и как отслеживать его состояние.
4. Настроить JupyterHub и Dask Distributed поверх Kubernetes.
5. Настроить nginx и вывести на субдомены доступ к web dashboard даска и jupyter hub, настроить SSL/https и обеспечить базовую безопасность доступа (в идеале не ходить дальше private keys для ssh, но как и в основной задаче, мы рассчитываем, что исполнитель сам предложит хорошее решение и расскажет нам, почему оно хорошее и удобное :))
Мы рассчитываем получить предложение по бюджету в часах/деньгах от исполнителя. Предполагаем, что при понимании процесса исполнителем это не должно занимать больше 20 часов, готовы принять аргументированное расширение бюджета.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.