Добавлен: 14.05.2023
Просмотров: 357
Скачиваний: 3
СОДЕРЖАНИЕ
1. Облачные технологии с точки зрения клиента
1.2. Обязательные признаки облачных сервисов
1.4 Крупнейшие поставщики облачной инфраструктуры
2. Принципы обслуживания облачных ресурсов с точки зрения поставщика
2.9. Подходы к разработке программного обеспечения для облачных ресурсов
Data Management — нереляционные хранилища данных: таблицы, диски, очереди, хранение двоичных объектов + реляционное хранилище данных в виде SQL Database.
Таблицы — хранилище таблиц используется приложениями, которые хранят большие объёмы данных с дополнительными требованиями к структурированию. В таблице хранятся структурированные данные, между которыми не устанавливаются отношения.
Очереди — очереди обеспечивают надежный и непрерывный обмен сообщениями между приложениями.
Блобы — хранилище BLOB-объектов — это простейший способ хранения больших объёмов неструктурированных текстовых или двоичных данных, таких как видео, музыкальные файлы и изображения.
SQL Database — реляционная база данных — это высокодоступная масштабируемая облачная служба базы данных, построенная на основе технологий SQL Server.
SQL DataSync — облачная служба синхронизации данных, обеспечивающая как однонаправленную, так и двунаправленную синхронизацию. Служба Data Sync позволяет легко обмениваться данными между SQL в Azure и локальными базами данных SQL Server, а также между несколькими базами данных SQL Databases (SQL Azure);
SQL Reporting — служба Microsoft SQL Reporting позволяет легко встроить в приложение Windows Azure возможности работы с отчётами. Данная служба более не поддерживается и не разрабатывается.
SQL Federations — федерация SQL в Azure значительно упрощает масштабирование множества баз данных, размещенных на сотнях узлов, что позволяет клиентам платить только за реально используемые ресурсы. Данная служба более не поддерживается и не разрабатывается.
Backup — этот сервис предлагает возможность организации защищённой инфраструктуры сохранения бэкапов Windows Server в облаке. Windows Azure Backup осуществляет поддержку бэкапов информации из систем на базе Windows Server 2008 R2 SP1 и Windows Server 2012, Windows Server 2012 Essentials и System Center Data Protection Manager 2012 SP1 в Windows Azure. Поддерживаются инкрементальные бэкапы. Поддерживаются политики и все стандартные средства бэкапов Windows Server для организации сжатия данных и шифрования.
Azure Files - этот сервис дает возможность обращаться к данным хранилища Azure Storage как к сетевому ресурсу по протоколу SMB, что позволяет осуществлять привычный доступ к данным из виртуальных машин через сетевое взаимодействие.
Performance and mobile:
Content Delivery Network — сеть кэширующих серверов (сеть CDN) повышает производительность приложений путём кэширования контента ближе к клиентам и пользователям, например, сеть CDN позволяет доставлять фрагменты мультимедийных файлов для динамического адаптивного воспроизведения мультимедиа поверх HTTP-контента.
Caching — распределённый кэш — распределённый кэш в памяти, с помощью которого вместо медленного дискового хранилища приложения получают высокоскоростной доступ к данным, хранящимся в оперативной памяти, с возможностью масштабирования;
Кэш на базе Redis — сервис Azure Redis Cache представляет собой готовое redis-хранилище с требуемым размером для задач кеширования данных
Media Services — службы мультимедиа включают в себя облачные версии многих существующих технологий платформы мультимедиа Microsoft и многих партнёров, в том числе для просмотра, кодирования, преобразования формата и защиты контента, а также потоковой передачи по запросу и в реальном времени.
Mobile Services — предлагает облачную инфраструктуру для всех популярных мобильных платформ: Windows 8, Windows Phone, iOS и Android. На основе сервиса можно построить облачный бэкенд, на который перенести задачи по хранению данных, аутентификации и Push-уведомлений. Поддерживается Xamarin.
Identity — служба идентификации обеспечивает управление удостоверениями и доступом к приложениям, с помощью службы Microsoft Azure Active Directory (бывший Access Control Service) можно обеспечить единый вход, повышенную безопасность и простое взаимодействие с уже развернутыми в Active Directory приложениями, а также выполнить интеграцию с другими провайдерами аутентификации (Live ID, Google, Facebook и т. п.). Windows Azure Active Directory позволяет решать задачи единой авторизации пользователей для множества сервисов (Single Sign On), вести единый каталог пользователей, синхронизировать данные каталога с Active Directory на предприятии и т. д. Microsoft Azure Active Directory — это полноценная реализация каталога в облаке. Сервис поддерживает популярные открытые стандарты обеспечения федераций: SAML 2.0, OData, WS-FED, OAuth 2.0/OpenID.
Connectivity:
Messaging:
Service Bus — интеграционная шина предоставляет возможности ретрансляции и безопасного обмена сообщениями и позволяет создавать распределённые и слабосвязанные приложения в облаке, а также гибридные приложения, размещенные одновременно в частных и общедоступных облачных службах. Оперирует терминами Relay, Topics, Queues, Notification Hubs. С июня 2013 года в Service Bus была внедрена глобальная доступность поддержки открытого стандарта AMQP.
BizTalk Services — сервис, который предназначен для решения задач интеграции разнородных окружений на уровне предприятия и облака, предлагая возможности Business-to-Business (B2B) и Enterprise Application Integration (EAI) взаимодействий.
Networking:
Virtual Network — сервис для соединения облачных инфраструктур с локальными методом Site-To-Site VPN и Point-To-Site VPN.
Connect — сервис более не поддерживается (заменен Virtual Network).
Traffic — диспетчер трафика обеспечивает балансировку нагрузки по входящему трафику между несколькими размещенными службами Windows Azure независимо от того, работают ли они в одном центре обработки данных или распределены по нескольким.
RemoteApp - Azure RemoteApp, который позволяет размещать в облаке Azure существующие клиентские Windows-приложения и получать к ним доступ с любых компьютеров, планшетов, ноутбуков или телефонов через RDP-клиент (Windows, Mac OS X, iOS и Android).
ExpressRoute — сервис Azure ExpressRoute предлагает пользователям возможность подключить собственную инфраструктуру напрямую к датацентрам Microsoft Azure минуя сеть интернет как промежуточное звено.
Store — Windows Azure Store предлагает унифицированный доступ к сервисам (не Microsoft) для проектов Microsoft Azure с единым биллингом и панелью управления.
Marketplace — это магазин облачных сервисов и данных для организаций. В настоящий момент в Marketplace доступно более 600 облачных решений и 170 источников данных.
HPC и Big Data — параллельные вычисления или планировщик HPC позволяет разрабатывать на платформе Microsoft Azure параллельные приложения, требующие больших вычислительных мощностей, кроме того, это средство позволяет по требованию запускать в облаке виртуальные узлы, предоставляя таким образом доступ к вычислительным ресурсам, необходимым для обработки пиковых или непредсказуемых нагрузок. Это позволяет использовать малые локальные кластеры и подключаться к Microsoft Azure, когда требуются дополнительные ресурсы. Кроме этого, в Microsoft Azure доступен сервис Microsoft Azure HDInsight (Hadoop). HDInsight — это облачный сервис, предлагающий экосистему и кластеры Hadoop по запросу. С помощью портала Microsoft Azure можно создавать кластеры Hadoop с размером до 32 узлов. Кроме создания задач MapReduce, можно получить доступ к интерактивной консоли, которая позволяет писать запросы к данным на JavaScript и Hive.
API Management - этот сервис предлагает разработчикам собственных API возможность получить окружение по управлению, мониторингу и администрированию своего API, размещенного в любом месте, как в облаке, так и на любом хостинге, включая собственную инфраструктуру. [1]
Для удобства приведём таблицу соответствий сервисов трёх гигантов:
|
Google Cloud Platform |
Amazon Web Services |
Microsoft Azure |
|
Google Compute Engine |
Amazon EC2 |
Azure Virtual Machines |
|
Google App Engine |
AWS Elastic Beanstalk |
Azure Cloud Services |
|
Google Container Engine |
Amazon EC2 Container Service |
Azure Container Service |
|
Google Cloud Bigtable |
Amazon DynamoDB |
Azure Cosmos DB |
|
Google BigQuery |
Amazon Redshift |
Microsoft Azure SQL Database |
|
Google Cloud Functions |
Amazon Lambda |
Azure Functions |
|
Google Cloud Datastore |
Amazon DynamoDB |
Cosmos DB |
|
Google Storage |
Amazon S3 |
Azure Blob Storage |
2. Принципы обслуживания облачных ресурсов с точки зрения поставщика
2.1. DevOps
DevOps (акроним от англ. development и operations) — набор практик, нацеленных на активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга. (Википедия)
Термин "DevOps" был популяризирован на конференции «Дни DevOps» ("DevOps Days") в 2009 году в Бельгии. После этого «Дни DevOps» проводились в Индии, США, Бразилии, Австралии, Германии, Швеции и даже в Росси, - где сумел побывать в 2017 году и я.
В производственной системе Toyota, например, роль профессионала DevOps схожа с должностью главного инженера. Этот сотрудник отвечает за успех проекта, но формально не руководит различным командами, задействованными на данном проекте. Деятельность специалиста DevOps требует знания используемых технологий и управленческой модели, чтобы убеждать менеджеров проектов принимать эффективные решения. Этому способствует авторитет «главного инженера», признанный руководством предприятия.
Большинство идей для DevOps взяты из методологии управления системами предприятия и движения Agile (операции и инфраструктура). [2]
2.2 Agile
Agile - Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративно-инкрементной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. На каждой итерации Agile-евангелист решает, кто из разработчиков при разработке в данный момент является самым компетентным. Существует несколько методик, относящихся к классу гибких методологий разработки, в частности экстремальное программирование, DSDM, Scrum, FDD.
Применяется как эффективная практика организации труда небольших групп (которые делают однородную творческую работу) в объединении с управлением ими комбинированным (либеральным и демократическим) методом.
Большинство гибких методологий нацелены на минимизацию рисков разрастания проектов в невыгодные затянувшиеся проекты путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся две-три недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, программирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации команда выполняет переоценку приоритетов разработки.
Agile-методы делают упор на непосредственное общение лицом к лицу. Большинство agile-команд расположены в одном офисе, иногда называемом англ. bullpen. Как минимум, она включает и «заказчиков» (англ. product owner — заказчик или его полномочный представитель, - бизнес-аналитик, системный аналитик или сам клиент, определяющий требования к продукту). Офис может также включать тестировщиков, дизайнеров интерфейса, технических писателей и менеджеров.
Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объём письменной документации по сравнению с другими методами. Это привело к критике этих методов как недисциплинированных. [3]
2.3 Ценности Agile
Манифест практики agile был придуман и объявлен 11-13 февраля 2001 года на съезде величайших системных аналитиков, архитекторов и разработчиков:
- Люди и взаимодействие важнее процессов и инструментов
- Работающий продукт важнее исчерпывающей документации
- Сотрудничество с заказчиком важнее согласования условий контракта
- Готовность к изменениям важнее следования первоначальному плану
То есть, не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.
2.4 Основные принципы Agile
- Наивысшим приоритетом является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения;
- Изменение требований приветствуется, даже на поздних стадиях разработки;
- Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев;
- На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе;
- Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им;
- Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды;
- Работающий продукт — основной показатель прогресса;
- Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно;
- Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта;
- Простота — искусство минимизации лишней работы — крайне необходима;
- Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд;
- Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.