言林博客
博客
言林一系列重大技术转型

言林一系列重大技术转型

汤如林
发布于 2023-04-05 16:07
云计算
言林

言林的技术团队在过去的六个月时间内,完成了一系列的重大技术转型。在此分享一下我们的技术转型心路。我们不再使用的技术不表示该技术不好,只是在当前阶段不再适合我们公司的发展。不同的公司或者程序员还是可以根据自己的需求,选择适合自己的技术。

云计算从阿里云迁移到亚马逊云

我们决定将全部的kurbernetes容器应用,全部迁移到aws EKS架构。做出这个决定是艰难的。初衷是我们希望采用Terraform实现云服务设施的代码化部署,而aws的Terraform社区支持相对更丰富。我们期待的某些功能阿里云支持得不是特别友好。 后来在实际迁移过程中,我们发现aws的云端设施相比阿里云而言复杂很多。需要架构配置的颗粒度非常细。这给我们的云架构带来了更大的灵活性,同时也带来了很多挑战。

迁移初始,我们也曾经担心过数据合规的问题。后来事实证明,aws中国区的运营从我们的角度是没有问题的。我们在aws中一开始的部署工具是Circleci。两个月后,circleci突然不能正常将打包的镜像推送到aws的ECR中。研究发现circleci的数据推送被屏蔽了。这反倒让我们放心了,证明aws中国区是正常受监管的。

本地化是另一个挑战。有些配置在aws海外区是正常使用的,在中国区则需要手动做一些调整。

费用是另一个重大迁移考量。我们预估aws服务的价格会比阿里云贵一些。事实证明确实贵了很多。我们跟aws的沟通发现,很多用户在aws短期体验了aws的价格后,立马跑路了。在aws内部架构师的支持下,我们做了大量的成本优化,最终将原来aws一个账户每天¥208的开支,下降到了¥28左右。

客户服务也没有网上很多人吐槽得有多差。 aws为新人提供了很多初期入门级课程培训。虽然我们没怎么用到这些课程,但还是感觉到aws的用心。aws也会为客户分配专属的客服,跟一名专属的高级架构师。整个aws云端基础设施是个非常庞大的系统,没有一个人了解所有的架构,所有可能出现的问题。 必要的时候,还是需要购买它的商业支持计划。每个月600元,可以随时在线连接不同基础设施的技术客服。

前端技术从Vue迁移到React

我们决定全面放弃Vue技术栈,使用React。React对最新技术的反应更快, 兼容更好,比如对Typescript的支持,Hook的设计。我们期望可以实时拥抱最新的前端技术。使用Vue时经常需要被迫等待Vue去慢慢实现最新的前端技术理念。React的语法结构相比Vue封装度高一些,代码目录架构层次更适合我们公司精简代码块的思想。 

小程序技术从Uniapp迁移到Taro。这个迁移的初衷是出于uniapp不支持Typescript,而我们希望可以在前端书写类似Java,Golang高质量的强类型代码,在编译阶段即可提前发现代码中可能出现的问题。这有利于长久的代码维护。当然这个问题也是Vue的问题,现在Vue也已经开始支持Typescript了。除此之外,uniapp没有开源,在遇到一些开发问题的时候,我们不清楚内在的设计的架构,往往很难做出合适的解决方案。相比之下Taro开源,设计理念公开,让我们对taro从内到外有明确的认知,使用起来更有信心。

我们开始担心React团队扩容的问题。市场上相对有个共识,Vue的学习门槛比React低,导致国内Vue程序员明显比React多。后来发现这个问题也不是问题。虽然Vue程序员多,但是不代表都适合我们公司的开发理念、技术需求。React程序员虽然相对不多,但是适合我们公司开发理念的程序员也不少。

除了上面的两大技术转型,我们还做了不少其他的技术迁移。

  • 构建前端网站,我们采用了Nextjs,支持SEO静态优化,多语言设计。
  • 后端管理台,我们采用Ant Design,相对于从前的后台设计,界面更清爽。
  • 手机APP端开发,我们直接使用Flutter,同步支持Android,iOS开发。
  • 后端RDS数据库,我们从MySQL迁移到PostgreSQL
  • 云端服务器从x64架构迁移到Arm架构。我们将React,Golang的应用编译部署到Arm架构下运行。大大优化了我们云端的服务器成本。
  • 云端应用的Devops部署平台从Jenkins迁移到极狐Gitlab

如果对我们采用的某项技术感兴趣,欢迎跟我们交流。也欢迎了解我们最新的职位😉