LINUX.ORG.RU

Будущее ownCloud в микросервисах: ownCloud Infinite Scale

 , , , ,


0

5

ownCloud переходит на новую, созданную с нуля архитектуру, используя бэкенд в виде микросервисов на Go и фронтенд на Vue.js, распределённое файловое хранилище с помощью EOS от CERN, и отказывается от использования базы данных.

До этих архитектурных изменений основным продуктом ownCloud был коммерческий движкок для хранения и обмена файлами, написанный на PHP. ownCloud предоставляет сообществу версию со свободным исходным кодом, однако из-за недоверия к компании и их подходу разработки, оригинальная команда разработчиков отделилась и создала форк под названием Nextcloud. С тех пор у ownCloud наблюдался продолжительный застой в развитии.

ownCloud заявляют, что отказ от старого движка на PHP с использованием базы данных и POSIX-совместмых файловых систем в пользу нового стека технологий даёт прирост в производительности до 10 раз. В процессе создания этой версии фокус был сосредоточен на параллелизме: если движку на PHP приходилось ждать окончания выполнения функций, то Go позволяет выполнять их одновременно.

Если прошлая архитектура движка не решала проблемы масштабируемости дискового пространства, то сейчас же основным способом хранения файлов предлагается программное обеспечение промышленного масштаба — EOS. Оно было разработано CERN и используется для их архива данных размером в 200 петабайт. В то же время всё ещё доступны опции для хранения файлов с помощью Samba, объектного хранилища S3 и поверх обычных файловых систем. Хранение данных на EOS ориентировано на множество дисков, обеспечивая избыточность и отсутствие единой точки отказа.

Основным способом аутентификации выбраны внешние провайдеры, вроде LDAP и Active Directory, но в то же время всё ещё доступна опция для локального хранения идентификаторов пользователей.

Новый фронтенд с использованием фреймоворка Vue.js так же сосредоточен на производительность и параллельное выполнение задач. По сравнению с прошлой итерацией, интерфейс претерпел изменения в дизайне и стал меньше.

Для взаимодействия с бэкендом используется механизм gRPC. Бэкенд и фронтенд полностью независимы друг от друга, а для балансировки их трафика используется веб-сервер Traefik. Ввиду этого изменения, ownCloud подразумевается расширять таким же образом: с помощью микросервисов, обращающихся к бэкенду с помощью gRPC и балансировки их трафика с помощью Traefik. Такая модульная архитектура, сосредоточенная на вызовах gRPC, также свела на нет необходимость в использовании реляционной базы данных.

На данный момент проект всё ещё на стадии технического превью и выпускает новые версии каждые три недели. Проект распространяется под лицензией Apache License 2.0.

>>> Подробности

★★★★★

Проверено: unfo ()

Такая модульная архитектура, сосредоточенная на вызовах gRPC, также свела на нет необходимость в использовании реляционной базы данных.

Фраза лишена смысла, gRPC (т. е. protobuff поверх http/2) - это замена REST API, или AJAX-запросам, средство коммуникации сервера и клиента, к наличию или отсутствия СУБД это ортогонально.

ma1uta ★★ ()
Ответ на: комментарий от ma1uta

For those that do not have an existing identity provider, ownCloud ships its own instance, effectively making ownCloud maintain its own user database.

ownCloud’s switch to gRPC and microservices eliminates the need for a relational database. Instead, components that need to store metadata do it on their own.

Т. е. раньше достаточно было бэкапить один инстанс MySQL/PostgreSQL, то теперь надо для каждого микросервиса костылить свой бэкап (т. е. вместо одного MySQL будет N штук MySQL).

ownCloud’s switch to gRPC and microservices eliminates the need for a relational database.

Маркетинговый bullshit, «Переставим кровати в борделе, чтобы прекратился пожар».

ma1uta ★★ ()

используя бэкенд в виде микросервисов на Go и фронтенд на Vue.js

вуххх. теперь это хрен установишь, не обмазавшись гемами, нпмами и докерами и прочей хентанью

darkenshvein ★★★★★ ()
Последнее исправление: darkenshvein (всего исправлений: 1)
Ответ на: комментарий от darkenshvein

Написанное на Go обычно представляет из себя один бинарник без всего вообще. Куда тебе докер, ванька? А зачем тебе гемы для js??? Прекращай боярку фигачить, не доведет она тебя до добра

anonymous ()

Уровень хипстоты зашкалил и она вытекла из уголка монитора. Если серьезно - круто, что сделали. Но вангую этой штуке судьбу XMPP - красиво на бумаге, достаточно сложно в сетапе и эксплуатации, а потом удел тех, кто сможет осилить порог вхождения.

pekmop1024 ★★★★★ ()
Ответ на: комментарий от thesis

Что помешает реализовать тот же webdav в сервере или прикрутить API для клиентов (или реализовать основное API в достаточно общем виде чтобы его мог не только фронтэнд использовать)?

MrClon ★★★★★ ()

Если прошлая архитектура движка не решала проблемы масштабируемости дискового пространства, то сейчас же основным способом хранения файлов предлагается программное обеспечение промышленного масштаба — EOS. Оно было разработано CERN и используется для их архива данных размером в 200 петабайт

Поднимите руки у кого есть 200 петабайт данных. Ну хотя бы один петабайт? Мне кажется, для большинства применений „проблемы масштабируемости дискового пространства“ не стоит столь уж жёстко.

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

Видимо, им плевать на большинство, тем более большинству хорошо и на нехтклауде. Возможно, чуваки решили окончательно развернуться к SAAS.

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 2)

Смузихлёбы мамкины, обмазались своими хипстерскими микросервисами и недоязычками вроде Go и пилят всякие поделки на Vue.js, небось еще с подворотами ходят и парят вейпы.

Тьфу, молодёжь пошла, отбились от рук, забыли дедовские методы!

Alve ★★★★★ ()
Ответ на: комментарий от Alve

Каждый раз когда ваньки на ЛОРе пишут про «молодежь» по отношению к тем кто использует Go где-то далеко мучаются от старческого ревматизма Томпсон и Пайк, которые этим ванькам в деды или прадеды годятся

anonymous ()
Ответ на: комментарий от EXL

Тормозной PHP потихоньку выпинывают из Web’а, когда там WordPress перепишут на нормальный ЯП?

Зачем переписывать то, что и так работает ?

Когда CMS на «нормальном ЯП» сможет делать то же самое что делает WordPress, а именно ставиться на любой утюг, конфигурироваться любой блондой, ставить себе любые темы и плагины на любой вкус одним тычком, и так же их удалять - тогда оно станет таким же тормозным, потому что придется читать файл за файлом, и тянуть за собой 100500 легаси-совместимых слоев.

PHP из веба не выпилят НИКОГДА, потому что в отличие от «нормальных ЯП» - он просто работает.

windows10 ★★ ()
Ответ на: комментарий от windows10

Зачем переписывать то, что и так работает ?

Я, например, надеюсь, что теперь будет это все меньше памяти жрать с сетапом на файликах. Сейчас мой nextcloud, который использую только я на 4 устройствах переодически выхватывает ООМ на 512Мб. Справедливости ради - ООМ ловится только при доступе по вебу, по webdav все хорошо. Буду тестить новый owncloud точно.

Сетап этого всего, кстати, не выглядит чем-то сложным. Плюс можно выкинуть ненужныe компоненты, типа, Traefik(у меня и так все им балансится :). Выглядит перспективно на самом деле.

Difrex ★★★★ ()

ownCloud заявляют, что отказ от старого движка на PHP с использованием базы данных и POSIX-совместмых файловых систем в пользу нового стека технологий даёт прирост в производительности до 10 раз.

Ну и зачем тогда надо было писать на PHP изначально? Ничего себе, PHP софт медленный получается, вот это сюрприз, мы даже предположить не могли.

fulmar_lor ()

Это что? Труп зашевелился? Нет уж, пусть лезет обратно.

Но задумка с переписыванием на Go - правильная, ИМХО. Пока Nextcloud пилил фичи и возможность расширения, их старые товарищи решили сделать функционал по хранению файлов молниеносным. Т.к. пыхпых не очень торопливый.

Я уж было захотел потыкать и сравнить, однако они так ничему и не научились. Они всё ещё жадные и прячут от Community фичи за Paywall. Хочешь интеграцию с OnlyOffice/Collabora, чтобы редактировать прям в браузере? Только начиная со стандартной лицензии за 5*25 евро в месяц.

FixingGunsInAir ()
Ответ на: комментарий от FixingGunsInAir

Там не «пых неторопливый», а миллиард запросов на начальной загрузке и многократное травматическое изнасилование субд на каждый чих. Ну впрочем и sabredav тоже не подарок, наверное.

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ты думаешь, 40 лет назад что-то по-другому было? «Вот молодежь пошла, на каких-то С пишут. То ли дело перфокарты и строгое математическое доказательство корректности программы. Совсем дедовские методы забыли».

anonymous ()
Ответ на: комментарий от eternal_sorrow

Traefik популярный выбор для cloud-native программ из-за удобной работы с роутингом с помощью контейнерных лейблов и какого-нибудь внешнего Consul. Ещё TLS-сертификаты умеет запрашивать. По крайней мере, вижу такую тенденцию в некоторых проектах.

commagray ★★★★★ ()
Ответ на: комментарий от fulmar_lor

Ну и зачем тогда надо было писать на PHP изначально?

Очевидно, потому что в 2009-ом ещё не было:

используя бэкенд в виде микросервисов на Go и фронтенд на Vue.js, распределённое файловое хранилище с помощью EOS от CERN…

gag ★★★★★ ()
Ответ на: комментарий от anonymous

Именно по причине того, что эти легенды IT и есть создатели Go они и были упомянуты. Ваньки-то не знают, что «хипстеры со смузи» которых они так ненавидят это монстры стоявшие у истоков всего современного IT

anonymous ()
Ответ на: комментарий от fulmar_lor

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

anonymous ()