云技术社区

把单体应用现代化,这样做就行了

Posted on 2020-04-24

将一个单体应用程序分解成更小、更易于管理的部分有很多好处。然而,分解一个单体应用程序是一个挑战,必须小心处理。因此,我们在此分享需要什么资源来现代化你的单体应用程序。          

掌握技能和应用程序知识              

如果你的单体应用让几十个程序员多年来一直在研究它,那么在这个过程中,它已经从一个单一焦点的应用膨胀到一个有很多目标的应用。在这些情况下,收集尽可能多的关于应用程序的知识是有帮助的。在开始之前,知道这些资源在哪里,并在内部整理它们。对单体应用程序依赖关系和其他细微差别的了解将提供难以置信的帮助。             

尽可能多地深入了解单体应用程序是很重要的,拥有一支精通云原生技术(如微服务架构)的团队也是必不可少的。如果你没有这些内部技能,考虑聘请一个顾问。             

在开始之前要回答的关键问题包括:             

——现代化的预期结果是什么?是降低成本、提高运维效率、更大的创新还是别的什么?             

——你有深入了解单体应用的内部资源吗?具体来说,是谁?他们是否可以来完成单体应用的现代化工作,如果可以,何时/按什么时间表?             

——这些人对单体应用有多深的了解?他们是原始开发团队的一部分吗?    

——开发人员能否映射应用程序的服务、依赖关系等?他们了解脆弱的地方和/或所用技术的局限性吗?             

规划路线              

有一个具体的计划和一条明确的单体应用程序现代化的道路对实现目标至关重要。一些单体应用现代化方法提供了更充分的成本优化,这会带来更好的云投资回报率。例如,容器化将帮助你实现自动缩放和CI/CD功能,而完全无服务器的结构将充分利用云的弹性和成本效率。   

记住,随着收益的增加,前期投资也会增加。因此,应完成清晰的成本效益分析,以了解哪种方法最适合你的特定应用程序,以及你希望实现的收益。

确定现代化标准              

根据成本效益分析的结果,有三个常见的现代化目标。请注意,这不是线性的,而是根据一系列标准和期望的结果来决定目标。 

基础设施自动化              

这种方法(有时也称为云基础设施就绪),应该保留给业务价值较低的应用程序。我们称这些应用程序为Sustain Apps,因为它们是为了维持业务而不是推动新的收入(我们将创收应用称为Invest Aps)。           

对于这些应用程序,基础设施自动化允许你在云中新的虚拟机上重新安装应用程序,允许你清除随着时间积累而不再相关的技术债务类配置。同时,这种方法允许你采用新的最佳实践——例如,通过新的漏洞检测来提高安全性。     

基础设施不变              

这种方法(也称为云服务就绪、重新平台化或容器化)让单体应用受益于云基础设施,特别是操作系统或数据库等组件的升级版本。在容器化过程中,应用程序代码被更改为使用基本平台服务,如Amazon RDS和Amazon Elasticache,以及高级Amazon EC2服务,如autoscaling和ELB。当原始开发团队无法提供帮助和/或应用程序不适合Lambda等高级技术时,重新构建是一个不错的选择。             

无服务器或托管基础设施

这种方法通常也称为云原生或重构。它是单体应用程序全面现代化的理想选择,因为它允许你充分利用无服务器等先进技术和微服务等架构。此路径需要重构组成应用程序的服务,同时保留业务逻辑。应用程序被分成不同的层和部分,服务(如数据库)被替换为与云服务等效的服务。             

新的云原生应用程序有许多好处,包括允许开发组自主和并发工作的小的、可组合的部分,从而提高了团队的利用率。团队通过先进的自动化和代码库加快了上市时间——这些代码库已经被分成了单独的服务。而且,与最初的单体应用不同,更新可以快速推送到客户手中。最后,由于开发人员不再需要理解单体应用代码库的复杂性,从而避免可能导致整个应用程序崩溃的更改,因此降低了风险。             



Posted in
咨询热线:400-100-3070

北京易捷思达科技发展有限公司:北京市海淀区西北旺东路10号院东区1号楼1层107-2号

南京子公司:江苏省南京市雨花台区软件大道168号润和创智中心B栋一楼西101

上海office:上海黄浦区西藏中路336号华旭大厦22楼2204

郑州分公司:河南省郑州市中原区西三环路大学科技园东区14号楼3层北户301

成都分公司:成都市高新区199号天府三街太平洋保险金融大厦A区8楼


邮编:100094


邮箱:

contact@easystack.cn (业务咨询)

partners@easystack.cn(合作伙伴咨询)

marketing@easystack.cn (市场合作)

training@easystack.cn (培训咨询)

hr@easystack.cn(招聘咨询)

Copyright © 2017 EasyStack Inc. All Rights Reserved. 京ICP备16000234号-1 京公网安备 11010802024994号