开发者社区 > 博文 > 【王牌测评】轻量云主机能用来做什么?
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

【王牌测评】轻量云主机能用来做什么?

  • 京东云开发者
  • 2023-08-03
  • IP归属:北京
  • 27600浏览

最近试用了一下京东云的轻量云主机。从使用体验上来看,轻云与普通的云主机并没什么大的区别,只是在资源可以申请的最大资源小一些而已。


从使用场景上来讲官方已经定制很多绑定应用的镜像:WordPress、宝塔Linux面板、Ghost博客系统、零代码开发平台等等。显然官方的镜像面向的是个人开发者以及小团队的应用。那么对于研发团队,轻量主机有什么具体的应用场景吗?我想答案是DEV/OPS领域,轻应用部署以及工程师的验证环境。


我们先从工程师维度看看开发需要什么。首先需要一个程序开发环境,包括编辑器或者IDE(集成开发环境);资源环境,包括数据库、缓存、中间件等等。除了这些跟项目有关的资源以外,还有一个环境可能会被大家忽略,这就是验证环境。再小的项目都有可能遇需要验证的问题。很多人说,我们不是应该有测试环境吗?但是,测试环境属于项目公共环境,如果验证可能带来灾难后果,在公共环境来做验证可能会影响整个儿项目进度。笔者在年轻的时候曾经干过一次这事儿,当年在公共开发机上验证数据库备份,不经意间就把磁盘搞满了,恰好又是操作系统的/root目录,结果给项目组放了大半天的假。如果有轻量主机可能就不存在这样的问题了,有风险又与业务开发相关性不高的非功能验证完全可以用轻量主机验证,真是把主机干宕机了也没关系,恢复起来也很容易。简单来讲就是把风险放到一个沙盒里进行,即便有系统性灾难也会限定在一个范围,对整体影响很小。


我们再来看看DEV/OPS领域使用轻量云主机可以有什么玩儿法。现代DEV/OPS是个庞大的系统,包括CI/CD、代码托管、质量管理,后面可能还跟着一堆的UAT和SIT环境。可不可以利用轻量主机构建一整套DEV/OPS环境能?答案是肯定的。但是,一来,在现今的生态中可能没有必要;二来,团队资源未必支持我们这么干。想象一下你所在的团队是一个小型或者微型研发团队,整个团队只有十几个甚至更少的工程师,需求已经应接不暇了,哪儿还有精力维护一个庞大的DEV/OPS体系呢。最好的办法是利用现有的SaaS和Paas资源来构建DEV/OPS体系,只构建必要部分:CI/CD的流程,Chaos的基本流程等等。比如,我们通过github托管代码,然后利用轻量主机构建一套基本的 SIT 环境,然后通过 [Drone](https://www.drone.io/) 这个 CI 工具把整个流程串联起来。当pr 被 merge后,触发 CI 流程,自动编译并部署。小规模团队构建频次不高,从资源消耗的角度来说最小构建DEV/OPS的资源也就在 4-8 core。从人力资源消耗来看,也就占用半个运维人员。别问我怎么知道的,我们团队有个开源的数据同步中间件,就是利用这种模式在开发。


再来说说部署。对于小微型团队来说,不论是微服务体系还是基于k8s的服务编排体系都有点重。想想一下,团队只有两个巴掌数的过来的工程师,还需要专人维护一堆的非业务体系的技术平台,显然不太经济。而这个规模的团队的任务大多是要先验证技术路线和商业模型是否可行。在这样的场景下最合适的做法是集中资源搞单体应用,如果怕突发流量打挂服务器,利用云上的负载均衡服务同时在应用端限流即可,至于外围资源,比如数据库、缓存、MQ、对象存储什么的都用托管服务好了。放心,当产品成为爆款,并发高到系统撑不住的时候,相对的资源会配备齐全的。不要以为只有k8s才叫云原生,当你的应用部署在云上,并且尽量利用IaaS、PaaS和SaaS的公共资源的时候,它已经是个云原生软件了。


以上是一些对轻量云主机应用场景的思考,总结起来,当你的工程和团队不大,对于成本又比较在意那么轻量云主机会是一个好的选择。


作者:贾世闻