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

Рик Андерсон(Rick Anderson),Том Дайкстра (Tom Dykstra)

Скачать проект fix it или скачать электронную книгу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Домашняя страница приложения Fix It

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

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

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

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

Создание задачи

Исправление созданной задачи

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

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

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

Облачная среда, используемая для приложения Fix It, — это служба 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 облачной среде. Одним из преимуществ разработки приложений в облаке и для него является то, что можно легко автоматизировать повторяющиеся задачи разработки, такие как создание тестовой среды и развертывание в ней кода. Как это сделать , является темой следующей главы.

Ресурсы

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

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

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