Azure Spring Cloud现已进入公开预览版

工程 | Josh Long | 2019年11月4日 | ...

您好,Spring 粉丝!今天,我们很高兴地宣布 Azure Spring Cloud(由微软和 Pivotal 联合开发的基于 Spring Boot 应用程序和基于 Spring Cloud 的微服务的运行时)现已进入公开测试阶段。现在任何人都可以试用它!

随着客户将其工作负载迁移到云端,我们见证了云原生架构(特别是微服务)的使用增长。基于微服务的架构有助于提高可扩展性和速度,但实施它们可能会带来挑战。对于许多 Java 开发人员来说,Spring Boot 和 Spring Cloud 有助于解决这些挑战,提供了一个强大的平台,并提供了完善的模式来开发和操作微服务应用程序。

问题在于,创建和维护 Spring Cloud 基础设施(如服务注册表、分布式跟踪和分布式配置)需要很少有组织能够承担的管理工作。Spring Cloud 为您提供了机制,但如何确保、扩展、负载平衡等则由您决定。Azure Spring Cloud 是一个构建在 Microsoft Azure 之上的托管环境,它具有预配置、有见地、随时可部署的基础设施服务和基于 Spring 的应用程序的运行时。

以 Spring 为中心的平台

假设您有一个典型的基于 Spring Cloud 的微服务,它依赖于 Spring Cloud Config Server 中的配置,并使用 Spring Cloud Eureka DiscoveryClient 抽象实现参与服务注册和发现。

src/main/java/demo/DemoApplication.java


package demo; 

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

@RestController
class GreetingsRestController {

    private final String message;

    GreetingsRestController(@Value("${application.message}") String msg) {
        this.message = msg;
    }

    @GetMapping("/hello")
    public String hello() {
        return message;
    }
}

当然,此应用程序需要一个属性文件,其中包含该应用程序在服务注册表中显示的名称

src/main/resources/application.properties

spring.application.name = account-service

此演示是一个简单的应用程序。但是,要将其投入生产,您需要设置一个 Spring Cloud Config Server(包括安全性和 Git 存储库)、一个 Spring Cloud Eureka Server 服务注册表(包括水平扩展)以及应用程序本身的部署。

Azure Spring Cloud 改变了一切。

投入生产……以及更远!

要设置环境,您需要设置一个 Azure Spring Cloud 环境。

然后,您可以轻松配置 Spring Cloud Config Server 及其身份验证。

在将我们的服务部署到 Azure Spring Cloud 中的生产环境时,需要进行自动配置。使用 Maven 配置文件(如下所示)在构建中启用它

	<profiles>
		<profile>
			<id>cloud</id>
			<repositories>
				<repository>
					<id>nexus-snapshots</id>
					<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</repository>
			</repositories>
			<dependencies>
				<dependency>
					<groupId>com.microsoft.azure</groupId>
					<artifactId>spring-cloud-starter-azure-spring-cloud-client</artifactId>
					<version>2.1.0-SNAPSHOT</version>
				</dependency>
			</dependencies>
		</profile>
	</profiles>

使用 Maven 构建应用程序,激活 Maven cloud 配置文件

mvn -Pcloud clean package 

现在,您可以使用 Azure CLI(az)部署应用程序

az spring-cloud app create -n demo-app # create the logical application 
az spring-cloud app deploy -n demo-app --jar-path target/demo-0.0.1-SNAPSHOT.jar # deploy the Boot .jar

部署应用程序后,您可以看到它可以通过 Azure Spring Cloud 上的托管服务注册表进行发现,例如这些处于各种状态的应用程序

接下来是什么

这对您意味着什么?好吧,这仅仅是个开始!Microsoft Azure 是一个充满活力的平台,提供具有竞争力的价格、比世界上任何其他 IaaS 提供商更多的区域以及针对基于 Spring 的应用程序的以生产为中心的环境。我们已在本帖中介绍了 Azure Spring Cloud 中的一些功能。但是,您仍然可以从基于 Azure Spring Cloud 的应用程序中利用更大 Azure 平台的丰富性,并且您可以利用 Spring Cloud Azure 开源项目使绑定到 Azure 托管服务变得轻而易举。对我来说,最吸引人的是这些服务。对于您的后续步骤,您可以探索与 Spring Security 和 Active Directory 的紧密集成,或者 Azure CosmosDB 的反应式 Spring Data 支持,或者 Microsoft SQL Server 的反应式 R2DBC 集成(在 Microsoft Azure 上完全托管)。

有一些很棒的资源供您使用。您可以在这里浏览更详尽的培训,还可以查看一些关于如何部署和扩展应用程序的示例

当然,如果您想了解有关 Azure Spring Cloud 的更多信息,那么您不应该错过微软的Julien Dubois在最近的 SpringOne Platform 2019 展览会上发表的演讲!

在生产环境中见!

获取 Spring 时事通讯

通过 Spring 时事通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部