Система(создание тестовой среды) для практического обучения в области Big Data?
Здравствуйте,
хоче немного поучиться в направлении BigData, Messaging Systems, Cassandra, Spark и так д..
Теории уже обчитался, но без хотя бы малейшей практики нельзя сказать, что понимаю как работает..
Хочу поменять немного профиль в этом направлении, сейчас работаю Java разработчиком.
Так вот - в чем вопрос.
Подскажите как, как лучше - настраивать рабочую среду, чтоб была возможность реально развернуть несколько микросервисов, настроить ZooKeeper или Consul, установить Cassandra, ElasticSearch и так д, чтоб хотя бы "пощупать", посмотреть, чтоб хотя бы была возможность для себя определить, что да, минимальный опыт и понимание есть..
На одной машине - как-то не оч по "фэн-шую". Хочется чтоб все по "взрослому".
По взрослому, для обучения и тестирования ничего не нашел..
Например на AWS есть бесплатный аккаунт, но там только 1 "инстанц" бесплатно дается...
Может Vagrant с виртуалками?
Я надеюсь, что вопрос мой понятен и кто-то что-то подскажет. Чтоб бесплатно или с минимальными затратами.. Можно взять виртуальный VDS - тоже копейки стоит, но это же тоже одна машина..
Или все-таки локальная машина с различными виртуальными хостами единственный выход?
Владимир Олохтонов: Спасибо за ответ. Я не очень пока разбираюсь, поэтому вопрос может быть глупым..
Я правильно понимаю, что Docker Swarm https://github.com/docker/swarm - Это то же самое или похожее? Можно его на локальной машине установить, потому управлять этими 10мя контейнерами?
web_dev: тут главное с целью определиться. Если вы всё хотите запускать на одной физической машине, то виртуализация нужна для изоляции приложений друг от друга, а докер-контейнеры скорее для удобства деплоя, что вам вряд-ли нужно. Я бы просто развернул вирткалку и туда все приложения поставил.
Владимир Олохтонов: Цель - я написал. "Пощупать", чтоб хоть было понимание как работает на практике.
Хорошо, Вы говорите, что "виртуализация нужна для изоляции приложений друг от друга,", а потом говорите все взять и поставить на одну машину.
А если я на одну хочу Elastic поставить На другую Cassandra, на третью еще что-то.. Мне кажется Этот зоопарк на одном виртуальном хосте, снова же "не по фэн-шую."
web_dev: так вы его поадминить хотите или с точки зрения профессионального разработчика посмотреть, что с ним можно делать? Задачи принципиально разные.
Владимир Олохтонов: Для начала поднять несколько виртуальных машин с ip для того чтоб на них установить Kafka, Elastic, Cassandra, Consul и так д, чтоб иметь немного понятие, как оно будет взаимодействовать друг с другом. Тоисть создать среду, максимально приближеную к реальности. А потому уже упражняться с MapReduce алгоритмами и так д.. Основная идея не зависнуть на конфигурировании(DevOps), но немного иметь базовые понятия о этом.
Да, те ссылки тоже актуальны, но попозже, когда все будет настроено.
sim3x: - насколько я вчера гуглил. Можно делать все с помощью ансибл или же, развернуть например Docker Swarm кластер и другие контейнеры для соответствующих технологий, на одной или нескольких виртуальных машиных. Все верно я понимаю? Ведь контейнеры на докере могут тоже работать как независимые инстанцы в сети. https://docs.docker.com/engine/userguide/networkin...
sim3x: Владимир Олохтонов: - Как я понял, в мнтернете бесплатно или за копейки несколько VM для такого тестирования мне не отыскать, поэтому вопрос немного перейдет в другую плоскость..
Задание - создать 5 VM чтоб их объединить в одну сеть. В последствии, чтоб потом можно было ими управлять легко, и ручками не кликать установку или вдруг переустановку например Ubuntu.
1. Скачиваю Vagrant образы, стартую и с помощью Ansible устанавливаю то что мне нужно на эту машину? Соответственно сеть настраиваю в настройках VirtualBox?
2. Упускаем Vagrant, насколько я понимаю, он не совсем для этого предназначен. Качаем образ отсюда https://virtualboxes.org/images/ , соответственно копируем 5 раз и с помощью Ansible устанавливаем то что нужно.
3. Берем https://hub.docker.com/ докер образы с уже нужным предустановленым нужным по. Немного изменяем, стартуем?
Спасибо!
Думаю, что докер образы будет самый простой вариант. не нужно устанавливать VirtualBox. У меня винда, и докер использует Hyper-V. Ок, дождусь ваших советов и ответов.
sim3x: Немного не понял. Есть докер под виндовс. https://docs.docker.com/docker-for-windows/
Инсталим, создаем контейнер. Конечно же контейнер будет линуксовый, но управление виртуальной машиной и контейнерами будет из под виндовс.
И Если у меня виндовс, то мне нужно будет проинсталить VirtualBox туда установить какой-то линукс и там уже создавать докер контейнер.
Тоисть два разных пути, если выбирать эффект наименьшего сопротивления, то получится, что путь с докером под виндовс будет проще. Или?
Так Мои предположения в предыдущем и этом посте верны? ))) Спасибо
sim3x: Владимир Олохтонов: - Кажется я нашел нужный мне инструмент. https://docs.docker.com/compose/overview/
Чтоб не тратить 100500 часов на конфигурацию различных хостов, виртуальных машин и так д.. Ведь мне интересна более сторона разработки, нежели конфигурации. Конечно же, тут нужно также будет почитать, но думаю этот путь проще и быстрее..
Если компухтер о нескольких ядрах, то виртуалки. Плюс ко всему, все явапродукты нормально запускаются в любой системе, типа эластика. Rabbitmq под виндой кажется тоже работает.
Если на линуксе, то пользуйте lxc/docker.
Ну и в качестве набора тестовых данных - xml-архив википедии!