写给创业CTO们:小团队如何做大系统?

对于互联网初创者而言,技术研发简直就是一场不断的打怪之旅,在用户从0增长至100万的过程中,95%的可能你会先后面临以下技术问题:

problem
1. 服务器单点风险、物理服务器购置生效时间长

2. 运维方面的各种坑

3. 研发迭代速度慢、bug频出

4. 代码维护依赖
5. 测试与QA短板

6. 硬件成本飙升

 

 

对于很多创业团队,受制于有限的技术人员和参差不齐的技术水平,无法进行高效研发和运维,及时交付可用的软件。为了让使创业团队的IT系统能够适应高速增长和快速变化的业务需求, 针对以上问题,我们逐一拆解:

1.服务器单点风险、物理服务器购置生效时间长
2.运维方面的各种坑

 


解决之道:采用腾讯云CVM等云主机,两台以上CVM通过负载均衡服务CLB连接起来,消除主机层面的单点。依托云计算的弹性扩展能力,分钟级地根据业务需求调整服务器的数量;在业务发展过程中,逐步分离出数据库服务器集群+缓存服务器集群,依托云计算的特性,减少服务器与硬件层面运维的人力投入。

 
3.研发迭代速度慢、bug频出

 


解决之道:将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。我们应该在系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。

 


4.代码维护依赖

5.测试与QA短板

 


解决之道:建立团队Devops机制,更多通过单元测试而非集成测试、联调测试发现系统中存在的bug,最大化消除程序员对于测试的依赖,尽可能在早期阶段发现并消除程序问题。

 


6.业务快速增长期,硬件成本飙升

 

 

解决之道:依托腾讯云的Auto-Scaling服务,根据业务的波动性,自动调整服务器、带宽等资源的消耗量,减少不必要的计算资源开支的同时,保障业务的高可用性。

 

 

 

要知道,云计算也是共享经济的一种。让你的程序架构更符合腾讯云这类Iaas、Paas云服务的可扩展,高可用特性,将有助于帮你解决以上用户增长带来的“幸福烦恼”。

 

 

 

也正是基于类似的快速变化的商业环境挑战,技术大牛Matt Stine在《Migrating to Cloud

Native Application Architectures》一书中提出了"Cloud Native'云原生的架构思想,开发者可以在工具、架构和开发流程不发生明显变化的前提下实现扩展,适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。

Cloud Native(云原生架构)意味面向可弹性调整存储、网络与计算能力的云计算环境而设计的软件架构,可适应快速变化、高度可扩展、高可用的业务需求。

也许你会觉得Cloud Native的十二原则太抽象,不好理解,没法落地。

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓