Записки маковода: как работает iCloud
Иллюстрация взята с сайта www.wired.com
Давно было интересно, как и на каких технологиях работает сервис iCloud компании Apple. В публичных источниках информации (читай, в интернете) не так уж и много по этому поводу, а Apple хранит гробовое молчание. Но кое что все же удалось найти. Результатами своих поисков я и поделюсь с вами ниже.
Как известно, а некоторым может быть и нет, Apple, компания, которая учится на своих ошибках. И она очень хорошо усвоила урок, преподнесенный ей некогда IBM. Нельзя зависеть от одного поставщика чего либо. В данный момент Apple предпочитает работать с несколькими поставщиками в разных областях: LCD дисплеи от Samsung, LG и Sharp; производство процессоров Samsung и TSMC; микросхемы Murata, Samsung, Qualcomm.
Судя по всему, Apple извлекла уроки из запусков .Mac и MobileMe и решила в корне пересмотреть свои взгляды на облачные сервисы. И с запуском iCloud Apple решила не только обзавестись собственными ресурсами для хранения информации пользователей но и прибегнуть к использованию мощностей облачных провайдеров, таких как Microsoft с ее технологией облачного хранения данных Azure и Amazon с ее S3.
Итак, iCloud состоит из трех основных частей. Из IaaS (Infrastructure as Service) решения Microsoft — Azure Content Delivery Network (CDN) — для хранения и транспорта пользовательского контента, из IaaS S3 Amazon для тех же целей и собственных дата-центров Apple для хранения пользовательских данных и управления инфраструктурой iCloud.
Пользовательские данные распределяются между дата-центром Apple в Северной Каролине, Azure Content Delivery Network и Amazon S3, сервера которых расположены по всему миру. Не исключаю того, что Apple будет стремиться сокращать объем сторонних ресурсов, задействованных в хранении данных iCloud. В данный момент строится второй дата-центр Apple в Прайнвилле, штат Орегон. Думаю, что часть нагрузки с Microsoft Azure CDN и Amazon S3 будут переведены на него.
Судя по всему Apple отдала предпочтение в основной массе сервеному оборудованию от Hewlett-Packard.
Теперь немного о том, что находится внутри дата-центра в Северной Каролине. Оборудование, которое использует Apple достаточно разношерстно. Основной «рабочей лошадкой» дата-центра в Мейдене являются сервера Hewlett-Packard, вероятнее всего это комбинация машин HP ProLiant DL360 и DL380 G7 с внешними RAID массивами для хранения большого объема данных производства HP, Netapp, IBM и EMC. Кроме того, имеется какое-то количество Xserve, или каких-то серверов, изготовленных в ограниченных количествах специально для Apple, на которых могла бы работать OS X. Я полагаю, что в дата-центре также используется специализированное оборудование Sun для обеспечения работы СУБД Oracle. Резервное копирование и бекапы производятся при помощи кассетных систем резервного копирования IBM. Помимо всего прочего Apple использует оборудование Teradata. Это программно-аппаратный комплекс для обработки и анализа больших массивов данных.
Оборудование Teradata. На фото коридор дата-центра, уставленный хранилищами Teradata 6843 Enterprise Storage Array. Судя по всему, статистических данных для анализа в Apple очень много.
Все это работает на операционных системах OS X (Apple), AIX (IBM), Solaris (Sun/Oracle) и ОС семейства Linux. В инфраструктуре iCloud используются следующие программные средства хранения данных: СУБД — Oracle, Teradata, MySQL, DB2; NoSQL БД — Hadoop, HDFS, mongoDB, Cassandra; Columnar DB — Vertica, SAP Hana. Технологии виртуализации: KVM, Xen и VMware. Веб отдается при помощи Apache (вероятнее всего модифицированным). Фронтэнд iCloud.com построен на базе фреймворка SproutCore.
Теперь немного о том, как это все работает. Данные пользователя, такие как фотографии из Фотопотока, закладки Safari и список отложенного чтения, контакты, записи календаря, напоминания, заметки, почта, пользовательские документы, хранятся в неком хранилище, которое обеспечивается сервисами Microsoft Azure CDN, Amazon S3 и собственным дата-центром Apple в Северной Каролине. Вся эта информация, по словам Apple хранится в зашифрованном виде, за исключением почты и заметок.
Насколько мне известно, в данный момент никто из не коммерческих почтовых провайдеров (таких, как Google, Yandex или Yahoo!, например) не шифрует почту на своих серверах, за исключением небольшого числа платных сервисов для безопасной пересылки писем, которые шифруют пользовательские данные в своих хранилищах методами, которые отвечают требованиям HIPAA. Делается это для того, чтобы можно было обеспечить поиск нужной информации в почтовом ящике. С письмами в зашифрованном виде этого бы не получилось. Заметки, поскольку они синхронизируются с клиентским приложением в OS X при помощи протокола IMAP, тоже не шифруются на сервере.
Обмен данными и доступ к пользовательским данным осуществляется при помощи WebDAV, IMAP или HTTP и шифруется при помощи SSL. Данные хранятся в некоей сетевой файловой системе, подобной Xsan, (точные данные о ее природе отсутствуют) в зашифрованном виде. После аутентификации клиента, запрашиваемый им файл «на лету» расшифровывается. Такой сценарий используется, например, при доступе к пользовательским данным через веб интерфейс iCloud.com. При синхронизации между клиентским оборудованием и хранилищем iCloud информация передается в зашифрованном виде.
Для шифрования данных в iCloud используется симметричный алгоритм AES, с длинной ключа не менее 128 бит, который создается на основе паролей пользователей, используя стандарт PBKDF2 (Password-Based Key Derivation Function), разработанный Национальным Институтом Стандартов и Технологий США (National Institute of Standards and Technology — NIST), который, кроме всего прочего, используется в OS X для генерации ключей в таких приложениях, как FileVault и Keychain.
К сожалению, о других системах iCloud — например, таких как система принудительной доставки контента на пользовательские устройства, система распознавания музыке в iTunes Match или система резервного копирования данных iOS устройств — не известно ровным счетом ничего.
От себя лично добавлю, что был не сильно удивлен тем фактом, что Apple для организации облачного хранилища использует технологии Microsoft и Amazon. Для того, чтобы обеспечить работу такого масштабного сервиса, как iCloud нужна гигантская инфраструктура, развернуть которую за несколько лет не по силам даже Apple. Пример MobileMe был очень показательным. Поэтому было очевидным и логичным решение задействовать, по крайней мере в начале, ресурсы компаний, которые специализируются на предоставлении IaaS услуг. Не исключаю, что Apple будет и дальше инвестировать средства в развитие собственных аппаратных мощностей и постепенно сведет использование сторонних ресурсов к минимуму или вовсе откажется от них.
Автор — маковод со стажем, руководитель сервисного центра computersart.com.ua
Подписывайтесь на наш нескучный канал в Telegram, чтобы ничего не пропустить.
Поделиться