Создание реальных облачных приложений с помощью Azure

Майк Уоссон, Рик Андерсон (, том Dykstra)

Скачивание решения ИТ-проекта или Загрузка электронной книги

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

Содержимое основано на презентации, разработанной Скотт Гатри (, и доставляется ИТ-специалистом на конференции для норвежских разработчиков (NDC) в июне 2013 (часть 1, часть 2) и в Microsoft Tech Ed австралии в сентябре, 2013 (часть 1, часть 2). Многие другие были обновлены и дополнены содержимым при переходе из видео в письменную форму.

Целевая аудитория

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

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

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

Шаблоны разработки в облаке

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

  • Автоматизируйте все.

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

    • Настройка структуры ветвления в системе управления версиями для упрощения рабочего процесса DevOps.
    • Демонстрация: Добавление скриптов в систему управления версиями.
    • Демонстрация: Обеспечьте защиту конфиденциальных данных от системы управления версиями.
    • Демонстрация. использование Git в Visual Studio.
  • Непрерывная интеграция и доставка.

    • Автоматизируйте сборку и развертывание с каждым возвратом системы управления версиями.
  • Рекомендации по веб-разработке.

    • Сохранение состояния веб-уровня.
    • Демонстрация: масштабирование и автоматическое масштабирование в веб-приложениях в службе приложений Azure.
    • Избегайте состояния сеанса.
    • Используйте CDN с откатом, если сеть CDN недоступна.
    • Используйте асинхронную модель программирования.
    • Демонстрация: async в ASP.NET MVC и Entity Framework.
  • Единый вход.

    • Введение в Azure Active Directory.
    • Демонстрация. Создание приложения ASP.NET, использующего Azure Active Directory.
  • Варианты хранения данных.

    • Типы хранилищ данных.
    • Выбор правильного хранилища данных.
    • Демонстрация: база данных SQL Azure.
  • Стратегии секционирования данных.

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

    • Храните файлы в облаке с помощью службы BLOB-объектов.
    • Демонстрация. Использование хранилища BLOB-объектов в приложении Fix ИТ.
  • Разработайте, чтобы выдерживать сбои.

    • Типы сбоев.
    • Область сбоя.
    • Основные сведения об SLA.
  • Мониторинг и данные телеметрии.

    • Почему необходимо купить приложение телеметрии и написать собственный код для инструментирования приложения.
    • Демонстрация: новые Relic для Azure
    • Демонстрация. Регистрация кода в приложении Fix ИТ.
    • Демонстрация. внедрение зависимостей в приложение Fix ИТ.
    • Демонстрация. Встроенная поддержка ведения журнала в Azure.
  • Обработка временных сбоев.

    • Используйте интеллектуальную логику повтора и возврата, чтобы уменьшить влияние временных сбоев.
    • Демонстрация. повторное или обратное отключение в Entity Framework 6.
  • Распределенное кэширование.

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

    • Обеспечение высокой доступности и повышение масштабируемости благодаря слабо связанным веб-и рабочим уровням.
    • Демонстрация. очереди службы хранилища Azure в приложении Fix ИТ.
  • Дополнительные шаблоны и рекомендации для облачных приложений.

  • Приложение. Пример приложения для устранения проблем

    • Известные проблемы
    • Рекомендации
    • Загрузка, сборка, запуск и развертывание.

Эти шаблоны применяются ко всем облачным средам, но мы продемонстрируем их с помощью примеров на основе технологий и служб Майкрософт, таких как Visual Studio, Team Foundation Service, ASP.NET и Azure.

В этой оставшейся части главы представлен пример приложения Fix it и веб-приложения в облачной среде службы приложений Azure, в которой выполняется приложение для устранения проблем.

Пример приложения Fix ИТ

Большинство снимков экрана и примеров кода, приведенных в этой электронной книге, основаны на приложении Fix ИТ, первоначально разработанном Скотт Гатри ( , чтобы продемонстрировать Рекомендуемые шаблоны и методики разработки облачных приложений.

Домашняя страница исправления ИТ-приложения

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

Это стандартный веб-проект Visual Studio. Он основан на ASP.NET MVC и использует базу данных SQL Server. Он может выполняться локально в IIS Express и может быть развернут на веб-сайте Azure для запуска в облаке. Для входа можно использовать проверку подлинности с помощью форм и локальную базу данных или поставщика социальных сетей, например Google. (В дальнейшем мы также покажем, как войти в систему с помощью Active Directory учетной записи организации.)

Страница входа

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

Создание задачи решения ИТ

Задача создания решения для ИТ

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

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

Веб-приложения в службе приложений Azure

Облачная среда, используемая для решения проблем ИТ-приложения, — это служба Azure, которая вызывает веб-сайты. Эта служба позволяет разместить собственное веб-приложение в Azure без необходимости создавать виртуальные машины и обновлять их, устанавливать и настраивать службы IIS и т. д. Мы разместите сайт на наших виртуальных машинах и автоматически предпредоставите резервное копирование и восстановление, а также другие службы. Служба веб-сайтов работает с ASP.NET, Node. js, PHP и Python. Она позволяет быстро развертывать с помощью Visual Studio, веб-развертывание, FTP, Git или TFS. Обычно это всего несколько секунд между моментом запуска развертывания и тем временем, когда обновление будет доступно через Интернет. Все это можно начать, и вы можете увеличивать масштаб по мере роста трафика.

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

Служба развертывания

Когда пользователь обращается к веб-сайту, он не попадает в виртуальные машины IIS напрямую, они проходят через подсистемы балансировки нагрузки для запросов приложений (ARR) . Их можно использовать с собственными серверами, но преимущество здесь в том, что они настроены автоматически. Они используют интеллектуальную эвристику, учитывающую такие факторы, как сходство сеансов, глубина очереди в IIS и загрузка ЦП на каждом компьютере, чтобы направить трафик на виртуальные машины, на которых размещается веб-сайт.

Балансировщик нагрузки ARR

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

Автоматическое восстановление после сбоя компьютера

Все это происходит автоматически. Вам нужно всего лишь создать веб-сайт и развернуть в нем приложение, используя Windows PowerShell, Visual Studio или портал управления Azure.

Краткое и простое руководство, в котором показано, как создать веб-приложение в Visual Studio и развернуть его на веб-сайте Azure, см. в статье Начало работы с Azure и ASP.NET.

Сводка

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

Ресурсы

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

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

Видеоролики: