云平台上的Spring微服务
Pivotal公司将Spring Cloud定义为加速云原生应用程序开发的框架。今天,当我们谈论云原生应用程序时,首先想到的是快速交付软件的能力。为了满足这些需求,开发人员应该能够快速构建可扩展、可移植且准备频繁更新的新应用程序和设计架构。提供容器化和编排机制的工具有助于开发人员建立和维护这样的架构。实际上,本书前面章节中已经讨论过Docker或Kubernetes等工具,它们都允许开发人员创建自己的私有云并在其上运行Spring Cloud微服务。虽然应用程序不必部署在公共云上,但它包含云软件的所有最重要的特征。
在公共云上部署Spring应用程序只是一种可能性,而不是必需的。但是,有一些非常有趣的云平台允许开发人员在几分钟内轻松运行微服务并在网络上公开它们。其中一个平台就是Pivotal Cloud Foundry (PCF),它优于其他平台的优势在于它对Spring Cloud服务的原生支持,包括使用Eureka. Config Server和Hystrix断路器进行发现。开发人员还可以通过启用Pivotal提供的代理服务轻松设置完整的微服务环境。
本章将要介绍的另一个云平台是Heroku。与PCF相比,它不支持任何编程框架。Heroku是一个完全托管的多语言平台,可以让开发人员快速交付软件。一旦推送了对存储在GitHub存储库中的源代码的更改,它就可以自动构建和运行应用程序。它还提供了许多附加服务,可以使用单个命令进行配置和扩展。
本章将要讨论的主题包括:
口 Pivotal Web Services平台简介。
口 使用CLI、Maven插件和用户界面仪表板在PivotalCloudFoundry上部署和管理应用程序。
口 使用 Spring Cloud Foundry库准备应用程序以使其在平台上正常工作。
口 在 Heroku平台.上部署Spring Cloud微服务。
口 管理代理服务。
Pivotal Cloud Foundry
虽然Pivotal平台可以运行用多种语言编写的应用程序,如Java、NET、Ruby、JavaScript、Python、PHP和Go等,但它对Spring Cloud Services和Netlix OSS工具提供了最好的支持。这非常有意义,因为他们是开发Spring Cloud的人。图15.1说明了Pivotal Cloud平台提供的基于微服务的架构(该图的英文版也可以在Pivotal的官方网站上找到)。开发人员可以在Cloud Foundry上使用Spring Cloud快速利用常见的微服务模式,包括分布式配置管理、服务发现、动态路由、负载均衡和容错等。
使用模式
开发人员可以按3种不同的模式使用Pivotal 平台。这些模式是根据主机进行区分的,而主机就是部署应用程序的位置。以下是可用解决方案的列表。
口 PCF Dev: Pivotal 平台的这个实例可以在一台虚拟机上以本地方式运行。它专为实验和开发需求而设计。它不提供所有可能的功能和服务。例如,只有一些诸如Redis、MySQL和RabbitMQ之类的内置服务。但是,PCF Dev还支持Spring Cloud Services (SCS) 以及完整版PCF中支持的所有语言。值得注意的是,如果开发人员想要以本地方式运行包含SCS的PCF Dev,则需要超过6GB的内存。
口 Pivotal Web Services: 这是一个可在线访问的云原生平台&#x