Вопрос или проблема
Я использую Azure Blob Storage следующим образом:
- Пользователь заходит в приложение и обновляет изображение, голос или видео
- Метаданные этого блоба сохраняются в моей собственной базе данных на моем сервере
- Имя файла изменяется на GUID, чтобы сделать его уникальным
- Себя блоб сохраняется на Azure Blob Storage в указанном контейнере под учетной записью хранения с соответствующим расширением файла
- GUID (имя файла) также хранится в моей базе данных в соответствующей записи.
- Для извлечения данных я возвращаю запись клиенту (веб, android, ios) и также добавляю к возвращаемому значению полный URL на Azure Storage, например:
https://iqraa.blob.core.windows.net/pronunciations/a763d66e-4e37-434e-b496-5fda4985c4d4.mp3
Тем не менее, сейчас бизнес-клиент хочет, чтобы мы использовали другую службу в качестве резервного варианта для Azure Blob Storage. Я знаю, что Azure надежен, но это требование, чтобы мы хранили каждый блоб на Azure и на другой службе одновременно.
Существуют и другие услуги, такие как http://alternativeto.net/software/azure-storage/
Но они, похоже, предназначены для онлайн-хранения обычного пользователя, как Dropbox, а не для программной загрузки и прямого доступа через браузеры и смартфоны.
Какие еще альтернативы у нас есть, которые мы можем использовать, похожие на Azure Blob Storage и предоставляющие нам прямой публичный доступ к файлам, сохраненным на нем, программным образом?
Если вас беспокоит резервирование, вы можете изменить свое хранилище блобов на хранение с доступом для чтения гео-регламентированного хранения (RA-GRS), так ваши данные будут храниться в вторичном географическом месте и решат проблемы с отказами. https://docs.microsoft.com/en-us/azure/storage/storage-introduction#replication-for-durability-and-high-availability
Если вы хотите сделать большой шаг, тогда вы можете выбрать Amazon’s Simple storage
Вам следует обратить внимание на облачных провайдеров объектного хранилища. Большинство из них используют API S3 или другой интерфейс, не относящийся к Azure, поэтому вам нужно будет немного подкорректировать код. Проверьте следующие:
На мой взгляд, я бы использовал Amazon S3, если более высокая цена приемлема. Или Wasabi с ограниченным бюджетом. Вот несколько ссылок с сравнением облачного хранения для бизнеса:
http://gaul.org/object-store-comparison/
https://www.vmwareblog.org/looking-affordable-cloud-storage-aws-vs-azure-vs-backblaze-b2/
https://medium.com/@simon_80033/how-cheap-can-cloud-storage-be-8262c67b48c1
Ответ или решение
Альтернативы Azure Blob Storage для хранения данных
Если вы используете Azure Blob Storage для хранения медиафайлов и планируете внедрить альтернативные решения для повышения надежности и обеспечения резервного копирования, существует множество вариантов. Давайте обсудим несколько из них, основываясь на ваших текущих потребностях, таких как возможность программного доступа, поддержка API и удобства интеграции.
1. Amazon S3 (Simple Storage Service)
Amazon S3 — это популярное облачное хранилище, которое предоставляет высокую надежность, безопасность и возможность программного доступа через RESTful API. Это идеальный выбор для хранения больших объемов данных, включая изображения, видео и аудиофайлы. Вы можете легко интегрировать S3 с вашим приложением, сохраняя уникальные имена файлов в формате GUID и соответствующую метадату в вашей базе данных.
Преимущества:
- Высокая доступность и масштабируемость.
- Глобальная сеть дата-центров, что обеспечивает низкую задержку.
- Широкие возможности интеграции с другими сервисами AWS.
Недостатки:
- Более высокая стоимость по сравнению с некоторыми другими альтернативами.
2. Google Cloud Storage
Google Cloud Storage предлагает надежное и быстрое хранилище для объектов, с возможностью использования API для доступа к данным. Этот сервис хорошо интегрируется с другими продуктами Google Cloud, что может быть существенным преимуществом, если вы уже используете решения этой платформы.
Преимущества:
- Гибкость в выборе классов хранения (например, стандартный, "умеренный", "долгосрочный").
- Простота интеграции с ML и AI инструментами Google.
Недостатки:
- Возможны сложности с миграцией данных, если вы решите сменить провайдера.
3. Wasabi Hot Cloud Storage
Wasabi предлагает доступное решение для облачного хранения данных, которое заявляет о высокой скорости и отсутствии скрытых платежей. Это может быть отличной альтернативой для бюджетных проектов или малых и средних предприятий.
Преимущества:
- Конкурентоспособные тарифы без выходных сборов и прочих скрытых платежей.
- Высокая производительность.
Недостатки:
- Более ограниченные возможности интеграции по сравнению с AWS и Google Cloud.
4. Backblaze B2
Backblaze B2 является привлекательным выбором для организации хранения, предлагая простую модель ценообразования и при этом предоставляя достаточно высокие показатели надежности и доступности.
Преимущества:
- Доступная цена за гигабайт.
- Простота использования и интеграции с вашим приложением.
Недостатки:
- Не так широко распространен как AWS или Google Cloud, что может усложнить поиск специалистов.
5. Alibaba Cloud OSS
Alibaba Cloud Object Storage Service (OSS) — это облачное хранилище, которое поддерживает различные типы данных и предлагает глобальные возможности. Если ваша компания имеет многоработающий бизнес в Азии, это может быть разумным выбором.
Преимущества:
- Доступ к обширной экосистеме Alibaba Cloud.
- Конкурентные цены на хранение данных.
Недостатки:
- Может быть недостаточная поддержка и документация на некоторых языках.
6. DigitalOcean Spaces
DigitalOcean Spaces — это простой и удобный сервис хранения объектов, который управляется через API и идеально подходит для разработчиков и небольших компаний. Этот сервис подходит для хранения и доставки медиафайлов, таких как изображения и видео.
Преимущества:
- Интуитивно понятный интерфейс и простота использования.
- Конкурентные цены и предсказуемые затраты.
Недостатки:
- Ограниченные возможности по сравнению с более крупными провайдерами, такими как AWS или Google.
Заключение
Каждое из приведенных выше решений имеет свои уникальные особенности, которые могут быть полезны в зависимости от ваших бизнес-потребностей. Если вам требуется решение с расширенной функциональностью и высокой надежностью, рассмотрите Amazon S3 или Google Cloud Storage. Если ваш бюджет ограничен, Wasabi или Backblaze B2 могут предложить разумное сочетание стоимости и производительности.
Имейте в виду, что выбрать решение — это лишь первая часть задачи. Вам будет необходимо спроектировать архитектуру хранения данных так, чтобы обеспечить максимальную производительность и доступность, а также сохранить целостность и безопасность данных.