你的PHP可能实现了假微做事
PHP的微做事化实在没那么难
PHP的微做事化完美实践

php与微做事的一次完美重逢。。
php可以零改造享受微做事管理啦
PHP:确定过眼神 你便是我想要的微做事
选择并坚持得当的编程措辞至关主要,编程措辞的改换意味着高昂的学习本钱和不增值的系统重构。面对业务交付周期变短、业务高并发压力,向微做事演进成为软件架构师的共同选择。业界已有的微做事框架每每只支持Java,基于PHP、.Net的运用该如何拥抱微做事?Service Mesh,被誉为下一代微做事,供应一种透明的微做事网络代理,以SiderCar模式将PHP运用以零侵入办法实现微做事架构演进。
在聪慧城市的大浪潮之下,某IoT做事商推出SaaS化的HiFM聪慧楼宇管理方案,涵盖了人、物、环境等多个元素,业务流程包括预算管理、系统检测、工单管理、预算管理、供应商管理、资产管理、问题管理等。HiFM聪慧楼宇管理方案进一步提升楼宇管理的自动化水平,也让当代楼宇系统具备环境监测、能耗监控、设备智能监控等能力,成为更聪慧的楼宇管理中枢。这也哀求楼宇管理系统能够更灵巧、快速的知足个性化业务场景的哀求。
PHP和微做事,是否是一场错配?
PHP措辞具有运行高效、支配快速、扩展库功能强大、且HiFM聪慧楼宇管理系统的研发团队具有多年的PHP措辞研发履历,能够快速、准确地实现繁芜的业务需求,因此HiFM系统首选PHP措辞作为系统的主开拓措辞。
HiFM系统由数十个功能模块组成,业务模块耦合性高。随着系统功能不断丰富,繁芜性不断提升,系统体量越来越大,掩护和升级本钱不断攀升。HiFM系统作为面向企业用户的SaaS办理方案,须要对接大量企业已有的业务系统,这使得系统变得加倍臃肿。为了减小耦合性,HiFM系统启用了前后端分离的模式,更为轻巧快速的PHP框架,但这并未从根本上办理所有问题。而从长远来看,HiFM系统必将扩展更多边缘模块,对接更多的个性化业务系统,这对系统架构提出严厉寻衅。
我们决定选用微做事架构办理这些难题。微做事技能带来的好处不言而喻,独立开拓、独立支配、独立发布、去中央化管理,支持高并发高可用,支持丰富技能栈,企业可以根据须要灵巧技能选型。
但深入剖析之后创造:PHP 须要 Nginx 和 PHP-FPM(或类似工具)来实现进程和连接池管理等功能。这意味着支配基于PHP措辞的微做事,PHP-FPM 和 Nginx 也必须一起运行。这摧残浪费蹂躏了系统资源,也降落了扩展的效率,也带来配置繁芜性的问题。优化单 PHP 实例已经很头大了,由于须要理解和配置 PHP,PHP-FPM 和 Nginx 这一堆组合,我们无法想象终极在弹性的 Kubernetes 环境中配置多个 PHP 栈的痛楚环境,完备不知道在同一台机器上运行了哪些做事。
既然我们已经致力于以软件架构的优化整体提升运用的快速发布、快速上线,那么由于措辞而增加更多长期开销、配置和管理繁芜,便是得不偿失落的。
重构PHP运用是唯一的选择吗?
CSE Mesher改变PHP和微做事无法兼容的现状
CSE(Cloud Service Engine)是一款华为云推出的微做事引擎,基于华为公司的大型系统微做事化积累的最佳实践构件,供应了微做事SDK,做事注册,配置和管理中央,帮助开拓职员实现微做事运用的快速构建、管理运维。
CSE Mesher是Service Mesh模式的一种实现,将负载均衡、做事创造、熔断、运行时动态路由等能力抽象成将一层透明网络代理。正由于其作为独立运行透明代理的特点,CSE Mesher可以使得多种编程措辞的运用,如PHP, .NET, NodeJS都能够快速转向微做事或者云原生运用,开拓者无需修正原有的业务代码,以一种自然的机制扩展运用负载,自由混编,并因时制宜选择虚拟机或容器支配。
基于CSE Mesher,在很短的周期内就实现了HiFM系统的零侵入衰落做事架构改造,实在现步骤包含以下三个环节:
1、范围明确与功能剥离:明确业务系统的边界,形成多个独立的微做事,如上图所示。这里包括如下两点:
1) 将原来耦合的事情流拆分出来,采取更适宜的PHP微做事框架;
2) 对干系功能模块进行重组,将之前的高耦合的模块联动办法修正为各个微做事之间的RESTful做事调用办法。
在拆分的过程中,须要根据以下原则来剖析权衡:
1) 软件发布频率:如果某部分功能常常变动,变动过程不肯望现存的紧张做事受到影响乃至断服,那么这部分功能就要拆出来,成为独立的微做事;
2) 系统复用:如果某部分功能适宜作为API server发布出来供其他调用者调用,建议成为独立的微做事;
3) 业务干系性和独立性:拆分时要考虑业务逻辑的独立性,比如购物车,支付,评论做事,上图例子中很好地诠释了这一点;
4) 团队:在调度架构时还要考虑人力的重新分配,常日用2 pizza team来衡量一个微做事的团队人力是否得当。
2、接入微做事注册中央:这里描述的是基于华为云CSE微做事引擎的实现。个中,Mesher(即:微做事引擎透明代理)只哀求进行最小化的配置即可接入,详细包括如下几个要点:
1) 给做事设置名字,以便在运行时让其他做事寻址
2) 利用mesher作为http_proxy 即运行命令export http_proxy=
3) 见告mesher,做事本地监听地址,比如127.0.0.1:3000
4) 终极,在运行时,当你想要访问一个API时,只须要通过做事名+API路径,即可访问
3、利用微做事管理实现系统的弹性和高可用:微做事管理能力确保系统能够在大话务量峰值场景下也能为企业用户供应更加优质的做事,包括:限流,熔断降级,容错,负载均衡策略,通过系统配置和智能算法,确保系统运行时的高可用。
通过以上三步,改造后的HiFM系统有效提高系统容错能力以及稳定性,具备熔断降级与限流的自做事管理能力,同时也利用标准OpenAPI左券,便于免修正多系统对接。
更主要的是,全体改造过程中,无需将原有PHP代码利用其他编程措辞重构,也无需对PHP业务代码因改造而履行修正。
大略三步即可享受微做事架构带来的业务快速开拓快速上线、系统资源弹性、去中央化管理、系统高并发高可用,完备无需关心分布式架构带来的繁芜性和以及引入的技能问题。