Русский
Русский
English
Статистика
Реклама

Блог компании huawei

Huawei OceanStor Dorado 18000 V6 в чём её хай-эндовость

21.10.2020 14:12:03 | Автор: admin
Обстоятельно аргументируем, что делает OceanStor Dorado 18000 V6 по-настоящему хай-эндовой системой хранения данных с порядочным заделом на ближайшие годы. Заодно развеиваем распространённые опасения относительно All-Flash-хранилищ и показываем, за счёт чего Huawei выжимает из них максимум: end-to-end NVMe, дополнительное кэширование на SCM и целая пачка других решений.




Новый ландшафт данных новое хранение данных


Интенсивность работы с данными повышается во всех отраслях. И банковская сфера тому нагляднейшая иллюстрация. За последние несколько лет число банковских транзакций увеличилось в десять с лишним раз. Как показывает исследование BCG, только в России на отрезке с 2010 по 2018 год количество безналичных транзакций с помощью пластиковых карт показало более чем тридцатикратный рост с 5,8 до 172 на одного человека в год. Дело прежде всего в триумфе микроплатежей: большинство из нас сроднилось с онлайн-банкингом, и банк у нас теперь под рукой в телефоне.

IT-инфраструктура кредитной организации должна быть готова к такому вызову. А это действительно вызов. Помимо всего прочего, если раньше банку требовалось обеспечить доступность данных лишь в свои рабочие часы, то теперь 24/7. Ещё недавно 5 мс считались приемлемой нормой задержкой, и что же? Сейчас даже 1 мс перебор. Для современной системы хранения данных целевое значение 0,5 мс.

То же самое с надёжностью: в 2010-е сформировалось эмпирическое понимание того, что достаточно довести её уровень до пяти десяток 99,999%. Правда, понимание это успело устареть. В 2020 году для бизнеса абсолютно нормально требовать 99,9999% применительно к хранилищу и 99,99999% применительно к архитектурному решению в целом. И это вовсе не блажь, а насущная необходимость: либо временного окна на обслуживание инфраструктуры нет, либо оно крохотное.



Для наглядности удобно спроецировать эти показатели на плоскость денег. Проще всего на примере финансовых организаций. На диаграмме выше указано, какую сумму в течение часа зарабатывает каждый из топ-10 мировых банков. У одного только Промышленного и коммерческого банка Китая это ни много ни мало $5 млн. Ровно во столько обойдётся часовой простой IT-инфраструктуры крупнейшей кредитной организации КНР (причём в расчёте учтена лишь упущенная выгода!). При таком ракурсе видно, что сокращение даунтайма и повышение надёжности не то что на единицы процентов даже на доли процента полностью рационально обоснованны. Не только из соображений повышения конкурентоспособности, но и попросту ради сохранения рыночных позиций.

Сопоставимые изменения происходят в других индустриях. Например, в воздушных перевозках: до пандемии авиасообщение год от года только набирало обороты, и многие стали пользоваться им почти как такси. Что касается потребительских паттернов, в обществе укоренилась привычка к тотальной доступности сервисов: по прибытии в аэропорт нам требуется подключение к Wi-Fi, доступ к платёжным сервисам, к карте местности и т. д. Как следствие, нагрузка на инфраструктуру и сервисы в публичных пространствах возросла многократно. И те подходы к её, инфраструктуры, построению, которые мы считали приемлемыми даже год назад, стремительно устаревают.



Не рано ли переходить на All-Flash?


Для решения задач, о которых было сказано выше, с точки зрения производительности AFA all-flash arrays, то есть полностью построенные на флеше массивы, подходят как нельзя лучше. Разве что до последнего времени сохранялись сомнения в том, сравнимы ли они по надёжности с собранными на основе HDD и с гибридными. В конце концов, у твердотельной флеш-памяти есть такой показатель, как средняя наработка на отказ, или MTBF (mean time between failures). Деградация ячеек вследствие операций ввода-вывода, увы, данность.

Так что перспективы All-Flash омрачал вопрос, как предотвратить гибель данных в том случае, если SSD прикажет долго жить. Резервное копирование вариант привычный, вот только время восстановления было бы неприемлемо большим исходя из современных требований. Другой выход наладить второй уровень хранения на шпиндельных накопителях, однако при такой схеме теряется часть преимуществ строго флешевой системы.

Однако цифры говорят иное: статистика гигантов digital-экономики, включая Google, за последние годы показывает, что флеш кратно надёжнее, чем жёсткие диски. Причём как на коротком промежутке времени, так и на длинном: в среднем до выхода флеш-накопителей из строя проходит четыре-шесть лет. В плане надёжности хранения данных они ничуть не уступают накопителям на шпиндельных магнитных дисках, а то и превосходят таковые.



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

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

Согласно отчётам агентства ESG, на All-Flash системах хранения данных Dorado V6 реально добиться снижения стоимости владения до 78% на интервале в пять лет в том числе за счёт эффективной дедупликации и компрессии и благодаря невысоким энергопотреблению и тепловыделению. Немецкая аналитическая компания DCIG также рекомендует их к использованию как оптимальные с точки зрения TCO из доступных на сегодняшний день.


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



Роял-флеш от Huawei


Среди наших All-Flash хранилищ топовое место принадлежит hi-end-системе OceanStor Dorado 18000 V6. Да и не только среди наших: целом по индустрии она держит рекорд скорости до 20 млн IPOS в максимальной конфигурации. Кроме того, она чрезвычайно надёжна: пусть даже полетят разом два контроллера, или до семи контроллеров один за другим, или сразу целый движок данные уцелеют. Изрядные преимущества восемнадцатитысячной даёт зашитый в неё ИИ, в том числе гибкость в управления внутренними процессами. Посмотрим, за счёт чего всё это достигается.



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

Контроллер в системах OceanStor Dorado построен на процессоре собственной разработки и производства Huawei Kunpeng 920. В нём задействован модуль управления Intelligent Baseboard Management Controller (iBMC), тоже наш. Чипы ИИ, а именно Ascend 310, которые оптимизируют предсказания по отказам и дают рекомендации по настройкам, также хуавеевские, равно как и платы ввода-вывода модуль Smart I/O. Наконец, и контроллеры в твердотельных накопителях спроектированы и изготовлены нашими силами. Всё это дало базу для того, чтобы сделать интегрально сбалансированное и высокопроизводительное решение.



За последний год мы реализовали проект по внедрению этой, самой топовой своей СХД в одном из крупных российских банков. В результате более 40 единиц OceanStor Dorado 18000 V6 в metro-кластере показывают стабильную производительность: с каждой системы удаётся снять более миллиона IOPS, и это с учётом задержек из-за расстояния.




Сквозной NVMe


Новейшие системы хранения данных Huawei поддерживают end-to-end NVMe, на чём мы неспроста делаем акцент. Традиционно используемые протоколы доступа к накопителям были разработаны в седой айтишной древности: в фундаменте у них SCSI-команды (привет, 1980-е!), которые тянут за собой уйму функций для обеспечения обратной совместимости. Какой способ доступа ни возьми, протокольный overhead в таком случае колоссальный. В итоге у хранилищ, которые используют завязанные на SCSI протоколы, задержка ввода-вывода не может быть ниже 0,40,5 мс. В свою очередь, будучи протоколом, созданным для работы с флеш-памятью и избавленным от костылей ради пресловутой обратной совместимости, NVMe Non-Volatile Memory Express сбивает latency до 0,1 мс, притом не на СХД, а на всём стеке, от хоста до накопителей. Неудивительно, что NVMe лежит в русле трендов развития data storages на обозримое будущее. Сделали ставку на NVMe и мы и постепенно отходим от SCSI. Все производимые сегодня системы хранения данных Huawei, включая линейку Dorado, NVMe поддерживают (правда, как end-to-end он реализован только на передовых моделях серии Dorado V6).



FlashLink: пригоршня технологий


Краеугольная для всей линейки OceanStor Dorado технология FlashLink. Точнее, это термин, объединяющий интегральный набор технологий, которые служат для обеспечения высоких производительности и надёжности. Сюда входят технологии дедупликации и компрессии, функционирования системы распределения данных RAID 2.0+, разделения холодных и горячих данных, цельнострайповой последовательной записи данных (случайные записи, с новыми и изменёнными данными, агрегируются в крупный стек и пишутся последовательно, что повышает скорость чтения-записи).

Помимо всего прочего, FlashLink включает в себя две важные составляющие Wear Leveling и Global Garbage Collection. На них стоит остановиться отдельно.

Фактически любой твердотельный накопитель это СХД в миниатюре, с большим числом блоков и контроллером, который обеспечивает доступность данных. А обеспечивается она в том числе за счёт того, что данные с убитых ячеек перебрасываются в не убитые. Тем самым гарантируется, что их удастся прочитать. Существуют различные алгоритмы такого переноса. В общем случае контроллер старается отбалансировать износ всех ячеек накопителя. У такого подхода есть минус. Когда внутри SSD происходит перемещение данных, число осуществляемых им операций ввода-вывода разительно сокращается. На текущий момент это неизбежное зло.

Таким образом, если в системе много твердотельных накопителей, на графике её производительности вырисовывается пила, с резкими подъёмами и спадами. Беда в том, что какой-то один накопитель из пула может запустить миграцию данных в любой момент, а общий performance снимается единовременно со всех SSD в массиве. Но инженеры Huawei придумали, как избежать возникновения пилы.

Благо и контроллеры в накопителях, и контроллер хранилища, и микрокод у Huawei родные, эти процессы в OceanStor Dorado 18000 V6 запускаются централизованно, синхронно на всех накопителях массива. Причём по команде контроллера СХД и именно тогда, когда нет большой нагрузки по вводу-выводу.

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


Плюс ко всему контроллер системы видит, что творится в каждой ячейке накопителя, в отличие от СХД конкурирующих производителей: те вынуждены закупать твердотельные носители у сторонних вендоров, ввиду чего cell-level детализация контроллерам таких хранилищ недоступна.

Как следствие, у OceanStor Dorado 18000 V6 очень короткий период потери производительности на операции Wear Leveling, а выполняется она, в основном когда никаким другим процессам не мешает. Это даёт высокую стабильную производительность на постоянной основе.



Из чего складывается надёжность OceanStor Dorado 18000 V6


В современных системах хранения данных выделяется четыре уровня надёжности:

  • аппаратная, на уровне накопителя;
  • архитектурная, на уровне оборудования;
  • архитектурная вместе с программной частью;
  • совокупная, относящаяся к решению в целом.


Поскольку, напомним, все составные части СХД наша компания проектирует и выпускает сама, мы обеспечиваем надёжность на каждом из четырёх уровней, с возможностью досконально отслеживать, что на каком из них происходит в моменте.



Надёжность накопителей гарантируется в первую очередь ранее описанными Wear Leveling и Global Garbage Collection. Когда SSD выглядит для системы как чёрный ящик, ей невдомёк, как конкретно в нём изнашиваются ячейки. Для OceanStor Dorado 18000 V6 накопители прозрачны, благодаря чему возможна равномерная балансировка по всем накопителям массива равномерно. Таким образом получается значительно продлить срок жизни SSD и заручиться высоким уровнем надёжности их функционирования.



Также на надёжность накопителя влияют дополнительные избыточные ячейки в нём. И наряду с простым резервом в СХД используются так называемые DIF-ячейки, где содержатся контрольные суммы, а также дополнительные коды, позволяющие уберечь каждый блок от единичной ошибки, в дополнение к защите на уровне RAID-массива.



Залогом надёжности архитектурной служит решение SmartMatrix. Вкратце это четыре контроллера, которые сидят на пассивном бекплейне в составе одного движка (engine). Два таких движка соответственно, с восемью контроллерами подключаются к общим полкам с накопителями. Благодаря SmartMatrix, даже если перестанут функционировать семь контроллеров из восьми, сохранится доступ ко всем данным как на чтение, так и на запись. А при потере шести контроллеров из восьми можно будет даже продолжать операции кэширования.



Платы ввода-вывода на том самом пассивном бекплейне доступны всем контроллерам, как по фронтенду, так и по бэкенду. При такой схеме подключения full-mesh, что бы ни выходило из строя, доступ к накопителям всегда сохраняется.



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

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



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



Увы, объективно не исключён отказ одиночного компонента. В таком случае производительность на какое-то время просядет: необходимо, чтобы перестроились пути и возобновился доступ по операциям ввода-вывода относительно тех блоков, которые либо пришли на запись, но ещё не были записаны, либо были запрошены на чтение. У OceanStor Dorado 18000 V6 средний тайминг перестроения составляет примерно одну секунду значительно меньше, чем у ближайшего аналога в индустрии (4 с). Достигается это благодаря всё тому же пассивному бекплейну: когда контроллер выходит из строя, остальные сразу видят его ввод-вывод, и в частности какой блок данных не был дозаписан; в итоге ближайший контроллер подхватывает процесс. Отсюда и возможность восстановить производительность буквально за секунду. Надо добавить, интервал стабилен: секунда на один контроллер, секунда на другой и т. д.



В пассивном бекплейне OceanStor Dorado 18000 V6 все платы доступны всем контроллерам без какой-либо дополнительной адресации. А значит, любой контроллер способен подхватить ввод-вывод по любому порту. В какой бы фронтенд-порт ни пришёл ввод-вывод, контроллер готов будет его отработать. Отсюда минимальное число внутренних пересылок и заметное упрощение балансировки.

Балансировка по фронтенду выполняется с помощью драйвера multipathing, и дополнительно осуществляется балансировка внутри самой системы, благо все контроллеры видят все порты ввода-вывода.



Традиционно все массивы Huawei выполнены таким образом, что не имеют единой точки отказа. Замене на горячую, без перезагрузки системы, поддаются все её компоненты: контроллеры, модули питания, модули охлаждения, платы ввода-вывода и пр.



Повышает надёжность системы в целом и такая технология, как RAID-TP. Это название RAID-группы, которая позволяет подстраховаться на случай одновременного выхода из строя до трёх накопителей. Причём ребилд на 1 Тбайт стабильно занимает менее 30 минут. Лучший из зафиксированных результатов в восемь раз быстрее, чем с тем же объёмом данных на шпиндельном накопителе. Таким образом, есть возможность использовать чрезвычайно ёмкие накопители, допустим на 7,68 или даже 15 Тбайт, и не беспокоиться о надёжности системы.

Важно, что ребилд осуществляется не в spare drive, а в spare space резервную ёмкость. В каждом накопителе выделено место, используемое для восстановления данных после отказа. Таким образом, восстановление производится не по схеме много в один, а по схеме много во много, благодаря чему и удаётся заметно ускорить процесс. И до тех пор пока имеется свободная ёмкость, восстановление можно продолжать.



Отдельно следует упомянуть о надёжности решения из нескольких хранилищ в metro-кластере, или, в терминологии Huawei, HyperMetro. Такие схемы поддерживаются на всём модельном ряду наших систем хранения данных и допускают работу и с файловым, и с блочным доступом. Причём на блочном функционирует как по Fibre Channel, так и по Ethernet (в том числе по iSCSI).

В сущности, речь идёт о двунаправленной репликации с одной СХД на другую, при которой реплицированному LUN придан тот же LUN-ID, что и основному. Работает технология прежде всего благодаря консистентности кэшей с двух разных систем. Таким образом, для хоста абсолютно всё равно, с какой стороны он находится: и здесь и там он видит один и тот же логический диск. Как следствие, ничто не мешает развернуть кластер отказоустойчивости, растянутый на две площадки.

Для кворума же используется физическая или виртуальная Linux-машина. Расположена та может быть на третьей площадке, и требования к её ресурсам невелики. Распространённый сценарий арендовать виртуальную площадку исключительно под размещение кворумной VM.

Технология допускает и расширение: два хранилища в metro-кластере, дополнительная площадка с асинхронной репликацией.



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



Те же и ИИ


Как уже было сказано, в OceanStor Dorado 18000 V6 встроены процессоры с алгоритмами искусственного интеллекта Ascend. Задействуются они, во-первых, для прогнозирования отказов, а во-вторых, для формирования рекомендаций по настройке, что также увеличивает производительность и надёжность хранилища.

Горизонт предсказаний два месяца: ИИ-машинерия предполагает, что с высокой вероятностью произойдёт за это время, не пора ли будет делать расширение, менять политики доступа и т. д. Выдаются рекомендации заранее, что позволяет загодя намечать окна по обслуживанию системы.



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

Совместимость





В 20192020 годах было много инсинуаций по поводу взаимодействия нашего оборудования с продуктами VMware. Чтобы окончательно пресечь их, ответственно заявляем: VMware партнёр Huawei. Были проведены все мыслимые тесты на совместимость нашего железа с её ПО, и в итоге на сайте VMware в листе hardware compatibility указаны доступные на сегодняшний день СХД нашего производства без каких-либо оговорок. Иначе говоря, с программной средой VMware можно использовать хранилища Huawei, включая Dorado V6, с полноценной поддержкой.



То же касается нашего сотрудничества с Brocade. Мы продолжаем взаимодействовать и проводить тесты на совместимость нашей продукции и по их результатам с полной уверенностью утверждаем, что наши системы хранения данных полностью совместимы с новейшими FC-коммутаторами Brocade.



Что дальше?


Мы продолжаем развивать совершенствовать свои процессоры: они становятся быстрее, надёжнее, растёт их производительность. Улучшаем и чипы ИИ на их базе в том числе выпускаются модули, которые ускоряют дедупликацию и компрессию. Те, кто имеет доступ к нашему конфигуратору, могли заметить, что в моделях Dorado V6 эти карты уже доступны к заказу.

Также мы движемся в сторону дополнительного кэширования на Storage Class Memory энергонезависимой памяти с особо низкими задержками, порядка десяти микросекунд на чтение. Помимо всего прочего, SCM даёт прирост производительности, прежде всего при работе с big data и при решении OLTP-задач. После ближайшего апдейта SCM-карты должны стать доступны для заказа.

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

30 предстоящих вебинаров Huawei выбираем, критикуем, оставляем заявки

05.04.2021 14:09:20 | Автор: admin
С марта и до конца 2020 года мы в Huawei Russia проводили вебинары, иной раз не по одному в неделю. Сперва смотрели на этот формат как на вынужденную меру (нам нравились наши офлайн-ивенты, и тусовки после них тоже!), потом вошли во вкус. В 2021-м у нас намечено ещё больше трансляций по куче технологий и продуктов. Сейчас мы вас оперативно сориентируем, чего и когда ждать.



Мы уже составили распорядок вебинаров на следующие пять месяцев и регулярно апдейтим его. Круг тем широк (слишком даже широк, я бы сузил, проворчит кто-нибудь вслед Достоевскому, но мы бы, признаться, даже расширили бы). Перечислять все не станем: проще посмотреть по ссылке. Но, пожалуй, больше всего в этом году у нас будет контента про видеорешения, средства сетевой виртуализации, тонкости работы с высокопроизводительными СХД и управление современными ЦОДами. И про все новые продукты компании, разумеется, тоже в том числе только готовящиеся к релизу.

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

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

  • 8 апреля: Huawei IdeaHub, разрушитель мостов в видеосвязи, рассказываем и трогаем, ведущий специалист по видеорешениям Huawei Егор Купцов;
  • 14 апреля: Новое поколение распределенных систем хранения данных OceanStor Pacific, ведущий менеджер по продукту Huawei Дмитрий Сивокоз;
  • 13 мая: Двойная виртуализация удалённое тестирование Dorado V6 на базе Huawei, ведущий системный архитектор (HCIE-Storage) Treolan Алексей Козьмин.


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

Предварительное расписание вебинаров сформировано у нас до августа-2021 включительно, чтобы вы могли планировать свои контент-заплывы заранее. Ну да на то расписание и предварительное, что ничто не мешает нам добавить трансляцию (и не одну). Если вас живо занимает какое-то направление, в котором действует Huawei, или конкретная наша технология, или продукт, но в списке не нашлось ничего похожего, пишите, пожалуйста, в комментах: что именно и в каких аспектах разобрать. Будет интерес к теме запросто устроим и вебинар по ней. Stay tuned!
Подробнее..

Что сегодня есть у Huawei для построения цифровых беспроводных офисов

13.04.2021 16:13:10 | Автор: admin
В этом посте мы обрисуем современные тенденции в построении беспроводных кампусов, рассмотрим сценарии и реальные кейсы цифровой трансформации корпсетей, а также покажем, как двум специалистам обслуживать сеть на 25 тыс. абонентов, включающую в себя 20 тыс. сетевых устройств.



Ещё недавно при проектировании IT-инфраструктуры большого офиса или целого здания приходилось выбирать между высокоскоростными проводными сетями передачи данных и удобными гибкими беспроводными решениями, пропускная способность которых, однако, часто огорчала. Стоило собраться в одном конференц-зале нескольким десяткам человек со своими гаджетами, как сеть Wi-Fi из-за всплеска трафика становилась практически неработоспособной. Кто был на любой отраслевой офлайн-конференции, не даст соврать.

С появлением Wi-Fi 6 и софта для управления SDN эти неудобства уходят в прошлое. Короткое видео ниже наглядно показывает, какие возможности дают беспроводные кампусы нового поколения, на примере одного из китайских офисов Huawei.



Итак, реальная беспроводная сеть с непрерывным роумингом, включающая в себя 20 тыс. устройств и обслуживающая 25 тыс. абонентов, управляется всего двумя (!) инженерами. Развёрнута она на базе самых современных технических решений Huawei, о которых и пойдёт речь сегодня.



Основа цифровой трансформации 2.0


В процессах цифровой трансформации сеть становится элементом, связывающим между собой людей и IT-сервисы. В практическом плане мы говорим о гаджетах, находящихся на уровне edge (носимых терминалах, смартфонах, устройствах AR/VR, датчиках IoT и пр.) и множеством способов взаимодействующих между собой, а также с облаком или ЦОДом.



Умные рабочие места без проводов


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

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

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



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



CloudCampus 2.0


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

CloudCampus 2.0 включает в себя систему управления и мониторинга сети, построенную на базе SDN-контроллера iMaster NCE. Он берёт на себя всю работу по поддержанию функционирования сети, начиная с Zero Touch Provisioning (ZTP) и заканчивая автоматическим анализом неисправностей. Система построена на базе алгоритмов искусственного интеллекта, что позволяет ей с высокой вероятностью предсказывать состояния сети и проактивно устранять потенциальные точки отказа.

Немаловажно и что iMaster NCE посредством Northbound interface (NBI) легко интегрируется с вышестоящими решениями, в том числе от других вендоров. Это могут быть системы управления активами, учётом рабочего времени, гибким производством, автоматизированным складским оборудованием и др. Таким образом, сеть превращается в сервис, способный интегрироваться в любой IT- или IoT-комплекс.

Возможности CloudCampus 2.0 делятся на три основные группы.

Благодаря iMaster NCE сеть может функционировать в режиме умной эксплуатации, позволяющем оптимизировать работу с опорой на прогнозную аналитику и обнаруживать до 85% неисправностей с помощью ИИ.

С помощью Умной связи сеть быстро настраивается из единой консоли. Применение современных проводных коммутаторов и беспроводных точек доступа WiFi 6 даёт возможность строить конвергентный доступ в сеть для IoT-устройств.

Наконец, третий пункт можно условно назвать суперёмкостью, так как этот комплекс возможностей подразумевает достижение пропускной способности на уровне 10,75 Гбит/с на одну точку доступа.



В конце марта Huawei представила CloudCampus 3.0 и целый ряд новых решений, которые оптимальны для внедрения при реализации этой концепции. Среди прочего пополнение в семействе точек доступа AirEngine Wi-Fi 6 и умный маршрутизатор NetEngine AR8140, которые показывает пропускную способность до 20 Гбит/с (SD-WAN). Скоро мы расскажем в нашем хабраблоге о CloudCampus 3.0 во всех подробностях.


Wi-Fi 6 для гибкого производства


Современные беспроводные сети всё шире применяются и в инновационных индустиях, где они могут быть интегрированы в роботизированные комплексы гибкого производства.

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

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



Перед вами робот для автоматизированного оптического контроля произведённых деталей. Он использует комплекс из пяти промышленных камер, позволяющий оценить точность изготовления компонента со всех сторон. Для полноценной работы одного такого робота необходима пропускная способность сетевого канала не менее 768 Мбит/с. И количество таких устройств, работающих одновременно, зависит лишь от масштабов предприятия.

Даже при использовании не таких уж древних технологий Wi-Fi 5 для эксплуатации подобного робота требуется отдельная точка доступа. А ведь есть ещё и роботы, перемещающиеся по производственной площади и тоже подключаемые к локальной сети. Обеспечить их работу с помощью проводных решений часто невозможно в принципе.

Уже сейчас беспроводная связь предыдущего поколения зачастую не позволяет надёжно подключать необходимое количество автоматизированных устройств и пропускать требуемый каждому из них поток трафика. В то же время одна точка доступа Huawei с поддержкой WiFi 6, демонстрирующая минимальные задержки и способная передавать свыше 10 Гбит данных в секунду, в состоянии поддерживать работу более десятка роботов оптического контроля.



Настоящая действующая линия гибкого производства для производства смартфонов Huawei P40 уже развёрнута на одном из заводов нашей компании. Особенность линии то, с какой частотой вносятся изменения в рабочие процессы, а именно до нескольких раз в неделю. Это стало возможным лишь благодаря широкому внедрению роботизированных комплексов, умеющих быстро подстраиваться под меняющиеся требования. Все эти комплексы подключены к беспроводной сети на базе топовых точек доступа AirEngine 8760-X1-PRO.

Поток данных от видеокамер роботов в сторону ЦОДа обрабатывается с применением алгоритмов искусственного интеллекта, а те, в свою очередь, делают выводы относительно того, насколько качественно выполняются те или иные технологические процессы.



70 миллисекунд для VR и AR


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

Важной точкой роста технологий VR/AR в ближайшее время станет обучение, благо дети прекрасно осваивают сложные технические решения. А значит, грядёт и резкий рост спроса на соответствующие устройства, которым также потребуются широкие каналы связи.

Вместе с тем очевидно, что контент для шлемов VR/AR будет размещаться на серверах в ЦОДах: централизация ресурсов целесообразна экономически. Это неизбежно вызовет повышение требований к пропускной способности сетей.



Чуть подробнее остановимся на сетевой задержке, критически важной для VR/AR. В приложениях, где пользователи интенсивно взаимодействуют со средой и друг с другом, она не должна превышать рекомендованного значения 70 мс. Причём примерно 20 мс необходимо терминальному устройству на обработку действия пользователя, ещё столько же на формирование нового изображения в ЦОДе. Получается, на передачу данных в обе стороны по проводным и беспроводным сетям остаётся не более 3040 мс. Это вполне достижимо, если проводная сеть правильно сконфигурирована и демонстрирует показатели, близкие к максимально возможным (10 мс), а беспроводная сеть построена на современных технологиях WiFi 6 (10 мс).



Wi-Fi 6 для операционных офисов


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



Новые офисы обходятся минимальным количеством операционистов, в то время как количество услуг, предоставляемых автоматизированными системами, растёт и растёт. Привычные банкоматы соседствуют с куда более функциональными умными терминалами STM (Smart Teller Machine). С их помощью можно получить любую услугу, будь то выдача пластиковой карты или оформление договора на открытие счёта. Эти устройства способны собирать биометрические данные и сканировать документы, позволяют получить консультацию удалённого специалиста в режиме видеоконференции и пр.

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

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



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

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

При непосредственном участии Huawei была построена проводная сеть, связавшая между собой новейшие точки доступа стандарта Wi-Fi 6. И на базе беспроводной инфраструктура была развёрнута система управления кондиционированием помещений, плюс ко всему с ней интегрировали налаженную ранее систему видеонаблюдения (в дополнение к последней удалось развернуть систему видеоаналитики, позволяющую автоматически управлять освещением в помещениях).

Управление всеми этими системами было объединено в рамках диспетчерской, отвечающей также за эксплуатацию здания, обеспечение пожарной безопасности и пр.



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

***


Узнать больше о Wi-Fi 6 и технологиях Huawei вам помогут наши многочисленные вебинары: вот их расписание на ближайшие месяцы.
Подробнее..

Huawei ADN первая в индустрии сеть с автономным управлением третьего уровня

28.04.2021 16:12:49 | Автор: admin
Что такое автономно управляемая сеть и чем она отличается от SDN? Huawei совместно с консалтинговой компанией IDC изучила критерии оценки сетевой инфраструктуры по уровню её способности поддерживать собственную работу без помощи администратора.



Какой заказчики хотят видеть сетевую инфраструктуру ЦОДа? Она, конечно, должна быть эффективной, надёжной и простой в обслуживании. Совсем чудесно было бы, если бы сеть настраивала и обслуживала себя сама. Современные SDN-контроллеры умеют всё больше, но как оценить уровень их автоматизации? Как классифицировать эту автономность?

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



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

Между тем не следует рассматривать облако просто как место выполнения рабочих нагрузок. Это ещё и особые подходы к работе, подразумевающие высокий уровень автоматизации. По мнению аналитиков IDC, мы вступаем в эпоху множества инноваций. Компании инвестируют в такие технологии, как искусственный интеллект, интернет вещей, блокчейн и интерфейсы естественного взаимодействия. Но конечная цель это именно автономность систем и инфраструктур. В таком контексте и следует оценивать перспективы развития сетей ЦОД.



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

Качественно новым уровнем является переход к сетям, управляемым на основе намерений (intent-based networking). Но целью этого прогресса является создание полностью автономной сети, управляемой искусственным интеллектом. Все участники рынка так или иначе рассматривают эту задачу.

Что же такое автономность сети и как её оценить? Компания IDC предложила шестиуровневую модель, позволяющую точно отнести конкретное решение к тому или иному уровню автономности.

  • Level 0. На этом этапе управление сетью осуществляется только через ручные процессы на протяжении всего жизненного цикла сети. Сеть не является автоматизированной.
  • Level 1. Управление сетью всё ещё преимущественно ручное на протяжении всего жизненного цикла сети.
  • Level 2. В некоторых сценариях появляется частичная автоматизация, которая сочетается со стандартными инструментами анализа и управления политиками.
  • Level 3. Условная автоматизация. Система уже умеет выдавать рекомендации и указания, принимаемые или отклоняемые оператором.
  • Level 4. Сеть в значительной мере автоматизирована и автономна. Управляется она декларативными методами на основе намерений. Оператор лишь получает уведомления о событиях и принимает решения о принятии или отклонении рекомендаций сети.
  • Level 5. Сеть полностью автоматизирована и автономна на протяжении всего жизненного цикла. Она способна самостоятельно применять политики, устранять неисправности и восстанавливать сервисы.




С какими же основными вызовами сталкивается компания, внедряющая инновации в сетях ЦОД? По данным IDC, собранным на основе опросов IT-экспертов, на первом и втором местах находятся согласование уровня автоматизации сети с уровнем автоматизации систем вычисления и хранения, а также обеспечение гибкости, то есть способности сети поддерживать смешанные рабочие нагрузки и среды.

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

Исследование IDC показывает, что автономное управление сетью является остроактуальным трендом, в который так или иначе вовлечено до половины всех компаний, занимающихся развитием своей IT-инфраструктуры.



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

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



Вместе с тем инновации в работе с клиентами повлекли за собой повышение сложности IT-инфраструктуры и увеличение частоты вносимых в неё изменений. До 50% сложных проблем, регистрируемых сейчас в ЦОДах, в той или иной мере обусловлены ограниченностью как самих сетевых ресурсов, так и ресурсов команды администраторов.

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

Пожалуй, это объясняет следующую цифру: до 40% сложных проблем в ЦОДах вызваны человеческими ошибками. Любые изменения в сети, как то: запуски новых приложений, развёртывание сервисов и т. д., требуют большого внимания и многочисленных проверок, на которые далеко не всегда хватает рабочего времени. Итогом может стать серьёзная авария в ЦОДе.

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

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



Вернёмся к классификации уровней автономности, предложенной IDC. Перед вами перечень возможностей, которые сеть должна демонстрировать на каждом из этих уровней. Решение Huawei Autonomous Driving Network отвечает всем требованиям третьего уровня. Она умеет в полностью автоматическом режиме поддерживать свою работу, включая запуск и остановку процессов, настройку оборудования и пр. Кроме того, наша ADN в полной мере соответствует критерию осведомлённости, в реальном времени получая информацию о состоянии устройств, процессов, приложений и сервисов.

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

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

В соответствии со своим roadmap к 2028 году мы будем располагать системой, полностью соответствующей пятому уровню автономности.



Каким же будет эффект от внедрения автономного управления сетью? Начнём с проектирования сети. В случае использования Huawei Autonomous Driving Network заказчику нет необходимости вручную создавать архитектуру или дизайн, а также настраивать устройства. Система лишь просит указать, какое количество устройств и линков определенной пропускной способности должно быть задействовано. Затем она автоматически собирает сетевую инфраструктуру и предлагает её в виде готового решения. Заказчик сразу же получает полностью работоспособную фабрику дата-центра.

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

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

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

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



Сила Huawei Autonomous Driving Network в том, что это не просто программное обеспечение, которое можно проинсталлировать и получать сервис. В системе реализована трёхуровневая модель, базовый уровень которой расположен уже на уровне процессоров конечных устройств коммутации и маршрутизации. Эти программно-аппаратные элементы выполняют задачи по сбору и анализу данных, а также коммутации потоков и кадров. Оснащённый таким процессором коммутатор в режиме реального времени передаёт информацию в направлении программной платформы, в качестве которой в нашем случае выступает iMaster NCE.

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

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

Подходы, использованные при создании ADN, позволяют в очередной раз вспомнить наш принцип 1-3-5: любая проблема в сети должна быть выявлена за одну минуту, локализована за три минуты и исправлена за пять минут.



Подведём итог. Конечно, ADN является преемницей решений, заложенных в SDN. Это был необходимый этап развития технологии, но в нём крылись некоторые недостатки. Во-первых, использование программно-определяемых сетей подразумевало ручную первичную настройку устройств. Во-вторых, выявление ошибок также ложилось на плечи специалистов по поддержке сети. В-третьих, в случае с SDN, конечно, не шла речь об автоматическом применении сценариев восстановления, полученных из облачной базы знаний. Создавая своё ADN-решение, Huawei стремилась к тому, чтобы наши клиенты освободились от этих задач, сосредоточившись на том, что действительно требует внимания.
Подробнее..

Часто задаваемые вопросы про Huawei FusionModule2000

08.05.2021 02:17:45 | Автор: admin

Описание

Huawei FusionModule2000 - интеллектуальный модульный центр обработки данных нового поколения, созданный специально для того, чтобы предоставить заказчикам простое, эффективное и надежное решение для ЦОД. Huawei FusionModule2000 первым в мире получил сертификацию уровня Tier IV Ready от Uptime Institute: он соответствует самым высоким требованиям к доступности.

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


Часто задаваемые вопросы

  1. Вопрос: Каким образом выполняется прокладка кабелей для сильных и слабых токов в FusionModule2000?

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

  2. Вопрос: Можно ли разместить сервер и ИБП в одном отделении для экономии места?

    Ответ: Да. ИБП можно разместить в одном отделении с сервером. В большинстве случаев ИБП занимает не очень много места. Если мощность ИБП превышает 600 кВ-А, его следует разместить в отдельном помещении (необходимо учитывать концентрацию токсичных веществ, выделяемых аккумуляторами, таких как водород и сероводород).

  3. Вопрос: Модульные ЦОД Huawei поддерживают горизонтальный воздушный поток. Можно ли использовать режим с нисходящим воздушным потоком?

    Ответ: В режиме нисходящего воздушного потока поддерживается низкая удельная мощность (3-5 кВт на стойку). В горизонтальном режиме поддерживаются более высокие значения (решения Huawei поддерживают до 21 кВт на стойку), что позволяет удовлетворять требования различных сценариев к удельной мощности. Существует тенденция к увеличению удельной мощности и степени интеграции. Таким образом, режим горизонтального воздушного потока соответствует будущим потребностям.

  4. Вопрос: Какие типы кондиционеров можно использовать в модульных центрах обработки данных? Как обеспечить безопасность кондиционеров с водяным охлаждением?

    Ответ: Поддерживаются кондиционеры как с воздушным, так и с водяным (внутрирядные) охлаждением. Меры обеспечения безопасности для кондиционеров с водяным охлаждением: 1 - Если используется фальшпол, трубы подачи охлажденной воды можно проложить под полом; в противном случае такие трубы следует прокладывать с верхней части коридора и обеспечить их физическую изоляцию. 2 - Для труб необходимо обеспечить теплоизоляцию. 3 - Сбор и отвод конденсата кондиционеры выполняют автоматически.

  5. Вопрос: Каковы отличия и преимущества внутрирядного охлаждения по сравнению с традиционным режимом нисходящего воздушного потока?

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

  6. Вопрос: Скольно времени занимает развертывание модульного цод?

    Ответ: Изготовление модульного ЦОД занимает 8-12 недель, а установка и ввод в эксплуатацию 1-2 недели.

  7. Вопрос: Какое количество шкафов поддерживает модульный цод?

    Ответ: В соответствии с требованиями противопожарной защиты при строительстве, в коридоре длиной более 15 метров необходимо установить дверь. Поэтому максимальная длина модуля Цод не может превышать 15 метров. Таким образом, в коридоре можно разместить не более 24 шкафов шириной 600 мм (до 48 шкафов в двухрядной конфигурации).

  8. Вопрос: Какие внешние установки необходимы для использования модульного ЦОД? Могут ли специалисты Huawei помочь с их подбором?

    Ответ: Основные внешние установки - установки для подвода электросети к зданию, в котором размещен Цод, дизель-генератор, электроподстанция, ИБП, холодильная установка, противопожарные установки и системы обеспечения безопасности. Компания Huawei может поставить модульный ЦОД вместе со всеми необходимыми внешними установками.

  9. Вопрос: Я использую решение для ЦОД от Huawei. Должен ли я использовать систему управления, указанную в рекомендуемой конфигурации?

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

  10. Вопрос: Можно ли централизованно управлять ЦОД компании Huawei, развернутыми по всему миру, с помощью системы управления NetEco?

    Ответ: Да. Система управления Huawei NetEco на основе сетевой архитектуры поддерживает централизованный мониторинг центров обработки данных, развернутых по всему миру, и управление ими.

  11. Вопрос: Как получать данные о состоянии ЦОД и устранять неисправности?

    Ответ: Система управления NetEco предоставляет веб-интерфейс, поддерживающий одновременный вход нескольких пользователей. Для входа в систему и управления ЦОД можно использовать браузер Internet Explorer 11.

  12. Вопрос: Можно ли использовать систему управления NetEco для обслуживания ЦОД, в которых нет оборудования Huawei?

    Ответ: Да. Система управления центром обработки данных Huawei NetEco совместима с оборудованием различных поставщиков.


Спасибо!

Пожалуйста, ставьте лайк, если этот пост Вам понравился) Для более подробной информации, об оборудовании Huawei, приглашаем Вас на форум: Huawei ICT Club, ждём Вас в гости)

А если, Вы ещё, захотите оставить комментарий, то: "Как Вы думаете, для каких предприятий подойдёт FusionModule2000?"

Подробнее..

Почему вы должны попробовать Rust

25.03.2021 00:06:26 | Автор: admin

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

  • Какубедиться, что в моем приложении нет проблем и уязвимостей, связанных с неправильной работой с памятью?

  • Как быть уверенным в том, что любой доступ к общим объектам правильно защищен?

  • Как свести к минимуму любую работу, не связанную напрямую с написанием кода?

Цель данной статьи не рассказать о до селе не виданных возможностях Rust (сразу говорю, что тут ничего нового растоманы не найдут), на Хабре вы итак найдете множество интересных статей о внутренностях языка и интересных случаев использования. Моя цель рассказать о том, что он предлагает в качестве решения обозначенных выше проблем, как это будет выглядеть со стороны программиста, и почему это важно.

История одного языка

Все началось в 2006 году как персональный проект сотрудника Mozilla - Грейдона Хоара (Graydon Hoare). В 2009 году Грейдон представил свой новый язык программирования коллегам из Mozilla Research, предложив его как перспективную замену C++, поскольку он разрабатывался с приоритетом на безопасность и эффективность создания параллельных приложений (современные браузеры, такие как Mozilla Firefox, являютсякрупными и очень сложными проектами с не тривиальными алгоритмами параллельной обработки данных). Вскоре, на ежегодном саммите Mozilla 2010, Грейдон представил язык Rust и анонсировал проект Servo (браузерный движокнового поколения).Вначалесообщество разработчиков отнеслось к этой инициативе довольно скептически и некоторые обвиняли Mozilla в синдроме NIH (Not Invented Here).Они назвали его ещё одним бесполезным языком программирования, который умрёт ещё до того, как он станет достаточно популярным, чтобы иметь хоть какое-то значение (вспоминая язык D и его судьбу). Однакодальнейшее развитие событий показало, что это не очередной академический проект для тестирования идей, а полноценный конкурент для таких мастодонтов как C/C++.

В 2011 г. Rust используя LLVM успешно скомпилировал сам себя, а в 2015 году была выпущена первая стабильная версия 1.0. И, наконец, в 2017 году Mozilla выпустила свой первый полноценный проект, написанный на Rust, который был успешно интегрирован в Firefox -Quantum CSS-полностью мультипоточный CSS-движок, в основу которого взят результат разработки прототипа Servo. На этом этапе Mozilla доказала, что язык Rust уже зрелый и обладает достаточной функциональностью для создания больших и сложных production-ready приложений.

Прошлоуже больше пяти летс момента первого стабильного релиза. От изначальной версии Rust, показанной на презентации в 2010 году, уже мало что осталось. Полистав ту презентацию, вы можете легко заметить, что тогда язык был совершенно иным: другой синтаксис, зеленые потоки вместо системных и т.д. Rust сильно изменился во всех аспектах и стал языком программирования общего назначения, который подходит для любых задач. Этот результат был достигнут в основном благодаря открытому и дружелюбному сообществу, создавшему инфраструктуру, статьи, книги, учебные пособия и полезные инструменты. В настоящее время Rust можно применять в любой сфере, независимо от того, является липроектdesktop-приложением, ядром ОС или веб-приложением для облачного сервиса.

В последние годы мнение разработчиков о языке изменилось в положительную сторону. Невероятно, ноRust являетсясамым любимым языком пользователей Stack Overflowужепять лет подряд! Более того, стали появляться проекты целиком написанные на Rust, а его присутствие в популярных open-source и коммерческих проектах растет с каждым годом. Например,ripgrep- это проект с открытым исходным кодом для рекурсивного поиска в каталогах с использованием регулярных выражений. Он в 10 раз быстрее, чем GNU grep, и в 4 раза быстрее, чем Silver Searcher. В результате ripgrep был интегрирован в MS Visual Studio Code в качестве средства поиска регулярок по умолчанию. Также, в копилку доказательства хорошей производительности получаемых программ можно добавить результаты The Computer Language Benchmarks Game проекта Debian, где Rust в одной лиге с C/C++.

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

  • Apple технологический гигант, который ставит на первое место производительность и безопасность, решилперевестинизкоуровневую часть Apple Cloud Traffic на Rust, а новый функционал, по возможности, в первую очередь писать на нем.

  • Amazon выбрал Rust для реализацииFirecracker проекта безопасных и быстрых microVM для бессерверных вычислений.

  • Microsoft такжеактивноисследуетвозможность перехода на Rust для низкоуровневых и чувствительных к производительностикомпонентов. Они уже попробовали в качестве эксперимента переписать некоторые низкоуровневые системные компоненты Windows.

  • Google разрешает использоватьRust(кромеkernel части) для реализации своей новой операционной системы Fuchsia.

  • Mozilla собирается переписать внутренние компоненты на Rust, чтобы улучшить многопоточную обработку, как часть инициативы сделать Firefox более безопасным и быстрым -Firefox Quantum.

  • Huaweiтакжеисследует возможности использовать язык Rust в своих будущих проектах.

Список можно продолжить и далее: Dropbox, Facebook, Bitbucket, Discord и т.д. все эти известные компании начали использовать Rust в частях своих серверных платформ. Обратите внимание, что не только крупные международные компании используют Rustв немзаинтересованы и стартапы. Например, новаякомпания,основанная Брайаном Кантриллом (изначальный разработчик dtrace), планирует использовать Rust в качестве основного языка для реализации своего проекта. Немаловажно для всех этих компаний то, что разработчики Rustпринимают решениясвязанные с дизайном языка руководствуясьобратной совместимостью и стабильностью кодовой базы.

Но,несмотряна все успехи Rust, колыбель языкаMozilla чувствовала себя не очень хорошо и, в связи с финансовыми трудностями, в 2020 году приступила к отделению проекта в независимую организациюRust Foundation, серьезно уменьшив свое влияние на развитие языка и отпустив его в свободное плавание. Изначальный список членов организации внушает оптимизм за будущее языка:

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

Но что делает Rust таким желанным для многих разработчиков? Давайте немного углубимся в детали и изучим некоторые важные и полезные аспекты языка.

Приоритет безопасности

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

  • Использование памяти после освобождения (Use After Free)

  • Разыменование нулевого указателя (Null Dereference)

  • Использование неинициализированной памяти (Using uninitialized variables)

  • Двойное освобождение (Double Free)

  • Переполнение буфера (Buffer Overflow)

MSRC SecurityResearch 2019 года (Microsoft)показал, что 70% Common Vulnerabilities and Exposures (CVEs) в их продуктах были связаны с проблемами безопасности памяти в С и С++ (думаю весьма известный график):

Кто-то может сказать, что данный отчет лишь показывает проблемы Microsoft, так как их продукты являются проприетарным программным обеспечением, тогда как продукт с открытым исходным кодом благодаря контролю тысячи глаз будет иметь значительно меньше проблем. На самом деле не все так радужно. Взгляните на CVEs за 2019 год (последний из доступных на данном ресурсе), найденные в ядре Linux, разрабатываемом и проверяемом ведущими отраслевыми экспертами:

Как мы видим, open-source сообщество допустили достаточно большое количество уязвимостей, связанных с безопасностью работы с памятью (примерно 65%). Я уверен, вы знаете, что такого рода проблемы тяжело найти и зачастую они проходят мимо глаз. Однако в Rust эти проблемы не могут возникнуть, как говорится, by design (если конечно не использовать unsafe, но это тема для отдельного разговора). И все это достигается на этапе компиляции!

Для этих целей Rust имеет такие элементы языка, как Ownership и Borrowing. Система Ownership является основой для всего языка. Rust гарантирует, что у любого заданного объекта на все время его жизни существует ровно один владелец:

fn main() {    let a = String::from("Hello"); // Аллоцируем объект на куче    let b = a; // меняем владение объектом с a на b    // let c = a; // Ошибка компиляции    println!("{}", b); // b теперь владелец строки}

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

fn do_smth(a: String) {    // а владеет объектом    println!("{}", a);}  fn main() {    let a = String::from("Hello");    // Переносим объект в область видимости функции    do_smth(a);    // let b = a; // Ошибка компиляции}

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

  • Объясняет, почему проблема произошла;

  • Выделяет все элементы, которые вызвали проблему;

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

Для примера, посмотрите на это подробное сообщение об ошибке:

error[E0382]: use of moved value: `a`--> src/main.rs:4:13|2 | let a = String::from("Hello");| - move occurs because `a` has type `std::string::String`, which does not implement the `Copy` trait3 | let b = a;| - value moved here4 | let c = a;| ^ value used here after moveerror: aborting due to previous errorFor more information about this error, try `rustc --explain E0382`.

Хорошо, а когда освободится выделенная память? В Rust нету GC, поэтому волшебный runtime не придет на помощь. В таких языках как C/C++ разработчик обязан самостоятельно определять когда пора возвратить память ОС. Данная задача не из тривиальных и требует достаточно высокую квалификацию в сложных проектах. Rust решает эту проблему по-своему: он позволяет хранить данные как в стеке так и в куче, а память автоматически возвращается, как только переменная, которой она принадлежит, уходит за пределы области видимости:

{    let s = String::from("hello"); // создаем строку s    // различные операции над s} // С этого момент s вышла за предел области видимости и может быть удалена

В Rust можно также заимствовать (borrow) объект, используя ссылку, чтобы избежать излишние изменения владельца и копирования. Однако для этого существуют некоторые строгие ограничения, процитирую:

  • В любой момент времени вы можете иметь либо одну изменяемую ссылку, либо любое количество неизменяемых ссылок.

  • Ссылки всегда должны бытьактуальными.

Для этой цели Rust отслеживает время жизни (lifetime) для каждой ссылки. Чаще всего времена жизни объектов генерируются автоматически, но в некоторых случаях мы должны аннотировать их вручную, используя специальный синтаксис языка. Это позволяет эффективно управлять памятью без оверхедаотиспользованияGC. Пример заимствования:

fn do_smth(a: &String) {    println!("{}", a); // Немутабельная операция}  fn main() {    let a = String::from("Hello");    do_smth(&a); // одалживаем объект у a    println!("{}", a); // a все еще владелец объекта}

А вот так мы можем нарушить озвученные выше ограничения. Но тут приходит borrow checker, и выписывает нам ошибку:

fn main() {    let mut s = String::from("hello");      let r1 = &mut s;       let r2 = &mut s; // Здесь ошибка компиляции      println!("{}, {}", r1, r2);}

В данном примере мы нарушаем одно из правил языка в один момент времени разрешена только одна изменяемая ссылка. В этом случае мы получаем следующее сообщение:

error[E0499]: cannot borrow `s` as mutable more than once at a time--> wiki/src/main.rs:5:14|4 | let r1 = &mut s;| ------ first mutable borrow occurs here5 | let r2 = &mut s;| ^^^^^^ second mutable borrow occurs here6 |7 | println!("{}, {}", r1, r2);| -- first borrow later used here

Эти ограничения позволяют производить мутации, но в строго контролируемом стиле. Это то, с чем новые разработчики имеют наибольшее количество проблем, потому что такие языки как C/C++ позволяют мутировать объекты без каких-либо ограничений. Все эти правила были введены, чтобы предотвратить одну очень неприятную проблему при разработке многопоточных программ - data race. Но об этом поговорим чуть позже.

Rust - это язык со статической типизацией который дополнительно имеет следующие особенности:

  • Разделяет переменные на изменяемые и неизменяемые.

  • Каждая переменная является неизменяемой по умолчанию и обязательно должна быть проинициализирована актуальным для данного типа значением (например определенным значением enum).

  • Не позволяет выполнять неявное приведение типов даже для примитивов.

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

  • В debug-режиме компилируется с проверкой integer overflow.

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

И под конец главы добавлю, что сами разработчики Rust не только о себе думают, но и активно участвуют в улучшении безопасности проекта LLVM. Например в этом году они в тесной коллаборации с LLVM добавили поддержку защиты отStack Clash в LLVM/Clang.

Многопоточность без гонок

Последние поколения процессоров склонны наращивать количество ядер. Еще несколько лет назад максимальное количество ядер в корпоративных процессорах составляло 28, но не так давно получили распространение процессорыAMD EpycиKunpeng, которые подняли планку до 64 ядер! Это огромная мощность, которую очень трудно использовать эффективно. Максимальное использование ресурсов таких CPUs приводит к тому, что алгоритмы и приложения становятся все более сложными. Исторически, программирование в этом контексте всегда было трудоемким и подвержено ошибкам, поэтому разработчикам нужны инструменты, которые помогут им реализовать свои идеи без головной боли.

Fearless Concurrency - этим термином разработчики Rust называют способность своего языка помогать создавать многопоточные алгоритмы безопасно и эффективно. Давайте начнем с простого примера, как создать поток:

use std::thread;  fn main() {    // Создаем поток и запускаем на нем анонимную функцию    let handler = thread::spawn(|| {        // Тело функции        println!("I'm thread");    });    // Родительский процесс выполняется здесь    println!("I'm main thread");    // Ожидаем пока завершится поток    handler.join().unwrap();}

В Rust потоки изолированы друг от друга с помощью системы владения объектом. Записи могут происходить только в том случае, если поток является владельцем данных или имеет изменяемую ссылку. Таким образом, в любой момент времени существует только один поток, который имеет мутабельный доступ к данным. Чтобы ограничить передачу данных между потоками, Rust поддерживает два типажа (traits): Sync и Send. Оба этих типажа реализуются автоматически, когда компилятор определяет, что тип данных соответствуют требованиям. И тут мы уже увидели одну очень приятную особенность Rust: язык различает безопасныеи небезопасные типы для передачи данных между потоками .

Send это типы, которые могут быть безопасно перемещены из одного потока в другой. Например, Arc (Atomic Reference Counter) и String - это типы Send. Один из способов передачи данных между потоками - каналы в стиле Go. Это потокобезопасная операция, и компилятор проверяет, реализует ли объект Send. Вот пример переноса объекта:

fn main() {    // Создаем канал на передачи данных    let (sender, receiver) = channel();    // Создаем новый поток и передаем туда sender    thread::spawn(move || {        // Создаем объект        let hello = String::from("Hello");        // Отправляем объект через канал        sender.send(hello).unwrap();        // Начиная с этого места, владение объектом передано через канал        // let tmp = hello; // Ошбика компиляции    });    // Получаем данные из канала    let data = receiver.recv().unwrap();    // Печатаем строку "Hello"    println!("{}", data);}

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

`std::rc::Rc<i32>` cannot be sent between threads safely

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

fn main() {    // Создаем объект    let tmp = 42;    // Отправляем владение объектом в Arc    let data = Arc::new(tmp);    // Создаем новую ссылку на Arc    let data_ref = data.clone();    // Создаем поток и запускаем функцию в нем    let thread = thread::spawn(move || {        // Разыменовываем объект из Arc и печатаем его        println!("{}", *data_ref);    });    // Печатаем объект    println!("{}", *data);    // Синхронизируем потоки    thread.join().unwrap();}

В случаях, когда требуется потокобезопасная мутабельность, Rust предоставляет атомарные типы данных и исключающую блокировку через Mutex. Основное преимущество подхода Rust - это то, что нет простого способа получить доступ к объекту без блокировки мьютекса или без использования атомарного типа данных. Например, когда вы создаете мьютекс, вы также передаете в него права на собственность объекта. Метод Lock создает некий smart-pointer MutexGuard на объект внутри мьютекса, через который вы можете получить доступ к объекту в этом потоке, пока у MutexGuard не закончится время жизни:

// Аллоцируем на кучеlet s = String::from("Hello, ");// Переносим владение объектом в Mutexlet mutex = Mutex::new(s);// Ошибка: s больше не владелец// s.push_str("World!");// Блокируем мьютекс и создаем MutexGuardlet mut d = mutex.lock().unwrap();d.push_str("World!");// Вывод: Hello, Worldprintln!("{}", d);// MutexGuard освобождается при выходе из области видимости

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

Подводя итог, в Rust вам не нужно беспокоится, что вы где-то забыли защитить данные или обратились неправильно к общим объектам, так как компилятор скажет и укажет вам на все небезопасные операции. Это стало возможным благодаря системеOwnershipи грамотной архитектуре ограничения передачи объектов между потоками.

One Tool to Rule Them All

Что мы узнали: Rust - это уникальный язык, который может сделать жизнь разработчиков программного обеспечения проще (или сложнее), а их программы безопаснее (хотя и требует более долгого времени вхождения до начала эффективного применения). Но есть еще один чрезвычайно важный аспект всех языков программирования, который требует отдельного внимания - инструментарий. Давайте вспомним, какой инструментарий используется в C/C++? На самом деле, на это трудно ответить, потому что каждый проект выбирает свой пакетный менеджер, билд-систему, формат документации и систему тестирования. Это вызывает трудности в обслуживании продуктов у мейнтейнеров.

Разработчики Rust знают об этой ситуации и понимают, что они должны обязательно предложить нечто лучшее, чтобы обеспечить все необходимые функции и уменьшить трату времени на задачи, которые не связаны непосредственно с разработкой продукта. Результат их работы они назвали Cargo. Cargo поставляется вместе с Rust и используется почти в каждом проекте (хотя без него вы все еще можете использовать компилятор rustc, как любой другой компилятор C/C++). Этот менеджер берет все процедуры обслуживания на себя и помогает вам создавать проекты, управлять зависимостями, собирать приложение, создавать документацию и тестировать проект.

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

cargo new test-proc

Cargo создаст каталог со следующими файлами:

. .git .gitignore Cargo.lock Cargo.toml src main.rs

Как мы видим, Cargo создал git репозиторий, каталог с исходниками, TOML-файл, содержащий конфигурацию проекта, и некоторые служебные файлы. Самый интересный файлTOML. Здесь хранятся все настройки проекта, включая имя проекта, версию, список зависимостей, флаги для компилятора и другие классные вещи. Его легко читать и редактировать, а так же централизовано управлять релизами. Пример содержания файла после инициализации:

[package]name = "test-proc" # Имя проектаversion = "0.1.0"  # Версия в нотации Semverauthors = ["hackerman"] # Список авторовedition = "2018"   # Версия Rust

Далее, давайте напишем простенькую программу:

fn add(a: u32, b: u32) -> u32 {    a + b} fn main() {    println!("Data = {}", add(1, 2));}

И соберём ее:

cargo buildCompiling test-proc v0.1.0 (/home/hackerman/projects/test-proc)Finished dev [unoptimized + debuginfo] target(s) in 0.38s

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

Тестирование

Rust и Cargo уже имеют все, что нужно для написания тестов без каких-либо внешних инструментов. Вкратце, тест в Rust это функция, аннотированная атрибутом #[test]. Давайте для примера создадим тестовую функцию, добавив несколько строк кода в main.rs:

// Атрибут для тестовой функции#[test]// Имя функции это имя тестаfn it_works() {    // Тело теста    assert_eq!(add(2, 2), 4);}

Готово! Теперь запускаем:

cargo testCompiling test-proc v0.1.0 (/home/hackerman/projects/test-proc)Finished test [unoptimized + debuginfo] target(s) in 0.53sRunning target/debug/deps/test_proc-7c55eae116dd19b3  running 1 testtest it_works ... ok  test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

С помощью атрибута #[cfg(test)] можно создать отдельный подмодуль со всеми нужными вспомогательными функциями для тестов который будут использоваться только во время тестирования.

Документация

Cargo предоставляет продвинутые инструменты для создания интерактивной документации с богатыми возможностями форматирования. Rust имеет особые комментарии (/// - тройная косая черта) для документации, которые известны как комментарии к документации с markdown нотацией, которые будут использоваться для генерации HTML-документов. В этом примере мы добавили некоторую информацию о функции add() и собрали соответствующую документацию:

/// Sums two values.////// # Examples////// ```/// let arg1 = 6;/// let arg2 = 1;/// let answer = testproc::add(arg1, arg2);////// assert_eq!(add(6, 1), answer);/// ```fn add(a: u32, b: u32) -> u32 {    a + b}

И собираем документацию одной простой командой:

cargo doc Documenting test-proc v0.1.0 (/home/hackerman/projects/test-proc)    Finished dev [unoptimized + debuginfo] target(s) in 0.82s

В результате мы получаем HTML-страницы с гиперссылками, подсветкой синтаксиса и поисковой системой:

Внешние зависимости

В Rust единица компиляции называется "crate" и может быть либо библиотекой, либо исполняемой программой.

Например, нам нужно проанализировать некоторые JSON-файлы, но мы не хотим делать это с нуля. В этом случае мы идем на постоянно растущийcrates.ioрепозиторий и ищем подходящий crate для нас. Отлично! Мы нашлиSerde-библиотека для сериализации и десериализации структур данных. Давайте попробуем импортировать ее с поддержкой json в наш проект с помощью TOML-файла:

[dependencies]serde_json = "1.0.53"

И вызываем команду сборки проекта:

> cargo build   Compiling serde v1.0.110   Compiling ryu v1.0.4   Compiling itoa v0.4.5   Compiling serde_json v1.0.53   Compiling test-proc v0.1.0 (/home/hackerman/projects/test-proc)    Finished dev [unoptimized + debuginfo] target(s) in 7.41s

Cargo проверил все зависимости, загрузил их и собрал. Теперь вы можете пользоваться библиотекой напрямую! Раздел [dependencies] - это место, где вы сообщаете Cargo требуемые крейты и их версии. В этом примере мы задаем семантический спецификатор версии 1.0.53. Cargo понимает Semver нотацию, и это фактически означает "любую версию, совместимый с версией 1.0.53". Для обновления крейтов до новой версии достаточно воспользоваться командой cargo update. Кроме того, любой может поделиться своими собственным крейтом наcrates.io, и вы можете это сделать лишь парой команд! С помощью крейтов можно установить дополнительные инструменты в рабочее пространство (например,ripgrep) для различных целей вашего проекта. Вдобавок, вы можете установить свой собственный серверcrate.ioв сети вашей организации и быть независимыми от внешних поставщиков. Короче говоря, замечательный инструмент, который делает разработку на Rust такой гладкой и беспроблемной.

Среды разработки

Последнее, но не менее важное, о чем я хочу вам рассказать - этоrust-analyzer (будущий преемник RLS), предоставляющий поддержку Rust в различных средах разработки. В данный момент, с использованием rust-analyzer или своей собственной реализации анализатора, уже поддерживаются следующие IDE и редакторы: vim, emacs, MS Visual Studio Code, IntelliJ Idea и т.д. Они имеют все необходимые функции для эффективного написания кода, такие как: дополнение кода, вывод документации и подсветка ошибок. Количество поддерживаемых интегрированных сред достаточно велико, чтобы вы могли себя чувствовать, как дома.

Эпилог

Если вы уже заинтересованы в этом языке, существует очень подробноеучебное пособие. И, если вы хотите углубиться в особенности языка, статьи о темных и сложных сторонах Rust - Rustonomicon. Как вы видите Rust весьма интересный язык с дружелюбными инструментами и с приоритетом безопасности, но со своими нюансами, поэтому, чтобы оценить его достоинства и недостатки я бы предложил вам просто попробовать Rust в своем личном проекте, и, возможно, вы станете еще одним из поклонников этого языка.

Подробнее..

OpenGauss новая СУБД от Huawei для нагруженных enterprise-проектов прибавила в функциональности

05.11.2020 12:07:06 | Автор: admin
openGauss система управления реляционными базами данных с открытым исходным кодом, созданная инженерами Huawei. Новая версия 1.0.1, которая стала доступна в октябре 2020 года, значительно расширяет возможности СУБД и делает ее перспективным выбором для целого ряда IT-задач, прежде всего в крупных корпоративных проектах.



Ядро openGauss построено на основе объектно-реляционной системы управления базами данных PostgreSQL. Его функциональность была усовершенствована в расчете на решение задач уровня предприятия.

Концептуально openGauss представляет собой многоцелевую БД: строчное хранение в ней позволяет поддерживать сервисы с интенсивным обновлением данных, колоночное хранение ускоряет выполнение аналитических задач, а in-memory engine повышает пропускную способность при решении задач, чувствительных ко времени отклика. Развертывается решение как в контейнерах, так и на физических серверах с процессорами x86-64 или Kunpeng разработки Huawei.

Официальный запуск первой версии openGauss состоялся 1 июля 2020 года. А уже в середине осени был произведен релиз 1.0.1, в который включено более двадцати доработок.

В текущем исполнении openGauss обладает широким набором примечательных возможностей. Прежде всего это поддержка многоядерной архитектуры с управляемым параллелизмом. Надо отметить также интеллектуальную настройку параметров, диагностику медленных SQL, многомерный самоконтроль производительности и онлайн-прогнозирование выполнения SQL, значительно упрощающее O&M.

Достойны упоминания показатели быстродействия openGauss. В частности, система осуществляет до 1,5 млн tpmC на двух 64-ядерных процессорах Kunpeng, а переключение при сбое узла занимает у нее менее 10 с.

Коротко обозначим функции openGauss, определяющие ее преимущества.

  • Высокая готовность. Функции журналирования WALs (write-ahead logs) обеспечивают возможности горячего резервного копирования и восстановления. Утилита gs_basebackup позволяет сделать полную резервную копию БД, в том числе сжатую. В мире PostgreSQL вопрос инкрементального резервного копирования остается открытым, поэтому компаниям приходится самостоятельно решать эту задачу в каждом конкретном случае. Новая версия 1.0.1 поддерживает функциональность инкрементального резервного копирования при включении параметра GUC enable_cbm_tracking (и далее база данных будет отслеживать изменение страниц данных).

    Катастрофоустойчивость openGauss решается за счет организации Standby на удаленной площадке, причем синхронизация данных возможна в синхронном и асинхронном режиме. Текущий релиз СУБД поддерживает до четырех реплик на физическом уровне.
  • Высокая производительность. В openGauss таблицу, включая ее индексы, можно целиком поместить в память. Это возможно благодаря Memory-Optimized Tables (MOT) высокопроизводительному OLTP-движку для обработки данных в памяти. MOT поддерживает работу с таблицами в строчном формате, при этом доступна вся функциональность openGauss, включая транзакции и отказоустойчивость.

    Особенности реализации MOT и результаты его тестирования на производительность TPC-C приведены в отдельном документе.



    Необходимо также упомянуть возможность создания Materialized View срез данных с предварительно рассчитанными показателями (агрегатами) хранится на уровне таблиц БД, существенно ускоряя выполнение аналитических задач.
  • Управляемость серьезно улучшена за счет автоматических отчетов производительности (WDR). Чтобы задействовать эту функцию, достаточно установить параметр enable_wdr_snapshot=on и указать количество дней хранения для параметра wdr_snapshot_retention_days. Далее ядро базы данных будет автоматически сохранять снимки с метриками производительности, в том числе и медленные SQL. WDR позволяет формировать отчеты о производительности между указанными периодами времени (snapshots) в формате HTML или PDF.
  • Гибкость. Интеграция с внешними источниками данных реализована через Foreign Data Wrappers (FDW). В актуальном релизе поддерживается интеграция с Oracle, MySQL, openGauss.

    Отдельного внимания заслуживает Global Temporary Tables (GTT). Сам объект создается в БД один раз, далее GTT используется многократно для хранения промежуточных результатов транзакций или сессии. Данные во временной таблице видны только для текущей сессии независимо от фиксации транзакции. Данные теряются после отключения-завершения сессии. Это незаменимая функциональность для ETL или систем отчетности.


На openGauss распространяется действие лицензии Mulan PSL v2, что дает разработчикам возможность свободно изменять код СУБД, использовать его и ссылаться на него. Исходный программный код проекта полностью доступен в его репозитории.

Напомним, Huawei платиновый партнер разработчиков ПО с открытым кодом Linux, Apache и Openstack, а также стратегический член Eclipse Foundation. Мы активно участвуем в проектах по созданию Open Source решений, в том числе:

  • Linux-дистрибутива openEuler;
  • фреймворка для задач deep learning MindSpore;
  • интеллектуальной платформы для обеспечения автономности открытых данных SODA;
  • формата хранения больших данных Apache CarbonData;
  • платформы микросервисов Apache ServiceComb;
  • фреймворка для граничных вычислений CNCF KubeEdge;
  • высокопроизводительной системы управления batch-процессами CNCF Volcano.


Будем рады ответить на ваши вопросы в комментариях!
Подробнее..

10 вопросов к поддержке HMS по работе с гибридными приложениями, AppGallery и эмулированию телефонов Huawei

30.10.2020 14:07:40 | Автор: admin


Привет, Хабр! За год количество сервисов в экосистеме Huawei Mobile Services (HMS). выросло с 9 до 31, и у разработчиков стало возникать всё больше вопросов по поддержке гибридных приложений, взаимодействию с AppGallery, использованию отдельных служб и китов. Основные площадки нашего общения с мировым сообществом это Stackoverflow, Reddit, XDA-Developers и раздел поддержки на портале разработчиков Huawei. Специально для тех, кто интересуется нашей платформой, мы собрали с этих площадок 10 вопросов по работе с Huawei Mobile Services.

1. Будет ли работать React-native и Firebase SDK на телефонах Huawei без Google Service и без изменений кода?


Да, приложение на React-native будет работать без изменений, достаточно отправить APK для загрузки в галерею приложений Huawei. С Firebase SDK будет немного сложнее. Работоспособность приложения зависит от служб, которые вы пытаетесь включить в своё приложение. Так, вход в Google с помощью модуля аутентификации Firebase не будет поддерживаться на телефонах, где нет Google Mobile Services, например на Huawei Mate 30 Pro.

Если вы хотите использовать один APK как для GMS, так и для HMS, вам необходимо сначала проверять доступность службы.
Для GMS:

val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)

Для HMS:

val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)

При попытке использовать Google Login, или Huawei Login, или любые другие сервисы:
if gmsAvailable {// execute GMS Code} else if hmsAvailable {// execute HMS Code}

2. Каковы реальные скрытые расходы на поддержку дополнительной экосистемы?


Расходы на поддержку приложения в HMS зависят от того, как вы проектируете систему и какие сервисы требуются в вашем приложении. В среднем время интеграции может варьироваться от нескольких часов до нескольких недель в зависимости от приложения и количества сервисов Google и Firebase в исходном приложении.

Если в вашем приложении нет интегрированных GMS, то можно загружать его без каких-либо доработок сервисы Facebook, Yandex и другие будут работать.

3. Какие гибридные приложения поддерживает HMS?


С версии HMS Core 5.0.0 увеличено количество китов, поддерживаемых сторонними платформами:

Apache Cordova:


React Native:


Xamarin:


Flutter:



4. Можно ли считать данные с датчика глубины (TOF) на телефонах Huawei?


Да, это возможно при использовании AR Engine SDK. Huawei AR Engine обеспечивает вывод сетки сцены в реальном времени, и результат включает положения мобильного телефона в пространстве. Трёхмерная сетка текущего вида камеры поддерживает только модели Honor V20 и P30Pro, которые могут получать информацию о глубине, а поддерживаемая сцена сканирования является статической.

TOF поддерживается на следующих устройствах:
  • Серия P: P30 / P30Pro / P40 / P40Pro / P40Pro +
  • Серия Mate: Mate20 / Mate20Pro / Mate20RS / Mate 20X / Mate20X (5G) / Mate30 / Mate30Pro / Mate30RS / Mate30 (5G) / Mate30Pro (5G) / Mate X / Mate XS
  • Серия Nova: Nova6 / Nova6-5G / Nova7 / Nova7Pro
  • Серия Honor: Honor V20 / Honor 20 / Honor 20Pro / Honor V30 / Honor V30Pro / Honor 30S / Honor 30 Pro / Honor 30 Pro +
  • Серия планшетов: Tablet M6

Для получения данных от TOF нужно использовать класс ARSceneMesh с помощью следующих методов:
public ShortBuffer getSceneDepth()// Get the depth image of current frame(optimized).public int getSceneDepthHeight()// Get the height of the depth image.public int getSceneDepthWidth()// Get the width of the depth image.

Есть и другие варианты, как считать глубину. Можно получить объект класса ARFrame и использовать его методы hitTest, acquireDepthImage. Также возвращает обработанную карту глубины метод GetSceneDepth из класса ARSceneMesh. Она точнее, но работает только до 2,5 метра.

5. Как открыть AppGallery напрямую из приложения?


AppGallery из приложения открывается так же, как и Google Play Store. Надо учитывать, что AppGallery использует собственную схему appmarket://:

  • Схема: appmarket://
  • Пакет: com.huawei.appmarket

Вот фрагмент из галереи приложений AppGallery

private void startHuaweiAppGallery() {Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("appmarket://details?id=" + getPackageName()));List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(intent, 0);boolean agFound = false;for (ResolveInfo app : otherApps) {if (app.activityInfo.applicationInfo.packageName.equals("com.huawei.appmarket")) {ComponentName psComponent = new ComponentName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);intent.setComponent(psComponent);startActivity(intent);agFound = true;break;}}//Optional, Or copy the Google Play Store URL here (See below)if (!agFound) {//Your Huawei app ID can be found in the Huawei developer consolefinal string HUAWEI_APP_ID = "100864605";//ex. https://appgallery.cloud.huawei.com/marketshare/app/C100864605intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://appgallery.cloud.huawei.com/marketshare/app/C" + HUAWEI_APP_ID));startActivity(intent);}}

6. Как создать Huawei Android Emulator?


Huawei предоставляет разработчикам Huawei функцию облачной отладки в качестве бесплатной услуги. Если вы используете SDK Huawei, у вас должна быть учётная запись разработчика Huawei. Просто войдите в консоль разработчика Huawei и следуйте инструкциям: https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-clouddebug-realtimedebug.

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

7. Как получить доступ к payload push-уведомлений HMS?


Чтобы получить доступ к payload, вам необходимо реализовать класс HmsMessageService и переопределить метод onMessageReceived. Вы можете получить доступ к payload из объекта RemoteMessage. Чтобы получить доступ к токену, переопределите метод onNewToken.

Код Java:

import android.util.Log;import com.huawei.hms.push.HmsMessageService;import com.huawei.hms.push.RemoteMessage;public class HService extends HmsMessageService {@Overridepublic void onMessageReceived(RemoteMessage remoteMessage) {super.onMessageReceived(remoteMessage);if (remoteMessage != null) {if (!remoteMessage.getData().isEmpty()) {Log.d("HMS", "Payload" + remoteMessage.getData());}if (remoteMessage.getNotification() != null) {Log.d("HMS", "Message Notification Body: " + remoteMessage.getNotification().getBody());}}}}

Код Kotlin:

override fun onMessageReceived(remoteMessage: RemoteMessage?) {super.onMessageReceived(remoteMessage)if (remoteMessage!!.data.isNotEmpty()) {Log.i(TAG, "Message data payload: " + remoteMessage.data)}if (remoteMessage.notification != null) {Log.i(TAG, "Message Notification Body: " + remoteMessage.notification.body)}}

Убедитесь, что вы зарегистрировали свою службу:.
<serviceandroid:name=".service.HService"android:enabled="true"android:exported="true"android:permission="${applicationId}.permission.PROCESS_PUSH_MSG"android:process=":HmsMessageService"><intent-filter><action android:name="com.huawei.push.action.MESSAGING_EVENT" /></intent-filter></service>

8. Какие инструменты использовать при разработке приложения Android для мобильного телефона Huawei?


Для разработки приложений можно использовать как Android Studio, так и другие IDE, такие как Eclipse, Intelliji IDEA. Если у вас уже есть приложение, использующее GMS, используйте HMS Toolkit для преобразования кода, работающего с GMS, для работы с HMS. Необходимо учитывать, что HMS Toolkit поддерживает конвертацию не всех служб, и перед его использованием лучше уточнить, работу каких служб он может перенести.

9. Как инициализировать службы HMS без agconnect-services.json?


Пока HMS не предоставляет единого решения для инициализации на основе кода. Инициализация без json-файла возможна при работе со следующими службами:

  • Push Kit:

<meta-dataandroid:name="com.huawei.hms.client.appid"<!-- Replace value xxx with the actual appid.-->android:value="appid=xxx"></meta-data>

  • Map Kit:

MapsInitializer.setApiKey("Your API Key");

  • Site Kit

SearchService searchService = SearchServiceFactory.create(this, "API key");

  • ML Kit:

MLApplication.getInstance().setApiKey("your ApiKey");


10. Что может система управления продуктами (PMS) в службе HMS In-App Purchase?


API системы управления продуктами (PMS) позволяет создавать продукты и управлять информацией о них. Через него можно:

  • Создавать продукты: в том числе с по подписке с автоматическим продлением.
  • Запрашивать информацию о продуктах: например, можно запросить конкретный продукт на основе идентификатора приложения и идентификатора продукта или запросить все продукты, которые соответствуют указанным вами критериям.
  • Обновлять информацию о продуктах: название продукта, язык, цену и статус. Работать можно как с одним, так и с несколькими продуктами одновременно.
  • Продвигать продукты: API позволяет разделять рекламные каомпании по регионам, задавать время продвижения и устанавливать цены.

На этом пока всё, если у вас есть вопросы по работе с HMS, задавайте их в комментариях.
Подробнее..

Отладка приложений в экосистеме Huawei облачная платформа для дебаггинга, сервисы AB- и открытого тестирования

06.11.2020 16:10:59 | Автор: admin

Привет, Хабр! В мобильной экосистеме Huawei есть несколько инструментов для отладки и проверки приложений: можно запускать автоматические тесты в облаке или дистанционно на устройствах Huawei, а также работать с группами пользователей. На облачной платформе DigiX Lab разработчики могут проверять стабильность работы, производительность, уровень энергопотребления и совместимость своих приложений с устройствами нашего бренда в режиме эмулятора. Сервисы A/B- и открытых тестов помогают понять реакцию аудитории и получить обратную связь. Под катом я расскажу о возможностях этих сервисов и о том, как начать в них работать.

Из чего состоит DigiX Lab

DigiX Lab лаборатория в среде Huawei Developer. В него входят 2 сервиса: тестирования и отладки.

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

Сервис облачной отладки (дебаггинга) позволяет выявить проблемы с работой приложений на конкретных устройствах. После подтверждения личности можно 24 часа работать бесплатно с любыми реальными устройствами на одну модель предоставляется до 2 часов работы. Когда 24 часа истекут, можно подать заявку на продление работы на 4 или 8 часов. Число заявок не ограничивается.

Как начать работать с DigiX Lab?

Зарегистрироваться в сервисе DigiX Lab может как корпоративный, так и индивидуальный разработчик. Индивидуальному разработчику необходимо будет загрузить документ, удостоверяющий личность, и дождаться его проверки. Корпоративному разработчику для проверки данных понадобится предоставить лицензию на ведение коммерческой деятельности, номер DUNS (девятизначный международно признанный идентификатор компаний), адрес компании.

Корпоративные разработчики получают доступ к большему количеству разделов, например к службе платежей, Huawei Ability Gallery, AppTouch, платному продвижению и подаркам, управлению комментариями, AppAdvisor, HiAI, HMS Core Ads Kit. У индивидуальных разработчиков доступа в эти разделы не будет.

Типы облачных тестов

В DigiX Lab можно запускать 4 вида тестов: на совместимость, стабильность работы, производительность и энергопотребление.

Тестирование совместимости займёт около 60 минут. Тест предоставит данные о первой и повторной установке приложения, его удалении и возникающих при этом сбоях и ошибках, например отсутствии ответа (ANR) или неожиданном закрытии приложения.

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

Тестирование стабильности позволит отследить сбои в работе приложения, например инциденты с зависанием отсутствием ответа (ANR), сбоями платформы native crash и утечкой ресурсов. Из данных обо всех инцидентах система сформирует отчёт. Если количество сбоев будет больше 10, то тестирование прошло неуспешно. Длительность теста вы можете регулировать на своё усмотрение.

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

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

Тестирование производительности займёт около 60 минут. Тест предоставляет данные о производительности приложения, такие как загрузка процессора, использование памяти, энергопотребление, использование трафика и др., а также позволяет провести глубокий анализ с целью выявления проблем производительности приложения. Для тестирования производительности также можно выбрать одно или несколько устройств.

Тестирование энергопотребления займёт около 100 минут. Тест предоставляет данные о потребляемой мощности и демонстрирует использование ресурсов, например длительность блокировки (wakelock), использование экрана, использование Wi-Fi и аудио, а также выявляет закономерности поведения.

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

Как запустить тесты и посмотреть их результаты

После подтверждения аккаунта вам откроется доступ к облачным сервисам тестирования. В DigiX Lab доступно более 2 000 моделей устройств, и эта библиотека постоянно пополняется. Автоматическое тестирование ведётся на эмуляторах мобильных телефонов Huawei.

Чтобы провести тестирование, необходимо загрузить APK, выбрать модели устройств и версию операционной системы. Количество устройств для запуска теста неограниченно, но мы рекомендуем выбирать до 9 моделей. Иначе своей очереди придётся ждать слишком долго. Помните, что для теста стабильности можно выбрать только одно устройство.

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

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

Локализация ошибок с помощью сервиса дебаггинга

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

Этот сервис позволяет выбрать устройство, на котором будет проходить тестирование, и версию операционной системы, EMUI и длительность отладки: 30 минут, 1 час или 2 часа. Одновременно с одного Huawei ID дебаггинг можно проводить на 2 реальных устройствах. В любой момент отладки можно просмотреть подробную информацию об устройстве, на котором проводите дебаггинг.

На дебаггинг одного устройства вам даётся 2 часа. Всего каждый пользователь получает 24 часа бесплатного использования сервиса. Когда у пользователя остаётся менее 2 часов, он может подать заявку на продление на 4 или 8 часов. Количество таких заявок не ограничивается. Отчёты в журнале можно фильтровать по типу, а данные можно смотреть онлайн или экспортировать.

Проверка реакции аудитории с помощью А/B-тестов

Сервис А/B-тестов позволяет проводить тесты на 2 разных группах пользователей, которые получают разные варианты тестируемого продукта и отмечают свою реакцию. Его можно использовать для запуска нескольких тестов под разные аудитории или сравнения реакции пользователей на варианты дизайна, контента, функциональности.

Для того чтобы запустить A/B-тесты, необходимо сначала интегрировать Huawei Analytics Kit, затем в AppGallery Connect найти нужный проект и на странице с конфигураций A/B-тестов создать эксперимент. В нём необходимо указать условия, продолжительность и ключевые показатели тестирования и предоставить сервису доступ к службам (удалённой настройки, Push Kit и Analytics Kit), необходимым для его проведения.

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

Открытое тестирование на группах пользователей

Этот сервис работает пока в бета-режиме. Он позволяет предоставить доступ к своему приложению первой тестовой группе пользователей и получить обратную связь. Чтобы запустить открытое тестирование, необходимо отправить электронное письмо на адрес agconnect@huawei.com для заявки.

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

На этом пока всё. Если у вас есть вопросы по тестированию и отладке приложений на платформе HMS, задавайте в комментариях.

Подробнее..

Монетизация рекламного трафика в мобильной экосистеме Huawei

13.11.2020 16:21:32 | Автор: admin

Привет, Хабр! Работа со встроенной рекламой в приложениях на платформе Huawei Mobile Services ведётся с помощью сервиса Ads Kit. Сервис предоставляет пользователям персонализированную рекламу, позволяет разработчикам анализировать результаты промокампаний и работать с основными рекламными форматами. В статье я расскажу, что включает в себя этот сервис, какие рекламные форматы поддерживает и какие даёт возможности для аналитики. Кому интересно прошу под кат.

Что такое Ads Kit

Ads Kit включает в себя две службы: Ads Publisher Service и Identifier Service. Ads Publisher Service предоставляет инструменты для интеграции рекламных объявлений и получения отчётов (количества запрошенных и просмотренных объявлений, кликов). Identifier Service обеспечивает работу с рекламным идентификатором пользователя Open Advertising ID (OAID) и персонализацией объявлений.

Пока рекламная платформа доступна только для корпоративных аккаунтов, поэтому стоит помнить, что при работе с платёжными сервисами экосистема Huawei требует обязательную регистрацию юридического лица. Но скоро Ads Kit смогут внедрить в свои приложения все разработчики. Также необходимо учитывать, что Ads Kit работает с HMS Core (APK) 4.0.0, так как на предыдущих версиях возможны ошибки.

Форматы рекламы

Сейчас в Ads Kit доступно 5 разных типов рекламы:

  • Баннерная реклама. По размерам баннеры делятся на фиксированные и адаптивные. У фиксированных 5 размеров: 320 x 50 dp, 320 x 100 dp, 300 x 250 dp, 360 x 57 dp для изображений 1 080 x 170 пикселей и 360 x 144 dp для изображений 1 080 x 432 пикселя. Адаптивные рекламные баннеры автоматически регулируют ширину в зависимости от соотношения сторон устройств. Также есть возможность использовать смарт-баннеры при загрузке рекламы Huawei Ads SDK создаёт рекламный экран той же ширины, что и экран, в зависимости от его ориентации на устройстве.

  • Нативная реклама. Этот тип рекламы вписывается в окружающий контент, чтобы соответствовать дизайну приложения. Такие объявления можно настраивать по мере необходимости. В нативную рекламу можно встроить не только картинки или текст, но и видео.Huawei предоставляет набор шаблонов нативной рекламы, которые доступны в двух размерах малом и среднем, и их макеты и стили можно настроить под себя. Также есть возможность дизлайкнуть нативную рекламу со стороны пользователя, при этом разработчики могут кастомизировать дальнейшее отображение рекламы после Dislike. Например, спросить, почему эта реклама нерелевантна.

  • Rewarded Ads. Реклама с вознаграждением это полноэкранные видеообъявления, которые награждают пользователей за просмотр. При просмотре рекламы сервер отправляет уникальный URL со специфичными параметрами в Ads Kit, чтобы уведомить медиасервер о том, что пользователь должен быть вознаграждён за взаимодействие с видеообъявлением. При принятии решения о том, когда вознаграждать пользователя, необходимо сбалансировать проверку пользователя и скорость подтверждения вознаграждения, чтобы, с одной стороны, защититься от спуфинга, а с другой не заставлять пользователя ждать своей награды.Разработчики Huawei рекомендуют сразу вознаграждать пользователя, обрабатывая запрос на стороне клиента, а потом проверять все вознаграждения при получении обратных вызовов на стороне сервера. Такой подход гарантирует действительность предоставленных вознаграждений, обеспечивая при этом хорошее взаимодействие с пользователем.

  • Interstitial Ads. Межстраничные объявления это полноэкранные объявления, которые покрывают интерфейс приложения в точках перехода при работе с приложением. Такая реклама отображается, когда пользователь запускает, приостанавливает или закрывает приложение, не мешая его работе. В межстраничную рекламу можно добавлять видео, текст и картинки.

  • Splash Ads. Рекламные заставки отображаются сразу после запуска приложения, даже до того, как отобразится главный экран приложения. Для таких заставок может быть установлен таймер показа и реагирование на конкретные события, например когда пользователь перешёл по рекламной ссылке.

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

Для разных типов рекламы также можно проставить теги с возрастом и регионом. Например, согласно соглашению GDPR, действующему в рамках Европейской экономической зоны, нельзя показывать персонализированную рекламу и запрашивать право на её показ для пользователей, не достигших 16 лет,при этом некоторые страны устанавливают порог в 13 лет.

Рекламная аналитика

Анализ трафика и персонализация объявлений осуществляется с помощью службы Identifier Service. Она создаёт и работает с рекламным идентификатором пользователя (OAID). Пользователь может отключить функцию персонализированной рекламы или сбросить свой OAID. При сбросе OAID, если персонализированная реклама не отключена, будет создан новый номер. Если пользователь согласился на обработку своих данных и получение персонализированной рекламы, то разработчики, в свою очередь, получают возможность использовать его зашифрованный обезличенный OAID.

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

Для анализа источников трафика применяется функция Install Referrer, которая считывает информацию из реферальной ссылки, использованной пользователем для установки приложения. Чтобы использовать Install Referrer, требуется интегрировать API Ads Kit и после этого опубликовать приложение в AppGallery.

Ads Kit только один из инструментов монетизации. Также наша платформа позволяет использовать встроенные покупки, мотивировать пользователей с помощью баллов Huawei и системы подарков. На этом пока всё, если у вас есть ещё вопросы по монетизации своих приложений, задавайте их в комментариях.

Подробнее..

Кошелёк в смартфоне и оплата без интернета как работает система платежей в экосистеме Huawei

14.12.2020 18:12:07 | Автор: admin


Привет, Хабр! В экосистеме Huawei Mobile Services хранение пользовательских карт и работа с платежами осуществляется приложением Huawei Wallet. Оно превращает смартфон в кошелёк: хранит не только карты, но и билеты, страховые полисы и ключи доступа. Под катом я расскажу, как можно использовать его возможности в своих приложениях и сервисах, какие у нас есть партнёрские программы и как работает система платежей Huawei Pay.

Кошелёк как канал взаимодействия с пользователями


Huawei Wallet приложение из экосистемы Huawei для хранения банковских и дисконтных карт, билетов, проездных и других подобных объектов. Отправить пользователю дисконтную карту или пропуск можно с помощью ссылки, в СМС или в письме на электронном ящике. Также Huawei Wallet может определить, какие партнёрские приложения установлены, и добавить карты из них.

Компания, выпустившая карту, может управлять её характеристиками (например, продлевать дату окончания или увеличивать номинал) и отправлять пользователям информационные сообщения. Таким образом можно:

  • информировать клиентов об акциях и предложениях;

  • сообщать владельцам билетов о задержке или отмене рейсов;
  • использовать объект в Huawei Wallet в качестве билета на мероприятие;
  • передать в Huawei Wallet NFC-ключ от системы контроля доступом (но в России эта функция пока не получила широкого распространения).

Интеграция своих продуктов в Huawei Wallet


Для партнёров Huawei доступна сквозная интеграция. Например, банки могут отправлять в Huawei Wallet кредитные и дебетовые карты при их открытии, а магазины добавить карту лояльности при скачивании приложения на телефон HUAWEI.

Так как в интеграции с платёжной системой Huawei есть много нюансов и технических деталей, заявка на неё требует предварительной консультации с техподдержкой бренда. Если у вас уже есть приложение в AppGallery, то после консультации можно подать заявку в разделе Мои проекты в AppGallery Connect. Выберите нужный проект и в его настройках перейдите в Earning > Wallet Kit в меню навигации справа и подайте заявку на услугу Wallet Kit.




Введите параметры: элемент, тип, название, идентификатор сервиса, URL-адрес обратного вызова, открытый ключ.



Затем нужно будет настроить параметры NFC, в том числе идентификатор приложения (AID), URL-адрес обратного вызова, параметры синхронизации, ключ внешней аутентификации и определение параметра файла.



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

После того как заявка на услугу Wallet Kit будет одобрена, предстоит интеграция и проверка приложения. Проверка приложения полностью автоматизирована. Вам нужно будет ввести информацию о приложении и загрузить APK. Затем система просканирует его и предоставит вам отчёт.

Образец кода клиента API-интерфейсов Huawei Wallet Kit можно посмотреть по ссылке. А по этой ссылке можно загрузить последний SDK.

Платежи через Huawei Wallet



В Huawei Wallet покупки и онлайн-платежи проходят через систему Huawei Pay. Для пользователей она повышает безопасность при транзакциях: сервис не использует номер банковской карты, а вместо него передаёт номер карты устройства или токен. Этот номер присваивается каждой добавленной банковской карте и различается на разных устройствах. Благодаря этому номера банковских карт не передаются продавцу и хранятся только на устройствах, а не на серверах Huawei Pay. Кроме того, Huawei Pay не сохраняет информацию о транзакции, которую можно связать с плательщиком.

Чтобы совершить платёж, пользователю не нужно снимать блокировку с устройства, а бесконтактная оплата возможна даже без подключения к интернету. Huawei Pay использует технологию аппаратного шифрования SE и требует верифицировать каждую транзакцию независимо от суммы. Работать с Huawei Pay может любой банк, который выпускает карты платёжной системы UnionPay. В России с ней уже работает, Газпромбанк, Россельхозбанк и Восточный банк. Уже в следующем году мы доработаем SDK и добавим оплату через Huawei Pay в свои веб-сервисы.

Ещё одной полезной функцией Huawei Pay является возможность принимать платежи при помощи QR-кодов. Данная функциональность превращает смартфон в POS-терминал: позволяет получать оплату за покупки при помощи QR-кода. Чтобы начать принимать оплату, юридическое лицо должно зарегистрироваться в приложении.

Будущее Huawei Pay в России


Одним из вариантов сотрудничества российских банков с Huawei являются партнёрские программы, которые мы предоставляем на основе платёжной карты UnionPay. Например, есть программа бонусов для держателей карт UnionPay Газпромбанка и Россельхозбанка.

Уже до конца года будет доступна полная функциональность по оплате в приложениях и веб-сервисах с помощью Huawei Pay. Также в планах на следующий год у нас запустить проект виртуального магазина банковских карт. Пользователь будет получать индивидуальные предложения банков по дебетовым и кредитным картам, которые можно будет использовать в Huawei Pay. Можно будет выбрать оптимальное предложение и отправить заявку на карту онлайн. Часть информации для заявки подтянется из Huawei ID пользователя, остальные данные анкеты нужно будет дополнить.

Ещё мы хотим дать российским пользователям возможность использовать предустановленную виртуальную карту на смартфоне. Это будет базовая карта платёжной системы, а заявку на неё также можно будет подать онлайн через Huawei Wallet.

На этом пока всё. Если у вас возникли вопросы по платежам и работе с картой в нашей экосистеме задавайте их в комментариях.
Подробнее..

Джентльменский набор от Huawei для разработчика мобильных игр Game Service и инструменты для быстрой интеграции HMS

23.10.2020 14:16:54 | Автор: admin

Привет, Хабр! Меня зовут Михаил, я занимаюсь технической поддержкой разработчиков в области интеграции Huawei Mobile Service. И сегодня я хочу рассказать про наши инструменты, которые могут быть полезны разработчикам мобильных игр. Про то, как можно быстро адаптировать игру, уже рассказывали наши друзья из Azur Games. В этой статье я более детально расскажу про Huawei Game Service, реализующий базовые внутриигровые функции, а также про инструменты для монетизации приложений, работы с рекламой и аналитикой.

Huawei Game Service на уровне приложений


Huawei Game Service это часть экосистемы HMS для работы c играми. Она работает на уровне приложения и на уровне системы. На уровне приложения HGS (Huawei Game Service) позволяет:

  • Реализовать систему внутриигровых достижений. Можно настроить до 200 ачивок для максимального вовлечения пользователей в игру. В Game Service можно добавлять новые достижения и задавать новые челленджи для пользователей, когда они уже прошли игру. Сами достижения включают ID, краткое название, описание, иконку, состояние. Состояние, в свою очередь, может быть трёх типов: скрытое достижение открывается после определённого этапа или покупки; открытое достижение показывается игроку, но он его ещё не заработал; разблокированное достижение заработано, о чём пользователь получает уведомление во всплывающем окне.
  • Получать статистику игроков. Статистика показывает активность игрока, основное время, когда он играет, и другие параметры. Тем, кто давно не заходил в приложение, можно выслать пуш-напоминание. Также можно оценить среднее время игры и количество совершённых покупок.
  • Получать сообщения о событиях. С их помощью можно дополнять статистические данные и ориентироваться уже на конкретные сценарии. Например, понять, что игрок дошёл до такого-то уровня, и предложить ему внутриигровую покупку или участие в акции.
  • Строить таблицы лидеров. В Game Service предусмотрено 70 таблиц лидеров, которые ранжируются автоматически и могут загружаться во время игры или после по разным параметрам.
  • Работать с сохранениями. Игровой процесс сохраняется на Huawei Drive, что позволяет расшаривать данные игры между устройствами и получить доступ к ним в случае утери / поломки телефона.

Системные функции Huawei Game Services



Huawei Game Service базируется на движке GameTurbo Engine, который связывает между собой операционную систему и само приложение. Это позволяет регулировать нагрузки при ограниченных ресурсах системы приложение может передавать игровую сцену, конфигурацию и другую информацию для системы, чтобы динамически распределять ресурсы. Система, в свою очередь, предоставляет информацию о своём статусе, чтобы можно было изменить параметры работы приложения и адаптироваться для бесшовного взаимодействия пользователя с игрой.

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

Инструменты для монетизации


При работе с платёжными сервисами экосистема Huawei требует обязательную регистрацию юридического лица. После подтверждения данных будет доступна работа с рекламой и покупками в приложении. Для этого используются:

  • Ads Kit, который позволяет внедрять персонализированную рекламу. Он интегрируется со сторонними рекламными платформами (например, с adjust), что позволяет отслеживать конверсию и трафик, при этом не нарушая требования конфиденциальности каждый пользователь имеет уникальный зашифрованный OAID.
  • In-App Purchases (IAP) система встроенных покупок. В играх она позволяет организовать внутриигровые платежи: покупку виртуальных товаров, подписок прямо внутри игры. С помощью сервиса можно настроить многоуровневые варианты подписки. IAP поддерживает 78 языков и доступен более чем в 170 странах. Конкретная валюта отображается автоматически в зависимости от местоположения пользователя, разработчикам надо лишь загрузить нужный пакет. К тому же IAP принимает почти все варианты оплаты, включая баллы Huawei.

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


В экосистеме Huawei есть несколько способов, которыми можно стимулировать активность пользователей. Для увеличения вовлечённости в игру мы предлагаем использовать Push Kit, который позволяет отправлять персонализированные уведомления с автоматическим выбором языка. В свою очередь, разработчики могут видеть полный отчёт о просмотре и доставке уведомлений. Для уведомлений можно настроить персонализированные группы, информацию о которых Push Kit может брать с Analytics Kit. Разработчики могут настроить разные событийные сценарии для отправки уведомлений и высылать новые на основе кеша прошлых уведомлений. Также есть возможность визуальной кастомизации пушей.

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

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

На данный момент баллы могут быть использованы для покупки платных приложений, виртуальных товаров, привилегий или услуг в приложениях, обмена на внутриигровую валюту (такую как золотые монеты и бриллианты), а также для платной подписки на Huawei Video, Huawei Music и Huawei Themes.

Инструменты для работы с игровыми данными


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

  • С помощью Analytics Kit можно собирать данные по более чем 500 параметрам, включая разные сценарии поведения пользователей, их вовлечённость в игровой процесс. Также можно находить ключевые точки, которые влияют на поведение пользователя, и облегчать взаимодействие в тех моментах, после которых большинство пользователей уходят из приложения. Помимо рекламных целей это может быть полезно для отлаживания работы приложений и быстрого реагирования на возникающие проблемы.
  • Через Account Kit можно настроить двухфакторную аутентификацию в один клик (SMS-подтверждение считывается автоматически) или подключить Huawei ID, чтобы пользователи входили без процесса регистрации. Также с помощью этого кита можно настроить прямой вход в приложение через QR-код.
  • Хранить данные игр можно с помощью Drive Kit, который представляет собой облачное хранилище. У Drive есть свой API, с помощью которого можно взаимодействовать с облаком не только через системы Huawei или Android. В рамках игровых приложение кит может быть использован для синхронизации данных прохождения игры между устройствами.

Инструменты для адаптации игр


Как правило, адаптация приложений для HMS занимает не так много сил, и основная задача сводится к обеспечению работы сразу с двумя платформами: от Google и от Huawei, и об этом на Хабре уже была статья.

Если у вас игра на движке Unity, то ускорить внедрение HMS можно с помощью плагина для Android Studio или Unity Distribution Portal, который позволяет создавать единый APK сразу для нескольких платформ, в том числе и AppGallery.Также есть прямая интеграция с Cocos Engine.

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

Как опубликовать свою игру


Для работы с AppGallery необходимо выполнить следующие шаги:

  • Зарегистрироваться в AppGallery Connect. Это универсальная консоль для приложений (в том числе и игр), которая позволяет публиковать, давать ранний доступ, получать статистику. Для регистрации необходимо указать своё юридическое лицо и добавить платёжные данные. Процесс проверки может занять до 4 дней.
  • Создать проект.
  • Добавить приложение в проект.

  • Добавить первичные интеграции с разными сервисами Huawei по выбору. Добавить скрипты и сертификаты для взаимодействия с другими китами.
  • Опубликовать приложение.

На этом пока всё. Если у вас возникли вопросы о возможностях нашей платформы, выводе своего приложения в AppGallery или технические вопросы по инструментам от Huawei, задавайте их в комментариях.
Подробнее..

О шахматах. И не только

02.12.2020 10:08:40 | Автор: admin
Сегодня не будет тяжких раздумий о настоящем и будущем компьютерной индустрии. Сегодня я хочу рассказать об одном из своих хобби. Я играю в массу разных игр: футбол, хоккей, теннис (большой и маленький), покер, преферанс, биржа и т.п. Но мой профильный вид спорта шахматы. Дальше кандидата в мастера моя карьера на этом поприще не продвинулась, но любовь к древней игре я сохраняю уже 4 десятка лет. Интересно, что она вполне ужилась с другим увлечением программированием, породив интерес к искусственному интеллекту и теории игр. И разумеется, последние прорывы в этой области связанные с феноменальными успехами проекта AlphaZero не могли пройти мимо меня.
image
Тогда я просто сидел и восхищался партиями AlphaZero против Stockfish. А сейчас вернулся к теме в связи с задачей оптимизации нейронных сетей, которой иногда приходится заниматься по работе (увы, меньше чем хотелось бы). Как мне кажется, задачи эти могут оказаться тесно связанными, поэтому захотелось как то систематизировать свои идеи.
Шахматы игра с полной информацией, основанная на переборе вариантов (так же как шашки, го и т.п.).
image
Проблема однако в том, что дерево вариантов в шахматах растет достаточно быстро (хотя и значительное медленнее, чем в го). Например, при полной доске фигур в спокойной позиции у каждой стороны есть примерно по 10 разумных продолжений. Таким образом, всего за 3 хода черных и белых (6 полуходов) мы можем получить миллион позиций из данной. Также, примем во внимание то, что средняя партия между людьми продолжается 40-50 ходов (между компьютерами 80-100). Таким образом, мы придем к выводу, что полный просчет дерева вариантов для большинства позиций невозможен а значит мы должны ориентироваться на частичное обрезание дерева перебора, как по ширине, так и в глубину. А теперь давайте посмотрим, как люди и машины справлялись с этой проблемой. Начну я с небольшого исторического обзора.

Белковые шахматы.

Шахматы известны порядка 1400 лет, но первые большие турниры по ним начали проводиться в середине XIX века. Это было время открытых и романтических сражений. Соперники старались побыстрее ввести в бой фигуры, вскрыть позицию и начать атаку на короля. С материальными и позиционными уступками никто особенно не считался. Но как ни удивительно, первым официальным чемпионом мира стал антагонист романтических шахмат Вильгельм Стейниц.
image
Он заложил основы позиционной игры. Во многом благодаря Стейницу мы стали оперировать такими понятиями, как пешечная структура, сильные и слабые поля, хорошие и плохие фигуры. Именно это и привнесло в шахматы элемент стратегии, основанной на долгосрочных преимуществах. Стейниц развивал позиционный подход и неумолимо наказывал своих противников за материальные жертвы и позиционные огрехи. О первом чемпионе очень хорошо сказал Эммануил Ласкер, сменивший его на шахматном троне: Одаренность Стейница как практического игрока была ниже, чем одаренность Блэкберна или Цукерторта, которых он все же победил, ибо был великим мыслителем, а они нет. Стейниц сформулировал базовые принципы оценки позиции и вытекающие из них планы игры на языке высокого уровня (в данном случае немецком). Соответственно, он сделал их доступными для изучения другими людьми. Это и сформировало то, что мы называем человеческим подходом к шахматной игре. Мы очень серьезно обрезаем дерево вариантов в шахматах, основываясь на позиционных принципах. Какие-то ходы отбрасываются потому, что ведут к плохой позиции на просчитываемом горизонте. Kакие-то потому что ведут к долговременным уступкам, другие потому что являются бесцельными. В итоге мы просчитываем совсем небольшую часть возможных вариантов.
Дальнейшее понимание шахмат было по сути развитием идей, заложенных первым чемпионом. Появились такие понятия как блокада, профилактика, доминация. Шахматисты стали изучать принципы разыгрывания типовых позиций, возникающих из различных дебютов(замкнутые цепи, изолированная пешка и т.п.). Так или иначе, изучались позиции близкие к материальному равновесию. Но бывали и исключения например, молодой Михаил Таль играл в ином стиле. Он создавал острые несбалансированные позиции с нарушением соотношения материала (позднее подобную игру демонстрировал и Гарри Каспаров). Не привыкшие к подобной игре противники пасовали один за другим. Таль стал чемпионом мира в 1960, но год спустя проиграл матч-реванш. Во второй половине ХХ века фокус исследования сместился в сторону начала партии дебюта. С легкой руки Mихаила Ботвинника (6-го чемпиона мира) и Гарри Каспарова (13-го) львиную долю своего времени шахматисты стали уделять проработке конкретных дебютных вариантов. Все больше используя компьютеры в этом процессе. В результате многие варианты в популярных дебютах разработаны вплоть до позиций, где результат игры предопределен. Это приводит к определённому выхолащиванию шаxмат, а также к необходимости запоминать огромное количество вариантов, чтобы не быть разгромленным уже в дебюте. Неудивительно, что последнее время маятник качнулся в обратную сторону. Нынешний чемпион мира Магнус Карлсен скорее стремится к тому, чтобы получить по итогам дебюта не перевес, а игровую позицию, не заезженную вдоль и поперек компьютерными движками. Тяжесть борьбы переносится на более поздние стадии партии (миттельшпиль, эндшпиль).

Силиконовые шахматы.

По меткому выражению Александра Кронрода, шахматы являются дрозофилой искусственного интеллекта. Их изучение началось с появлением первых компьютеров и привлекало таких пионеров как Алан Тьюринг и Клод Шеннон. Именно Шеннон выдвинул первую оценку стоимости шахматных фигур Король =200, Ферзь =9, Ладья = 5, Слон = 3, Koнь =3, Пешка =1. Как ни странно, именно эта простая оценка определила развитие шахматного программирования на следуюшие 70 лет. Также Шеннон предугадал разделение шахматных программ на быстрые (brute force) и умные (clever). Быстрые программы полностью перебирают все возможные варианты на определенную глубину, оценивают позицию с помощью простой оценочной функции (вроде соотношения материала) и выбирают наилучший ход с помощью принципа минимакса. Умные программы используют более сложные алгоритмы и варьируют глубину перебора примерно так же, как это делает человек. Созданием подобного алгоритма в последние годы жизни занимался 6-й чемпион мира Михаил Ботвинник. Однако без особого успеха, как и многие другие создатели умных программ. Ибо в третьем своем предсказании Шеннон ошибся умные программы постоянно терпели неудачу в борьбе с быстрыми. Причина в том, что перебор очень хорошо параллелится и оптимизируется. А простая оценка Шеннона оказалась достаточно устойчивой и робастной. Ибо как известно шахматистам, любой позиционный перевес рано или поздно трансформируется в материальный. В то время как принципы оценки позиции поддаются формализации гораздо хуже. Они требуют громоздких последовательных вычислений и плохо оптимизируются. В результате с ростом производительности компьютеров быстрые программы стали доминировать. Так сформировался mainstream компьютерных шахмат, разительно отличающийся от человеческих перебор на определенную глубину с использованием aльфа-бета отсечения (и еще кой-каких эвристик) и оценка позиции по Шеннону. Также программы стали активно развивать и использовать дебютные (когда игра еще не ушла далеко от начальной позиции) и эндшпильные (когда количество фигур мало и дерево вариантов может быть просчитано полностью) базы. А производительность компьютеров все время росла, и программисты тоже не сидели без дела, постоянно оптимизируя движки. 11 мая 1997 года произошло эпохальное событие компьютер Deep Blue победил чемпиона мира Гарри Каспарова в матче из 6 партий.
image
Сразу после этого IBM прикрыла этот ни разу не дешевый проект. Специально для Deep Blue были созданы чипы, ускоряющие шахматные расчеты! Впрочем, и без них превосходство компьютера над человеком уже было очевидным. Deep Fritz, Deep Junior, Rybka, Komodo, Stockfish стали беспощадно громить ведущих гроссмейстеров, даже давая им материал вперед Между собой они, впрочем, играли с переменным успехом результаты чемпионатов мира среди программ можно найти тут.
Все изменилось, когда создатели AlphaZero, победив чемпиона мира по игре в го Ли Седоля, взялись наконец за шахматы. Результат оказался феноменален после 4 часов игры с самим собой AlphaZero разгромил StockFish, выиграв 28 партий и сведя вничью 72. Через год DeepMind провел более чистый эксперимент, разрешив Stockfish пользоваться дебютной и эндшпильной книгами. И все равно результат +155 -6 =839 не оставляет сомнений в том, кто является сильнейшим игроком в мире на данный момент.
Давайте разбираться, как устроено это новое чудо. (Для желающих поковыряться в python-скриптах есть уже целая книга). Основной алгоритм поиск по деревьям Монте Карло. Это тоже, конечно, перебор, что роднит AlphaZero c другими шахматными программами. Но слово Монте Карло не должно вводить в заблуждение поиск управляется нейронной сетью(для го была 80-слойная, здесь не знаю какая) и является узконаправленным. АlphaZero обрезает дерево перебора, исходя из позиционных соображений, так же как это делает человек! По сравнению со Stockfish Alphazero перебирает в почти в 1000 раз меньше вариантов. Она лопатит гораздо меньше мусора, но наиболее вероятные сильнейшие варианты просчитывает глубже и точнее. Поэтому выигрывает даже имея меньше времени или на более слабом железе. Ну и самое главное АlphaZero изучала шахматы исключительно на собственном опыте. У нее не было никакой априорной информации. Ее понимание не испорчено Шенноновской оценкой. У неё своё уникальное понимание видение шахмат и стиль игры, зачастую игнорирующий материальное соотношение (как молодой Таль!).

Какие выводы мы можем сделать из этого замечательного эксперимента?
1. Он решительно опровергает все соображения о выхолащивании шахмат. Самое появление игрока, который играет в невиданном до сих пор стиле и демонстрирует тотальное превосходство над конкурентами свидетельствует о том, что возможности игры еще далеко не исчерпаны.
2. Показывает насколько мало все же мы знаем о шахматах. За 4 часа тренировки искусственный интеллект сумел понять об игре много больше чем мы (тупые белковые) за полторы тысячи лет! Пытаясь как то осознать этот феномен я нашел такую аналогию наше знание о шахматах похоже на разложение функции в степенной ряд (типа Тейлора-Маклорена) вблизи нуля. Где нулевой точкой является материальное равновесие. Применимость такого представления падает по мере удаления от материального равенства. В то время как AlphaZero видит всю картину(функцию) целиком.
3. Ставит главный вопрос что же дальше? Конечно можно идти экстенсивным путем увеличивая время тренировки, используя все более мощное железо, оптимизируя софт и т.п. Но мне кажется, что гораздо важнее другое направление. Для AlphaZero натренированная нейронная сетка это все лишь набор чисел коэффициентов. Как мы можем извлечь из этого набора чисел новое знание об игре? В каком то смысле мы должны решить задачу, сродни той, которую решил Стейниц полтора века назад. Описать знание об игре, используя человеческий язык. И сделать его доступным для изучения другими людьми. Это именно то с чем я столкнулся при оптимизации нейронных сеток и называю обратной задачей искусственного интеллекта. А решать ее нам придется во многих областях. И если мы не сумеем призрак SkyNet станет чуть менее далеким и чуть более зловещим Ну а пока я был бы благодарен за ссылки, статьи и идеи как подступиться к этой проблеме.

PS. А партии вы все же посмотрите. Я получил ни с чем не сравнимое удовольствие.
Подробнее..

Software ecosystems принципы построения

11.12.2020 14:05:39 | Автор: admin
image
У этой статьи тяжелая судьба. Пару месяцев назад меня попросили написать обзор на предмет построения программных экосистем для разных архитектур. Я поначалу отнекивался да отшучивался в том духе что, экосистема это не биология. Это даже не технология. Это исключительно про деньги. И иногда про политику. Потом собрал волю в кулак, мысли в кучу, cел и написал все буквально за один день. На английском. Затем обзор перевели на китайский и опубликовали. По дороге переводчик существенно улучшил текст и добавил пару интересных мыслей. Потом я решил, что текст может быть небезынтересен аудитории Хабра, а также полезен мне, чтобы ссылаться на него в дальнейшем. И начал ваять русский вариант, вооружившись английским оригиналом и китайским переводом. Это была та еще борьба со специфичными английскими терминами (SW ecosystem ?= программная экосистема, enabling ?= продвижение, application engineer ?= инженер по приложениям) и малопонятными пока иероглифами. В итоге русский текст занял больше времени, чем английский и китайский вместе взятые Так бывает.

Преамбула.

За последние четыре или пять десятилетий мы наблюдали много усилий по выводу на рынок новых процессорных и микроконтроллерных архитектур. Очень немногие из них оказались успешными в долгосрочной перспективе. Два наиболее показательных примера: архитектура х86 для серверов и ПК и ARM для мобильных телефонов и микроконтроллеров. Остальные либо занимают (занимали) небольшую нишу, либо существовали недолго. Безусловно, одним из ключевых компонентов успеха вычислительной архитектуры в целом является её способность удовлетворять наиболее важные запросы клиентов в соответствующем сегменте. Для серверов таким запросом является производительность, для мобильных устройств низкое энергопотребление/длительное время автономной работы. Но еще одним важным фактором является наличие богатой программной экосистемы, которая позволяет эффективно разрабатывать новый софт, а также портировать существующий. Создание экосистемы является очень длительным и дорогостоящим процессом, поскольку необходимо разработать все необходимое прикладное программное обеспечение. Ho только таким образом архитектура может занять целевой сегмент рынка. Однако, как только экосистема разработана, она начинает служить в качестве естественного защитного механизма, предотвращая проникновение конкурирующих архитектур на рынок. В этой статье автор обобщает ключевые выводы из опыта, в применении к задаче построения ARM-экосистемы в серверном сегменте рынка.

Сегодняшний вызов:

Сегодня мы, возможно, наблюдаем самое интересное время на рынке микроэлекторники. В отличие от того, что было 5 лет назад, когда Intel контролировал 95% корпоративного рынка, сегодня у нас больше архитектурных инноваций, чем когда-либо. Первым упомянем чипы серии Ryzen, которыe составляют серьезную конкуренцию Intel. Однако эта инновация не является архитектурной: процессоры AMD используют разработанную экосистему х86. Их преимущество заключается в эффективной имплементации. Другие инновации интересннее, так как они требуют построения новой программной экосистемы.
Революция искусственного интеллекта, начатая и возглавляемая NVidia, кардинально изменила ландшафт серверного рынка. Она создала совершенно новый сегмент, почти исключительно контролируемый его создателем. В основе его платформа параллельного программирования CUDA. CUDA (впервые представленная в 2007 году) является одним из интересных примеров построения экосистемы, мы рассмотрим его более подробно позднее. В свою очередь, Intel пытается представить свой собственный графический процессор (частично основанный на графической системе Gen), чтобы конкурировать в области искусственного интеллекта. Для создания среды программирования Intel представил набор инструментов OneAPI. Это амбициозная концепция универсального метода программирования ускорителей (GPU, AI, FPGA и т.д.). Кроме того, Intel использует для OneAPI открытый исходный код, что делает интерфейс более привлекательным, чем у моделей с закрытым исходным кодом. В концепции OneAPI центральную роль играет Data Parallel C++. Это набор C++ расширений на основе стандарта CYCL. Мне кажется, успех этой интересной попытки будет зависеть от включения данных расширений в будущие стандарты C++. А также от эффективной реализации интеловского GPU. Последним примером является проникновение архитектуры ARM в область искусственного интеллекта, облачных и высокопроизводительных вычислений. Архитектура ARM известна своим успехом на рынках низкого энергопотребления и имеет значительную экосистему ПО. Поэтому попытка проникнуть в более высокие сегменты рынка выглядит естественно. Это самый интересный для нас случай, и мы рассмотрим его более подробно с различных точек зрения.

Технология.

Технологические предпосылки я приводил тут.

Экономика.

Усиление конкуренции Intel со стороны AMD привело к существенной ценовой войне между процессорными гигантами. Это урезает доходы производителей, но облечгает жизнь конечным пользователям. Напротив, в области искусственного интеллекта мы наблюдаем доминирование NVidia, которая диктует цену рынку. И здесь потребители активнее ищут альтернативные системы.

Политика.

В связи с усилением геополитической напряженности Китай и Россия взяли курс на развитие 100% независимой экосистемы. Однако это означает не только независимость аппаратного обеспечения. Не менее важную роль играет софт. Многие приложения должны быть перенесены или заменены для обеспечения истинной независимости. Нижеприведенная картина иллюстрирует ситуацию в России.
image
Политический фактор создает сильный спрос на ресурсы для устранения пробелов в ПО и долгосрочную поддержку для этих усилий. Существует несколько мощных сил, стоящих за созданием экосистемы ARM. Но есть и очень серьезные проблемы. Позвольте мне назвать несколько из них:

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

Некоторые коммерческие приложения с закрытым исходным кодом становятся де-факто стандартом для важных сегментов. Например, SAP-Hana, Oracle для баз данных, VMWare для виртуализации и т.д. Обычно разработчики не заинтересованы в переносе и сопровождении своих продуктов на архитектуре, которая не имеет достаточной доли рынка. С другой стороны, конечные пользователи не покупают оборудование, которое не поддерживает это ПО. Существует несколько способов разорвать этот порочный круг. Первый заплатить (огромные) деньги компаниям-разработчикам ПО за портирование. Второй создать конкурентное решение, которое либо вытеснит продукт с рынка либо вынудить желательное портирование. Третий убедить кого-то из больших кастомеров разработчика надавить на него. Однако ни один путь не является ни простым, ни дешевым.

Legacy Software.

Большая часть приложений на серверном рынке десятилетиями писалась и оптимизировалась для доминирующей архитектуры х86. Явно или неявно ставка в большей степени делалась на однопоточную производительность, чем на массивный параллелизм. Таким образом, даже если исходный код доступен, может потребоваться значительная переделка и оптимизация для успешной работы на ARM серверах.

На горизонте стоит немало проблем, и для их решения нам следует изучить

Уроки прошлого.

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

В самом начале.

Когда Intel выпускала свой первый 8-битный процессор 8080 в середине 70-х годов, у нее не было особых архитектурных преимуществ по сравнению со своими конкурентами Motorola 6800 или Zilog Z80. Тем не менее Intel впервые осознал важность программного обеспечения для продвижения железа. Она также первым представил собственный компилятор для ускорения, упрощения и удешевления разработки софта. Именно инструменты создали важное конкурентное преимущество для Intel, и позволили ей добиться успеха на ранних этапах. Позже Intel представила MKL для линейной алгебры, VTune для оптимизации программ и многие другие инструменты, которые играли важную роль в формировании х86 экосистемы. Более того, Intel гарантировала совместимость своих инструментов. Позже Intel была осознана важность ОС, которая управляет работой железа. Её тандем с Microsoft (Wintel) стал доминирующей силой на рынке ПК в течение примерно трех десятилетий. Однако с развитием серверного рынка ОС Linux и открытый исходный код в целом, стали очень актуальны. Таким образом, Intel стал главным контрибьютором в ядро Linux, и до сих пор занимает позицию номер 1 (угадаете кто номер 2?). Самое главное Intel всегда строго придерживалcя бинарной совместимости (Backward compatibility) своих платформ. Тот факт, что бинарные файлы, созданные для любого предыдущего поколения архитектуры, работают на более позднем поколении из коробки, и позволил х86 стать доминирующей силой. Создание экосистемы требует времени, но оно того cтоит.

Восход и закат Солнца.

Это единственный контрпример, когда развитая экосистема сыграла против своего создателя. В начале 2000-х Sun Microsystems занимала значительную нишу на рынке серверов с архитектурой SPARC. Компания инициировала и развила экосистему Java. Проблема однако в том, что Java-машина основана на интерпретаторе, а не на компиляторе. Так что, когда обстоятельства заставили Sun открыть Javа, это стало началом конца. Реализовав интерпретатор Java для х86, Intel постепенно вытеснил Sun с серверного рынка. Урок, который можно извлечь интерпретированные языки (столь популярные сегодня) не являются эффективной защитой рыночной доли.

Успех ARM на рынке низкого энергопотребления.

Архитектура АРМ лидирует на рынке сотовых телефонов и планшетов с начала 2000-х годов. Характер его доминирования сильно отличается от х86 в ПК и серверах. ARM это открытое сообщество лицензия стоит относительно недорого, что создает предпосылки для вступления в игру большого числа игроков. А открытая операционная система Android, дополнительно снижает входной барьер. Так же свою роль сыграло то, что ведущие игроки (Samsung, Qualcomm, Huawei и т.д.) осознали необходимость индустриального альянса для создания экосистемы. Это позволило построить ее в очень сжатые сроки.

Попытка корпорации Intel вторгнуться на мобильный рынок.

Примерно в 2007 году Intel (или чуть раньше) осознал потенциал рынка мобильных телефонов и планшетов и предприняла попытку его завоевания. В основе проекта лежали архитектура Atom (х86 с низким энергопотреблением) и бинарная трансляция с ARM на х86 (Houdini). Этот механизм позволяет использовать существующую экосистему программного обеспечения. Приложения были запущены на устройствах Intel в рекордно короткие сроки. Однако против Intel сыграли два факта. Первый неспособность догнать ARM в области энергопотребления. Второе сложность бинарной трансляции из RISC в более сложный набор инструкций CISC. Такая трансляция предполагает значительные накладные расходы, которые могут быть неприемлемы для некоторых классов приложений. Таким образом, можно рассматривать бинарную трансляцию как инструмент входа на рынок, но он вряд ли может служить как долгосрочное решение.

Экосистема CUDA.

Хотя успех Nvidia в сегменте искусственного интеллекта неоспорим, развитие собственной экосистемы CUDA по-прежнему вызывает у меня вопросы. Например, в области высокопроизводительных вычислителений доля приложений, использующих CUDA, по-прежнему остается низкой. Причиной является высокая стоимость портирования и сопровождения (maintenance) таких приложений. Некоторые разработчики портировали (со значительной помощью инженеров NVidia) свои коды, но позже отказались от них из-за стоимости поддержки. Напротив, в сегменте искусственного интеллекта позиция NМidia чрезвычайно сильна. Тем не менее исследователи в основном используют структуры более высокого уровня (TensorFlow, PyTorch и т.д.) и не занимаются непосредственным программированием на CUDA. Это подводит нас к выводу, что правильный выбор уровня абстракции софтовой обвязки имеет большое значение для продвижения железа.

Назад в будущее.

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

Индустриальный альянс.

Самая большая проблема экосистемы ARM в серверном сегменте, в отличие от мобильного, заключается в том, что она все еще очень фрагментирована. Нужен какой-то центр притяжения для согласования усилий. Альянс представляется вполне естественным, учитывая, что доля всех ARM-вендоров на серверном рынке составляет около 1%. У них просто нет причин конкурировать. Задача совместного построения экосистемы должна иметь приоритет над дифференциацией между собой. Был предпринят ряд попыток создания подобного альянса. Можно упомянуть Open Green Computing Consortium (openGCC для программиста трудно придумать более дурацкое название), и наши недавние усилия в рамках ARM Advanced Technology Committee в рамках АПКИТ. Это может быть хорошим началом, однако оба эти альянса являются локальными. Open GCC является китайской организацией, а АПКИТ российской. Индустрия диктует необходимость глобального альянса, который может служить нескольким целям:

Синхронизация и влияние на регулирующие органы.

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

Работа с поставщиками операционных систем и приложений.

Как мы видели из опыта, операционные системы играют центральную роль в создании программной экосистемы. Можно также заметить, что ОС, разрабатываемые поставщиками железа, исторически не были очень успешными (за исключением Apple). Так что работа с поставщиками ОС стратегически очень важна. Частично это происходит сейчас патчи, обновления, появляющиеся в последних версиях ядра Linux, компиляторов и glibc, повышают производительность ARM-систем для самых разнообразных ворклоадов. Но эти усилия все еще очень фрагментированы, каждый поставщик делает это сам по себе, что обычно занимает довольно много времени. Альянс может помочь синхронизировать эти усилия и ускорить принятие обновлений.
Мы также увидели, что разрешение проблемы курицы и яйца на ранних стадиях продвижения архитектуры может быть очень сложным. Альянс сможет предоставить дополнительный вес в переговорах с поставщиками ПО и помочь разделить бремя раннего продвижения между производителями железа.

Система дистрибуции софта

Третьим важным моментом здесь является распространение программного обеспечения. Сейчас серверное программное обеспечение для ARM как правило собирается из исходных кодов, что требует времени и аппаратных ресурсов. В то время как для х86 есть удобная схема на основе RPM, используемая для дистрибуции. Создание чего-то подобного потребует огромной работы с независимыми поставщиками приложений и операционныx систем. И альянс может быть очень полезным для содействия в этом направлении.

Создание эффективного инсрументария.

В прошлом программные инструменты зарекомендовали себя надежным средством развития экосистемы. Поэтому сегодня внимание к ним имеет критическое значение. Один из лучших примеров это корпорация Intel, которая объединила разработчиков программных средств и инженеров по приложениям (application engineers) в одну организацию, как показано ниже. Красным отмечено критическое взаимодействие, зеленым -регулярное, желтым -спорадическое.
image
Это обеспечивает тесное сотрудничество между разработчиками инструментов. Это дает возможность аппликейшн инженерам (AE) использовать лучшие инструменты в отрасли. AE, работающие с одинаковыми ворклоадами обмениватются знаниями друг с другом и предоставляют консолидированную обратную связь архитекторам железа. И тд. И тп. Все это привело к интересным явлениям: инженеры, работающие в такой организации, начали думать не только о своей продукции, но и о широкой экосистемной картине. Они учитывают взаимозависимость между собой, а также влияние на экосистему в целом
Но чтобы создать такую организацию, нужен некий общий язык, который все стороны смогут использовать для общения. В какой-то момент метод анализа микроархитектуры TMAM, стал таковым.
image
ТМАМ обеспечивает способ сбора, интерпретации и использования событий микроархитектуры для профилировки и оптимизации приложений.
image
Наиболее важным преимуществом такого метода является то, что он дает объективную картину того, что происходит в железе, и позволяет улучшать как его, так и софт. Но, возможно, еще более важно то, что он является уникальным средством для создания эффективной организации по продвижению железа.

Вывод.

Построение экосистемы ARM на серверном рынке выглядит перспективно с экономической, политической и технологической точки зрения. Однако, оно происходит на фоне серьезной конкуренции с доминирующей архитектурой x86. К тому же ранние проблемы продвижения архитектуры еще далеки от того, чтобы назвать их решенными. Однако я верю, что в будущем ARM сможет стать серьезной силой на серверном рынке. Создание глобального индустриального альянса и эффективной организации по построению экосистемы представляется очень желательным.
Построение экосистемы ARM на серверном рынке выглядит перспективно с экономической, политической и технологической точки зрения. Однако, оно происходит на фоне серьезной конкуренции с доминирующей архитектурой x86. К тому же ранние проблемы продвижения архитектуры еще далеки от того, чтобы назвать их решенными. Однако я верю, что в будущем ARM сможет стать серьезной силой на серверном рынке. Создание глобального индустриального альянса и эффективной организации по построению экосистемы представляется очень желательным.
Россия видится одной из самых перспективных арен для построения ARM экосистемы со многих точек зрения. Правительственный курс на информационную независимость обеспечивает долгосрочную поддержку этой инициативы. Однако потенциал ARM-экосистемы еще даже полностью не осознан на правительственном уровне. Нужна серьезная работа для того, чтобы наш голос был услышан. Еще одна причина сравнительно большой рынок и разнообразие кастомеров как частных, так и государственных. Например, здесь можно назвать ресурсодобывающих гигантов (Газпром, Лукойл, Роснефть), ведущие банки (Сбер, ВТБ, Aльфа), провайдеров мобильных услуг (MTC, Meгафон, Билайн, Tеле2). Растет осознание необходимости альтернативы существующей инфраструктуре (x86, IBM, Oracle) как с точки зрения безопасности, так и с точки ценообразования.
Ну и последнее по счету, но не по значимости человеческий ресурс. В России много программистов, имеющих опыт решения экосистемных задач и думающих в этих терминах.
Подробнее..

Конвергенция Wi-Fi и IoT для современных кампусных сетей

29.12.2020 20:14:34 | Автор: admin
Привет, Хабр! Сегодня мы предлагаем поговорить не столько о продуктах и технологиях Huawei, сколько о гибридных решениях, которые строятся на базе точек доступа Wi-Fi и устройств интернета вещей.



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



Если ещё пять-семь лет назад концепция интернета вещей казалась далёкой от практического применения, сейчас IoT вовсю внедряют в корпоративные сети и городскую инфраструктуру. К примеру, в Москве как раз в наши дни реализуется колоссальный проект по создания системы умного освещения, в которой включение и выключение каждого светильника производится дистанционно сигналом через сеть 5G. Не оставлен в стороне и транспорт: автобусы или такси удобно снабдить множеством датчиков, позволяющих не только отслеживать параметры самих транспортных средств, но и собирать статистику, например, по загруженности дорог.

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

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



Чем в этой связи может быть полезно построение совместных сетей Wi-Fi и IoT? Начать стоит с основных проблем, с которыми рискует столкнуться потенциальный заказчик решения IoT, отделённого от существующей сетевой инфраструктуры.

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

Помочь заказчикам, испытывающим потребность в развёртывании и сетей беспроводного доступа Wi-Fi, и сетей IoT, призвана конвергентная архитектура. Она основана на применении точек доступа Huawei, допускающих расширение функциональности с помощью дополнительных аппаратных элементов. В такой точке доступа имеется отдельный слот, куда при необходимости вставляется стандартизированный IoT-модуль, например Zigbee или сканер меток RFID. Существуют и такие точки доступа, которые уже в базовой комплектации включают в себя миниатюрный Bluetooth-маяк. Эта дополнительная функциональность позволяет точке доступа не только работать по прямому назначению раздавать Wi-Fi в диапазонах 2,4 и 5 ГГц, но и собирать информацию, общаясь с IoT-устройствами (смартфонами, носимыми метками, электронными ценниками, терминалами съёма данных и пр.).

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



Общаясь со своими заказчиками, мы выявили несколько наиболее востребованных на сегодняшний день сценариев применения IoT. Среди них и такой неочевидный на первый взгляд, как позиционирование клиентов или сотрудников. Эта механика может понадобиться, допустим, при построении систем внутренней навигации на определённой территории или систем управления персоналом (второй вариант особенно актуален для медицинских учреждений).

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

Ещё одна большая задача управление ресурсами. Актуальна она на производстве, в складских комплексах и любых других объектах, где необходимо постоянно контролировать местонахождение и статус различных технических средств, например погрузчиков.



Системы внутреннего позиционирования и навигации


Архитектура подобных IoT-систем состоит из нескольких уровней. На нижнем располагаются терминалы, смартфоны, ноутбуки, активные или пассивные метки (RFID, BLE и пр.). Выше находятся точка доступа Wi-Fi со встроенным модулем IoT, кампусная сеть и контроллер доступа. Венчает пирамиду управляющее всей системой программное обеспечение. В решениях внутренней навигации, к примеру, в роли такого ПО выступает специальная платформа отслеживания, которая связана с мобильным приложением, установленным на смартфоне сотрудника или клиента.

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



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



Мобильная часть платформы, устанавливаемая на смартфоны сотрудников или клиентов, является необходимым элементом IoT-систем внутренней навигации. Помимо всего прочего, она позволяет значительно повысить точность позиционирования клиентского терминала за счёт информации с модуля Bluetooth и гироскопа устройства.

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



Насколько точны такие системы позиционирования? Ответ наглядно показан на схеме выше. С помощью сочетания данных от правильно расставленных точек доступа Wi-Fi и с гироскопа смартфона удаётся достичь точности до 5 м. Повысить её до 3 м можно с помощью активной метки Wi-Fi, только нужно учитывать её высокую стоимость и достаточно высокое энергопотребление.

Если прикладная задача требует погрешности определения координат цели на уровне не более 3 м, рациональнее будет построить систему позиционирования с использованием установленного в точке доступа Bluetooth-маячка.



Системы управления активами


Перейдём к следующей прикладной задаче, которая решается с помощью интернета вещей и конвергентных систем Wi-Fi + IoT.

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

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

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



Чем здесь будет полезна конвергентная система Wi-Fi + IoT? Решение, построенное на основе точек доступа Huawei с установленными в них IoT-модулями, умеет собирать данные с активных и пассивных меток, размещённых на оборудовании. Метки контроля тока, например, помогают понять реальный статус использования активов по потреблению ими электричества. Метка позиционирования позволяет в реальном времени контролировать местонахождение интересующих нас устройств. А благодаря ручному считывателю RFID-меток можно отказаться от бумажных стикеров с номерами и проводить инвентаризацию, просто пронося сканер мимо промаркированных объектов на определённом расстоянии. Данные с метки поступают в терминал, который отправляет их в сеть Wi-Fi и далее к системам вышестоящего уровня.

Всё это помогает обеспечивать полную достоверность получаемой в ходе инвентаризации информации и высокую скорость её сбора.



Рассмотрим частный случай системы контроля ценных активов, которая построена на основе активных меток. Такая метка постоянно сообщает свой статус IoT-модулю в точке доступа Wi-Fi. Соответственно, отчёт о наличии и использовании того или иного актива в конкретной локации можно получить мгновенно в режиме онлайн. Как следствие, серьёзно сокращаются и трудозатраты в сравнении с инвентаризацией по классике.

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



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



Вот ещё один пример активного контроля использования оборудования в реальном времени. На фото выше вы видите прикреплённую к системному блоку ПК активную RFID-метку, которая регистрирует потребление энергии. Контролировать таким образом можно какую угодно технику, будь то медицинский прибор или станок ЧПУ. Помимо информации о местонахождении устройства и самом факте его работы, эта метка может передать и данные о потребляемом токе, то есть, по сути, о текущем режиме работы оборудования. Это позволяет собирать статистику по коэффициентам использования и простоя аппаратуры, анализировать эти сведения и решать задачи по оптимизации её эксплуатации.



Системы электронных ценников


С каждым годом добавляется прикладных задач, решение которых может быть основано на связке Wi-Fi + IoT. Так, наши клиенты и заказчики всё больше интереса проявляют к внедрению систем электронных ценников в розничной торговле.

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

Решение, конечно, есть. В уже развёрнутой современной сети Wi-Fi магазина в точки доступа Huawei устанавливаются модули управления электронными ценниками. Оператору магазина остаётся только разместить в торговом зале миниатюрные ESL ценники на основе цветной или монохромной электронной бумаги. Они несут информацию о цене, могут менять свой цвет (например, чтобы выделить скидочные товары), оборудованы светодиодной системой привлечения внимания, но, главное, все они управляются централизованно. Так что, когда потребуется оперативно изменить ценники в огромной торговой сети, достаточно будет поменять одно число в ERP-системе предприятия.



С точки зрения архитектуры решение довольно простое. На нижнем уровне находятся сами электронные ценники, которые обмениваются данными с расположенной уровнем выше точкой доступа Wi-Fi, снабжённой IoT-модулем. Ещё выше корпоративная сеть и контроллер, управляющий сетевыми устройствами. Параллельно с ним работает система управления ESL. На самом верху функционирует ERP-система торговой сети, формирующая запросы на изменение цен.

Прикладных задач, которые решаются установкой IoT-модулей в точки доступа Wi-Fi, очень много. И хотя многие проекты ещё пребывают на стадии POC-тестов, однако те сценарии, о которых мы рассказали, получили путёвку в жизнь. Об этом свидетельствует и то, как быстро растёт число компаний, готовых строить свои островки интернета вещей уже сегодня.
Подробнее..

Главные технологии корпоративных ADN-сетей в исполнении Huawei начало

18.01.2021 16:06:50 | Автор: admin
В 2021 году Huawei делает ставку на дальнейшее развитие корпоративных ADN-сетей. Что это за зверь, коротко обрисуем в этой статье по итогам доклада с прошедшего в конце 2020 года онлайн-форума Worldwide IP Club сообщества, которое мы создали для обсуждения инноваций и для нетворкинга в телекоме.



Чтобы разобраться с Huawei Enterprise ADN, полезно будет сперва сделать краткий экскурс в те вызовы, с которыми сталкиваются корпоративные сети в наши дни.



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

У такой сети две основные части сеть доступа и опорная сеть. На вышеприведённой схеме слева от региональной точки размещения оборудования располагается как раз таки сеть доступа, призванная обеспечивать подключение корпоративным кампусам, филиалам, внешним структурам, IoT-средам и т. д. Справа отображены межрегиональные и межоблачные соединения (interconnection).

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

I. Разрозненность ресурсных ёмкостей (network silos), из-за которой сервисы оказываются отъединены от сетевой инфраструктуры, возникает неразбериха с чересчур многочисленными сетевыми задачами, конфигурация самой сети переусложняется, а O&M теряет эффективность.

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

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

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



Чтобы справляться с перечисленными проблемами, Huawei создала решение на основе концепции сети с автономным управлением (autonomous driving network ADN), именуемое iMaster NCE. В него заложена функциональность цифрового двойника, end-to-end анализа намерений (более подробно о концепции intent-driven network мы уже писали на Хабре), а также технология интеллектуального принятия решений.

  • Принцип intent-driven. На протяжении всего жизненного цикла сети те, кто ею управляет, могут использовать простой WYSIWYG-инструментарий для того, чтобы держать её под полным своим контролем.
  • Интеллектуальное принятие решений. Система упрощает человеку выбор оптимальных решений. Например, на этапе развёртывания сервиса она способна подсказать подходящие сетевые настройки и конфигурации, а при анализе проблем даёт возможность быстро найти первопричину неполадки и сама предлагает шаги по её устранению.
  • Цифровой двойник. В iMaster NCE включена функциональность многоуровневого моделирования и управления KPI инфраструктуры с опорой на большие данные, которая оперирует виртуальными слепками любых физических устройств, входящих в состав сети. При этом решение осуществляет двунаправленное картирование между сетью и её двойником.


С помощью ADN, таким образом, удаётся осуществить пять важных преобразований.

  1. Упразднить сетецентричный, пассивный подход к управлению инфраструктурой и заменить его таким, при котором проактивно анализируются намерения её пользователей, благодаря чему, в частности, удаётся нивелировать зависимость от специфики конкретной реализации сети. iMaster NCE развёртывает сквозную автономную оптимизацию сети по замкнутому циклу.
  2. Отказаться от автоматизации частичной, на базе жёстких предварительных настроек, в пользу автоматизации гибкой, завязанной на многоуровневом моделировании. В результате от и до автоматизируются проектирование и построение сети, O&M-процессы и дальнейшее совершенствование инфраструктуры.
  3. Перейти от ручных проверок к поддержанию устойчивой работоспособности сервисов с помощью интеллектуальных технологий. Модель в числе прочего предусматривает симуляцию последствий события до того, как оно произойдёт в действительности, равно как и окончательное подтверждение действий постфактум, с возможностью откатить изменения.
  4. Сделать шаг от реактивного управления сетью к интеллектуальному проактивному мониторингу и анализу изменений. Администраторы сети видят проблему в зачатке ещё до того, как она повлияет на тот или иной сервис и её заметят пользователи, и могут оперативно разобраться с ней.
  5. Заменить работу с опорой на человеческий фактор, преимущественно на опыт экспертов, применением модели, где преобладает принятие решений с помощью умных технологий, в том числе при проектировании сети, мониторинге, анализе и оптимизации сетевых взаимодействий




Главное же в модели анализа намерений (intent-driven) перевод бизнес-запросов пользователей на сетевой уровень. У процесса выделяются три значимые составляющие.

  1. Формирование отвлечённой модели намерений (intent abstraction). В корпоративных сетях большая часть намерений относится к взаимодействиям между пользователями, конечными устройствами и приложениями. Как следствие, необходима модель, которая будет обобщать их требования на протяжении всего жизненного цикла сети и обеспечивать их кастомизацию, основанную на сценарном подходе.
  2. Преобразование намерений (intent conversion). Высокоуровневые бизнес-намерения необходимо спроецировать на сетевой уровень и в конечном счёте конвертировать в прикладные рекомендации. Эта трансформация достигается за счёт двух технологий.
    • Умные рекомендации, основанные на алгоритмах моделирования, с учётом топологии сети и её ресурсов, поведенческих моделей, предпочтительных политик и пр., и адаптационном движке, который включает в себя механизм поиска решений (solver), компилятор и граф знаний.
    • Онлайн-проектирование на основе концепции цифрового двойника. Платформа не только предлагает решение, но и предоставляет для его проверки и обкатки песочницу с наглядной симуляцией, которая позволяет довести это решение до ума.
  3. Не зависящее от вендоров хранилище сетевых моделей. Это базис для работы с намерениями и автоматизации сетевой инфраструктуры. Сюда входят:
    • модели автоматизации корпоративной сети;
    • вендор-независимые модели абстрактного описания сетевых элементов;
    • сторонние модели (SDN, OVS и др.);
    • модели, задаваемые пользователями.




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

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

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

Бегло пройдёмся по базовым сценариям применения метода.

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


Вкратце сетевой анализ осуществляется в такой последовательности.

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




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

Пара примеров того, как это работает. Допустим, из какого-то бизнес-подразделения компании поступает сигнал о том, что у них отвалился доступ к приложению. Платформа iMaster NCE, прежде всего благодаря динамическому моделированию топологии сети, позволяет легко запросить и изучить в наглядном представлении все метрики, касающиеся приложения. Также благодаря навигатору маршрутизации удобно проследить на всех уровнях сети, откуда и куда шёл и идёт трафик, по принципу end-to-end вплоть до конкретного физического устройства, например смартфона (проверяется досягаемость участков и элементов сети, петли и чёрные дыры маршрутизации и т. д.). В свою очередь, благодаря комплексной визуализации работы аналитического инструментария можно оперативно проверять, в порядке ли записи по конкретным устройствам в таблицах маршрутизации, а также мониторить уведомления, логи и записи об изменениях конфигурации. А с помощью рекомендованного службой RunBook решения (разумеется, администратор волен предпочесть поступить так, как сочтёт нужным) при необходимости быстро восстанавливается работоспособность составных частей сети и сервисов и устраняются неисправности в ней.

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

  • стабильно ли функционирует оборудование в порядке ли платы, вентиляторы, блоки питания, процессоры, память и т. д.;
  • нет ли проблем в соединениях между входящими в сеть физическими устройствами, в том числе в норме ли статусы портов и трафик, длина очередей и коэффициент оптического затухания, не слишком ли велик процент битых пакетов и пр.;
  • работают ли агрегация M-LAG, маршрутизация посредством OSPF, BGP и др.;
  • всё ли хорошо с наложенной сетевой инфраструктурой, включая текущие статусы BD, VNI, VRF, EVPN и SRV6;
  • штатно ли осуществляется переадресация на уровне сервисов, и в частности каковы настройка TCP-соединения.


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

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



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

За счёт моделирования абстрактное описание сетевых элементов может быть преобразовано в конкретные запросы в плоскости объектной модели.

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

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



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

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

  1. Синергия между облачными ресурсам и тем, что находится во внутреннем контуре организации: мы располагаем единой моделью знаний о сетевых взаимодействиях и стандартами, которые позволяют передавать эти знания и данные между on-premise и cloud-частью гибридной инфраструктуры и далее совершенствовать ML-алгоритмы, на которых основан iMaster NCE.
  2. Анализ осуществимости решений. Многомерное дерево решений помогает подбирать максимально целесообразные альтернативные решения.
  3. Анализ влияния. Платформа умеет с высокой точностью прогнозировать результаты, которые способно повлечь за собой принятие тех или иных рекомендаций, применительно к сети в целом и к отдельным сервисам.
  4. Моделирование решений. Система подсказывает администратору оптимальный способ устранения неисправности.


***


Инженеры Huawei продолжают совершенствовать ADN-решения, чтобы повышать степень самостоятельности сетевой инфраструктуры и её способности к самовосстановлению, и мы непременно будем писать о новых разработках в этом направлении. А ознакомиться с решением iMaster NCE-Fabric вживую можно в нашем демооблаке с помощью пресейл-инженеров Huawei.
Подробнее..

Рыцарь в доспехах, а BPDU слова его любви

04.06.2021 10:04:57 | Автор: admin

Тоннель EOIP (обычно применяемый одним известным брендом) не пропускает BDPU по умолчанию. А это значит, что если протащить VLAN через EOIP, закольцуя его в целях резервирования, то не стоит надеяться, что STP его отработает. Случится петля. Коммуникации в этом VLAN не произойдет - каждый из коммутаторов возомнит себя королем и voil - ваша сеть стоит на коленях! Если вы знаете как настроить EOIP на пропуск BPDU, то, пожалуйста, напишите об этом в комментарии! Эта информация будет полезна.

Топология Spanning Tree возникает благодаря BPDU (Bridge Protocol Data Unit). Это то, что делает возможным свободную от петель коммуникацию на сети с избыточными линками. И наверное, первое, что нужно сделать перед созданием избыточного линка, будь он логическим или физическим, - это проверить есть ли обмен BPDU между коммутаторами.

Можно подумать о BPDU как о языке любви, возникающий между железками и на основе которого расцветает и распускается дерево Spanning Tree. Они как слова, которыми влюбленные обмениваются друг с другом. И любовь их питается этими словами. А если нет слов, то нет и любви.

Каждое это слово любви содержит информацию об отправителе. Этой информацией они делятся - так они узнают друг о друге и решают, кто будет главным в семье: кто альфа, а кто омега. И главное, на что коммутаторы смотрят - это идентификатор Bridge ID (Bridge Identifier). Каждый из коммутаторов, который имеет включенный Spanning Tree Protocol, несет этот идентификатор. И есть три элемента, которые являются частью этого идентификатора и делают его уникальным для каждого коммутатора. Первый из них - это приоритет (Priority). Его значение по умолчанию равно 32768. (Сколько бит будет задействовано, чтобы получить такое значение?). А если так, то все коммутаторы, настроенные по умолчанию, будут иметь равные шансы стать альфой в семье, так? Нет! Тут вступает в роль второй элемент. Это номер VLANa. Коммутатор приплюсует номер VLANa к приоритету. Например, если номер VLANa - 7, то Bridge ID будет равен 32768 + 7 = 32775. Но и это не сделает коммутатор королем, даже если оба коммутатора имеют VLAN 7. Поэтому знакомьтесь с третьми элементом - MAC address, совершенно уникальным идентификатором.

Однако тут стоит оговориться. Второй элемент не найти на коммутаторах Huawei по умолчанию он часть проприетарного протокола PVST другого известного вендора. Значение номера VLANa не играет никакой роли в STP на Huawei сети второго уровня, пока мы не скажем ему делать это. IOSv устанавливает rapid-pvst протоколом по умолчанию. Huawei mstp. В этом разница. И это может пролить немного света почему вендоры не рекомендуют совмещать свои продукты с продуктами других компаний, если даже, казалось бы, они выполняют одну задачу и работают с одной и той же логикой.

Как же сделать балансировку между разными VLANs? Как же назначить королем один коммутатор для одного VLAN, а для другого VLAN сделать королем другой коммутатор? Балансировка нагрузки возможна: Huawei сделал для этого собственный протокол - VBST (VLAN BASES SPANNING TREE). Он позволяет, используя приоритеты VLANs, манипулировать деревом для каждого VLAN.

Команда display stp к вашим услугам, чтобы посмотреть Bridge ID :

CIST - это аббревиатура (Common and Internal Spanning Tree). Как уже было сказано, Huawei сделал MSTP режимом по умолчанию, поэтому мы видим здесь терминологию "регионов". В данном случае CIST Root/ERPC показывает локальный Bridge ID коммутатора LSW4. Причем Bridge ID это не только значение приоритета, это вся строчка с приоритетом и мак-адресом.

При этом все меняется, если применить пару команд: включить vbst, активировать его на конкретном VLAN, например, на VLAN 7.

[LSW4]stp mode vbst

[LSW4]stp vlan 7 enable

Говоря теперь о втором элементе, то, во-первых, он назван Root ID, что является локальным значение дерева VLAN 7 на этом коммутаторе, и во-вторых, он калькулируется как сумма дефолтного значения и номера VLAN: 32768 + 7.

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

Подробнее..

Обучение с подкреплением и эвристический анализ на коммутаторах ЦОД предпосылки и преимущества

29.11.2020 16:21:40 | Автор: admin
Перед конференцией AI Journey, которую Huawei поддерживает как титульный партнёр и на которой выступит несколько наших спикеров, мы решили поделиться предварительной информацией о наших наработках, и в частности о том, как используем искусственный интеллект в умных сетях ЦОД. И заодно пояснить, почему устоявшихся технологий недостаточно для построения современных сетей ЦОД и нам нужна дружеская помощь от ИИ.




Что происходит в сфере условных lossless-сетей


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

Как следствие, считалось правильным строить референсную выделенную сеть под определённый сценарий:

  • IB для кластеров высоконагруженных вычислений;
  • FC для классической сети хранения;
  • Ethernet для сервисной задачи.


Попытки добиться универсальности выглядели приблизительно как на иллюстрации.



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

Сегодня Huawei видит будущее в многозадачных конвергентных фабриках и предлагает своим заказчикам решение AI Fabric, рассчитанное, с одной стороны, на сценарии повышения производительности сети без потерь (до 200 Гбит/с на порт сервера в 2020 году), с другой на увеличение производительности самих приложений (переход к RoCEv2).

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

Что нуждается в оптимизации


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

Static ECN приводит к тому, что с увеличением числа серверов-отправителей при едином получателе вырисовывается, мягко говоря, неоптимальная картина трафика (мы имеем дело с так называемой many-to-one incast моделью).



В традиционном Ethernet нам придётся вручную добиваться баланса между коэффициентами вероятности потерь на сети и низкой производительностью самой сети.



Те же предпосылки мы увидим также при использования связки PFC/ECN в случае реализации без постоянного тюнинга (см. рис. ниже).



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



Раньше, когда мы использовали связку чипсет Broadcom + ИИ-процессор Ascend 310, у нас было ограниченное количество возможностей по тюнингу таких параметров.

Такой вариант мы можем условно назвать Software AI ECN, так как логика делается на отдельном чипе и уже проливается в коммерческий чипсет.


У моделей, которые снабжены чипсетом P5 производства Huawei, ИИ-возможности существенно шире (особенно на свежем релизе), благодаря тому, что на нём реализована значительная часть необходимой для этого функциональности.



Как используем алгоритмы


Используя Ascend 310 (или встроенный в P-карты модуль), мы начинаем анализировать трафик и сравнивать его с эталонной базой известных приложений.



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



Ключевые моменты:

  1. Производится обучение с подкреплением DDQN, исследование, накопление большого количества конфигураций базовых линий и исследование лучшей стратегии соответствия ECN.
  2. Классификатор CNN идентифицирует сценарии и определяет, является ли рекомендуемый порог DDQN надёжным.
  3. Если рекомендуемый порог DDQN ненадёжен, для его коррекции используется эвристический метод, с тем чтобы убедиться, что решение является обобщённым.


Такой подход позволяет скорректировать механизмы работы с неизвестными приложениями, а при большом желании можно и задать модель для своего приложения, используя Northbound API к системе управления коммутаторами.



Ключевые моменты:

  1. DDQN накапливает большое количество образцов памяти для конфигурации базовой линии и глубоко исследует логику согласования состояния сети и конфигурации базовой линии для изучения политик.
  2. Классификатор нейронных сетей CNN идентифицирует сценарии, чтобы избежать рисков, которые могут возникнуть, когда ненадёжные конфигурации ECN рекомендуются в неизвестных сценариях.


Что получаем


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

  • Проблемы производительности: низкая пропускная способность, длительная задержка, потеря пакетов, джиттер.
  • Проблемы с PFC: PFC-тупик, HOL, штормы и т. д. PFC-технология вызывает множество проблем системного уровня.
  • Проблемы приложений RDMA: ИИ / высокопроизводительные вычисления, распределённое хранение и их сочетания. RDMA-приложения чувствительны к производительности сети.


Резюме


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

***


Материалы по решениям Huawei продолжают появляться в нашей онлайн-библиотеке. В том числе по темам, затронутым в этом посте (например, до построении полноразмерных ИИ-решений под различные сценарии умных ЦОДов). А список наших вебинаров на ближайшие недели вы найдёте по ссылке.
Подробнее..

Искусственный интеллект в сети ЦОД опыт Huawei

05.12.2020 18:16:42 | Автор: admin
По следам своего доклада на конференции AI Journey, прошедшей 4 декабря, хочу рассказать вам, как правильное применение ИИ-систем в управлении сетью позволяет строить на базе решений Huawei современные центры обработки данных без узких мест и без потери пакетов. Выгоды от таких решений особенно наглядны, когда в ЦОДе эксплуатируются хранилища All-Flash, проводится обучение нейросетей или выполняются высокопроизводительные вычисления на GPU.





Трансформация ЦОД


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

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



Решения Huawei для каждого этапа трансформации


На каждой стадии в зависимости от IT-зрелости заказчика компания Huawei предлагает собственные решения, призванные обеспечить наилучший результат модернизации без лишних трат. Сегодня хотелось бы подробнее поговорить как раз о вишенке на торте системах ИИ в современных ЦОДах.



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

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

Производители пытались решить проблему по-разному. Кто-то выбирал для построения сети лицензированные технологии InfiniBand (IB). Сеть получалась специализированной и способной решать только узкопрофильные задачи. Кто-то предпочитал строить сетевые фабрики на протоколах Fibre Channel (FC). Оба подхода имели свои ограничения: либо пропускная способность сети оказывалась относительно скромной, либо общая цена решения кусалась, что вдобавок усугублялось зависимостью от одного вендора.

Наша компания пошла путём использования открытых технологий. В основу решений Huawei легла работа со второй версией RoCE, возможности которой были расширены за счёт использования дополнительных лицензируемых алгоритмов в наших коммутаторах. Это позволило серьёзно оптимизировать возможности сетей.



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

В последнее время FC шагнул вперёд к автономным сетям хранения данных, но продолжает нести в себе ограничения производительности. Сейчас мейнстрим шестое поколение технологии, позволяющее добиться пропускной способности 32 Гбит/с, начинают внедряться и решения 64 Гбит/с. При этом с помощью Ethernet мы уже сегодня, используя таблицы приоритета, можем получить 100, 200 и даже 400 Гбит/с до сервера.



Дополнительные возможности сети ЦОД приобретают особое значение в мире, где твердотельные накопители со скоростными интерфейсами занимают всё большую долю рынка, вытесняя классические шпиндельные. Huawei стремится к тому, чтобы дать СХД на основе SSD полностью раскрыть свой потенциал.



Сеть ЦОД следующего поколения


Небольшой пример того, как мы это делаем. На схеме изображена одна из наших систем хранения данных, признанных самыми быстрыми в мире. Здесь же показаны наши серверы, построенные на архитектуре x86 или ARM и демонстрирующие производительность на уровне ожиданий крайне требовательных клиентов. В ЦОДах на основе этих решений нам удаётся добиться сквозной задержки не более 0,1 мс. Получить такой результат нам помогает использование новых application-технологий.

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



Рассмотрим в рамках этого же примера использование сетей с дополнительными лицензируемыми алгоритмами. Они позволяют оптимизировать сквозную задержку, существенно повысить пропускную способность сети и увеличить количество операций ввода-вывода на единицу времени. Такой подход помогает избежать двойной закупки, подчас необходимой для достижения необходимых параметров производительности, а совокупная экономия (в измерении TCO) при внедрении новой сети достигает 1840% в зависимости от моделей применяемого оборудования.



Что же это за вау-алгоритмы?


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

Используя в коммутаторах дополнительные чипсеты машинного обучения, мы научили сеть работать в режиме, позволяющем строить интеллектуальные сети ЦОД без потерь пакетов (мы назвали его iDCN).



Как достигается интеллектуальная оптимизация? Те, кто занимается нейросетями, легко найдут на схеме знакомые элементы и механизмы training / inference. Наличие в наших решениях встроенных моделей сочетается со способностью обучаться на конкретной сети.



Система ИИ накапливает определённый объём знаний о сети, которые затем аппроксимируются и используются при динамической настройке сети. В устройствах на базе наших собственных аппаратных решений применяется специальный ИИ-чип. В моделях, построенных на лицензируемых чипсетах американских производителей, задействуются дополнительный модуль и программная шина.



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



На схеме процесс представлен более подробно. На старте оптимизации сети мы производим вычисления пороговых значений как минимальных, так и максимальных. Далее в дело вступает конволюционная нейронная сеть (CNN). Таким образом удаётся выровнять пропускную способность и коэффициенты задержек для каждого приложения, а также определить его общий вес в рамках сетевых сервисов. Используя такой стратифицированный подход, мы получаем действительно интересные выводы.



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



От теории к практике


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



Обратимся к результатам открытых тестов. Независимая лаборатория The Tolly Group протестировала наше решение и сравнила его с решениями Ethernet и IB других производителей. Как показали испытания, производительность продукта Huawei эквивалентна возможностям IB и на 27% превосходит Ethernet-продукты других крупных производителей.



Максимальную эффективность сеть ЦОД без потерь демонстрирует в нескольких сценариях, как то:

  • обучение ИИ;
  • централизованное хранение;
  • распределённое хранение;
  • высокопроизводительные вычисления на GPU.




В заключение рассмотрим один из сценариев применения интеллектуальной сети ЦОД. Многие заказчики используют распределённые системы хранения (SDS). Интегрируя между собой программные СХД разных производителей с помощью нашего решения, можно добиться на 40% более высокой производительности, чем без него. А значит, когда известен требуемый уровень производительности вашей SDS, его можно добиться, используя на 40% меньше серверов.

***


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

Конкурс про ИИ на форуме Huawei Enterprise

25.12.2020 18:10:30 | Автор: admin
Сегодня ИИ используется в самых разных научных областях: ядерной- и радиофизике и электронике, космических исследованиях, геологии и геофизике, биологии, медицине, экономике, социальных исследованиях, юриспруденции, лингвистике и др. Какие компании разрабатывают эти технологии и воплощают их в жизнь, какие направления и разработки наиболее перспективны?

image

Узнать из первых рук о новых технологиях, поучаствовать в дискуссиях, вступить в клубы по интересам вы сможете на русскоязычном форуме Huawei Enterprise.

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

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

Проект IBM Watson обещал революционизировать сферу лечения рака, но Согласно внутренним документам компании IBM, многие врачи остались недовольны первыми результатами тестирования системы Watson for Oncology. Специалисты выявили многочисленные примеры небезопасных и некорректных рекомендаций по лечению, составленных суперкомпьютером


Приглашаем вас на форум поделиться своим мнением о том, что нам даст эра искусственного интеллекта. Где, по вашему мнению, наиболее востребованы эти технологии? С какими технологиями вы работали или хотите поработать, например Huawei Atlas.

Интересно узнать ваш взгляд на варианты их применения в будущем, о том, как изменится мир с появлением ИИ. Фантазируйте о мире с искусственным интеллектом!

До 17 января 2021 г. вы можете участвовать и выиграть технику Huawei: ноутбук, телефоны, часы, наушники.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru