云原生转型
在相对专业的细分领域,chatGPT 能起到什么作用呢?能给出什么回答,怎么问才能得到好的回答呢?本节内容,将尝试从一个业界其实也还没有定论的话题,开始问答。这就是:云原生转型。
"云原生"是一个很热门、但又很模糊的 IT 概念。
云计算鼻祖 AWS 这么定义云原生:云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。现代企业希望构建高度可扩展、灵活且具有弹性的应用程序,可以快速更新以满足客户需求。为此,他们使用现代工具和技术,这些工具和技术本质上支持云基础设施上的应用程序开发。这些云原生技术支持快速、频繁地更改应用程序,而不会影响服务交付,从而为采用者提供了创新的竞争优势。
Linux 基金会旗下的 CNCF 则这么定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
可以看出,CNCF 的说法基本是以 K8S 容器编排平台为核心,更强调私有云环境。此外,国内的华为、腾讯也各有自己的云原生2.0、云原生3.0 版本阐述。
华为的云原生 2.0 版本有八大架构原则:容器化原则、分布式原则、微服务化原则、Serverless原则、Service Mesh架构原则、DevSecOps原则、声明式API原则和可观测性原则。比 AWS 和 CNCF 的定义又新增了 serverless 和安全可信两部分。
腾讯的云原生 3.0 版本,在 serverless 和安全可信之外,又新增了低代码平台的生态连接能力。
纷乱复杂、各说各话的定义,让想要跟上云原生潮流的企业 IT 人员无所适从。有必要引入外部咨询的帮助,才能合理有效的规划 IT 转型路径,同时也能获得良好的成效背书。不过这次,让我们试试看 ChatGPT 是否能胜任这份工作?
现在,让我们假装自己是个啥都不懂的小白,开始提问。如何把一个 WordPress 应用(最流行的 CMS 开源系统)转型为云原生应用。
第一步结论出来了:ChatGPT 顾问认为,只购买云主机然后自己部署应用提供服务,是“云托管”,不是“云原生”。这里再次强调了要充分利用云平台的特性。那么好,甲方可以进一步追问:
第二步结论 ChatGPT 顾问的态度还是很坚定:只用云主机和云数据库,也不是“云原生”。这里 ChatGPT 理解了提问人对"高可用性"直观理解为数据库高可用性了,所以也不再强调这个词,于是换了一个说法:不能只用一个服务。
但这个说法还是不够清晰啊,于是甲方可以要求他说清楚一点,到底是啥服务:
这次 ChatGPT 没能理解"服务"的含义——其实跟我们所有人一样,中文里服务、应用、系统、平台、模块这几个词的含义太模糊了。
于是我及时点了 stop,打断了 ChatGPT 的生成,补充和进一步细化"组件"这个定义。对,就跟我们咨询乙方时毫不留情打断对方一样。这次,ChatGPT 就给出非常具体的建议了:容器、函数、数据库、自动化部署几个服务的具体产品名称都一一列了出来。
为了防止自己理解错误,我再按自己的理解重复确认一遍。ChatGPT 还很严谨的强调了一下这是个大进步,但不够。
不过我已经听不进去了,我要赶紧转型成云原生!这里最不熟的就是 codedeploy 了,第一次听说啊。继续给我介绍吧:
看起来不是太难。不过又有新概念被提及了,还得问清楚:
这时候仔细看看刚才的介绍,codedeploy 也能部署到 EC2 啊,那我可以不做这个迁移?问问看:
万万没想到,ChatGPT 还很有原则,再次强调不行:没有微服务和容器化的就是不算云原生!看来我只能勉力为之,开始规划自己的代码重构任务了:
看起来这个回答不是很明确,换成任何一个 XXX 应用,回答都能套这个模板。还是得从具体项目入手,换个问法:
换了两个角度,成功得到了 wordpress 如果要微服务化,可以怎么拆分。不过一口气搞动静可能太大了,先试点哪个呢:
chatGPT 又提到一个新东西了,这个叫 Laravel 的框架不知道对我们云原生转型有没有用?问问看:
看来确实是可以通过 Laravel Passport 来做我们云原生改造的第一步试点啊。那学起来吧:
这次转型咨询到这就差不多结束了。从一个非专业 PHP 研发的角度,感觉 ChatGPT 完全能说服我。不过,因为提供一开始就指明部署在 EC2 上,所以 ChatGPT 也完全站在 AWS 的立场上进行这次咨询回答。相信其他项目中,也可以有其他不同的效果。