当前位置:崇尚新闻网 > 体育 > 正文

PCF 从构建到连接

导语:其实PCF可能不太熟悉它的名字,但是PCF本身就是一个PaaS平台,一个IaaS上的PaaS平台。CF是云铸造和Pivotal开源PaaS平台。今天,我们想和大家分享的是Pivotal的高级平台架构师刘帆,他讲述了Pivotal的微服务在JAVA

其实PCF可能不太熟悉它的名字,但是PCF本身就是一个PaaS平台,一个IaaS上的PaaS平台。CF是云铸造和Pivotal开源PaaS平台。今天,我们想和大家分享的是Pivotal的高级平台架构师刘帆,他讲述了Pivotal的微服务在JAVA上的实践。

*以下内容摘自刘帆在2018年企业应用开发者峰会上的演讲

事实上,要开发一个微服务,最基本的事情就是编写一个SpringBoot,这也是推荐的最佳实践。如果您以前编写过一些企业应用程序,您可能会使用SpringMVC或一些旧的架构。从云原生的角度来看,Pivotal通过提供像springoot这样的解决方案,即通过springoot构建微服务,帮助开发人员在Java中实现最佳实践标准。

春季云-治理微服务

随着微服务的建设,我们需要做一些管理和服务治理。在云环境中,需要对微服务的生命周期管理和微服务编排进行治理,因此我们需要通过像SpringCloud这样的治理框架来管理和协调微服务。

Spring云数据流——解决数据问题

SpringCloud数据流,云原生下的微服务,需要无状态的应用。既然它是无状态的,那么我们应用的数据呢?如何处理这些数据?如果一个微服务想要访问其他微服务的数据,就需要通过数据流与现有系统进行集成。此时,数据流问题可以通过SpringCloud Data Flow等技术框架来解决。

云原生应用的基本要求:云原生应用十二要素

什么样的应用可以称为云原生应用?其实,如果你了解微服务,你就会知道云的十二大要素,其中有一些有趣的点与你分享。

这个数字反映了我们的信息技术架构的演变。最初,我们的应用程序和软件系统通常部署在硬件环境中。我提供了一个物理机器来在硬件环境中部署我的应用系统。之后,我们有了虚拟机,可以管理系统资源。后来,我们有了PaaS,它实际上是针对应用程序和我们的虚拟IaaS来管理我们应用程序的资源。

近年来,随着Kubernetes和Docker等集装箱化技术的流行,我们开始提出集装箱平台PaaS。我用比较轻松的方式解决了应用不足的问题,包括应用环境的问题。实际上,docker最大的功能是提高了操作和维护的效率。首先,Docker容器的启动时间基本上是秒或分钟。第二,我们原来的开发环境其实很复杂。有时我们的开发人员提交代码,发现软件无法在生产环境中运行。然后运维人员和开发人员配合后发现问题,说你开发环境中的东西需要单独安装在操作系统中,但是这个软件在生产环境中是不可用的,所以这个应用不能在生产环境中运行。Docker实际上将这些软件与操作系统的环境配置集成在一起,并通过容器映像一个一个地交付,大大提高了我们的运维效率。

从这个图中的自下而上看,我们希望我们的开发人员能够更加专注于业务,所以我们提供了一个底层平台,通过平台的一整套自动化解决方案,我们可以完成开发前必须想办法解决的事情,包括申请机器和配置防火墙,包括应用上线时我们机器环境的一些准备工作。

从上到下,都有一些特殊要求。比如有些软件配置不是那么标准化,可能需要一些特殊的软件和特殊的环境配置。此时,我们可以深入硬件来控制CPU级别。因此,我们希望提供平台支持,以便应用程序或工作负载可以被推到平台的顶部。

总结春靴与PCF的关系。有了微服务,你需要一个操作环境和一个平台来支持它们,所以我们在PaaS平台上为微服务提供支持,包括微服务生命周期管理,包括微服务日志、监控等等。PaaS平台用于提供完整的微服务所需的基础设施。

其实大家都听说过没有服务的春云,那么什么是春云服务呢?事实上,Spring云服务是PCF上的开源Spring云服务。因为我们在十二要素中也提到了资源需要通过后端服务来提供,所以Spring云服务就是这样一个提供Spring Cloud资源的后端服务。

让我们来看看它和开源Spring Cloud的区别。Spring Cloud的基本源代码实际上是网飞的一个开源组件。网飞是一家伟大的微服务公司,它提供重要的开源社区支持。如果你知道这三个组件,就应该去复习一下,即微服务注册与发现、融合与配置中心。这三个组件解决了哪些具体问题?

微服务架构的基本要求

首先是微服务的注册和发现。我们知道容器环境或虚拟机环境不稳定,其IP会发生变化,生命周期短。在这种不稳定的环境和IP不断变化的环境下,尤其是在分布式环境下,我们需要一个分布式的服务注册和发现来寻找相应的服务。比如微服务A想找微服务B,那么B的IP就变了。谁告诉我变了?它的动态IP是什么?我需要一个服务注册发现来解决这个问题。

第二个其实是配置,十二元素里面也有提到。我需要配置管理。我的配置可以分为环境、版本和不同的用途。在Spring Cloud中,它提供了一个配置服务器,可以支持将您的配置文件放在一些源代码管理工具上。

另一个是断路器,其实叫保险丝,跟我们生活中保险丝的断开很像。它解决的问题是什么?实际上,我们刚刚提到了我们传统的Spring MVC或web Container,它实际上是通过线程池访问的。比如AB的两个服务都访问C,那么如果C有一些异常,它崩溃了,那么如果A和B对A和B有不断的请求,他们说我会通过A访问A、C,通过B访问C,那么A和B的线程池就会不断堆积。堆积后会引起雪崩反应。因为在微服务环境中,调用面会非常复杂,会导致所有相关服务的雪崩和崩溃。它在A端和B端提供断路器,但实际上断路器不在C端。A和B提供断路器后,他们告诉所有访问A和B的人,访问这里的底层服务有问题。我会给你一个错误。不要再访问我的界面。这个界面是错误的。

但是它和我们普通的保险丝有一个很大的区别,就是它有断路后自愈的能力,后面会有心跳,会检查服务C是否已经恢复。如果一旦恢复,它还可以将新的请求导向c。这是断路器的一个基本原理。

事实上,SpringCloud对我们来说非常简单。它实际上在Spring中集成了这三个组件。可以通过自动配置在Spring Boot应用中使用。

这实际上是基于Spring Cloud和Spring Boot的最经典的架构,它实际上使用了我们刚刚谈到的三个组件。实际上有1到n个微服务,中间一个是微服务。访问时,它在前端放置一个API网关。我们通过Spring Cloud有一个类似Zuul的组件,Zuul通过路由将外部请求引导到微服务环境。微服务可以部署在容器中。

如果用一个比较新的技术,可以考虑Zuul可以用Spring Cloud Gateway来解决。Zuul1.0和春云网关有很大的区别。Zuul1.0实际上是基于路径的路由。Spring Cloud Gateway可以更丰富,可以基于参数、表头等不同方式,包括在Spring Cloud Gateway中控制fuse和配置fuse,不会影响你的业务代码。此外,您可以通过Spring Boot2.0替换1.0的组件

什么是PCF的春季云服务?

对于Spring云服务,Pivotal对开源做了很多增强,主要针对易用性、安全性和可靠性。

易用性。如果您已经构建了Spring Cloud开源组件,那么应该使用它的注释和参数配置,包括它有一个Server。然而,在PCF的PaaS平台上,我们希望所有这些事情都实现自动化。我只是简单的使用一个CF Service,也就是一个后端服务,通过这种方式直接创建一个Spring云服务的实例,可以应用到SpringBoot应用中。

保安。如果您确实是开源的,您可能会考虑使用其他安全身份验证机制来解决这个问题,并且在SpringCloudService中,它对开发人员是透明的。

可靠性。它可以通过PaaS平台解决,包括高可靠性、灵活性、容灾性、容错性等。,这些都可以通过PaaS平台的PCF来解决。

我想简单谈谈微服务设计的原则和方法。当我们拥有微服务时,往往要考虑它的设计方法,从原来的传统应用,如何迁移到新的平台,以及如何开发云原生微服务。在Pivotal,有一整套的微服务实践,在Pivotal有一个非常特殊的服务叫做Pivotal Labs,它会教我们的客户和用户使用Pivotal的产品以及实践中遇到的一些问题,通过Labs和我们的交付团队来帮助我们的客户。

将传统应用程序拆分为微服务的基本方法

将传统的巨石应用程序重建和拆分为微服务的基本方法

我们在拆分微服务或者重构微服务的时候,首先要确定一个目标,就是说我们要用这个微服务完成什么样的业务需求,我们要选择什么样的传统应用,把它变成微服务。推荐的是,对于这些更好、更接近云原生的应用,以及我们刚才讲的十二要素或者十五要素很容易满足的应用,我们应该做微服务改造。首先,定义一个目标。

第二,通过一场事件风波,你可以明白其实是一场会议。我们召集业务人员和技术人员开圆桌会议。在微服务拆分理论和微服务设计中,有一个非常重要的理论叫做DDD域驱动设计。领域驱动的设计不是由开发人员或技术人员开发的,而是与业务人员讨论的。首先要划分业务边界,然后才能做技术方案。因此,这个非常重要的会议被称为事件风暴,通过它我们可以确定域之间的关系和域之间的边界。

后面我们会分析我们的系统架构和功能架构,包括类图,最后通过一些图表分析的方法实现代码。通过我们稍后将提到的SNAP分析方法,我们可以分析您的应用程序依赖于什么,以及如何处理繁重的中间件。它有分数。键入分数后,您可以估计每个任务的工作量。如果您非常接近云原生应用程序,则更容易迁移到云。如果您有大量的重度依赖,迁移过程可能会非常困难。

最后,用户故事被映射到MVP,并由敏捷开发项目管理工具管理。

总结:

尽管一体化方法仍然适合一些企业和应用,但微服务无疑正越来越受到注重敏捷性和可扩展性的公司的青睐。在 Pivotal,我们拥有标准化、一站式的解决方案,帮助您设计高性能的微服务架构,并提供世界一流的环境来运行您的微服务。

免责申明:以上内容属作者个人观点,版权归原作者所有,不代表崇尚新闻网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.csxming.com/tiyu/828272.html 感谢你把文章分享给有需要的朋友!
上一篇:贝宁总统 贝宁举行总统选举 下一篇: 杨思 童书·专访|杨思帆:阅读一本优秀的图画书是一个漫长过程