Внешний интерфейс для электронной коммерции в AzureAn e-commerce front end on Azure

В этом примере сценария описывается реализация внешнего интерфейса для электронной коммерции с помощью средств платформы как услуги (PaaS) Azure.This example scenario walks you through an implementation of an e-commerce front end using Azure platform as a service (PaaS) tools. На многих веб-сайтах электронной коммерции известна проблема сезонности и изменчивости трафика с течением времени.Many e-commerce websites face seasonality and traffic variability over time. Когда спрос на ваши товары или услуги резко возрастает (прогнозируемо или нет), важно использовать средства PaaS, позволяющие обслуживать большее количество клиентов и транзакций.When demand for your products or services takes off, whether predictably or unpredictably, using PaaS tools will allow you to handle more customers and more transactions automatically. Кроме того, этот сценарий пользуется преимуществами ценообразования на облачные услуги, так как оплачиваются только используемые ресурсы.Additionally, this scenario takes advantage of cloud economics by paying only for the capacity you use.

Этот документ поможет вам узнать о различных компонентах Azure PaaS и рекомендациях, которые используются для объединения компонентов и развертывания примера приложения электронной коммерции, Releasecloud Concerts, сетевой платформы по продаже билетов на концерты.This document will help you will learn about various Azure PaaS components and considerations used to bring together to deploy a sample e-commerce application, Relecloud Concerts, an online concert ticketing platform.

Варианты соответствующего использованияRelevant use cases

Другие варианты использования:Other relevant use cases include:

  • Создание приложения, которое требует эластичной масштабируемости для обработки резкого увеличения количества пользователей в разное время.Building an application that needs elastic scale to handle bursts of users at different times.
  • Создание приложения, предназначенного для работы в условиях высокой доступности в разных регионах Azure во всем мире.Building an application that is designed to operate at high availability in different Azure regions around the world.

АрхитектураArchitecture

Пример архитектуры сценария для приложения электронной коммерции

Этот сценарий охватывает покупку билетов с сайта электронной коммерции, данные передаются по сценарию следующим образом:This scenario covers purchasing tickets from an e-commerce site, the data flows through the scenario as follows:

  1. Диспетчер трафика Azure направляет запрос пользователя на сайт электронной коммерции, размещенный в Службе приложений Azure.Azure Traffic Manager routes a user's request to the e-commerce site hosted in Azure App Service.
  2. Azure CDN предоставляет пользователю статические изображения и содержимое.Azure CDN serves static images and content to the user.
  3. Пользователь выполняет вход в приложение через клиент Azure Active Directory B2C.User signs in to the application through an Azure Active Directory B2C tenant.
  4. Пользователь выполняет поиск концертов с помощью службы "Поиск Azure".User searches for concerts using Azure Search.
  5. Веб-сайт извлекает сведения о концерте из базы данных SQL Azure.Web site pulls concert details from Azure SQL Database.
  6. Веб-сайт ссылается на изображения приобретенных билетов в хранилище BLOB-объектов.Web site refers to purchased ticket images in Blob Storage.
  7. Результаты запроса базы данных кэшируются в кэше Azure для Redis, чтобы повысить производительность.Database query results are cached in Azure Cache for Redis to improve performance.
  8. Пользователь отправляет заказы на билеты и отзывы о концертах, которые помещаются в очередь.User submits ticket orders and concert reviews, which are placed in the queue.
  9. Служба "Функции Azure" обрабатывает оплату заказа и отзывы о концертах.Azure Functions processes order payment and concert reviews.
  10. Cognitive Services предоставляет анализ концертной проверки, чтобы определить тональности (положительный или отрицательный).Cognitive Services provides an analysis of the concert review to determine the sentiment (positive or negative).
  11. Application Insights предоставляет метрики производительности для наблюдения за работоспособностью веб-приложения.Application Insights provides performance metrics for monitoring the health of the web application.

КомпонентыComponents

  • Azure CDN. Для уменьшения задержки предоставляет статическое, кэшированное содержимое из близких к пользователям расположений.Azure CDN delivers static, cached content from locations close to users to reduce latency.
  • Диспетчер трафика Azure. Управляет распределением пользовательского трафика между конечными точками службы в разных регионах Azure.Azure Traffic Manager controls the distribution of user traffic for service endpoints in different Azure regions.
  • Службы приложений — веб-приложения. Размещает веб-приложения, позволяющие выполнять автоматическое масштабирование и обеспечивать высокую доступность без необходимости управлять инфраструктурой.App Services - Web Apps hosts web applications allowing autoscale and high availability without having to manage infrastructure.
  • Azure Active Directory B2C. Служба управления идентификацией, которая позволяет настраивать и администрировать процессы входа и регистрации пользователей, а также управлять их профилями в приложениях.Azure Active Directory - B2C is an identity management service that enables customization and control over how customers sign up, sign in, and manage their profiles in an application.
  • Очереди службы хранилища. Хранит большое количество сообщений в очереди, доступ к которым может получить приложение.Storage Queues stores large numbers of queue messages that can be accessed by an application.
  • Функции. Это бессерверные параметры вычислений, которые позволяют приложениям запускаться по требованию без необходимости управления инфраструктурой.Functions are serverless compute options that allow applications to run on-demand without having to manage infrastructure.
  • Cognitive Services — анализ тональности. Используя API машинного обучения, разработчики могут легко добавлять в приложения интеллектуальные функции, например для определения эмоций и видео, распознавания лиц, речи и образов, а также речи и текста.Cognitive Services - Sentiment Analysis uses machine learning APIs and enables developers to easily add intelligent features – such as emotion and video detection; facial, speech, and vision recognition; and speech and language understanding – into applications.
  • Поиск Azure — это облачное решение типа "Поиск как услуга", которое предоставляет широкие возможности поиска по закрытому, разнородному содержимому в веб-, мобильных и корпоративных приложениях.Azure Search is a search-as-a-service cloud solution that provides a rich search experience over private, heterogeneous content in web, mobile, and enterprise applications.
  • Хранилище BLOB-объектов оптимизировано для хранения больших объемов неструктурированных данных, например текстовых или двоичных данных.Storage Blobs are optimized to store large amounts of unstructured data, such as text or binary data.
  • Кэш Azure для Redis повышает производительность и масштабируемость систем, которые сильно полагаются на серверные хранилища данных путем временного копирования часто используемых данных в быстрое хранилище, близкое к приложению.Azure Cache for Redis improves the performance and scalability of systems that rely heavily on back-end data stores by temporarily copying frequently accessed data to fast storage located close to the application.
  • База данных SQL — это управляемая служба реляционной базы данных общего назначения в Microsoft Azure, которая поддерживает такие структуры, как реляционные данные, JSON, ПРОСТРАНСТВЕННЫЕ и XML.SQL Database is a general-purpose relational database managed service in Microsoft Azure that supports structures such as relational data, JSON, spatial, and XML.
  • Application Insights. Помогает постоянно улучшать производительность и удобство использования, автоматически обнаруживая аномалии производительности с помощью встроенных инструментов аналитики, чтобы определить действия пользователей с приложением.Application Insights is designed to help you continuously improve performance and usability by automatically detecting performance anomalies through built-in analytics tools to help understand what users do with an app.

Альтернативные вариантыAlternatives

Доступно множество других технологий для создания клиентского приложения, ориентированного на электронную коммерцию в масштабе.Many other technologies are available for building a customer facing application focused on e-commerce at scale. Они предназначены для интерфейса приложения и уровня данных.These cover both the front end of the application as well as the data tier.

Другие варианты для веб-уровня и функций:Other options for the web tier and functions include:

  • Service Fabric. Это платформа, предназначенная для создания распределенных компонентов, которые получают преимущества от развертывания и выполнения в кластере с высокой степенью управления.Service Fabric - A platform focused around building distributed components that benefit from being deployed and run across a cluster with a high degree of control. Service Fabric также может использоваться для размещения контейнеров.Service Fabric can also be used to host containers.
  • Служба Azure Kubernetes. Это платформа для создания и развертывания контейнерных решений, которые можно использовать для реализации архитектуры микрослужб.Azure Kubernetes Service - A platform for building and deploying container-based solutions that can be used as one implementation of a microservices architecture. Это позволяет обеспечить гибкость различных компонентов приложения для независимого масштабирования по требованию.This allows for agility of different components of the application to be able to scale independently on demand.
  • Экземпляры контейнеров Azure. Это средство быстрого развертывания и запуска контейнеров с коротким жизненным циклом.Azure Container Instances - A way of quickly deploying and running containers with a short lifecycle. Контейнеры обычно развертываются для быстрой обработки, например обработки сообщений или выполнения вычислений, а затем отзываются после завершения операции.Containers here are deployed to run a quick processing job such as processing a message or performing a calculation and then deprovisioned as soon as they are complete.
  • Служебную шину можно использовать вместо очереди службы хранилища.Service Bus could be used in place of a Storage Queue.

Другие варианты для уровня данных:Other options for the data tier include:

  • Cosmos DB. Это глобально распределенная многомодельная база данных Майкрософт.Cosmos DB: Microsoft's globally distributed, multi-model database. Это платформа для запуска других моделей данных, таких как Mongo DB, Cassandra, Graph или простого хранения табличных данных.This service provides a platform to run other data models such as Mongo DB, Cassandra, Graph data, or simple table storage.

ОсобенностиConsiderations

ДоступностьAvailability

МасштабируемостьScalability

БезопасностьSecurity

УстойчивостьResiliency

Развертывание сценарияDeploy the scenario

Для развертывания этого сценария вы можете следовать этому пошаговому руководству, демонстрирующему, как развернуть каждый компонент вручную.To deploy this scenario, you can follow this step-by-step tutorial demonstrating how to manually deploy each component. В этом руководстве также содержится пример приложения .NET, в котором используется простое приложение для приобретения билетов.This tutorial also provides a .NET sample application that runs a simple ticket purchasing application. Кроме того, доступен шаблон Resource Manager для автоматизации развертывания большей части ресурсов Azure.Additionally, there is a Resource Manager template to automate the deployment of most of the Azure resources.

ЦеныPricing

Чтобы изучить стоимость выполнения этого сценария, все услуги были предварительно сконфигурированы в калькуляторе стоимости.Explore the cost of running this scenario, all of the services are pre-configured in the cost calculator. Чтобы узнать, как изменится цена для вашего конкретного варианта использования, измените соответствующие переменные в соответствии с ожидаемым трафиком.To see how the pricing would change for your particular use case change the appropriate variables to match your expected traffic.

Здесь предоставлено три примера профиля затрат в зависимости от объема трафика, который планируется принимать.We have provided three sample cost profiles based on amount of traffic you expect to get:

  • Малый. Этот профиль предполагает наличие компонентов, необходимых для создания минимального экземпляра уровня рабочей среды.Small: This pricing example represents the components necessary to build the out for a minimum production level instance. Предполагается небольшое количество пользователей (несколько тысяч в месяц).Here we are assuming a small number of users, numbering only in a few thousand per month. Приложение использует один экземпляр стандартного веб-приложения, которого будет достаточно для автомасштабирования.The app is using a single instance of a standard web app that will be enough to enable autoscaling. Другие компоненты масштабируются на базовый уровень, который обеспечивает минимальный объем затрат, но по-прежнему гарантирует поддержку соглашений об уровне обслуживания и достаточную емкость для работы с рабочим уровнем рабочей нагрузки.The other components are each scaled to a basic tier that will allow for a minimum amount of cost but still ensure that there is SLA support and enough capacity to handle a production level workload.
  • Средний. Этот профиль предполагает наличие компонентов развертывания среднего размера.Medium: This pricing example represents the components indicative of a moderate size deployment. По нашим оценкам систему в течении месяца использует приблизительно 100 000 пользователей.Here we estimate approximately 100,000 users using the system over the course of a month. Ожидаемый трафик обрабатывается в одном экземпляре службы приложения со средним стандартным уровнем.The expected traffic is handled in a single app service instance with a moderate standard tier. Кроме того, в калькулятор добавляются средние уровни когнитивных и поисковых служб.Additionally, moderate tiers of cognitive and search services are added to the calculator.
  • Большой. Этот профиль предполагает развертывание крупномасштабного приложения с миллионами пользователей в месяц и трафиком в терабайты данных.Large: This pricing example represents an application meant for high scale, at the order of millions of users per month moving terabytes of data. На этом уровне потребления требуются высокопроизводительные веб-приложения уровня "Премиум", развернутые во многих регионах, где работает диспетчер трафика.At this level of usage high performance, premium tier web apps deployed in multiple regions fronted by traffic manager is required. Передаются терабайты данных в хранилище, базы данных и сеть доставки содержимого.Data consists of the following: storage, databases, and CDN, are configured for terabytes of data.