vlambda博客
学习文章列表

读书笔记《cloud-native-applications-in-java》平台部署-Azure

Chapter 9. Platform Deployment – Azure

本章讨论 Microsoft 公共云平台 Azure 的应用程序设计和部署。云原生开发的本质是能够将您的应用程序与云提供商提供的 PaaS 平台集成。作为开发人员,您专注于创造价值(解决客户问题),并允许云提供商为您的应用程序的基础架构承担繁重的工作。

在本章中,我们将学习以下内容:

  • Different categories of PaaS services provided by Azure. We will delve a little deeper into services that will be used by our sample applications.
  • Migrate our sample application to Azure and understand the various options available. We will also evaluate all the options and understand the pros and cons for each option.

我们正在介绍 Azure 平台,目的是展示如何构建和部署应用程序。我们不会深入介绍 Azure,我们希望读者使用 Azure 文档(https://docs.microsoft.com/en-us/azure/) 到探索其他选项。

Azure 支持多种编程语言,但出于本书的目的,我们正在研究 Azure 中对 Java 应用程序的支持。

Azure platform


Azure 在一系列技术领域提供不断增加的 PaaS 和 IaaS。出于我们的目的,我们将查看直接适用于我们的应用程序并使用的区域和服务的子集。

为了便于使用,我创建了这个跨与典型业务应用程序最相关的技术领域的服务分类模型:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

这只是一个指示性列表,绝不是一个详尽的列表。有关完整列表,请参阅 Azure 门户。

在前面的分类模型中,我们将服务分为以下几个方面:

  • Infrastructure: This is an all-encompassing list of services provided by Azure to deploy and host our applications. We have combined services across compute, storage, and networking in this category. We will be looking at the following set of services for the purpose of our sample Java applications.
    • App Services: How can we take the existing Spring Boot applications and deploy them in our Azure platform? This is more of a lift and shift scenario. Here the application is not refactored, but the dependencies are deployed on App Services. Using one of the database services, the application can be deployed and hosted. Azure provides PostgreSQL and MySQL as hosted database models among a variety of other options.
    • Container Services: For applications packaged as Docker containers, we can explore how to deploy Docker containers to the platform.
    • Functions: This is the serverless platform model, where you need not worry about application hosting and deployment. You create a function and let the platform do the heavy lifting for you. As of now, Java-based Azure cloud functions are in beta. We will explore how to create one in a development environment and test locally.
    • Service Fabric: Service Fabric is a distributed systems platform for deploying and managing microservices and container applications. We will explore how we can deploy our sample product API in Service Fabric.
  • Application: This is a list of services that help build distributed applications. As we move to a distributed microservices model, we need to decouple our application component and services. Features such as Queue, EventHub, EventGrid, and API management help build a cohesive set of robust APIs and services.
  • Database: This is a list of data store options provided by the Azure platform. This includes relational, key value, redis cache, and data warehouse among others.
  • DevOps: For building and deploying applications in the cloud, we need the support of robust CI/CD toolsets. Visual Studio team services are provided for hosting code, issue tracking, and automated builds. Again, open source tools are still not first-class citizens in the Azure portal. You can always use hosted versions of the required software.
  • Security: Another key factor for cloud applications are security services. Active directory, rights management, key vault, and multi-factor authentication are some of the key services provided in this area.
  • Mobile: If you are building mobile applications, the platform provides key services such as application services for mobile, media services, and mobile engagement services, among others in this area.
  • Analytics: In the area of analytics, the platform provides robust services in the areas of MapReduce, Storm, Spark through HDInsight and Data Lake services for analytics and a data repository.

此外,还有multiple其他技术领域Azure 提供服务——物联网物联网)、监控、管理、人工智能AI< /span>),以及认知和企业集成领域。

Azure platform deployment options


正如我们在上一节中看到的,Azure 提供了许多选项来在平台上构建和部署应用程序。我们将使用我们的 product API REST 服务示例来检查 Azure 提供的各种选项来部署和运行我们的应用程序。

在开始之前,我假设您熟悉 Azure 平台并且已经在门户中注册。

Azure 支持多种 编程语言,并提供SDK 来支持各个领域的开发。出于我们的目的,我们主要探索 Azure 平台中对 Java 应用程序的支持。

我们将在以下四个方面探索应用托管服务:

  • App Services
  • Container Services
  • Service Fabric
  • Functions

请参阅以下链接了解 更多详情和getting 开始: https://azure.microsoft.com/en-in/downloads/

Deploying Spring Boot API to Azure App Service

在本节中,我们将使用我们的 product API 服务并将其迁移到 Azure 应用服务。我们将查看对应用程序所做的其他更改,以符合 Azure 应用服务的要求

我采用了我们在Chapter 3中构建的product API REST服务,< span class="emphasis">设计您的云原生应用程序。在服务中,我们进行了以下更改:

在项目的根文件夹中添加一个文件 web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%binjava.exe" arguments="-Djava.net.preferIPv4Stack=true - Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot; %HOME%sitewwwrootproduct-0.0.1-SNAPSHOT.jar&quot;">
    </httpPlatform>
  </system.webServer>
</configuration>

该文件添加了以下更改, product-0.0.1-SNAPSHOT.jar,这是我们应用程序的包名称。如果您的应用程序名称不同,则需要进行更改。

我们首先在此处查看 product API 代码: https://azure.microsoft.com/en-in/downloads/

读书笔记《cloud-native-applications-in-java》平台部署-Azure

我们运行 mvn clean package 命令将项目打包为胖 JAR:

[INFO] Scanning for projects... 
[INFO]                                                                          
[INFO] ------------------------------------------------------------------------ 
[INFO] Building product 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO]  
[INFO] ...... 
[INFO]  
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ product --- 
[INFO] Building jar: /Users/admin/Documents/workspace/CloudNativeJava/ch10-product/target/product-0.0.1-SNAPSHOT.jar 
[INFO]  
[INFO] --- spring-boot-maven-plugin:1.4.3.RELEASE:repackage (default) @ product --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 14.182 s 
[INFO] Finished at: 2018-01-15T15:06:56+05:30 
[INFO] Final Memory: 40M/353M 
[INFO] ------------------------------------------------------------------------

接下来,我们登录 Azure 门户(https://portal.azure.com/)。

  1. Click on the App Services menu item in the left-hand column as shown in the following screenshot:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

在 Azure 门户中选择 App Services

  1. Click on the Add link:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Next, click on the Web App link as indicated:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

通过浏览 Azure 门户选择 Web 应用程序 |应用服务 |添加。

  1. Click on the Create button link and you should see the following page
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. We fill in the details for our product API. I have filled in App name as ch10product and left the other options at the default.
  1. Next, click the Create button at the bottom of the page.
读书笔记《cloud-native-applications-in-java》平台部署-Azure

这将导致应用服务的创建。

  1. We click on the ch10product under App Services, which takes us to the menu:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Notice the URL and the FTP hostname where the application is deployed. We need to make changes in two places—Application settings and Deployment credentials:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. We click on the Application settings link and select the following options in the drop-down menu:
    1. Choose Java 8 for the Java version
    2. Choose Newest for the Java Minor version
    3. Choose Newest Tomcat 9.0 for the Web container(This container will not actually be used; Azure uses the container bundled as part of the Spring Boot application.)
    4. Click Save
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Next, we click on the Deployment credentials link on the left-hand side. Here we capture the FTP/deployment username and Password in order to be able to push our application to the host and click on Save as shown in the following screenshot:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Connect to the FTP hostname we saw in Step 8 and use your credentials saved in Step 10 to log in:
ftp  
open ftp://waws-prod-dm1-035.ftp.azurewebsites.windows.net 
user ch10productwrite2munish 
password *******
  1. Next, we change directory to site/wwwroot on the remote server and transfer the fat JAR and web.config to the folder:
cd site/wwwroot 
put product-0.0.1-SNAPSHOT.jar 
put web.config 
  1. We go back to the overview section and restart the application. We should be able to start the application and see our REST API working.
读书笔记《cloud-native-applications-in-java》平台部署-Azure

在本节中,我们了解了如何获取现有的 REST API 应用程序并将其部署在 Azure 中。这不是最简单和最好的部署方式。这个选项更像是一种提升和转变,我们采用现有的应用程序并尝试将工作负载转移到云中。为了部署 Web 应用程序,Azure 提供了一个 Maven 插件,可以将您的应用程序直接推送到云中。有关详细信息,请参阅以下链接: https://docs.microsoft.com/en-in/java/azure/spring-framework/deploy-spring-boot-java-app-with-maven -插件

REST API 部署在 Windows Server VM 上。 Azure 正在增加对 Java 应用程序的支持,但它们的强项仍然是 .NET 应用程序。

如果您想使用 Linux 并部署 REST API 应用程序,您可以选择使用基于 Docker 的部署。我们将在下一节介绍基于 Docker 的部署

Deploying Docker containers to Azure Container Service

让我们部署我们的 Docker 容器应用程序。我为上一节中使用的 product API 示例创建了 Docker 映像。可以通过 following 命令从 Docker hub 拉取 Docker 镜像:

docker pull cloudnativejava/ch10productapi

让我们开始并登录到 Azure 门户。我们应该看到以下内容:

  1. Click on the App Services menu item in the left-hand column. We should see the following screen. Click on New as indicated in the screenshot:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Under New search for Web App for Containers:
读书笔记《cloud-native-applications-in-java》平台部署-Azure
  1. Once the Web App for Containers is selected, click on Create as indicated:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

选择通过导航创建App Services | 添加 | 网页应用

  1. We will fill in the details for our product API container:
    1. I have filled in the App Name and Resource Group as ch10productContainer and left the other options at the default.
    2. In the Configure container section, we select the container repository. If there is already a Docker image in Docker hub, provide the image pull tag, cloudnativejava/ch10productapi.
    3. Click OK at the bottom of the page. It validates the image.
    4. Next, we click Create at the bottom of the page:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

通过 Azure 门户导航选择创建 | 新 |搜索 Web App for Containers

  1. This leads to the creation of the App Service:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

通过 Azure 门户导航选择新创建的应用程序容器 | 应用服务

  1. We click on ch10productcontainer under App Services, which takes us to the menu where we can see the marked URL, https://ch10productcontainer.azurewebsites.net, where the container is available. 
读书笔记《cloud-native-applications-in-java》平台部署-Azure

可以访问宿主docker应用的URL

  1. We can see our product API running in the browser:
读书笔记《cloud-native-applications-in-java》平台部署-Azure

这是一种将应用程序部署到云平台的简单方法。在前面的两个场景中,我们都没有使用任何专门的应用程序或数据存储服务。对于真正的云原生应用,我们需要利用提供商提供的平台服务。整个想法是,应用程序可扩展性和可用性方面的繁重工作由本机平台处理。作为开发人员,我们专注于构建关键业务功能并与其他组件集成。

Deploying Spring Boot API to Azure Service Fabric

构建应用程序并将其部署到底层 IaaS 平台是大多数组织开始与公共云提供商合作的方式。随着云流程的舒适度和成熟度水平的提高,应用程序开始使用 PaaS 功能构建。因此,应用程序开始由队列、事件、托管数据存储、安全性和平台服务的其他功能组成。

但是对于非功能性需求,尊重 仍然存在一个关键问题。谁会想到应用程序的功能?

  • How do I make sure there are enough application instances running?
  • What happens when an instance goes down?
  • How does the application scale up/down depending on the incoming traffic?
  • How do we monitor all the running instances?
  • How do we manage distributed stateful services?
  • How do we perform rolling upgrades to the deployed services?

编排引擎出现了。 Kubernetes、Mesos 和 Docker swarm 等产品提供了管理应用程序容器的能力。 Azure 已发布 Service Fabric,它是您的应用程序的应用程序/容器管理软件。它可以在本地或云端运行。

Service Fabric 提供以下关键功能:

  • Allows you to deploy applications that can scale massively and provide a self-healing platform
  • Allows you to install/deploy both stateful and stateless microservice-based applications
  • Provides dashboards to monitor and diagnose the health of applications
  • Defines policies for automatic repair and upgrades

在当前版本中,Service Fabric 支持两种底层操作系统——仅 Windows Server 和 Ubuntu 16.04 的风格。最好的选择是 Windows Server 集群,因为支持、工具和文档是最好的。

为了演示 Service Fabric 的功能和使用,我将使用 Ubuntu 映像进行本地测试,并使用 Service Fabric 聚会集群在线部署我们的 product API 示例Service Fabric 群集。我们还将研究如何扩展应用程序实例,以及 Service Fabric 的自我修复功能。

Basic environment setup

对于环境,我使用 macOS 机器。我们需要设置以下内容:

  1. Local Service Fabric cluster setup—pull a Docker image:
docker pull servicefabricoss/service-fabric-onebox 
  1. Update the Docker daemon configuration on your host with the following additional settings and restart the Docker daemon:
{ 
    "ipv6": true, 
    "fixed-cidr-v6": "fd00::/64" 
}
  1. Start the Docker image pulled down from Docker hub:
docker run -itd -p 19080:19080 servicefabricoss/service-fabric-onebox bash 
  1. Add the following commands within the container shell:
./setup.sh      
./run.sh  

完成最后一步后,将启动一个开发 Service Fabric 集群,可以从浏览器访问 http://localhost:19080

现在我们需要为容器和来宾可执行文件设置 Yeoman 生成器:

  1. First, we need to make sure Node.js and Node Package Manager (NPM) are installed. The software can be installed by using HomeBrew, as follows:
brew install node 
node -v 
npm -v
  1. Next, we install the Yeoman template generator from NPM:
npm install -g yo 
  1. Next, we install the Yeoman generator that will be used to create Service Fabric applications by using Yeoman. Follow these steps:
# for Service Fabric Java Applications
npm install -g generator-azuresfjava
# for Service Fabric Guest executables 
npm install -g generator-azuresfguest 
# for Service Fabric Container Applications
npm install -g generator-azuresfcontainer
  1. To build a Service Fabric Java application on macOS, JDK version 1.8, and Gradle, the software must be installed on the host machine. The software can be installed by using Homebrew, as follows:
brew update 
brew cask install java 
brew install gradle

这样就完成了环境设置。接下来,我们将把我们的 product API 应用程序打包为 Service Fabric 应用程序,以便在集群中进行部署。

Packaging the product API application

我们登录 product API 项目(完整代码可在: https://github.com/PacktPublishing/Cloud-Native-Applications-in-Java) 并运行以下 命令:

yo azuresfguest

我们应该得到以下屏幕:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

我们输入以下值:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

这将创建一个包含一组文件的应用程序包:

ProductServiceFabric/ProductServiceFabric/ApplicationManifest.xml 
ProductServiceFabric/ProductServiceFabric/ProductAPIPkg/ServiceManifest.xml 
ProductServiceFabric/ProductServiceFabric/ProductAPIPkg/config/Settings.xml 
ProductServiceFabric/install.sh 
ProductServiceFabric/uninstall.sh 

接下来,我们转到 /ProductServiceFabric/ProductServiceFabric/ProductAPIPkg 文件夹。

创建一个目录 code 并在其中创建一个名为 entryPoint.sh 的文件,其内容如下:

#!/bin/bash 
BASEDIR=$(dirname $0) 
cd $BASEDIR 
java -jar product-0.0.1-SNAPSHOT.jar 

另外,请确保我们将打包的 JAR (product-0.0.1-SNAPSHOT.jar) 复制到此文件夹中。

Note

对于本地环境开发,Number of instances of guest binary 的值应该是 1,对于 Service Fabric 群集可以是更大的数字在云端。

接下来,我们将在 Service Fabric 群集中托管我们的应用程序。我们将使用 Service Fabric 聚会集群。

Starting the Service Fabric cluster

我们将使用我们的Facebook 或 GitHub ID:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

加入 Linux 集群:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

我们将被定向到包含集群详细信息的页面。集群可用一小时。

默认情况下,某些端口是打开的。当我们部署我们的 product API 应用程序时,我们可以在端口 8080 上访问相同的应用程序:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

Service Fabric 群集资源管理器在前面提到的 URL 中可用。由于集群使用基于证书的身份验证,您需要将 PFX 文件导入您的钥匙串。

如果您访问 URL,您可以看到 Service Fabric 群集资源管理器。默认情况下,集群提供三个节点。您可以将多个应用程序部署到集群。根据应用程序设置,集群将管理您的应用程序可用性。

读书笔记《cloud-native-applications-in-java》平台部署-Azure

Azure 聚会群集默认视图

Deploying the product API application to the Service Fabric cluster

为了将我们的 application 部署到集群,我们需要登录到 ProductServiceFabric 为应用程序创建的 Service Fabric 脚手架的文件夹。

Connecting to the local cluster

我们可以使用以下命令连接到本地集群here

sfctl cluster select --endpoint http://localhost:19080 

这将连接到在 Docker 容器中运行的 Service Fabric 群集。

Connecting to the Service Fabric party cluster

由于 Service Fabric 方群集使用基于证书的身份验证,因此我们需要在 /ProductServiceFabric 的工作文件夹中下载 PFX 文件。

运行以下命令:

openssl pkcs12 -in party-cluster-1496019028-client-cert.pfx -out party-cluster-1496019028-client-cert.pem -nodes -passin pass: 

接下来,我们制作使用隐私增强邮件< /span> (PEM) 文件以连接到 Service Fabric派对集群:

sfctl cluster select --endpoint https://zlnxyngsvzoe.westus.cloudapp.azure.com:19080 --pem ./party-cluster-1496019028-client-cert.pem --no-verify

连接到 Service Fabric 群集后,我们需要通过运行以下命令来安装我们的应用程序:

./install.sh

我们应该看到我们的应用程序被上传并部署在集群中:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

在 Docker 容器中安装并启动 Service Fabric 群集

上传应用程序后,我们可以在 Service Fabric 资源管理器中看到该应用程序,并且可以访问该应用程序的功能:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

观察 Azure Party Cluster 中部署的应用程序

API 功能位于: http://zlnxyngsvzoe.westus.cloudapp.azure.com:8080/product/2

读书笔记《cloud-native-applications-in-java》平台部署-Azure

验证 API 是否正常工作

我们可以看到当前应用程序是如何部署在一个节点(_lnxvm_2)上的。如果我们关闭该节点,应用程序实例会自动部署在另一个节点实例上:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

从可用的三个主机中观察部署在单个节点上的应用程序

通过选择节点菜单中的选项(在以下屏幕截图中突出显示)来关闭节点(_lnxvm_2):

读书笔记《cloud-native-applications-in-java》平台部署-Azure

观察可用于禁用 Azure 聚会群集中主机上的应用程序的选项

立即,我们可以看到应用程序部署在节点 _lnxvm_0 作为 Cluster 的自我修复模型强>:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

使用 Service Fabric 群集在另一个节点上启动在一种模式下禁用的应用程序

再次,我希望读者有足够的兴趣继续探索集群的功能。对 Java 应用程序和多个版本的 Linux 的支持是有限的。 Azure 正在努力为平台添加额外的支持,以支持各种应用程序。

Azure cloud functions

随着我们将应用程序迁移到云端,我们正在使用平台服务来提高我们对业务功能的关注,而不是担心应用程序可扩展性。无服务器应用程序是下一个前沿领域。开发人员专注于构建应用程序,而不用担心服务器配置、可用性和可伸缩性。

Java 函数目前处于测试阶段,在 Azure 门户上不可用。

我们可以下载并尝试创建 Java 函数on 我们的本地机器。我们将看到该功能的简要预览。

Environment setup

Azure Functions Core Tools SDK 为编写、运行和调试 Java Azure Functions 提供了一个本地 development 环境:

npm install -g azure-functions-core-tools@core 

Creating a new Java functions project

让我们创建一个 sample Java 函数项目。我们将使用以下 Maven 原型来生成虚拟项目结构:

mvn archetype:generate  -DarchetypeGroupId=com.microsoft.azure  -DarchetypeArtifactId=azure-functions-archetype  

我们运行 mvn 命令来提供必要的输入:

Define value for property 'groupId': : com.mycompany.product 
Define value for property 'artifactId': : mycompany-product 
Define value for property 'version':  1.0-SNAPSHOT: :  
Define value for property 'package':  com.mycompany.product: :  
Define value for property 'appName':  ${artifactId.toLowerCase()}-${package.getClass().forName("java.time.LocalDateTime").getMethod("now").invoke(null).format($package.Class.forName("java.time.format.DateTimeFormatter").getMethod("ofPattern", $package.Class).invoke(null, "yyyyMMddHHmmssSSS"))}: : productAPI 
Define value for property 'appRegion':  ${package.getClass().forName("java.lang.StringBuilder").getConstructor($package.getClass().forName("java.lang.String")).newInstance("westus").toString()}: : westus 
Confirm properties configuration: 
groupId: com.mycompany.product 
artifactId: mycompany-product 
version: 1.0-SNAPSHOT 
package: com.mycompany.product 
appName: productAPI 
appRegion: westus 
 Y: : y

Building and running the Java function

让我们继续build 包:

mvn clean package

接下来,我们可以按如下方式运行该函数:

mvn azure-functions:run 

我们可以在下图中看到该函数的启动:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

构建您的 Java 云函数

默认功能可在以下 URL 获得:

http://localhost:7071/api/hello 

如果我们去 http://localhost:7071/api/hello?name=cloudnative 我们可以看到函数的输出:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

Diving into code

如果我们深入代码,我们可以看到主要代码 file 其中默认函数 你好 定义为:

读书笔记《cloud-native-applications-in-java》平台部署-Azure

该方法使用 @HttpTrigger 进行注释,其中我们定义了触发器的名称、允许的方法、使用的授权模型等。

编译函数时,它会生成一个 function.json,其中定义了函数绑定:

{ 
  "scriptFile" : "../mycompany-product-1.0-SNAPSHOT.jar", 
  "entryPoint" : "productAPI.Function.hello", 
  "bindings" : [ { 
    "type" : "httpTrigger", 
    "name" : "req", 
    "direction" : "in", 
    "authLevel" : "anonymous", 
    "methods" : [ "get", "post" ] 
  }, { 
    "type" : "http", 
    "name" : "$return", 
    "direction" : "out" 
  } ], 
  "disabled" : false 
} 

您可以看到输入和输出数据绑定。函数只有一个触发器。触发器与一些相关数据一起触发,这些数据通常是触发函数的有效负载。

输入和输出绑定是一种从代码中连接到数据的声明性方式。绑定是可选的,一个函数可以有多个输入和输出绑定。

您可以使用 Azure 门户开发函数。触发器和绑定直接在 function.json 文件中配置。

Java 函数仍然是一个预览特性。该功能集仍处于测试阶段,文档很少。我们需要等待 Java 成为 Azure Functions 世界的一等公民。

这使我们结束了使用 Azure 进行平台开发。

Summary


在本章中,我们看到了 Azure 云平台提供的各种功能和服务。当我们将应用程序转变为云原生模型时,我们会从应用程序服务 |集装箱服务 |服务结构 |无服务器模型(云功能)。当我们构建新的应用程序时,我们跳过最初的步骤,直接采用平台服务,允许自动应用程序可扩展性和可用性管理。

在下一章中,我们将介绍各种类型的 XaaS API,包括 IaaS、PaaS、iPaaS 和 DBaaS。我们将在构建您自己的 XaaS 时涵盖架构和设计问题。