LINUX.ORG.RU

12
Всего сообщений: 177

Мода на облака, бигдату, и распределенные БД [теория тупости]

Давайте немножко побеседуем про новомодные low consistency poor availability системы, снискавшие популярность в последнее время.

Попытка заблокировать сервисы Google обернулась сбоем в работе систем Центробанка РФ (комментарий)
«интернет вояками планировался как отказоустойчивая сеть, но вебмакаки умудрились сделать из нее сильно связанный фарш, поздравляю, вы сломали чугунный шар»

Как мы все знаем, интернет разрабатывался, как отказоустойчивая система, которая функционирует до последнего узла. Как мы знаем, коммерсанту частенько есть что скрывать и не хочется зависеть от благого расположения Васи Пупкина, даже если Васю Пупкина зовут SAP, Oracle, IBM, или Microsoft. Так почему же люди покупают Office 365 и Dynamics 365 при том, что есть полностью оффлайн альтернативы? Если вы размещаетесь в России или Китае, покупаете продукт 365, а потом Роскомнадзоры или сам MS блокирует вам облако — вы остаетесь полностью в дерьме. Кто это покупает и что ими движет? Кто завязывает свой бизнес на Dynamics 365? Или на облачный Битрикс? Я не понимаю, предлагайте ваши вариант.

«Облака», в плане «привязан цепью к интернет-серверу», не новы, Самая отстойная копирастическая контора, Ubisoft, в свое время отличилась тем, что их uPlay при кратковременной потере интернет-соединения вываливал вас из ОФФЛАЙН игры. По сути, многие софтоделы ориентируются на облако просто для того, чтобы иметь больше возможностей струсить денег с потребителя. И даже несмотря на то, что теоретически возможность миграции предоставляет много кто — фактически эта миграция выйдет вам в копеечку и вы семь раз подумаете, прежде чем мигрировать.

Ладно, допустим, просто допустим, что таким образом некий Ерохин экономит время и деньги на установке и настройке оффлайнового софта, на организации своего сервера, к которому можно было бы получить доступ даже с мабилы (не спрашивайте меня, зачем с мобилы — я не понимаю). Давайте даже на минуту пофантазируем, что мы — технически грамотный разработчик, который желает приобщиться к потоку денег. Естественно, при этом мы желаем клиенту только добра. Железо дешевое, хостинг дешевый — давайте же сделаем бэк нашего продукта на большом-прибольшом числе серверов, да еще и в разных геолокациях, чтобы у нашего любимого клиента было меньше проблем со связью.

Но раскидать серваки по планете — это одно, а заставить их работать после этого вместе — это совершенно другого уровня задача. Как она обычно решается? Через базы данных, в число которых входят брокеры сообщений, вроде RabbitMQ. И здесь мы вступаем на тропу лютого треша, потому что проектировать и реализовывать распределенные системы и БД в частности на планете умеет человек двадцать, и скорее всего они работают не у вас, но спрос на них сильно больше, потому что другие «умники» уже давно витают в облаках и своих спецов не отдадут.

«Готовые решения всё порешают» — скажете вы? А знаете ли вы, что ZooKeeper — единственная распределенная СУБД, гарантирующая строгую согласованность данных при отказах? А знаете ли вы, что, даже несмотря на выдающиеся достижения, в ZooKeeper операция синхронизированного чтения нелинеаризуема, а потому часть вашего кластера может сидеть с тухлыми данными, не зная об этом? А знаете ли вы, что полностью исправный кластер Riak при интенсивных конфликтах обновлений теряет более половины этих обновлений на полностью исправном кластере? Даже при самых строгих настройках согласованности данных. Причем, таким ужасным Riak делать было не обязательно — на самом деле это спонсоры Riak и попросили сделать умолчательную конфигурацию такой ужасной.

Но как же так, мы же все давно знаем про Paxos, который еще триста лет назад позволял достигнуть консенсуса в распределенной системе с отказами узлов — почему же до сих пор в школе не преподают основы построения распределенных систем? Если мы возьмем тот же ZooKeeper, то мы увидим, что в случае отказа лидера кластеру требуется НЕСКОЛЬКО СЕКУНД на возобновление работы — это настоящая стоимость честного распределенного консенсуса, который у ZooKeeper при выборах лидера похож на Paxos. Для решения проблем дичайше медленного консенсуса и возникла идея выбора «эталонного сервера», лидера, мнение которого безоговорочно принимает весь кластер без затрат на спор между узлами.

Правда, этот подход все равно не сработает при достаточно частых сбоях с частыми потерями лидера. Более того, система на консенсусе полностью выйдет из строя при потере более половины узлов. Вы можете заметить, что согласно теореме говна-или-мочи достижима либо согласованность данных, либо доступность системы, либо в системе недопустимы отказы. Давайте пожертвует согласованностью ради доступности! Но беда мамкиных бигдатовцев заключается в том, что средняя система по больнице не обладает высокой доступностью и не обладает хорошими гарантиями согласованности. То есть, высокодоступная система готова работать 24/7 до первого отказа сервера или потери соединения с интернетом. Почему пришлось так делать? Потому что иначе будет высокая задержка ответа и/или большая нагрузка на каналы.

Возьмем среднюю бигдату в вакууме — GitLab:
https://about.gitlab.com/blog/2017/02/01/gitlab-dot-com-database-incident/
Пока бигдатовцы боролись со спамером, они умудрились ушатать данные пользователей за целый день, и потом еще день восстанавливали ее из бэкапа. Тест на доступность успешно провален. Это еще ладно — а я слышал истории о том, что у сервиса бэкапы-то есть, но восстанавливать их придется несколько недель. Так что отказ на день — это еще вполне себе High Availability по нынешним меркам.

Да, какой-нибудь яндекс регулярно устраивает тесты отказоустойчивости, вырубая датацентр. Однако, мне страшно подумать, что случится, если у яндекса внезапно вырубится более половины датацентров и отвалятся службы, опирающиеся на консенсус. Ихний кластер ClickHouse опирается в своей работе на (сюрприз) ZooKeeper. Отказ обезьянника (а он полностью отрубается при отказе половины узлов) приводит к переходу кластера в read-only. Сколько там еще служб отправится в read-only — мне было бы интересно узнать (давайте попросим роскомнадзор для проверки поблокировать датацентры яндекса).

Заметьте, что на серверах обычно SSD/HDD стоят в зеркале — чтобы, боже упаси, 24/7 сервис не умер из-за отказа одного из жестких дисков. И этому процессу впаривания говна нет конца, даже если завтра сделают устройства для передачи информации со сверхсветовой скоростью на спутанных квантовых состояниях и карманные петабайтные носители со средним периодом отказа в 2000 лет, то желающих хранить данные на локалхосте станет еще меньше и облачные сервисы будут выходить из строя по таймаутам при недопустимо больших задержках канала связи в 1 мс.

Потому, как ни странно, самое надежное «облако» — это то, которое стоит у вас в локальной сетке. Мало того, что облака могут в любой момент отвалиться — они еще и более несводобны, чем проприетарная софтина на локалхосте, как и предупреждал нас Штолман:
https://www.gnu.org/philosophy/who-does-that-server-really-serve.html

Я вот что не пойму: я один это вижу? Ваши данные, которые не ваши, ваши приложения, которая не ваши, ваши высоконадежные высокодоступные SaaS, которые остаются таковыми до первого отказа (и тоже, в общем-то, не ваши). Или вы тут все зарабатываете на SaaS (как Шома), потому особо не вскрываете эту тему? А со мной не поделились — у-у-у, подлецы.

PS: сам участвовал в разработке SaaS, но поставляли также и коробку для внутреннего сервера.

 , , , ,

byko3y ()

Интернет от МТС не пускает на Amazon AWS

Главная страница AWS работает. А при попытке перейти на авторизацию - console.aws.amazon.com - This site can’t be reached

В чате операторы морозятся.

Что это? Маркетинговый ход, чтобы пользовались их Cloud заместо Амазоновского?

 , , ,

bvn13 ()

storage solution for on-prem k8s.

Коллеги, доброго дня.
Настроено несколько кластеров k8s на виртуальных машинах vmware. вопрос: какое решение может подойти для настройки storage ?
к примеру: есть у меня rabbitmq, который я хочу поднять на k8s. сейчас мне приходится презентовать ему pvc со старого и доброго glusterfs, который живет отдельно от всего.
А вообще, все диски у нас на 3par и все диски отданы vmware.
Вот и хочется мне решение, которое может презентовать pvc моим pod-ам и делать это напрямую из 3par/vmware.
Надеюсь смог донести вопрос.
А еще, где вы храните дату для приложений на k8s ?
т.е. я понимаю что они могут и не содержать дату.
Спасибо.

 , , ,

dada ()

Ищу VPS с поддержкой вложенной виртуализации и почасовой оплатой

Посоветуйте VPS с поддержкой вложенной виртуализации и почасовой оплатой, пожалуйста. Я - физическое лицо из РФ, поэтому Google Cloud не подходит.

Производительность не критична, качество сети и толщина канала тоже, SLA никаких не требуется. Ищу условные 4 vCPU, 8GB RAM за менее чем $0.1/час. Инстансы все будут короткоживущие, до 8 часов, поминутная оплата была бы тоже кстати.

Для разовых экспериментов я привык запускать VPS от Scaleway и уже внутри них поднимать несколько виртуальных машин через Libvirt. Периодически на Scaleway сталкивался с полным фризом гостя на ранних этапах загрузки (большое потребление CPU процессом qemu, нулевая активность дисков и сети, в VNC просто стоп-кадр без реакции на клавиши). Раньше я списывал это на неудачный диск, убивал сервер и просто создавал новый. Сейчас эти фризы наблюдаются на 100% инстансов, может, это какое-нибудь ложноположительное срабатывание защиты от майнеров :-) Банальное vagrant init && vargant up стало невозможно выполнить.

Ищу альтернативы.

 , ,

si0 ()

Система для cloud-завхоза

Всем привет,

Ищу какую-нибудь open-source систему чтобы учитывать свое хозяйство. Вот допустим есть у меня кластер из 10ти proxmox серверов, на нем хостятся клиенты и внутренние системы. Хочу чтобы была некая система учета которая бы говорила что вот клиент такой-то тратит 100Гб места на диске, 3Гб оперативы и при этом его входящий/исходящий трафик 1Гб в месяц. Ну и все ассеты клиента собраны в одном месте.

С красивыми репортами и всем вот этим. Что-то типа https://apps.cloudhealthtech.com/ от VmWare только бесплатно.

Посоветуйте плиз.

 

alex07 ()

MapReduce без Hadoop

Вопрос пока что для меня дискусионного характера. Нужен MapReduce, но весь мой опыт контактирования с продуктами из стека Hadoop говорит мне о том, что если ты хоть чуточку в здравом уме, бежать от этой штуки нужно сломя голову и как можно дальше. Собственно загуглив я обнаружил что реализаций MapReduce довольно много. Но вот вопрос, а что собственно говоря выбрать? Может ли кто-то посоветовать в какую сторону смотреть?

 ,

Serbis ()

davfs2 (мистика)

Добрый день.

Вроде бы не первый год работаю с различными облачными хранилищами по WebDAV, как подключая их с винды, так и с серверов под Linux. Вчера наткнулся на какую-то чертовщину, думал утром разберусь, но не получилось - все воспроизводится.

Начну с конца без предыстории, только по фактам. Одно и то же облачное хранилище смонтировано пользователем root абсолютно одинаковой командой от имени ограниченного юзера (-o uid=…,gid=…) на 2 разных машинах Debian и из под винды плагином к Total Commander (встроенный функционал винды не люблю).

Все каталоги хранилища читаются. Файлы из него я могу свободно копировать на любую машину. Могу удалять или создавать пустые каталоги.

Как только дело доходит до копирования файла с машины в облако, на проблемном сервере вылазит Input/output error (5) (mc). На другом сервере файлы спокойно пишутся в произвольную директорию, с винды тоже работает нормально. Обращаться в техподдержку облака бесполезно, там скажут что нужно скачать их высер и забить им побольше своей свободной RAM.

На проблемной машине davfs2 1.5.4-2+b1, сервер настраивался в январе. На той где работает davfs2 1.4.6-1.1+wheezy1 (старая машина, конфигурация стабильна несколько лет). Все бы можно было списать на то что в какую-то версию добавили свежий баг, но у меня есть еще один сервак на котором активно используются облачные хранилища (только под бекап), так вот его я устанавливал пару месяцев назад - 1.5.4-2+b1, то есть ТА ЖЕ версия…

Вот, собственно, и вся чертовщина. Ось одинаковая, команды и права в точности совпадают.

Пробовал ставить debug most, но мало что понял. Идет при копировании файла запрос LOCK, он возвращает 201 Created, следом deleting node 0x…, ответ RET Input/output error. Может кто сталкивался?

 , ,

Dima_228 ()

VPS/VDS/аренда ВМ в России с возможностью получить IPv6-префикс

Сабж.

Знает ли кто-то, у какого российского хостера можно арендовать виртуалку (территориально также расположенную в России, а лучше в Москве) с возможностью получить к ней IPv6-префикс (минимум /60)?

OpenVZ-контейнеры и прочий нищехостинг не интересует. Единичные IPv6-адреса (on-link /128) тоже не интересуют.

 , , , ,

intelfx ()

Дуалбут

Чуваки, я могу у вас на компе поиграть через moonlight?

P.S Нашёл русский сервис на moonlighte

 

acroobat ()

Посоветуйте облако для домашней лабы

Хочется странного, а именно личный «девелоперский» сервак, подобно тому что работодатели покупают на команду, но под личные игрушки за разумные деньги.

А именно:
- Один виртуальный инстанс с SSH в Европе (до США высок пинг);
- 99,9% времени он находится в «холодном» состоянии и не просит денег (до 10$ в месяц), но не обязательно выключен - я могу допиливать конфигурацию в виме, например;
- По нажатию кнопки инстанс вживую мигрирует с дешманского 1 shared vcpu 1gb ram на 24 dedicated vcpu 128gb ram с почасовой оплатой и обратно (т.е. нужна поддержка лайв миграции и cpu/memory hotplug);
- Подмонтировать/отмонтировать супербыстрый nvme;
- Совсем хорошо бы ещё видеокарту on demand (CUDA), но могу пережить;
- Предсказуемая тарификация (желательно возможность установить лимит расходов);
- Желательно хорошая сеть между инстансами (10G), с поддержкой DPDK (подобно AWS ENA);
- Регистрация как физлицо;

Use cases: разово покомпилять ядро/yocto/openwrt, бенчмаркнуть lock-free синхронизацию как взрослый дядя, пофаззить код, обучить модель, запустить qemu-riscv в режиме tcg, поиграться с avx-512, etc.

 , ,

snizovtsev ()

что дешевле - baas(что выбрать) или диск на два тб?

не знаю, наверное все таки тема флеймовая - народ, как считаете что дешевле, каждые три года обновлять пару двухтерабайтников в зеркале или не париться и для бэкапов какой нибудь amazon s3 glacier дешевле будет купить? или что еще дешевле есть?

 , ,

hooj ()

как качать сразу в облако!?

Как качать что либо из интернета сразу в облачное хранилище на андроиде!? Фильмец весит 45 гигов а свободно на смарте 30…. Да и сразу в облако качать было бы удобнее… Неужели ни кто не придумал ?Проводники не умеют. Есть даже solid проводник который торренты качает, имеет встроенный браузер, видит облако, но вибирать папку для скачивания в облако не может… P.s - ни куда не посылать, ни на 4pda ни куда либо! Нa 4pda не знают…

 , ,

zritel ()

UKC SOLAR IP CAMERA MODEL F20 - можно ли управлять в linux ?

UKC SOLAR IP CAMERA MODEL F20 - можно ли управлять в linux ? как определить параметры сетевого траффика камеры, в инструкции ничего нет. https://www.alibaba.com/product-detail/IP-Camera-Night-Vision-PIR-Motion_1600067991657.html?spm=a2700.7724857.normalList.275.4ef9172arpl3Jl

 , ,

ustas1 ()

Облако Best practice

Поделитесь лучшими практиками по сборке облака. Есть 4 физических сервера dell r820 и r620 по 2 каждого.

 ,

valery88 ()

Последовательность автозагрузки сервисов

К Azure VM смонтированы диски, на которых при загрузке системы должны создаться рабочие slave workspace folders для jenkins agent, для чего написан сервис ниже и скрипт, создающий эти каталоги. Код скрипта и сервиса работают безупречно при уже запущенной системе, но не работают, как должны при загрузке CentOS. Проблема наверняка в том, что сервис пытается создать нужные каталоги на подключаемом диске, когда он еще не смонтирован. Какой наиболее правильный способ для решения этой проблемы? p.s. Попытки поставить различные варианты сервисов в «After=» пока безуспешны. В интернет предлагаются решения с написанием своего сервиса, который делает sleep на какое-то время и делать запуск после него, но такой способ видится не оптимальным.

[Unit]
Description=Script for jenkins_agent folder after poweroff VM
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/jenkins-slave.sh
TimeoutStartSec=0

[Install]
WantedBy=default.target

и сам скрипт:

#!/bin/bash
#Script for jenkins_agent folder after poweroff VM
sudo mkdir /mnt/resource/jenkins_agent

 , , ,

unlimuser ()

Devops инженер Лондон

Всем Привет! Начну с себя зовут меня Алексей, ищу хорошего специалиста в компанию. Сейчас нужны инженеры Devops. После всех шагов к цели работать придется на территории Великобритании, точнее г. Лондоне. IT компания делает сервисы для облачных приложений. Добавлю что, компания занимается оптимизацией бизнеса с помощью ИТ-консалтинга, разработки программного обеспечения и обучения.

Ищется инженер по сборке, обладающий компетенциями Devops в контексте развёртывания облачных решений в автоматическом режиме. Организация использует nodeJS и как следствие javascript. Знание этого ЯП требуется, так как инженер будет выполнять ручное слияние и валидацию посредством CI изменений в коде, выполненных сторонними разработчиками и зарегистрированными в системе контроля версий Git (что накладывает дополнительное требование в продвинутом понимании работы Git, что в большинстве случаев линейным разработчикам не требуется и таковыми знаниями они не обладают.

Обязанности:

  • Разработка, тестирование и поддержка сценариев сборки и развертывания в CI/CD framework/tools для автоматизации и оптимизации процессов развертывания
  • Выполнение развертываний, слияний и обновлений ПО
  • Подготовка и ведение документации и отчетов по установкам, процедурам и требованиям к системам
  • Мониторинг и тестирование приложений на всех этапах жизненного цикла

Требования:

  • Знание методологии Devops
  • Умение автоматизировать процессы развертки и сборки программного обеспечения (Jenkins, Chef, Terraform, Ansible, Shell Scripting и Linux-системой)
  • Навыки в работе по синхронизации этапов создания программного продукта: от написания кода до тестирования и выпуска приложения Хороший опыт в написание скриптов и кодирование в среде nodeJS Опыт работы с облачными платформами, предпочтительно Azure и Google Cloud Знания в построении контейнера программной инфраструктуры (Docker)
  • Уверенные навыки по автоматизации, интеграция и настройка платформы CI / CD
  • Умение контролировать и организовывать процессы разработки в GIT
  • Участие в создании архитектуры распределенных систем и микросервисов
  • Образование высшее (инженер)
  • Хорошее знание английского языка.

До собеседования могу сказать ЗП от 2500уе до 5000

Присылайте сюда вопросы, а в почту резюме. Способ связи: don@profil.ru

 , , ,

Miller909 ()

Что не так с данным docker стеком?

Вечер добрый, пробую запустить owncloud в docker, взял офф docker-compose. но в результате после запуска в контейнере owncloud вижу

Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'owncloud'@'usr_owncloud_1.usr_default' (using password: YES)

Хотя пароль задан верно… буду рад если кто подскажет.

конфиг взял с: https://doc.owncloud.com/server/admin_manual/installation/docker/#docker-compose-yaml-file

Так пробую:

version: '2.1'

volumes:
  files:
    driver: local
  mysql:
    driver: local
  backup:
    driver: local
  redis:
    driver: local

services:
  owncloud:
    image: owncloud/server:latest
    restart: always
    ports:
      - 8080:8080
    depends_on:
      - db
      - redis
    environment:
      - OWNCLOUD_DOMAIN=localhost
      - OWNCLOUD_DB_TYPE=mysql
      - OWNCLOUD_DB_NAME=owncloud
      - OWNCLOUD_DB_USERNAME=owncloud
      - OWNCLOUD_DB_PASSWORD=owncloud
      - OWNCLOUD_DB_HOST=db
      - OWNCLOUD_ADMIN_USERNAME=owncloud
      - OWNCLOUD_ADMIN_PASSWORD=123456789Aa
      - OWNCLOUD_MYSQL_UTF8MB4=true
      - OWNCLOUD_REDIS_ENABLED=true
      - OWNCLOUD_REDIS_HOST=redis
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - files:/mnt/data

  db:
    image: webhippie/mariadb:latest
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=owncloud
      - MARIADB_USERNAME=owncloud
      - MARIADB_PASSWORD=owncloud
      - MARIADB_DATABASE=owncloud
      - MARIADB_MAX_ALLOWED_PACKET=128M
      - MARIADB_INNODB_LOG_FILE_SIZE=64M
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - mysql:/var/lib/mysql
      - backup:/var/lib/backup

  redis:
    image: webhippie/redis:latest
    restart: always
    environment:
      - REDIS_DATABASES=1
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - redis:/var/lib/redis

 , ,

Hex-Value ()

Что использовать для хранение бэкапов после смерти Яндекс.Диска?

Собственно сабж. Так как протокол WebDAV на ЯД де-факто принял ислам ( Яндекс Диск и Webdav (комментарий) ), нужно подыскать что-то другое для хранения бэкапов.

Гугло диск, мега и дропбокс больно уж кусаются по ценам ~10$ в месяц.

Кто что может что посоветовать? Желательно поддерживающее какой-нибудь гуманоидный файловый протокол.

 , , , ,

Suntechnic ()

бесплатное хранине файлов по типу aws s3

Сколько сейчас разные сервисы хранения файлов предоставляют бесплатного пространства (для старта приложения, пока нет надобности покупать большие объемы)?

AWS S3 как я понял дает 5 гб всего использования в течении 12 месяцев, или 12 месяцев со дня регистрации аккаунта ?

В общем каким еще интересные сервисы есть, которые бы позволили бы отдавать содержимое файла по запросу?

 , ,

foozzi ()

rclone sync - настройка двусторонней синхронизации

Пытаюсь разобраться для использования облачной синхронизации.

  1. настроил подключение к OneDrive
  2. сделал rclone copy onedrive:/ ~/cloud/onedrive/ - получил локально содержимое облака
  3. настроил в systemd по таймеру запуск скрипта: rclone sync onedrive:/ ~/cloud/onedrive - работает
  4. создал локально файл. после 3) он убился

Вопрос: как правильно (и можно ли) настроить двустороннюю синхронизацию?

 , ,

bvn13 ()