Нажмите "Enter", чтобы перейти к содержанию

Свое облако – Как сделать собственное облачное хранилище

Содержание

Как сделать собственное облачное хранилище

Облачные сервисы хранения данных стали настоящей панацеей для всех, кто хотел получать доступ к своим данным с любого устройства из любой точки пространства. Мы с радостью переместили свои данные в облака и успешно пользуемся ими, лишь иногда с опаской читая очередную новость о хаках iCloud и Dropbox. Кому-то изначально не даёт покоя тот факт, что облако контролирует «кто-то», но не сам пользователь. Именно такие энтузиасты сделали OwnCloud.


Что это такое

«Собственное облако» представляет собой не что иное, как персональное хранилище, работающее на собственном веб-сервере или сайте. Главная фишка OwnCloud в том, что он бесплатный и опенсорсный. В целом при наличии вышеупомянутой площадки для размещения пользователю потребуется примерно 5 минут на разворачивание собственного Dropbox-like хранилища, и без хитроумного кодинга — каких-либо специфических знаний не нужно. В довесок пользователь получает доступ к приложениям (текстовые редакторы, списки задач и прочие полезные штуки), которые создают другие участники проекта для собственных нужд.

Что умеет

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

Бонусы

Любители получать вместе с облачным хранилищем разные дополнительные вещи обрадуются наличию встроенных мультимедиа и прочих инструментов: музыкальный плеер, менеджер контактов, календарь, сервис букмарклетов и просмотрщик изображений.

Системные требования

Естественно, разворачивание собственного облака требует площадку, на которой оно и будет работать. Для таких целей подойдёт хост с поддержкой PHP5 и MySQL (либо SQLite).

Качаем OwnCloud Server и ставим его с помощью веб-установщика. По сложности процесс сравним с загрузкой файла на хост. После этого останется лишь определиться с адресом для удалённого доступа к сервису.

С чего заходить

Десктопный клиент доступен для Windows, Mac OS X и Linux. Здесь же можно скачать и исходники, с помощью которых можно собрать клиент под что угодно.

Если речь идёт о мобильном доступе, то здесь всё немного двойственно: клиенты для Android и iOS есть, но они платные. При этом отзывы о них, скажем прямо, не супер. Остаётся надеяться, что мобильные клиенты будут допиливаться.

Приложения

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

Итог

В целом OwnCloud определённо заслуживает внимания всех, кто мечтал о собственном независимом от капризов разработчиков облачном хранилище. С учётом довольно стандартных требований к хосту и наличию понятных инструкций разобраться с установкой и настройкой сможет любой пользователь, в чьей голове возникла идея организации подобного личного сервиса. В совокупности с довесками в виде всевозможных приложений и доступностью кода для всего и вся продвинутые пользователи смогут превратить OwnCloud в строго персонализированную рабочую среду, заточенную под собственные нужды, ну а использование только базового функционала вполне качественно реализует основные и самые распространённые потребности: хранение и обмен данными.

OwnCloud

lifehacker.ru

Персональное облако / Habr

Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.


Возможные решения

Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
Ниже рассмотрена часть из них.


Реализации облачных сервисов.

OwnCloud

Реализован на PHP/Javascript.

Возможности:


  • Возможно расширять функционал, устанавливая приложения из репозитория облака.
  • Есть интеграция с офисом Collabora и OnlyOffice.
  • Возможно использовать существующие хранилища, такие как FTP, Swift, S3, Dropbox и т.п.,
    распределяя данные между ними и локальным облаком.
  • Шифрование на клиенте.
  • Возможность предоставлять файлы внешним пользователям по e-mail.
  • Есть автоматизация операций с файлами (например, автоматическое добавление тэгов).
  • LDAP.
  • Есть аудио плеер, музыкальная коллекция, галерея плагин чтения PDF.
  • Интеграция с Zimbra.
  • Есть календари, списки задач, текстовые редакторы и т.п.
  • Антивирус и защита от ransomware.
  • Двуфакторная аутентификация.
  • Возможность имперсонации под другого пользователя (с целью отладки).

NextCloud

Форк OwnCloud. Реализован на PHP/Javascript.

Возможности:


  • Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV.
  • Есть NextCloud Talk, через который возможно делать видеозвонки и видеоконференции.
  • Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux.
  • Синхронизация с мобильными устройствами.
  • Календарь (также как CalDAV).
  • Планировщик задач.
  • Адресная книга (также как CardDAV).
  • Потоковое мультимедиа (используется Ampache).
  • Поддерживает разные провайдеры авторизации: LDAP, OpenID, Shibboleth.
  • Двуфакторная авторизация.
  • Разделение контента между группами или используя публичные URL. Тонкая настройка правил.
  • Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием. Анонсирована поддержка онлайн-версий редакторов LibreOffice.
  • Закладки.
  • Механизм сокращения URL.
  • Фотогалерея.
  • Просмотрщик PDF (используется PDF.js)
  • Интеграция с Collabora и OnlyOffice.
  • Модуль логирования.
  • Возможность создания свои Web-сайтов (на PicoCMS).
  • Интеграция с Outlook и Thunderbird.
  • Интеграция клиента в Gnome.
  • Возможность использовать внешнее хранилище.
  • Полнотекстовый поиск.
  • Интеграция с антивирусом.

SparkleShare

Реализован на C#.

Возможности:


  • Версионирование.
  • Шифрование на клиенте.
  • Прозрачная синхронизация между несколькими пользователями: удалённые изменения появятся в локальном каталоге, выделенном для SparkleShare.

Особенности:


  • Использует git, как бэкэнд.

Seafile

Реализован на C/Javascript.

Возможности:


  • Файлы могут быть организованы в библиотеки, которые могут быть синхронизированы между устройствами.
  • Есть клиент, позволяющий создать локальный «диск», отображённый на облако.
  • Встроенное шифрование. Все файлы шифруются клиентом и хранятся в облаке зашифрованными.
  • Поддержка мобильных устройств.
  • HTTS/TLS шифрование.
  • Есть LDAP.
  • Тонкая настройка прав.
  • Версионирование файлов.
  • Возможность создания снимка каталога, к которому потом возможно вернуться.
  • Дедупликация.
  • Поддержка блокировки файлов.
  • Совместное редактирование файлов онлайн.
  • Антивирус.
  • Тонкая настройка прав.
  • Периодический бэкап через rsync.
  • WebDAV.
  • REST API.
  • Возможность интеграции с Collabora.

Особенности:


  • Быстрый и нетребовательный к ресурсам.
  • Считается надёжным.
  • Установка прав на подкаталоги поддерживается только в платной Pro версии.
  • Интеграция с антивирусом — только в Pro версии.
  • Аудит — только в Pro версии.
  • Полнотекстовый поиск — только в Pro версии.
  • Интеграция с S3 и Ceph — только в Pro версии.
  • Онлайн просмотр Doc/PPT/Excel — только в Pro версии.

Pydio

Реализован на PHP/Javascript.

Возможности:


  • Обмен файлами не только между пользователями, но и между несколькими экземплярами Pydio.
  • SSL/TLS шифрование.
  • WebDAV.
  • Возможность создать несколько рабочих пространств.
  • Обмен файлами с внешними пользователями, с тонкой настройкой обмена (например, прямые ссылки, пароль и т.п.).
  • Встроен офис Collabora.
  • Предосмотр и редактирование изображений.
  • Есть встроенный аудио и видео проигрыватель.

ProjectSend

Реализован на PHP/Javascript.

Возможности:


  • Возможно расшаривать файлы, как между конкретными пользователями, так и между группами.
  • Полный отчёт по операциям с файлами.
  • Возможность внешним пользователям загружать файлы (с целью обмена, например прикладывать баг-репорты).

SpiderOak

Возможности:


  • Экономия места в хранилище и времени выгрузки файлов за счёт дедупликации и внесения изменений в уже имеющиеся файлы (вместо перезаписи файлов целиком).
  • Настраиваемая мультиплатформенная синхронизация.
    DropBox для синхронизации создаёт специальную папку, в которую надо помещать все синхронизируемые файлы. SpiderOak может работать с любым каталогом.
  • Сохранение всех хронологических версий файлов и удаленных файлов
  • Совместное использование папок при помощи так называемых ShareRooms, на которые устанавливается пароль.
    Файлы, обновлённые на локальном компьютере, автоматически обновляются в хранилище. Пользователи извещаются об изменениях по RSS.
  • Получение файлов с любого подключенного к Интернету устройства.
  • Полное шифрование данных по принципу «нулевого знания».
  • Поддержка неограниченного количества устройств.
  • Шифрование данных на стороне клиента.
  • Двуфакторная аутентификация.

Особенности:

Закрытая проприетарная система.

С учётом того, что данное ПО платное и частично закрытое, его использование исключается.


Установка NextCloud

Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.

Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.

Посмотреть, как он работает в демо-режиме вы можете здесь.

Вот общие точки сопряжения между облачным хранилищем и системой:


  • /tank0/apps/cloud/nextcloud — хранилище облачного сервиса.
  • /tank0/apps/onlyoffice — данные офиса.
  • https://cloud.NAS.cloudns.cc — WEB интерфейс облачного сервиса.

Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.

Всё, что нужно вы найдёте в репозитории на Github.

Там же доступна конфигурация для SeaFile.

Сначала установите и запустите NextCloud.

Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:

# docker-compose up -d

Будет собран новый образ на основе Nextcloud 13.0.7. Если вы хотите изменить версию базового образа, сделайте это в app/Dockerfile. Я использую версию 15, но стоит заметить, что в ней не работают многие плагины, такие как загрузчик ocDownloader и заметки, а также я ещё не восстановил работоспособность OnlyOffice.

Кардинальных отличий или сильного улучшения производительности я не заметил.

Ниже я считаю, что вы используете версию 13+.

Далее, зайдите в NextCloud и выбрав в меню справа вверху «Приложения», выполните установку необходимых плагинов.

Потребуются обязательно:


  • LDAP user and group backend — сопряжение с LDAP.
  • External Storage Support — поддержка внешних хранилищ. Нужна будет далее, с целью интеграции NextCloud и общих файлов, а также сопряжения с внешними облачными хранилищами. Про настройку внешних хранилищ я расскажу в другой статье.
  • ocDownloader — загрузчик файлов. Расширяет функциональность облака. Docker образ специально пересобран так, чтобы он работал.
  • ONLYOFFICE — интеграция с офисом. Без этого приложения, файлы документов не будут открываться в облаке.
  • End-to-End Encryption — сквозное шифрование на клиенте. Если облако используют несколько пользователей, плагин необходим, чтобы удобно обеспечить безопасность их файлов.

Желательные приложения:


  • Brute-force settings — защита от подбора учётных данных. NextCloud смотрит в Интернет, потому лучше установить.
  • Impersonate — позволяет администратору заходить под другими пользователями. Полезно для отладки и устранения проблем.
  • Talk — видеочат.
  • Calendar — говорит сам за себя, позволяет вести календари в облаке.
  • File Access Control — позволяет запрещать доступ к файлам и каталогам пользователям на основе тэгов и правил.
  • Checksum — позволяет вычислять и просматривать контрольные суммы файлов.
  • External sites — создаёт ссылки на произвольные сайты на панельке вверху.

Особенности контейнера:


  • Установлен загрузчик Aria2.
  • Установлен загрузчик Youtube-DL.
  • Установлены inotify-tools.
  • Увеличены лимиты памяти для PHP.
  • Web-сервер настроен под лучшую работу с LDAP.

Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.


LDAP

Настройка LDAP не тривиальна, потому я расскажу подробнее.

Зайдите в «Настройки->Интеграция с LDAP/AD».
Добавьте сервер 172.21.0.1 с портом 389.
Логин: cn=admin,dc=nas,dc=nas.
NextCloud может управлять пользователями в базе LDAP и для этого ему потребуется администратор.

Нажимайте кнопку «Проверить конфигурацию DN» и, если индикатор проверки зелёный, кнопку «Далее».

Каждый пользователь имеет атрибут inetOrgPerson и состоит в группе users_cloud.

Фильтр будет выглядеть так:

(&(|(objectclass=inetOrgPerson))(|(memberof=cn=users_cloud,ou=groups,dc=nas,dc=nas)))

Нажимайте «Проверить базу настроек и пересчитать пользователей», и если всё корректно, должно быть выведено количество пользователей. Нажимайте «Далее».

На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.

Фильтр:

(&(objectclass=inetOrgPerson)(uid=%uid))

На этой странице надо ввести логин какого-либо пользователя и нажать «Проверить настройки».
Последний раз «Далее».

Тут нажмите «Дополнительно» и проверьте, что поле «База дерева групп» равно полю «База дерева пользователей» и имеет значение dc=nas,dc=nas.

Вернитесь в группы и установите в поле «Только эти классы объектов» галочку напротив groupOfUniqueNames.

Итоговый фильтр здесь такой:

(&(|(objectclass=groupOfUniqueNames)))

Поле «Только из этих групп» я не устанавливал, т.к. хочу увидеть в интерфейсе NextCloud всех пользователей, а те кто не входит в группу users_cloud, отсеиваются фильтром на предыдущем этапе.


OnlyOffice

OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.

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

Также он из коробки интегрируется с NextCloud.

Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.

Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.

На Github есть конфигурация и для Collabora.


/tank0/docker/services/office/onlyoffice/docker-compose.yml
version: '2'

# https://helpcenter.onlyoffice.com/ru/server/docker/document/docker-installation.aspx

networks:
  onlyoffice:
    driver: 'bridge'
  docker0:
    external:
      name: docker0

services:
  onlyoffice-redis:
    container_name: onlyoffice-redis
    image: redis
    restart: always
    networks:
      - onlyoffice
    expose:
      - '6379'

  onlyoffice-rabbitmq:
    container_name: onlyoffice-rabbitmq
    image: rabbitmq
    restart: always
    networks:
      - onlyoffice
    expose:
      - '5672'

  onlyoffice-postgresql:
    container_name: onlyoffice-postgresql
    image: postgres
    environment:
      - POSTGRES_DB=onlyoffice
      - POSTGRES_USER=onlyoffice
    networks:
      - onlyoffice
    restart: always
    expose:
      - '5432'
    volumes:
      - /tank0/apps/onlyoffice/postgresql_data:/var/lib/postgresql

  onlyoffice-documentserver-data:
    container_name: onlyoffice-documentserver-data
    image: onlyoffice/documentserver:latest
    environment:
      - ONLYOFFICE_DATA_CONTAINER=true
      - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql
      - POSTGRESQL_SERVER_PORT=5432
      - POSTGRESQL_SERVER_DB_NAME=onlyoffice
      - POSTGRESQL_SERVER_USER=onlyoffice
      - RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq
      - REDIS_SERVER_HOST=onlyoffice-redis
      - REDIS_SERVER_PORT=6379
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    volumes:
       - /tank0/apps/onlyoffice/document-server-data/data:/var/www/onlyoffice/Data
       - /tank0/apps/onlyoffice/document-server-data/logs:/var/log/onlyoffice
       - /tank0/apps/onlyoffice/document-server-data/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files
       - /tank0/apps/onlyoffice/document-server-data/files:/var/www/onlyoffice/documentserver-example/public/files
       - /usr/share/fonts

  onlyoffice-documentserver:
    image: onlyoffice/documentserver:latest
    depends_on:
      - onlyoffice-postgresql
      - onlyoffice-redis
      - onlyoffice-rabbitmq
      - onlyoffice-documentserver-data
    environment:
      - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data
      - BALANCE=uri depth 3
      - EXCLUDE_PORTS=443
      - HTTP_CHECK=GET /healthcheck
      - EXTRA_SETTINGS=http-check expect string true
      - JWT_ENABLED=true
      - JWT_SECRET=<JWT_SECRET_TOKEN>
      # Uncomment the string below to redirect HTTP request to HTTPS request.
      #- FORCE_SSL=true
      - VIRTUAL_HOST=office.*
      - VIRTUAL_PORT=80
      - VIRTUAL_PROTO=http
      - CERT_NAME=NAS.cloudns.cc
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
      - docker0
    expose:
      - '80'
    volumes:
      - /tank0/apps/onlyoffice/document-server/logs:/var/log/onlyoffice
      - /tank0/apps/onlyoffice/document-server/data:/var/www/onlyoffice/Data
      - /tank0/apps/onlyoffice/document-server/lib:/var/lib/onlyoffice
      - /tank0/apps/onlyoffice/document-server/db:/var/lib/postgresql
    volumes_from:
      - onlyoffice-documentserver-data

Поясню некоторые моменты:


  • Вам надо изменить <JWT_SECRET_TOKEN> на свой, также как и NAS на имя своей DNS зоны.
  • HTTPS здесь не требуется включать, потому что хотя офис и виден снаружи, обмен с ним идёт через обратный прокси, который работает с пользователем исключительно по HTTPS. Так построена архитектура NAS.

Теперь надо поднять офис:

docker-compose up -d

И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:

Затем, в настройках NextCloud требуется выбрать Пункт «Администрирование->ONLYOFFICE» и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.

В третьем поле надо прописать адрес облака.

JWT токен возможно сгенерировать, например здесь.

Если сервер настроен правильно, в меню создания документов облака появятся дополнительные пункты для офисных документов, а .docx файлы будут открывать в офисе.


Выводы

Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.

В этой роли NextCloud весьма удобен и обладает широким функционалом.

У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.

habr.com

Как создать свое облако в интернете – собственный облачный сервер

На главную -> MyLDP -> Тематический каталог -> Программное обеспечение для Linux


Создаем свои собственные облачные сервера с помощью Ubuntu

Оригинал: «Grow Your Own Cloud Servers With Ubuntu»
Автор: Эрик Гайер (Eric Geier)
Дата публикации: January 15, 2010
Перевод: Н.Ромоданов
Дата перевода: февраль 2010 г.

Хотели бы вы полетать в облаке и поэкспериментировать с облачными вычислениями? Теперь у вас есть шанс. С помощью этой статьи вы шаг за шагом изучите процесс настройки своей личной облачной системы, в которой используется пакет Ubuntu Enterprise Cloud (UEC), базирующийся на платформе Eucalyptus.

Система состоит из одного облачного контроллера (также называемого front-end сервером) и одного или нескольких контроллеров узлов. Облачный контроллер управляет средой облака. Вы можете по умолчанию использовать образы ОС Ubuntu или создать свой собственный образ, который будет использоваться в виртуальной среде. В контроллерах узлов вы можете запустить отдельные экземпляры виртуальных машин (VM) для работы с образами.

Системные требования

Для того чтобы можно было работать с облаком, для него нужно выделить, по крайней мере, два компьютера:

  • Один — для front-end сервера (облачного контроллера или контроллера кластеров) со следующими минимальными требованиями: CPU с частотой в 1 ГГц, 512 Мбайт оперативной памяти, CD-ROM, 40 Гбайт дискового пространства и сетевым Ethernet адаптером.
  • Один или несколько для контроллеров узлов с CPU, поддерживающим технологию виртуализации Virtualization Technology (VT), 1Гбайт оперативной памяти, CD-ROM, 40 Гбайт дискового пространства и сетевым Ethernet адаптером.

Вы можете посмотреть список процессоров Intel, поддерживающих технологию VT. Либо в Windows вы можете запустить утилиту SecurAble. В Linux вы можете выполнить проверку следующим образом — посмотреть, если в файле /proc/cpuinfo параметры «vmx» или «svm». Запустите команду egrep ‘(vmx|svm)’ /proc/cpuinfo. Однако имейте в виду, что вы получите результат, если эта возможность включена: она может быть отключена в BIOS.

Подготовка к инсталляции

Во-первых, скачайте образ CD для версии Ubuntu Server remix (мы используем версию 9.10) на любой компьютер, на котором есть устройство записи CD или DVD. Затем запишите образ ISO на CD или DVD. Если вы хотите использовать DVD, убедитесь в том, что компьютеры, которые будут использоваться в облаке, могут читать DVD. Если вы используете Windows 7, вы можете открыть ISO файл и использовать утилиту записи, входящую в состав ОС. Если вы используете Windows Vista или более ранние версии, вы можете скачать стороннее приложение, такое как DoISO.

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

Установка Front-End сервера

Установка front-end сервера сравнительно проста. Для того, чтобы начать установку, просто вставьте компакт-диск с инсталлятором и в загрузочном меню выберите пункт «Install Ubuntu Enterprise Cloud», а затем нажмите клавишу ENTER. При необходимости укажите язык и раскладку клавиатуры. Укажите настройки сети, когда появится запрос.

При появлении запроса на выбор режима установки Cloud Installation Mode, нажмите Enter для того, чтобы выбрать установку по умолчанию, т. е. «Cluster» («кластер»). Затем вам нужно сконфигурировать часовой пояс и задать настройки раздела. После того, как раздел будет подготовлен, установка будет, наконец, запущена. В самом конце, вам будет предложено создать учетную запись пользователя.

Затем вам нужно будет настроить параметры прокси, автоматическое обновление и электронную почту. Кроме того, вам нужно будет задать имя кластера Eucalyptus Cluster. Вам также потребуется настроить IP-адресацию с тем, чтобы пользователи получали динамически назначаемые им адреса.

Установка и регистрация контроллеров узлов

Установка узлов еще проще. Снова вставьте установочный диск, в меню загрузки выберите «Install Ubuntu Enterprise Cloud» и нажмите клавишу Enter. По мере необходимости указывайте требуемые настройки.

Когда дело дойдет до выбора режима установки Cloud Installation Mode, инсталлятор должен автоматически обнаружить существующий кластер и задать вариант установки «Node» («Узел»). Для того, чтобы продолжить, просто нажмите на клавишу Enter. Останется только задать настройку раздела.

Регистрация контроллеров узлов

Прежде, чем продолжить дальше, вы должны знать IP адрес узла (узлов).

Как создать собственное облако, где можно бесплатно хранить любой объём данных

Узнать его можно с помощью следующей команды:

/sbin/ifconfig

Затем вам потребуется установить на контроллере узла открытый ssh ключ, взятый с front-end сервера:

  1. С помощью следующей команды установите временный пароль для пользователя eucalyptus:
  2. sudo passwd eucalyptus

  3. На front-end сервере введите следующую команду для того, чтобы скопировать SSH ключ:
  4. sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@

  5. Затем с помощью следующей команды вы можете удалить пароль учетной записи eucalyptus:
  6. sudo passwd -d eucalyptus

  7. После того, как узлы будут подняты и ключ скопирован, запустите на front-end сервере следующую команду и добавьте узлы:
  8. sudo euca_conf —no-rsync —discover-nodes

Получение и установка идентификационной информации пользователя

На front-end сервере выполните приведенные ниже команды для того, чтобы создать новую директорию, экспортировать в него заархивированную идентификационную информацию пользователя, а затем распаковать файлы:

mkdir -p ~/.euca chmod 700 ~/.euca cd ~/.euca sudo euca_conf —get-credentials mycreds.zip (It takes a while for this to complete; just wait) unzip mycreds.zip cd —

Идентификационную информацию пользователя можно также добавить через конфигурационную утилиту с веб интерфейсом. Однако в этом случае потребуется больше работы, чем выгрузить данные пользователя, а затем переместить их на сервер.

Настройка EC2 API и инструментального пакета AMI

Теперь вы должны настроить на front-end сервере пакет EC2 API и инструментальный пакет AMI. Во-первых, все настройки вашей среды Eucalyptus берутся из файла eucarc, поэтому введите:

~/.euca/eucarc

Для того, чтобы при входе в систему это происходило автоматически, введите следующую команду, которая запишет предыдущую команду в ваш файл ~/.bashrc

echo «[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc» >> ~/.bashrc

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

sudo apt-get install ^31vmx32^4

Для того, чтобы удостовериться в том, что все работает, введите следующую команду и получите детальную информацию об имеющемся кластере:

. ~/.euca/eucarc euca-describe-availability-zones verbose

Доступ к панели управления с веб интерфейсом

Теперь вы можете получить доступ к конфигурационной утилите, имеющей веб интерфейс. С любого компьютера, находящимся в той же самой сети, перейдите по URL, https://:8443. Сразу после того, как вы зарегистрируетесь front-end сервере, будет показан IP адрес облачного контроллера. Обратите внимание, что это безопасное соединение происходит по протоколу HTTPS, а не с помощью HTTP. Вполне вероятно, вы получите от браузера предупреждение, касающееся безопасности, поскольку в сервере используется самоподписываемый сертификат вместо сертификата, предоставляемого какой-нибудь из известных служб сертификации Certificate Authority (CA). Игнорируйте это предупреждение, добавив его в список исключений. Подключение будет безопасным.

По умолчанию в качестве имя пользователя и пароля пользователя используется значение «admin». После первой регистрации вам следует ввести новый пароль и email.

Установка образов

Теперь, когда у вас есть настроенное основное облако, вы можете установить образы. Откройте панель управления с веб интерфейсом, выберите вкладку Store, а затем щелкните по кнопке Install (Установить) для установки нужного образа. Начнется загрузка, а затем автоматически начнется установка, которая занимает много времени.

Запуск образов

Перед первым запуском образа на узле, выполните следующие команды с тем, чтобы создать пару ключей для SSH:

touch ~/.euca/mykey.priv chmod 0600 ~/.euca/mykey.priv euca-add-keypair mykey > ~/.euca/mykey.priv

Вам также потребуется открыть порт 22 на узле с помощью следующей команды:

euca-describe-groups euca-authorize default -P tcp -p 22 -s 0.0.0.0/0

Наконец, вы можете запустить зарегистрированный образ. Команду для запуска образа можно выполнить через веб интерфейс. Войжите в систему через веб интерфейс, щелкните по вкладке Store, а затем выберите ссылку How to Run с тем, чтобы запустить нужный образ. Появится окошко, в котором будет указана нужная команда.

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

watch -n5 euca-describe-instances

При переходе из состояния «pending» («ожидание») в «running» («выполнение») определите назначенный IP адрес и подключитесь к нему:

IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk ‘{print $4}’) ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR

Для того, чтобы завершить подключение по SSH:

INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk ‘{print $2}’) euca-terminate-instances $INSTANCEID

Обслуживание облака

Теперь у вас в сети имеется работающее облако. Если при его работе возникнут проблемы, то нужно обратиться к официальным документам или на форум. Напоследок, несколько практических советов:

  • Для того, чтобы перезапустить front-end сервер, выполните следующую команду: sudo service eucalyptus [start|stop|restart]
  • Для того, чтобы восстановить работу узла, выполните следующую команду: sudo service eucalyptus-nc [start|stop|restart]
  • Есть следующие несколько файлов с важными данными:
    • Файлы журналов
      /var/log/eucalyptus
    • Конфигурационные файлы
      /etc/eucalyptus
    • База данных
      /var/lib/eucalyptus/db
    • Ключи
      /var/lib/eucalyptus
      /var/lib/eucalyptus/.ssh

Смотрите следующие статьи:

Если вам понравилась статья, поделитесь ею с друзьями:

steptosleep.ru

Как сделать домашнее облако для хранения фото и других данных

Облако — место для хранения данных в Интернете с доступом к ним с любого устройства в любой точке мира. Но перед тем, как создать облачное хранилище, следует убедиться, что при синхронизации сервис не удалит данные после их ликвидации с компьютера.

Достоинства и недостатки

Организация облачного сервиса имеет ряд преимуществ перед традиционными методами хранения. Например, она позволяет получить данные отовсюду, где есть доступ в Интернет. Пользователю не нужно носить с собой физическое запоминающее устройство или ограничиваться одним компьютером для обработки информации. Благодаря особой системе хранения доступ к данным могут получить другие, что превращает личный проект в коллективный.

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

Но как сделать так, чтобы такое хранение было надежным и безопасным?

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

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

Популярные облачные хранилища

Число провайдеров услуг хранения данных в сети постоянно растет, как и объем доступного виртуального дискового пространства:

  • Google Docs позволяют загружать документы, электронные таблицы и презентации на серверы Google. Пользователи могут редактировать файлы и публиковать их, чтобы другие могли их читать и тоже редактировать.
  • Поставщики услуг электронной почты, такие как Gmail, Hotmail и Yahoo, хранят данные на своих серверах. Клиенты могут получать доступ к своей учетной записи с компьютеров и других устройств, подключенных к Интернету.
  • Flickr и Picasa размещают у себя миллионы цифровых фотографий. Пользователи создают онлайн-фотоальбомы, загружая изображения непосредственно на их серверы.
  • YouTube хранит огромное количество видео.
  • Веб-хостинговые компании, такие как StartLogic, Hostmonster и GoDaddy, сберегают файлы и данные клиентских веб-сайтов.
  • Социальные сети, такие как Facebook и MySpace, позволяют участникам публиковать снимки и другой контент. Все это хранится на серверах соответствующего сайта.
  • Сервисы, подобные Xdrive, MediaMax и Strongspace, предлагают пространство для хранения любых цифровых данных.

Облако для дома своими руками

Облачное хранилище своими руками можно организовать, используя клиент-серверное ПО (либо с открытым исходным кодом, либо запатентованное), которое позволяет настраивать и поддерживать свою собственную файловую сеть. Ее можно настроить на физическом сервере, который придется поддерживать самостоятельно, или на виртуальном (например, Digital Ocean), если роль системного администратора не по плечу.

Клиентское программное обеспечение обычно работает так же, как и Dropbox или Sync.com. Это означает, что на жестком диске установлена ​​папка синхронизации. Любые папки или файлы, находящиеся в ней, будут отправлены в облачное хранилище, а затем на любые другие устройства с установленными клиентами. Nextcloud, например, предоставляет три корпоративных плана, способных обслуживать от 10 до 50 млн пользователей. Желающим просто запустить облачное хранилище для дома платить ничего не нужно.

Прежде всего, нужно скачать и установить два приложения. Nextcloud Server предназначен для установки на домашнем сервере пользователя или на общем веб-сервере. Можно приобрести и предварительно сконфигурированное оборудование, такое как Spreedbox, Syncloud и Nextcloud Box.

Кроме того, требуется установка клиента синхронизации. Есть версии для компьютеров под управлением Windows, MacOS и Linux, а также для мобильных устройств на «Андроид» и iOS. Кроме того, файлы можно просматривать из любого совместимого браузера.

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

Nextcloud также включает набор полезных приложений. К ним относятся программы для ведения видеоконференций, организации рабочего процесса, текстового поиска и конверсии.

Вариант 1 Хранение данных с телефона

Для этого необходимо:

  • Скачать и установить клиент Nextcloud из магазина приложений Google.
  • Установить соединение, введя сетевой адрес сервера, логин и пароль. Пользователю откроется страница Files его учетной записи.
  • Нажать синюю кнопку в правом нижнем углу, чтобы открыть пункты меню «Загрузить», «Контент из других приложений» и «Новая папка». При этом первая опция добавляет файлы из Android в учетную запись Nextcloud, а вторая позволяет, например, загрузить фото из «Галереи».

Также возможен доступ к облачному хранилищу через веб-интерфейс. Он открывается после соединения с сервером и ввода логина и пароля. Загрузить файлы с телефона можно, выбрав опцию «+» в строке навигации.

Вариант 2 Хранение файлов с компьютера

Клиент синхронизации рабочего стола Nextcloud работает в фоновом режиме и виден как иконка на панели задач (Windows), статусной строке (MacOS) или области уведомлений (Linux). Ее вид говорит о статусе синхронизации. Щелчок правой клавишей мыши по ней открывает контекстное меню с опциями быстрого доступа к учетным записям и выхода из них, списку последних действий, установкам, помощи. Левой кнопкой открывается окно параметров учетной записи.

Клиент интегрируется с файловым менеджером: Finder на macOS, Explorer в Windows и Nautilus на Linux.

Можно создавать ссылки для общего доступа и делиться данными из компьютера с пользователями Nextcloud.

Для этого необходимо:

  • Щелкнув правой кнопкой мыши по значку клиента, навести указатель на учетную запись и выбрать опцию «Открыть папку».
  • Ввести имя локального каталога Nextcloud.
  • Кликнуть правой клавишей по файлу или папке, которой необходимо открыть доступ, и в контекстном меню выбрать «Поделиться в Nextcloud».
  • Отметить авторизованных пользователей, установить пароль и дату истечения срока доступа.

Знание того, как создать облако для хранения файлов бесплатно, дает ряд преимуществ. Прежде всего, можно много сэкономить, поскольку оно обходится намного дешевле традиционных сетевых хранилищ, таких как Dropbox того же объема. Но более важен контроль.

Собственное облачное хранилище позволит избежать сканирования данных или метаданных посторонними.

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

xn—-7sbaruhf3cgg7c6c.xn--p1ai

Беспроводное домашнее облако для вещей интернета / Habr

Я провел много часов повторяя проекты других по умным беспроводным вещам. Это привело меня к очевидному выводу: после третьего-четвертого проекта ты обнаруживаешь, что все они выполнены на разных принципах, с использованием разных технологий и приемов, особенно после того, как изменил или модернизировал некоторые из них. Это значит, что что твой мир вещей становится абсолютно не подлежащим обслуживанию.

Другими словами, ты должен поддерживать огромные библиотеки спецификаций и кодов. И необходимо больше времени для того чтобы справиться со всеми своими устройствами. Определенно, некоторые более организованы, чем я, но, наверняка, большинство в борьбе с энтропией добились незначительных успехов. Без обид.

Что делать, чтобы обуздать нашествие роботов на свой дом (а это в любом случае неизбежно)?.. Все просто. Вещи проще. Облако умнее.

Концепция

  1. Устройства как можно проще: стандартный модуль связи с частным облаком. Состоит из беспроводного модуля и скриптов инициализации (как в модуле, так и на сервере). Если модуль выходит из строя, выбрасываем его и меняем на новый стандартный модуль.
  2. Вся логика и интеллект располагается на сервере. Простом роутере на линукс.


Вещи проще. Облако умнее

Крохотный сервер принимает данные с датчиков, хранит их и посылает команды исполнительным устройствам. Теперь ваши устройства не толпа мыслящих вещей. Они лишь синапсы мозга сервера. Это просто и естественно.

В моей сети два типа устройств:

  • Датчики и элементы управления (входные) и
  • Реле, клапаны и т.п. (выходные)

Все они общаются с сервером посредством модулей wifi (ESP8266 из известного китайского магазина). Входы отправляют данные о своем состоянии на сервер базы данных. Выходы принимают и исполняют команды от сервера. Как я уже упомянул, никакого разума у устройств нет.

Цель — сделать вещи как можно более простыми.

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

Ядро умного облака


Я использовал маленький беспроводный роутер с OpenWRT и расширенной памятью, способный содержать веб сервер и сервер баз данных — Gl-iNet 6416A не дороже 25 USD.

Удивительно крохотное устройство дает нам:

  1. Веб сервер lighttpd для размещения страниц интерфейса (предустановлен)
  2. php, чтобы они были интерактивными (предустановлен)
  3. Сервер баз данных MySQL для хранения данных (устанавливается). Кое-кто использует SQlite, но он не способен обрабатывать одновременные запросы, в топку

Это мое частное облако. Оно создает свою собственную подсеть сеть (192.168.8.1), свою собственную сеть wifi, доступную только моим вещам. У него также есть внешний интерфейс (WAN), подключенный к моему обычному домашнему роутеру (с назначенным адресом 192.168.1.100). Он нужен для доступа к панели управления из моей домашней wifi сети.

Прикладное программное обеспечение, использованное в проекте:

  • WinSCP — графический FTP клиент для доступа к файлам
  • HeidiSQL — графический SQL клиент для доступа к базе данных
  • PuTTy — клиент SSH для передачи команд операционной системе OpenWRT

Текущая конфигурация хранится на GitHub.

И да, виноват, я использовал флешку как файловое хранилище, хотя по-взрослому не стоит использовать память NAND (требование mySQL).

Стандартный модуль


Модуль wifi (ESP8266) заправленный стандартным скетчем. Вкратце, он считывает параметры последнего доступа к точке доступа, пытается к ней подключиться, если ему не удается, он запускает свою точку доступа и страницу с формой для новых параметров доступа. А если ему удается подключиться, он загружает с сервера предназначенные этому модулю скрипты и запускает их. Модули различаются по MAC адресам.

В моем облаке для каждого MAC адреса есть выделенная папочка с рабочими скриптами по адресу 192.168.8.1:86

Итак, изначально у модуля всего три скрипта:

AP_config — две строки: SSID и пароль.

init.lua — подключение к точке доступа с сохраненными параметрами из AP_config. При неудаче — запуск do(«ap_request.lua»). При удаче — загрузка рабочих скриптов и запуск их.

ap_request.lua — запрос новых параметров доступа к точке доступа, запись их в файл AP_config (в случае, если подключение с предустановленными не удалось).

Скрипты модуля

Управляемые устройства


Цель — сделать периферийный устройства как можно более простыми. Например модуль с двумя реле (выключатели света) состоит из:

  • Блока питания AC-DC
  • Стабилизатора питания на 3,3В
  • ESP8266 (в данном случае ESP-01 с двумя управляемыми пинами)
  • модули реле
  • корпус

Всё про всё — 7 USD.

Датчики (входы)


Устройство с датчиком состоит из:

  • Блока питания
  • Стабилизатора питания
  • Модуля wifi (опять ESP01)
  • Цифрового датчика температуры и влажности DHT11

Всё не более 5 USD.

Он измеряет показания температуры и влажности и каждые 3 минуты отправляет на сервер, где они сохраняются в базу данных mySQL.

Управление


Всё веселье на сервере!


Самое интересное это то, что у меня нет обычных панелей управления. Все интерфейсы виртуальные. Кнопки, выключатели, движки виртуальны. Конечно, можно сделать их реальными и некоторые из них я сделаю.

С помощью этого сайта мы можем наблюдать историю датчиков и текущие значения, можем управлять лампами, клапанами и т.п.
Вы всегда можете добавить новые устройства к панели при помощи простых навыков HTML и Javascript кодирования.

Я использовал карты ссылок с изображениями построенными в простой программе SweetHome 3D для организации навигации по дому.

Включите свое воображение


Гораздо больше людей знают как кодировать для веба (PHP, Javascript, HTML), чем для контроллеров (C++, Lua). При помощи этой структуры мы можем получать, запрашивать, отправлять данные и команды простыми php или js скриптами. Мы можем построить обучаемую систему, которая сможет приспосабливаться к нашим привычкам, сообщать нам о происшествиях.

habr.com

Создаем свое облако: OwnCloud + DigitalOcean

Многие читатели нашего сайта говорили, что не хотят хранить свои файлы и данные в облачных сервисах. Конечно же, вся эта история с АНБ США подорвала доверие к Dropbox, Google Drive и другим облачным сервисам. И многие задумались о безопасности своих данных. Решением данной проблемы может стать создание своего облака. Да, именно! Вы можете сами создать облачный сервис. И на все это у вас уйдет максимум минут 30. Мы подготовили для вас подробную инструкцию.

Итак, для создания своего облака мы будем использовать DigitalOcean, где создадим свой виртуальный сервер (VPS), а также OwnCloud — приложение для создания облачного сервера. Плюс домен. Домен вы можете приобрести, например, на Whois.com. Обойдется вам это приблизительно в 10 $/год. Самый дешевый VPS на DigitalOcean стоит 5 $/мес. За эту сумму вы получите 20 Гб места. И его вполне хватит для нужд обычного пользователя. Приступим.

Создаем VPS


Переходим на сайт DigitalOcean и регистрируемся там. После создания аккаунта, вам нужно создать дроплет. Так в DigitalOcean называют VPS. Первым шагом вводим имя нашего сервера. Для создания своего облака вам с головой хватит самого дешевого варианта — за 5 долларов месяц. Место размещения сервера играет большую роль — это напрямую влияет на скорость доступа к вашим файлам. Поэтому выбирайте ближайший к вам город. Систему стоит выбрать Ubuntu 12.04. Это версия с длительной поддержкой (до 2017 года), а свежая 14.04 еще слишком свежая 🙂

Подключаемся к VPS

После создания дроплета, вам на email придет письмо с IP-адресом вашего сервера и пароль для доступа к нему. Для подключения к серверу вам нужен инструмент для работы с SSH. В Linux и Mac — это уже установленный Терминал. А вот пользователям Windows советую скачать Putty. Программа абсолютно бесплатна.

В терминале вводим следующую команду для подключения к серверу (вместо единиц вводим IP-адрес вашего сервера):

ssh [email protected]

Поздравляю. Вы подключились к своему серверу! Теперь вам нужно установить apache, mysql, php5 (LAMP) и, собственно, сам OwnCloud. Для этого просто строчка за строчкой выполняем код. Без строчек с комментариями (вначале решетка стоит) — это пояснения для вас.

sudo apt-get update
# Получаем все обновления для сервера

sudo apt-get upgrade
# Устанавливаем эти самые обновления

sudo apt-get install lamp-server^
# Установка LAMP. Нужно будет установить MySQL пароль для суперпользователя.

sudo mysql_secure_installation
# На этом этапе, у вас несколько раз будут спрашивать "да/нет" на разные вопросы. Можете смело отвечать "Нет" на первый и "Да" - на все остальные.

sudo apt-get install php5-gd php-xml-parser php5-intl smbclient curl libcurl3 php5-curl
# Устанавливаем нужные для OwnCloud плагины

sudo a2enmod rewrite
sudo a2enmod headers
sudo nano /etc/apache2/sites-available/default

Откроется текстовый документ. В нем вам нужно найти следующие строки и исправить AllowOverride None на AllowOverride All. Дальше «Ctrl+X», затем «Y» и Enter.


Поздравляю, у вас установлено все нужное программное обеспечение для стабильной работы сервера. Теперь нужно установить OwnCloud. Всего 7 команд, не переживайте 🙂


sudo wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
tar -xjf owncloud-latest.tar.bz2
mv owncloud /var/www
# Скачиваем последнюю версию OwnCloud на свой сервер, разархивируем ее и перемещаем в нужную для доступа через веб папку.

cd /var/www
sudo chown -R www-data:www-data owncloud
# Для нормального функционирования OwnCloud нужно выдать ему права на доступ к основной папке веба нашего сервера.

mysql -u root -p
CREATE DATABASE owncloud;
GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'password';
exit;
# Создаем базу данных для OwnCloud. Слова owncloud и password, вы можете изменить.

sudo service apache2 restart
# Перезагружаем наш сервер

Переходите по адресу (вместо единиц — ваш адрес сервера):
111.111.111.111/owncloud

И завершаем установку OwnCloud.

Подключение домена


Можно обойтись только IP-адресом, но это непрактично и некрасиво. Поэтому стоит подключить домен. Для этого переходим в панель DigitalOcean → DNS и там нажимаем кнопку Add Domain. Вводим адрес домена и выбираем в списке дроплетов нужный. Все, через пару часов, максимум сутки, у вас будет доступ к вашему облаку по адресу domain.com/owncloud.

Enjoy it!

lifehacker.ru

что и как обычно делается в России, ликбез и основные проблемы / КРОК corporate blog / Habr

Моя работа — проектирование решений в области виртуализации и внедрение частных «облаков» для российских компаний. Начну с того, что вообще такое частное «облако»:
  • Это IT-сервисы на вашей территории.
  • При этом это сервисы, эволюционно добравшиеся до «облака», то есть сервисы распределенных вычислений.

Зачем это нужно? Причин на практике четыре:
  1. Экономия на железе: «облако» позволяет крутить сотни проектов на одном наборе железа, когда как без такой инфраструктуры железа потребовалось бы минимум втрое больше. Ну и в будущем нет проблем с заменой железа.
  2. Экономия на лицензиях: так получилось, что лицензионные условия часто обозначаются не на пользователя, а на машину. А когда машина физически одна, а пользователей — 5-6, это серьезно дешевле.
  3. Требования к скорости развертывания инфраструктуры. Из правильного настроенного частного «облака» можно легко запустить новый офис в регионе, чуть ли не за несколько минут. Или масштабироваться без боли.
  4. Волшебный 152-ФЗ и ряд других нормативов: пока не всегда можно отдавать свои ПД на обработку кому-то третьему, требуется разворачивать фермы у себя.

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

Как правило — это крупные компании, которые уже достаточно зрелы по процессам. У них уже внедрен сервисный подход, но нужно все это автоматизировать частным «облаком». Сервисный подход — это когда каждая часть IT-сферы рассматривается как услуга для пользователя. Например, нужна виртуальная машина — просто отдали еще один экземпляр с нужными правами и настройками. Централизованно и унифицированно. И так далее.
Самый первый заказчик — IT-отделы

Как правило, IT-отделы — это первые, кто понимает, что нужно свое «облако». Обычно происходит так: они поднимают виртуальные машины по запросу для себя, коллег, подрядчиков (кстати, дать доступ подрядчику до своей инфраструктуры — одна из самых частых задач). В какой-то момент становится понятно, что нужно делать платформу — PaaS — и потом все это приходит к SaaS, когда нужная операция делается чуть ли не самим пользователем в один клик. Параллельно описываются все эти процессы и прикидывается их стоимость. Зачем? Потому что зная экономию, куда легче доказывать руководству необходимость такого решения. Появляются понятные для бизнеса деньги. Например, почтовый ящик стоит столько-то, в следующем году будет столько-то новых пользователей и так далее. Появляется главный фактор — цена. И, поверьте, многих несказанно радует переход на язык денег вместо языка «шаманов» обычного IT-департамента.
Большая головная боль — это тестовые среды

Один из основных сервисов для крупных компаний — автоматизация предоставления сред под разную разработку. Тестовые среды требуются почти под каждый крупный проект, потому что, например, в нефтегазовой, банковской или телекомовской среде нельзя оттестировать что-то новое на «сухих» данных. Нужно прогонять, например, по вчерашнему слепку базы в контролируемой среде и смотреть, что на выходе. Когда такой проект один, просто выделяется некий парк серверов, и все гоняется на нем.

Но когда проектов уже десяток — нужны виртуальные тестовые среды. Причем нужны позарез. Их надо развертывать, конфигурировать, убивать или морозить, чтобы они не ели ресурсы. Проектов много, на это уходит ручного труда очень много. Встает вопрос безопасности.

Инфраструктура компаний

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

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

Пиковые задачи

В Big Data (вроде биллинга телекомов, расчета тарифов страховых и так далее) есть задачи, которые возникают раз в месяц и полностью убивают даже тяжелые сервера-молотилки. Например, один из известных мне расчетов шел на физическом оборудовании месяцы, после первого цикла виртуализации — недели, а теперь все свободные ресурсы их «облака» занимаются именно этим подсчетом (и при этом не тормозят остальные процессы) — и все проходит за дни.
Потом идут новые проекты

Предположим, банк запускает какой-то проект, про который совершенно непонятно, сколько он будет брать ресурсов. Непонятно потому, что стартап внутри компании новый, и никто не может сказать — будет это 500 человек, 1% от клиентской базы или вообще каждый второй клиент. Соответственно, логично не закупать сначала дорогое железо с одной стороны, но и страховаться от ожидаемого или неожиданного пика — ведь придется задорого менять инфраструктуру, если что. Поэтому здесь тоже логично все крутить в «облаке». Но не в публичном, так как речь о банке и 152-ФЗ.
SaaS для клиентов

Иногда случается, что компания не хочет разворачивать «облако» для миграции со своей архитектуры, но не против отдавать сервисы из него своим подрядчикам или клиентам. В этом случае запускается отдельное от общей инфраструктуры частное «облако», откуда, например, могут раздаваться рабочие места и доступы к важным данным в огромных рекламных агентствах или же откуда могут настраиваться защищенные доступы к банк-клиенту, бухгалтерии и эквайрингу для клиентов банков.
Необычный случай

В одной крупной энергетической компании ситуация была в целом стандартная — сотни дочерних обществ, множество филиалов, очень сложная структура отдельных компаний внутри объединения. Все это обслуживает одна IT-служба. Парни справляются, все настроено по уму, но есть одна проблема. Конкретно — за IT-услуги (например, виртуальные машины или место на серверах) нужно делать расчеты внутри объединения, а для этого нужно как-то выставлять счета. А делать это нереально сложно, потому что, никто не может чётко проверить, сколько ресурсов потрачено на тот или иной запрос. И предсказать тоже. В итоге они развернули и настроили частное «облако», которое позволило просто и прозрачно перейти к подсчетам ресурсов для каждого. Учитывая, что теперь каждый может взять и посмотреть в реальном времени сколько и за что он должен, споры пропали. Биллинг справедливый. Получился такой хороший финансовый арбитр, позволяющий привести все в норму. Ну и плюс они потом стали постепенно прикручивать другие функции к уже готовому «облаку».

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

Вот как такое распределение может выглядеть из интерфейса управления:

А вот пример внутренних расчетов:

Как обычно внедряется частное «облако»?

На практике — с трудом. Основная проблема, с которой я сталкивался — это простое непонимание того, как все работает и чем может быть выгодно. Бывает, мне пишут из IT-отделов, просят сделать расчет, чтобы они его могли показать руководству. Берут свои расчеты, берут мои расчеты — и только две этих бумажки вместе (чтобы было и мнение сотрудника, и внешней компании) убеждают. Когда решение все же принято, шаги внедрения такие:

1. Сначала IT-службы обсуждают, что и как должно быть.
Формируется каталог сервисов, потом смотрим, какие куски уже реализованы, а какие нет. Например, выделение виртуальной машины по запросу — сервис не для конечного пользователя, а для разработчика или для подрядчика. Соответственно, он автоматизируется, детализируется, пишется SLA. Или расширение фермы на 100 пользователей — нужно делать связь с другой частью фермы. И так далее.

2. Каждый сервис детализируется.

3. Затем смотрим, что уже есть и можно использовать в развертывании «облака».
Например, есть сервисдеск-система. Все это прописывается в реалиях частного «облака».

4. Затем стандартные вещи.
Это выбор вендора, подсчет стоимости, точный финансовый план до копейки по железу, работам, лицензии на продукты для создания «облака», интеграции.

5. Ну и потом, непосредственно, работы.

Пример реализации

Расскажу про наш собственный опыт. Нам, как проектной компании, которая занимается разработкой новых решений или донастройкой коробочных решений, необходима среда разработки и среда для тестирования. До 2006-2007 года вся наша лаборатория состояла из железных серверов, то есть фактически под каждый из проектов нужно было сформировать спецификацию, где-то заказать или найти на складе сервера, привезти их, смонтировать, подключить. Если мощности не хватало, то это опять заказ, ожидание и привоз. Почти каменный век.

Потом появились платформы виртуализации VMware (здесь важно пометить, что альтернативы ей на тот момент де факто не было). Мы решили закупить несколько мощных серверов, поставить на них VMware Server, и облегчить всем жизнь. После этого действительно стало полегче с точки зрения скорости развертывания, но не сильно. Потому что все это развертывалось фактически вручную, даже несмотря на наличие механизмов по управлению этими виртуальными серверами, все равно наши админы большую часть работы делали сами: принимали заявки, выделяли вычислительные мощности, вручную отслеживали насколько тот или иной сервер сейчас загружен. Зачастую возникали ситуации, что конкретный железный сервер настолько был загружен виртуалками, что приходилось его вручную оптимизировать, переносить виртуалки с сервера на сервер. Все это жутко мешало работе проектных команд. Они заказывали определенную мощность, но получить ее не могли.

Вывод: виртуализация хороша, но ручное управление – плохо. По решению инженера, которое принималось по принципу «пол-палец-потолок», тот или иной сервер был менее загружен, чем другой. Только потому, что на нем сейчас не запущены те виртуалки, которые на нем стоят. А предугадать, что сейчас этот проект войдет в горячую фазу и все эти виртуалки стартуют, было практически невозможно. Нужен был очень умный инженер, который мог бы уточнять планы по проектам. А когда их сотни одновременно, это та еще задача. Многие перестали заказывать виртуалки, потому что работать так было очень сложно, и заказывали реальное железо, всеми правдами и неправдами. Но понятно, что повесить железный сервер на проект – это существенно дороже. В разы, если не на порядки.

Поэтому конечно, когда появилась возможность поставить платформу управления, мы ее поставили. Выбрали HP, отчасти потому, что у нас был большой опыт работы с их системами, отчасти, потому что из реальных конкурентов HP в плане управления «облаком» на тот момент был только BMC. Но под наши разработческие задачи, чтобы пользователи могли сами выбирать себе параметры стенда, больше подходил HP с точки зрения гибкости управления. Когда мы все это дело автоматизировали, то уже не нужно думать, где крутится виртуалка, она сама переносится с одной вычислительной мощности на другую, для того чтобы поддерживать необходимый уровень производительности. Если какой-то определенный необходимый квант мощности превышен, то она сама добавляет еще и еще. Теперь наши инженеры практически не заказывают железные сервера.

Потом уже мы доработали эту систему управления коннектором к публичному «облаку» (в Amazon и к нашему собственному публичному «облаку» — прикрутили и возможность выбора), чтобы можно было показать заказчику получившееся решение в любом месте, где есть интернет. У CA, например, по умолчанию есть прямой коннектор к публичным «облакам». Поэтому если кто-то не хочет заморачиваться на доработку, в некоторых случаях можно выбрать CA.

Сейчас в нашем частном «облаке» порядка 1000 стендов, понятно, что они не все активированы, но в среднем каждый пятый работает постоянно. Сервера самые разные, с точки зрения «облака» на самом деле не очень важно какие, могут быть IBM Blade или HP Blade. Подключившись к «матрице» он просто становится еще одной каплей в море. Затраты конкретного стенда сейчас автоматически, благодаря внутренней системе биллинга, падают на конкретный проект. С точностью до копейки. Не больше, не меньше. Причем с учетом простоя, то есть если ты останавливаешь виртуалку на какое-то время, то и не платишь. Конечно, небо и земля, по сравнению с тем, как это было раньше, когда все затраты лаборатории каким-то магическим и совершенно непрозрачным образом распределялись по департаментам, направлениям, группам.

Но пойдём дальше.

Масштабирование

Обычно делается очень просто. Есть предопределенные блоки: автоматизация охватывет инфраструктурный уровень. Все, по большей части, решается установкой дополнительных юнитов в стойки в случае чего. Если задача не очень большая — то скорее всего допоставка серверов, систем хранения, связка воедино. Если крупная — развертывание еще фермы и организация связи между ними. Соответственно, легко строить прогнозы вроде «в следующем году у нас будет на 30% больше пользователей, вот расходы».
Архитектура

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

Вот про управление:


ПРИМЕР АРХИТЕКТУРЫ НА ПЛАТФОРМЕ BMC CLOUD LIFECYCLE MANAGEMENT


ПРИМЕР АРХИТЕКТУРЫ НА ПЛАТФОРМЕ IBM CLOUD SERVICE PROVIDER PLATFORM (CSP2)


ПРИМЕР АРХИТЕКТУРЫ НА ПЛАТФОРМЕ CA AUTOMATION SUITE FOR CLOUD


Схема с общими составляющими инфраструктуры частного «облака»

Переход к гибридам и публичным «облакам»

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

Все. Я готов ответить на ваши вопросы в комментариях или в почте [email protected]. Если это требуется, могу прислать примерные расчеты вариантов внедрений для вашей ситуации.

Если хотите больше практических деталей — завтра с 10:30 до 15:30 у нас в офисе пройдет семинар. Будем рассказывать в подробностях про архитектуру «облака» и «облачный» ITSM, про опыт переноса в частное «облако» услуги «service desk», про пред-биллинг и решения для учета ресурсов, о том, как управлять частными «облаками», какие решения для этого есть и что лучше выбрать в том или ином случае, в целом про аппаратные и системные решения, необходимые для развертывания частного «облака», про защиту «облачных» данных и еще много всяких полезностей. Будет и специальный гость из Forrester — Лорен И. Нельсон, аналитик по работе со специалистами в области ИТ-инфраструктуры и операций. Тоже обещает поделиться некоторыми секретами. В общем, приходите, это полезная ачивка. Зарегистрироваться на бесплатное участие можно здесь.

habr.com

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *