изучение ОС Microsoft Azure. Введение Microsoft Azure облачная платформа компании Microsoft
Скачать 211.66 Kb.
|
Введение Microsoft Azure — облачная платформа компании Microsoft. Предоставляет возможность разработки, выполнения приложений и хранения данных на серверах, расположенных в распределённых дата-центрах. Microsoft Azure реализует облачные модели платформы как сервиса (PaaS) и инфраструктуры как сервиса (IaaS). Возможно использование как сторонних, так и сервисов Microsoft в качестве модели ПО как сервиса (SaaS). Помимо базовых функций операционных систем, Microsoft Azure имеет и дополнительные: выделение ресурсов по требованию для масштабирования, автоматическую синхронную репликацию данных для повышения отказоустойчивости, обработку отказов инфраструктуры для обеспечения постоянной доступности и другое. Модель предоставления инфраструктуры (IaaS) реализует возможность аренды таких ресурсов, как серверы, устройства хранения данных и сетевое оборудование. Управление всей инфраструктурой осуществляется поставщиком, потребитель управляет только операционной системой и установленными приложениями. Практически все сервисы Microsoft Azure имеют интерфейс взаимодействия API, построенный на основе ограничений для распределённых систем REST, что позволяет разработчикам использовать облачные сервисы с любой операционной системы, устройства и платформы. Кроме того, пользователи могут создавать и управлять собственными сервисами, пользуясь визуальным веб-интерфейсом портала Azure. Портал позволяет настраивать сервисы, редактировать права доступа, отслеживать состояние ресурсов и управлять биллингом. Platform as a Service Platform as a Service (PaaS, «платформа как услуга») — модель предоставления облачных вычислений, при которой потребитель получает доступ к использованию информационно-технологических платформ: операционных систем, систем управления базами данных, связующему программному обеспечению, средствам разработки и тестирования, размещённым у провайдера. В этой модели вся информационно-технологическая инфраструктура, включая вычислительные сети, серверы, системы хранения, целиком управляется провайдером, провайдером же определяется набор доступных для потребителей видов платформ и набор управляемых параметров платформ, а потребителю предоставляется возможность использовать платформы, создавать их виртуальные экземпляры, устанавливать, разрабатывать, тестировать, эксплуатировать на них прикладное программное обеспечение, при этом динамически изменяя количество потребляемых вычислительных ресурсов. Провайдер облачной платформы может взимать плату с потребителей в зависимости от уровня потребления, тарификация возможна по времени работы приложений потребителя, по объёму обрабатываемых данных и количеству транзакций над ними, по сетевому трафику. Провайдеры облачных платформ достигают экономического эффекта за счёт использования виртуализации и экономии на масштабах, когда из множества потребителей в одно и то же время лишь часть из них активно использует вычислительные ресурсы, потребители — за счёт отказа от капитальных вложений в инфраструктуру и платформы, рассчитанных под пиковую мощность, и непрофильных затрат на непосредственное обслуживание всего комплекса. Infrastructure-as-a-Service Инфраструктура как услуга (англ. Infrastructure-as-a-Service; IaaS) — одна из моделей обслуживания в облачных вычислениях, по которой потребителям предоставляются по подписке фундаментальные информационно-технологические ресурсы — виртуальные серверы с заданной вычислительной мощностью, операционной системой (чаще всего — предустановленной провайдером из шаблона) и доступом к сети. Популярным программным решением для создания IaaS является OpenStack. При подписке по модели «инфраструктура как услуга» потребитель, как правило, приобретает серверное время, умноженное на количество задействованных виртуальных процессоров и виртуальных объёмов памяти, а также пространство хранения (возможно, с различной тарификацией в зависимости от производительности), заданную сетевую пропускную способность, в некоторых случаях — сетевой трафик. IaaS находится на самом нижнем уровне среди облачных моделей обслуживания, в отличие от модели PaaS (где провайдер предоставляет готовое связующее программное обеспечение, СУБД, средства разработки) и SaaS (на котором предоставляется прикладное программное обеспечение), в IaaS не предусматривается контроль со стороны поставщика услуг за устанавливаемым программным обеспечением, он контролирует только физическую и виртуальную инфраструктуру. Software as a service SaaS (англ. software as a service — программное обеспечение как услуга; также англ. software on demand — программное обеспечение по требованию) — одна из форм облачных вычислений, модель обслуживания, при которой подписчикам предоставляется готовое прикладное программное обеспечение, полностью обслуживаемое провайдером. Поставщик в этой модели самостоятельно управляет приложением, предоставляя заказчикам доступ к функциям с клиентских устройств, как правило через мобильное приложение или веб-браузер. Основное преимущество модели SaaS для потребителя услуги состоит в отсутствии затрат, связанных с установкой, обновлением и поддержкой работоспособности оборудования и работающего на нём программного обеспечения. В модели SaaS: приложение приспособлено для удаленного использования; одним приложением пользуется несколько клиентов (приложение коммунально); оплата взимается либо в виде ежемесячной абонентской платы, либо на основе объёма операций; техническая поддержка приложения включена в оплату; модернизация и обновление приложения происходит оперативно и прозрачно для клиентов. Как и во всех формах облачных вычислений, заказчики платят не за владение программным обеспечением как таковым, а за его аренду (то есть за его использование через мобильное приложение или веб-интерфейс). Таким образом, в отличие от классической схемы лицензирования программного обеспечения, заказчик несет сравнительно небольшие периодические затраты, и ему не требуется инвестировать значительные средства в приобретение прикладной программы и необходимых программно-платформенных и аппаратных средств для его развёртывания, а затем поддерживать его работоспособность. Схема периодической оплаты предполагает, что если необходимость в программном обеспечении временно отсутствует, то заказчик может приостановить его использование и заморозить выплаты разработчику. С точки зрения разработчика некоторого проприетарного программного обеспечения модель SaaS позволяет эффективно бороться с нелицензионным использованием программного обеспечения, поскольку программное обеспечение как таковое не попадает к конечным заказчикам. Кроме того, концепция SaaS часто позволяет уменьшить затраты на развёртывание и внедрение систем технической и консультационной поддержки продукта, хотя и не исключает их полностью. Принцип работы Azure Azure, как и другие облачные платформы, основана на технологии, которая называется виртуализацией. Большую часть компьютерного оборудования можно эмулировать в программном обеспечении, так как это набор инструкций, которые навсегда или на какое-то время закодированы в кремниевые ИС. Используя слой эмуляции, в котором инструкции программного обеспечения сопоставляются с инструкциями оборудования, виртуализированное оборудование может работать в программном обеспечении так, как если бы оно было физическим. По сути, облако — это набор физических серверов в одном или нескольких центрах обработки данных, в которых работает виртуализированное оборудование, управляемое клиентами. Рассмотрим архитектуру оборудования в центре обработки данных. Внутри каждого центра обработки данных находится набор серверов, расположенных в серверных стойках. Каждая серверная стойка содержит много колонок серверов, а также сетевой коммутатор для подключения к сети, и блок распределения питания, который обеспечивает питание. Стойка иногда объединяются в более крупные единицы, которые называются кластерами. Большинство серверов внутри каждой стойки или кластера предназначены для работы этих экземпляров виртуализированного оборудования, управляемых пользователем. Но некоторые серверы запускают программное обеспечение для управления облаком, известное как контроллер структуры. Контроллер структуры представляет собой распределенное приложение с множеством функций. Он выделяет службы, следит за работоспособностью сервера и служб, работающих на нем, и восстанавливает серверы, когда на них происходит сбой. Каждый экземпляр контроллера структуры подключен к другому набору серверов под управлением программного обеспечения оркестрации облака. Обычно этот набор называется внешним интерфейсом. Внешний интерфейс размещает веб-службы, интерфейсы REST API и внутренние базы данных Azure, используемые всеми функциями облака. Например, на внешнем интерфейсе размещаются службы, которые обрабатывали запросы клиентов, чтобы выделить ресурсы Azure, такие как виртуальные машины, а также такие службы, как Azure Cosmos DB. Во-первых, внешний интерфейс проверяет пользователя и подтверждает, что пользователь авторизован для выделения ресурсов, на которые поступил запрос. В этом случае внешний интерфейс проверяет базу данных, чтобы обнаружить серверную стойку с достаточной емкостью, а затем предписывает контроллеру структуры в этой стойке выделить ресурс. Итак, Azure — это огромный набор серверов и сетевого оборудования, работающего со сложным набором распределенных приложений, для управления конфигурацией и работой виртуализованного оборудования и программного обеспечения на этих серверах. Это сочетание, которое делает Azure столь мощным, так как пользователи больше не отвечают за обслуживание и обновление оборудования, поскольку Azure выполняет все это в фоновом режиме. Сервисы В Microsoft Azure представлено более 600 сервисов, некоторые из которых перечислены ниже. Инфраструктурные сервисы Вычисления: Сервис Virtual Machines позволяет пользователям запускать виртуальные машины общего назначения под управлением Microsoft Windows, Linux, а также преднастроенные образы популярных сервисных пакетов. Служба Приложений позволяет разработчикам публиковать веб-сайты и управлять ими. Сервис хостинга веб-сайтов позволяет разработчикам создавать сайты с использованием .NET, PHP, Node.js или Python и разворачивать их с использованием FTP, Git, Mercurial, Team Foundation Server или загружать через пользовательский портал. WebJobs или, другими словами, приложения, которые могут быть развернуты в среде App Service для реализации фоновой обработки. Эту обработку можно запускать по расписанию, по требованию или выполнять непрерывно. Службы Blob, Table и Queue могут использоваться для связи между WebApps и WebJobs и для отслеживания состояния. Хранилище Сервисы хранения (Storage Services) предоставляют REST и SDK API для хранения данных в облаке и доступа к ним. Table Service позволяет программам хранить структурированный текст в секционированных коллекциях сущностей, доступ к которым осуществляется по ключу секционирования и первичному ключу. Это нереляционная база данных NoSQL. Blob Service позволяет программам хранить неструктурированный текст и двоичные данные в виде BLOB-объектов, к которым можно получить доступ по HTTP(S). Сервис BLOB-объектов также предоставляет механизмы обеспечения безопасности для контроля доступа к данным. Служба очередей (Queue Service) позволяет программам обмениваться сообщениями асинхронно с использованием очередей. Файловая служба (File Service) позволяет хранить и получать доступ к данным в облаке с помощью API REST или протокола SMB. Работа в сети Виртуальная сеть — это стандартный строительный блок для частной сети в Azure. Виртуальная сеть позволяет ресурсам Azure различных типов (например, виртуальным машинам Azure) обмениваться данными друг с другом через локальные сети и через Интернет. Load Balancer позволяет масштабировать приложения и обеспечивать доступность служб. Также поддерживает входящие и исходящие сценарии, обеспечивает низкую задержку и высокую пропускную способность. Шлюз приложений — это подсистема балансировки нагрузки веб-трафика, предназначенная для управления трафиком веб-приложений. VPN-шлюз — это тип шлюза виртуальной сети, используемый для отправки зашифрованного трафика между виртуальной сетью Azure и локальным расположением через общедоступный Интернет. Azure DNS — служба размещения доменов DNS, осуществляющей разрешение имен. Платформенные сервисы Мобильные сервисы: Сервис Mobile Engagement дает возможность собирать данные поведения пользователей в реальном времени. Он также предоставляет возможность отправки push-уведомлений на мобильные устройства. Сервис HockeyApp может использоваться для разработки, распространения и тестирования мобильных приложений. Управление данными Сервис поиска Azure (Azure Search) обеспечивает текстовый поиск и подмножество структурированных фильтров OData с использованием API REST или SDK. Cosmos DB — это служба базы данных NoSQL, которая реализует подмножество оператора SQL SELECT в документах JSON. Redis Cache — это управляемая реализация Redis. StorSimple управляет хранилищем и распределяет нагрузку между локальными устройствами и облачным хранилищем. SQL Database, ранее известная как SQL Azure Database, предназначена для создания, масштабирования и расширения приложений в облаке с использованием технологии Microsoft SQL Server. Она также интегрируется с Active Directory, Microsoft System Center и Hadoop. Azure SQL Data Warehouse — это облачное корпоративное хранилище данных (EDW), использующее массовую параллельную обработку (MPP) для быстрого выполнения сложных запросов с петабайтами данных. Azure Data Factory — это служба интеграции данных, которая позволяет создавать рабочие процессы в облаке для организации и автоматизации перемещения и преобразования данных. Azure Data Lake — это масштабируемая служба хранения и анализа данных для задач, связанных с большими данными, которые требуют от разработчиков массового выполнения параллельных запросов. Azure HDInsight — это служба, связанная с большими данными, которая развертывает Hortonworks Hadoop в Microsoft Azure и поддерживает создание кластеров Hadoop с использованием Linux с Ubuntu. Azure Stream Analytics — это серверный масштабируемый движок обработки событий, который позволяет пользователям разрабатывать и запускать аналитику в реальном времени для нескольких потоков данных из таких источников, как устройства, датчики, веб-сайты, социальные сети и другие приложения. Обмен сообщениями Сервисная шина Microsoft Azure позволяет приложениям, работающим в облаке или на внешних устройствах, обмениваться данными с Azure. Это помогает создавать масштабируемые приложения в сервис-ориентированной архитектуре (SOA). Сервисная шина Azure поддерживает четыре различных типа коммуникационных механизмов: Центры событий (Event Hubs), которые обеспечивают массовую передачу событий и телеметрии в облако. Например, центр событий может использоваться для отслеживания данных с мобильных телефонов, таких как данные GPS, в режиме реального времени. Очереди (Queues), которые добавляют возможность однонаправленных коммуникаций. Приложение-отправитель будет направлять сообщение в очередь сервисной шины, а получатель будет читать его из очереди. Хотя в очереди может быть несколько считывателей, только один обрабатывает одно сообщение. Разделы (Topics), которые обеспечивают однонаправленную связь с использованием шаблона подписки. Это похоже на очередь, однако каждый подписчик получит копию сообщения, отправленного в раздел. При желании подписчик может отфильтровывать сообщения на основе определенных критериев. Ретрансляторы (Relays), которые обеспечивают двунаправленную связь. В отличие от очередей и разделов, ретранслятор не хранит идущие сообщения в своей собственной памяти. Вместо этого он просто передает их в целевое приложение. Медиа-сервисы Служба кодирования — сервис, который предоставляет несколько видов кодировщиков, служащих для кодирования мультимедиа в облаке. Индексатор видео — облачное приложение, которое позволяет извлекать аналитические сведения из видеоматериалов с помощью описанных видео- и аудиомоделей. Потоковая трансляция — продукт, который позволяет проводить прямые трансляции в прямом эфире и по запросу. Система защиты содержимого позволяет защитить данные мультимедиа, покидающие компьютер, на этапах их хранения, обработки и доставки, а также доставлять в режиме реального времени и по требованию содержимое с динамическим шифрованием. Сеть кэширующих серверов (CDN) — глобальная сеть доставки содержимого Azure (CDN) для аудио, видео, приложений, изображений и других статических файлов. Его можно использовать для кэширования статических ресурсов веб-сайтов, географически расположенных ближе к пользователям, для повышения производительности. Сеть может управляться HTTP-API на основе REST. Проигрыватель мультимедиа Azure. Машинное обучение Сервис Microsoft Azure Machine Learning (Azure ML) является частью Cortana Intelligence Suite и служит для предиктивной аналитики и взаимодействия с данными с использованием естественного языка и речи. Сервис реализован с использованием Кортаны. Cognitive Services (ранее Project Oxford) — это набор API, SDK и сервисов, доступных для разработчиков, позволяющих создавать приложения с использованием интеллектуальных алгоритмов и машинного обучения. IoT Azure IoT Hub позволяет подключать, отслеживать и управлять ресурсами IoT. Azure IoT Edge — это управляемый сервис, построенный на IoT Hub, который позволяет осуществлять облачный анализ, развернутый локально на граничных устройствах IoT. Azure IoT Central — это управляемое приложение SaaS, которое упрощает подключение, мониторинг и управление ресурсами IoT. Azure Sphere — это сервис для создания связанных с микроконтроллером устройств (MCU). Azure Sphere обеспечивает сквозную безопасность IoT с помощью перекрестных MCU, защищенной ОС и облачной службы безопасности. Azure Digital Twins — это служба IoT, которая помогает строить модели физических сред, создавать графики пространственного интеллекта для моделирования отношений и взаимодействий между людьми, местами и устройствами. Azure Time Series Insights — это управляемое комплексное решение, позволяющее получать, хранить и запрашивать данные временных рядов IoT, а также визуализировать данные для их анализа. Azure Maps — геопространственные API для добавления карт, пространственной аналитики и мобильных решений для приложений. Azure IoT Solutions Accelerators (Preview) — сервис, в котором предлагаются распространенные наборы облачных сервисов, такие как удаленный мониторинг, промышленный IoT (IIoT), предиктивное профилактическое обслуживание. Azure Blockchain Workbench С помощью Azure Blockchain Workbench Microsoft предоставляет инфраструктуру для настройки сети в нескольких топологиях с использованием различных механизмов консенсуса. Microsoft обеспечивает интеграцию этих платформ блокчейна с другими службами Microsoft для оптимизации разработки распределенных приложений. Поддерживаются разные типы блокчейна общего назначения, включая Ethereum и Hyperledger Fabric, а также типы блокчейна специального назначения, такие как Corda. Функции Azure Функции Azure используются в архитектурах бессерверных вычислений, где подписчики могут выполнять код в качестве функции как услуги (FaaS) без управления ресурсами основного сервера. Для разработчиков Application Insights — это расширяемая служба управления производительностью приложений (APM) для веб-разработчиков на нескольких платформах. Azure DevOps предоставляет сервисы для разработчиков для поддержки групп по планированию работы, совместной работе над разработкой кода, а также по созданию и развертыванию приложений. Azure SDK — набор средств для разработчиков, предоставляемые Azure. Поддерживаемые языки и платформы разработки Для поддерживаемых языков программирования Microsoft предоставляет наборы библиотек. На данный момент поддерживаются следующие языки программирования и программные платформы: .NET Облачная платформа Azure поддерживает платформу разработки .NET, также созданную и поддерживаемую компанией Microsoft. Эти технологии можно использовать совместно для создания и размещения веб-приложений, создания бессерверных функций Azure, подключения и создания запросов к базам данных SQL, управления ресурсами API SQL в Azure Cosmos DB, развертывания приложений в Service Fabric и др. Java Язык программирования Java интегрирован с Azure. Он подходит для создания и развертывания веб-приложений, работы с базами данных, взаимодействия с сервисной шиной, интернетом вещей, когнитивными сервисами и др. Для настройки среды разработки и использования Azure с Java разработчик должен иметь учетную запись в облаке, Azure Cloud Shell или Azure CLI 2.0, Java 8 и Maven 3. Node.js (JavaScript) Язык JavaScript и его серверный фреймворк Node.js интегрированы с Azure. В рамках совместной работы платформ доступны разработка и размещение приложений, решения для хранения данных, поддержание безопасности инфраструктуры, мониторинг и ведение журнала, обмен сообщениями, интернет вещей, когнитивные сервисы, создание парадигмы DevOps и др. Python Язык программирования Python поддерживается облаком Azure. В рамках платформы его можно использовать для создания и развертывания приложений, работы с данными с использованием Cosmos DB, Redis, SQL Azure, PostgreSQL и MySQL, создания алгоритмов искусственного интеллекта и машинного обучения, обеспечения безопасности инфраструктуры и др. PHP Язык PHP на данный момент поддерживает наименьший функционал в облаке Azure по сравнению с другими интегрированными языками. Разработчики могут создать и развернуть веб-приложение PHP в Azure. Go Среди других возможностей, с помощью языка программирования Go можно развертывать виртуальные машины, передавать объекты в хранилище BLOB, подключаться к базам данных SQL Azure, PostgreSQL и MySQL. Преимущества ОСРВ Azure Ниже приведены преимущества, которыми обладает ОСРВ Azure в сравнении с другими операционными системами реального времени. Интуитивно понятная и согласованная структура API Интуитивно понятный и согласованный API. Соглашение об именовании с использованием конструкции "существительное — глагол". Все API имеют префикс (tx_ для ThreadX и fx_ для FileX) для простой идентификации принадлежности к компоненту ОСРВ Azure. Функциональная согласованность в API. Например, для всех функций API, которые поддерживают приостановку работы, реализована необязательная возможность использовать время ожидания. Возможность функционирует одинаково для всех функций. Многие API доступны непосредственно из подпрограмм ISR приложения. Необязательные обратные вызовы уведомления пользователя для операций с мультимедийными объектами и файлами. Модель программирования на основе событий (API). Высокая эффективность Код занимает небольшой объем памяти. Масштабируемый объем занимаемой кодом памяти в зависимости от используемых служб. Предварительная сертификация TUV и UL на соответствие стандартам IEC 61508 SIL 4, IEC 62304 (класс C), ISO 26262 ASIL D и EN 50128 SW-SIL4. Быстрое выполнение. ОСРВ Azure разработана для быстрой работы и имеет минимальное количество уровней для вызовов внутренних функций, что позволяет добиться максимально возможной производительности. Минимальное время выхода на рынок ОСРВ Azure легко устанавливать, осваивать, использовать, отлаживать, проверять, сертифицировать и обслуживать. Поэтому ОСРВ Azure является одной из самых популярных операционных систем реального времени для встраиваемых устройств Интернета вещей, в том числе для множества систем на кристалле от Broadcom, Gainspan и т. д. Наши возможности по стабильно малому времени выхода на рынок основаны на следующих факторах: Полная доступность исходного кода. Удобные API. Комплексный и широкий набор функций. Документация по управлению качеством. Одна простая лицензия Использование и тестирование исходного кода не требуют каких-либо затрат, как и производственные лицензии при развертывании на предварительно лицензированных устройствах. Для всех других устройств требуется лишь простая лицензия сроком на один год. Полный и высококачественный исходный код Уже несколько лет исходный код ОСРВ Azure задает стандарт качества и простоты понимания. Кроме того, соглашение по применению отдельного файла для каждой функции упрощает навигацию по исходному коду. Поддержка большинства популярных архитектур ОСРВ Azure работает с большинством популярных 32- и 64-разрядных микропроцессоров. Этот стек не требует дополнительной настройки, полностью протестирован и поддерживается в том числе в следующих передовых архитектурах: Analog Devices: SHARC, Blackfin, CM4xx; Andes Core: RISC-V; Ambiqmicro: микроконтроллеры Apollo; ARM: ARM7, ARM9, ARM11, Cortex-M0/M3/M4/M7/A15/A5/A7/A8/A9/A5x 64-bi/A7x 64-bit/R4/R5, TrustZone ARMv8-M; Cadence: Xtensa, Diamond; CEVA: PSoC, PSoC 4, PSoC 5, PSoC 6, FM0+, FM3, MF4, WICED WiFi; Cypress: RISC-V; EnSilica: eSi-RISC; Infineon: XMC1000, XMC4000, TriCore; Intel; Intel FPGA: x36/Pentium, XScale, NIOS II, Cyclone, Arria 10; Microchip: AVR32, ARM7, ARM9, Cortex-M3/M4/M7, SAM3/4/7/9/A/C/D/E/G/L/SV, PIC24/PIC32; Microsemi: RISC-V; NXP: LPC, ARM7, ARM9, PowerPC, 68 K, i.MX, ColdFire, Kinetis Cortex-M3/M4; Renesas: SH, HS, V850, RX, RZ, Synergy; Silicon Labs: EFM32; Synopsys: ARC 600, 700, ARC EM, ARC HS; ST: STM32, ARM7, ARM9, Cortex-M3/M4/M7; Tl: C5xxx, C6xxx, Stellaris, Sitara, Tiva-C; Wave Computing: MIPS32 4K, 24 K, 34 K, 1004 K, MIPS64 5K, microAptiv, interAptiv, proAptiv, M-Class; Xilinx: MicroBlaze, PowerPC 405, ZYNQ, ZYNQ UltraSCALE. |