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 ()
Последнее исправление: demidrol (всего исправлений: 2)

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

Не реагируй так нервно, расслабься. PHP софт медленный, аргументум ад опытным дядям - не аргумент. Прими эти факты и успокойся.

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

Не реагируй так нервно, расслабься. Ты никто, а дяди сделали и подарили человечеству отличный продукт, спасибо им за это.

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

Сперва добейся

Ясно, понятно.

отличный продукт

Настолько, что пришлось полностью переписать архитектуру с нуля.

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

Когда-нибудь ты повзрослеешь и поймешь, что «отличный продукт» это вообще не про архитектуру, язык, фреймворк и парадигму (на которые всем, кроме наемных взаимозаменяемых задротов, глубоко плевать).

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

Так бы сразу и сказал, что у тебя какое-то своё альтернативное понимание «отличного продукта». Что ты понимаешь под «отличным продуктом»?

fulmar_lor
()

Долго они рожали! Ещё году в 2018 на FOSDEM обещали, что перепишут всё на Golang. Дождались, надо будет попробовать.

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

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

В смысле для cloud native? А чем родные балансировщики клауда не устраивают?

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

у тебя какое-то своё альтернативное понимание «отличного продукта»

Альтернативное твоему, это очевидно.

Отличный продукт - это продукт, которым успешно пользуется уйма вполне довольного им народа.

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

Что значит «успешно»? Что значит «вполне довольного»? Как ты это измерил?

Давай без лишних эпитетов:

Отличный продукт - это продукт, которым пользуется уйма народа.

Ты перепутал слова «популярный» и «отличный».

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

Как ты это измерил?

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

anonymous
()

Многабукв. А вопрос простой: на TP-Link с openwrt теперь будет нормально работать?

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

для js???

... обычно нужно 1,5 Гб непонятного г...а, которое устанавливается для сборки проекта нодой.

Shadow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.