Написать нам
Назад к кейсам

Корпоративное облачное хранилище

«Корпоративное облачное хранилище» «Корпоративное облачное хранилище»

О клиенте

Компания СООО «Конте Спа» была основана в 1997 году в г. Гродно (Республика Беларусь), когда рынок только начинал свое развитие. 20 лет неустанного развития и эффективной работы вывели «Конте Спа» на позицию лидера в производстве одежды, белья, чулочно-носочных изделий в Восточной Европе.

«Корпоративное облачное хранилище» лендинг.

О проекте

Работа с фотографиями и маркетинговыми материалами была не упорядочена и не прозрачна. Сотрудникам приходилось использовать разнообразные личные хранилища файлов для передачи друг другу, управление доступами было не прозрачно, регулярно файлы терялись. Чтобы централизовать все процессы хранения и управления доступами и обеспечить сохранность файлов, было принято решение разработать собственное облачное хранилище.

ConteDisk представляет из себя веб-приложение, похожее на привычные сервисы облачного хранения файлов – Google Drive и Яндекс.Диск. Помимо хранения файлов имеется собственная система учетных записей, пользовательских групп, возможность гибкого контроля доступа.

Цели проекта

Цифры
  • на 40% Сократили расходы на оплату облачных хранилищ.
  • > 10 млн Файлов и папок.
  • > 1000 Постоянных пользователей внутри компании.

Решение

Чтобы дать пользователям возможность работать без мысли о том, что они находятся в браузере, а вместо этого словно используют системный файловый менеджер, мы разделили приложение на фронтенд, написанный на Vue.js, и бекенд на Laravel.

Глобально вся система состоит из нескольких модулей:

Проблемы и вызовы

Управление доступом

Пользователей — тысячи, файлов и папок — десятки миллионов. Для каждого пользователя и для каждой группы, в которую он входит, необходимо выполнять проверку на право просматривать или редактировать файл, что при решении “в лоб” занимало бы непомерно много времени и ресурсов. Продолжительное время изучая варианты реализации, мы разработали механизм проверки, скорость работы которого впечатляет уже не первый год и не имеет прямой зависимости от количества файлов или пользователей. Предоставление доступа, настройка прав и срока их действия могут происходить как для отдельных пользователей или групп, так и для неограниченного числа пользователей, в том числе тех, что не зарегистрированы в системе, используя публичные ссылки.

«Корпоративное облачное хранилище» страница закрытия смены.

Терабайты данных

Неожиданностью было то, что одна фотосессия, загруженная в хранилище, могла занимать сотни гигабайт с фотографиями в “сыром” формате. Такие фотосессии проводятся регулярно, что заставляет думать не только об объемах хранилища, но и о скорости доступа к файлам, времени на их поиск. Для решения проблемы мы рассмотрели несколько вариантов, в том числе использование собственных физических накопителей в дата-центрах. Но их закупка и обслуживание персоналом дата-центра обходится недешево, а для большей надежности понадобилось бы размещать часть данных в другом дата-центре. В качестве оптимального решения мы спроектировали двухстадийную систему – “горячие” файлы находятся на том же физическом сервере с очень быстрым, но необъемным носителем, а все остальные файлы хранятся у провайдера, предоставляющего высокую скорость и неограниченные объёмы данных, распределенные по нескольким независимым серверам.

Предпросмотр всех типов файлов

Пользователям важно сразу видеть, как выглядят фотографии и документы. С простыми форматами изображений (JPEG, PNG) браузер легко справится самостоятельно. Но фотографы загружают исходные RAW или уже обработанные TIFF-файлы, бухгалтеры и юристы загружают документы и таблицы, а маркетологи – презентации и видеоматериалы в самых разных форматах, которые не могут быть отображены браузером. Возможность просмотреть содержимое таких файлов не предоставляется даже в популярных сервисах, а готового решения и вовсе нет. Для решения задачи мы реализовали модуль, построенный на базе десятков вспомогательных инструментов, позволяющих извлечь содержимое файлов разного типа. Задача модуля — создать отдельные файлов для предпросмотра. Они не занимают много места, даже если размер исходного файла исчисляется десятками гигабайт, и позволяют выполнить все базовые действия – просмотреть сотню фотографий и видео, прочитать содержимое документов и таблиц, оценить как выглядят презентации.

Резервное копирование

Загружая файл в систему, пользователь должен иметь возможность удалить его со своего устройства и быть уверенным в том, что он не пропадет из системы. Для этого, помимо надежных механизмов передачи данных, необходимо регулярно проводить резервное копирование. Но нельзя хранить абсолютно всё — это сильно ударит по бюджету. Мы решили задачу, внедрив интеллектуальное определение времени хранения резервных копий для разных типов файлов. Оно базируется на многих факторах: частоте доступа к файлу, дате его загрузки, типе файла, пользователе и его группе и некоторых других. Это позволяет экономить значительные суммы, оставаясь уверенными в том, что важная информация не пропадет.

«Корпоративное облачное хранилище» страница выбора билета.

Технологии

  • PHP
  • Laravel
  • Node.js
  • MySQL
  • Redis
  • Elasticsearch
  • RabbitMQ
  • REST API
  • TypeScript
  • Vue.js
  • WebSockets
  • S3

Сотрудничество

2020 — ∞

IT-агентство Delaweb
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.