夺冠集团运用开拓以PHP措辞为主,业务多样化,代表处通过多次互换均未能从商务上打动客户
DTSE参与后,针对客户业务上的痛点问题,对客户进行了深入的调研,并为客户供应了基于华为云的运用当代化改造方案,成功打动客户CTO及高层领导,得到运用当代化改造的试点机会。

3、客户业务场景剖析3.1 业务痛点

在与客户的互换中,客户表示业务最近几年可见较大的发展机会,且业务发展对资源花费较大,但是客户业务系统的IT架构无法支撑未来业务发展,最紧张的问题是弹性伸缩效率不高,会由于突发流量导致系统崩溃,同时运维效率存在瓶颈。

面对客户提出的问题,DTSE经由深入调研剖析,客户的IT系统问题紧张以下两个缘故原由导致的,一是在做事扩缩容方面,客户运用直接在做事器支配,基于做事器的备份镜像做弹性伸缩,镜像大小高达200G,即摧残浪费蹂躏了弹性伸缩韶光,又增加了存储本钱;二是在突发流量感知方面,客户基于系统负载、CPU利用率和内存利用率进行负载监控,此类指标只有业务流量实际处理起来后才会发生变革,对付流量感知是滞后的,故不能及时的感知到突发流量。

php容器硬核案例分享一文带你拆解PHP说话系统下的容器化改革 HTML

对付运维效率方面,客户随着业务的发展,现有的运维职员已经不能知足业务运维须要,正在招聘多名运维职员。
经由与运维开拓同事的互换,紧张是由以下两个缘故原由导致了运维职员的效率低下,一是客户开拓和运维边界混乱,很多开拓环节的操作都须要运维参与,比如业务系统新版本的上线、测试环境配置的更新、日志的网络查找等等;二是客户的多个运用稠浊支配在多台做事器上,对应关系完备靠人工掩护,且运用配置凌乱无章,完备依赖手工管理和同步。

在调研过程中,还创造客户的运用系统还存在以下问题:运用间耦合支配,当发生突发流量、受到攻击时,会发生资源相互争抢等征象。
未处理好弹性伸缩后,新扩容运用的负载均衡问题。
运用和数据的灾备机制不健全,可靠性低。
PHP运用实行效率低下。
3.2 客户改造壅塞点

与客户领导沟通时,客户对付运用架构升级非常感兴趣,但是对付业务升级还是有比较大的担忧,紧张在以下三个方面:首先客户希望架构升级不能给业务带来的影响;其次希望架构升级后,只管即便避免对付现有开拓职员技能栈的冲击;第三,希望只管即便减少架构升级所带来的额外本钱。
考虑到企业业务稳定发展、企业技能栈与职员稳定性,客户对付升级改造存在较大的疑虑。

4 、云化架构升级改造方案

综合考虑业务问题与客户关注问题,项目组决定采取以样板改造先行,打消客户疑虑,以样板效果推动项目发展的应对策略。

4.1 改造样本选择

剖析客户业务体系,当前有约20个运用,全景图如图1所示,各个运用之间的技能栈基本相同。

与客户共同商榷,建议采取循规蹈矩的策略,先试点后复制推广,与客户沟通后决定先选择标杆运用进行架构优化试点。

同时为了担保业务稳定,我们操持先测试后生产,提高改造效率,尽快完成试点,划定业务改造范围,为了客户体验,优先改造不须要开拓职员参与的部分,对业务影响小的部分,担保改造过程平稳,别的部分则只在测试环境上优化,并由客户决定是否上生产环境。

图1 夺冠集团运用技能架构全景图

针对客户关心的三个详细问题,DTSE供应了一直机的切换方案,担保架构升级的业务连续性。
同时,加强客户沟通,通过高层申报请示、日常项目例会为客户决策层、详细项目实行层详细解释了新架构对付开拓技能栈哀求不变的特点。
重点先容了新架构所能带来的资源利用率的提升,减少客户对付本钱的担忧。
通过技能与日常项目运作,让客户整体上肃清了对付新技能带来寻衅的顾虑,武断了对改造项目的支持。

4.2 PHP容器化碰着的问题

夺冠集团所有运用的后端都是PHP措辞实现的,基于PHP-FPM运行,紧张有以下特点:

客户运用每次要求都是一个进程,且会依次实行扫描、解析、编译,末了才会实行代码,故资源利用量极高。
客户运用中的大部分进程都实现了无状态化,但是每每多个进程的代码会殽杂在一起,难以拆分。
客户在程序设计时,并未考虑此运用须要在云上运行,不符合云原生要素哀求,因此,还有部分进程是有状态的。
客户在上线新版本时,采取远程FTP的办法直接修正测试环境代码,采取git拉取的办法更新生产环境代码。

因此,对付夺冠集团的业务改造,也不单单是容器化这么大略,我们须要从业务到流程,全面的对付夺冠的运用进行改造,这并不是一个大略的事情。

4.3 运用改造方案

针对客户运用存在的痛点和问题,项目组供应了基于华为云的运用当代化改造方案,整体方案如图2所示。
包括基于CCE和CCI的容器化方案、基于Apollo配置中央方案、基于流量监控的弹性伸缩方案等多个子方案。
此方案优点是:

运用集群基于CCE做事做容器化、无状态支配,资源相互隔离,避免相互抢占影响的征象。
配置统一管理,可管、可控、可视,不再须要人工手动掩护,提升运维效率。
基于流量的弹性伸缩,提前感知流量变革,提高弹性伸缩反应韶光。
运用集群通过NAT网关实现对外部三方做事的访问,单IP外置化,不再与集群强耦合。

图2 夺冠集团运用当代化改造方案

4.3.1 基于CCE和CCI的容器化方案

客户在做事器上支配的运用镜像高达200G,且多个运用殽杂在同一个镜像中,以是我们并没有选择直接将运用镜像进行容器化的方案,而是对客户的业务流程进行了详细的剖析和拆解,只管即便将每个镜像做到最小。

以买卖兔运用为例,其业务的支配架构如图3所示。

图3 买卖兔的支配架构

我们将买卖兔的nginx路由拆出,并由k8s供应的nginx ingress更换,然后将WorkerMan的网关和注册中央拆出,剩余的买卖兔业务干系的部分,由于代码耦合以是暂时支配在同一个容器中,等待客户开拓职员将各个进程的代码剥离开,即可分开独立支配。
终极客户业务镜像被缩减到了180M,且合营CCE和CCI,实现了秒级扩容。

在项目过程中多次由于业务流程未对齐而修正方案的情形发生,紧张是由于客户对付容器化并没有清晰的观点,并不清楚那些问题会影响容器化的方案,以是建议在进行改造前对付客户开拓和运维职员进行一次大略的赋能,便于问题提前暴露。

4.3.2 基于Apollo配置中央方案

对付客户配置混乱的问题,DTSE给客户供应了基于Apollo的配置中央方案,页面化操作,一键修正所有负载的配置,不再须要运维职员手动的掩护。
如图4所示,且Apollo也是采取容器化支配,搭建方便,如图3所示。

图4 基于Apollo的配置中央方案

针对测试和生产环境,我们为客户分别支配了两套独立的环境,测试环境直接将账号供应给开拓测试职员,可以由测试职员直接修正环境配置,不再须要运维参与,而生产账号由运维职员掌握,并只许可运维职员修正。

4.3.3 基于流量监控的弹性伸缩方案

为了进一步办理客户弹性伸缩慢的痛点,DTSE供应了基于Prometheus流量监控的弹性伸缩方案,如图5所示。
相较于通用的资源利用率做弹性伸缩,直策应用容器的网络监控数据作为弹性伸缩指标,在突发流量到来的时候更早的感知到负载的变革,更加迅速的触发弹性伸缩。
基于此方案我们将客户终极弹性伸缩的韶光缩短了一倍有余。

图5 基于基于Prometheus流量监控的弹性伸缩方案

4.3.4 基于CodeArts的CICD方案

为了进一步办理客户运维效率低的问题,DTSE供应了基于CodeArts的CICD方案,如图6所示,建立从代码到支配的流水线,由客户开拓职员自行进行新版本发布,让运维和开拓职员职责归位。

图6 基于CodeArts的CICD方案

并推举客户结合业界最佳实践,在一段有限的韶光内,逐步将代码QC、代码门禁、自动化测试等配置加入流水线,进一步提高自动化程度,进而提高交付质量。

4.3.5 PHP性能优化方案

针对客户PHP运用运行效率低下问题,我们创造紧张是由于客户没有利用OPCache技能导致的,由于在客户原有的环境中,利用OPCache会导致新发布的版本须要三到五分钟才能生效,不利于开拓和测试,以是也没有在公司内部推广,但是在容器化之后,则无需担心缓请安题,OPCache加速的事理如图7所示,利用OPCache技能可以为运用带来4倍多的性能提升。

图7 OPCache加速的事理

4.4 对云做事产品的见地

对付客户关注的弹性伸缩问题,我们测试创造,当前CCE突发弹性到CCI还须要20多秒的韶光,个中180M的镜像加载占用了13s,建议产品对付镜像加载过程进行优化,进一步缩短突发弹性扩容韶光。

对付客户关注的本钱问题,常日采取CCE和CCI合营的方案,由于CCE节点池扩容较慢,在此期间突发扩容到CCI,为了进一步减少客户本钱,建议产品增加此场景的调度功能,当CCE有充足的资源时,主动将CCI上的容器调度到CCE上。

当前CodeArts Build虽然可以编译容器镜像,但是对付根本环境镜像支持不敷,在很多根本环境镜像的编译时会按照很多根本组件比如make等等,会须要较高的权限,但是CodeArts Build官方环境,会由于缺少权限而导致构建失落败。

4.5 架构改造给客户带来的代价

指标

优化前

优化后

比拟

备注

弹性韶光

140s ~ 210s

51s ~ 81s

2倍+

从突发流量到伸缩完成

镜像存储

200G

0.18G

1000倍+

节省存储空间,提升支配速率

性能优化

RPS 14.2

RPS 61.56

4倍+

3Core6G 100并发

配置管理

600s+

20s

30倍+

无需运维人工参与

运用容灾

单可用区

多可用区

提升抗风险能力

环境同等性

不一致

同等

减少问题涌现概率

隔离性

耦合支配

独立支配

避免了相互挤压

流水线

单支配

从代码到支配

从代码到支配一条流水线

5、总结和建议

根据W3 Techs的统计,PHP仍旧是当今利用最广泛的做事器端措辞,仍旧作为互联网的主干,为至少百分之七十的网站供应后端支持[1]。
尤其是在中小企业类互联网公司,PHP仍被大量利用,常日这类企业存在技能升级力量储备弱、运用架构历史债务重等问题。

牵引这类客户上云,大略的商务折扣已经难以打动,而平滑过渡的升级方案、全栈云的技能支持对其更加具有吸引力。
由DTSE供应方案建媾和技能支持,勾引客户进行试点验证,进而推广复制,并保障业务改造的平滑过度,循规蹈矩的将客户业务迁移上华为云,实现客户与华为云双赢。

本文先容了PHP措辞体系运用当代化案例,实现了许多与业务无关的通用性运用改造方案,如PHP运用容器化架构方案、基于Prometheus的弹性伸缩方案等等,为此类型客户供应了一个可参考的案例。

6、参考文献

[1] https://timotijhof.net/posts/2023/an-internet-of-php/

关注#华为云开拓者同盟#点击下方,第一韶光理解华为云新鲜技能~

华为云博客_大数据博客_AI博客_云打算博客_开拓者中央-华为云