专栏首页Web技术研发工具系列 | 从零开始搭建创业公司技术架构

工具系列 | 从零开始搭建创业公司技术架构

从零开始搭建创业公司技术架构

创业公司由于时间、人员、资金等各方面的限制,系统需要的各个组件优先选择第三方服务,而不是自己搭建。一个创业开发项目都需要服务器操作系统、开发语言、web服务器、开发框架、数据库、缓存、静态文件存储、日志系统、业务监控、持续集成、代码管理、发布部署系统、文档管理等。现在按这些方面展开来讲。

服务器操作系统

服务器可以使用云服务器,像阿里云的ECS。对于面向国外的应用,则优选选择 Amazon ECS。 所有的服务器都选择一种操作系统版本,一般都选择 Linux 内核的操作系统,像 Ubuntu、CentOS。Ubuntu的软件源比CentOS的软件源更新些,一般情况下选择Ubuntu。服务器硬件使用大致相同的配置,后面根据配置扩展。

开发语言

对与创业公司来说,时间是很重要的,所以我们要选择团队容易上手的开发语言便于快速迭代。一般来说,php和go语言都是不错的选择。

数据库

对于关系性数据库,首选mysql,可以选择阿里云的 RDS 提供mysql服务,减轻DB管理工作。

开发框架

对于开发框架的选型,我们需要考虑:

  1. 框架是否完善,支持分布式、包含常用的像日志、缓存等组件,性能优越
  2. 团队成员需要有非常熟悉该该框架的同事,需要能掌控框架
  3. 框架使用广泛,有活跃的社区支持

对于php我们可以选择laravel/tp/yii这样的开发框架,注意需要各个项目都统一使用一种框架,便于同事专注于业务开发,掌握业务中需要用到的技术。

web服务器软件

web服务器软件有nginx、apache、tomcat、iis等。现在nginx广泛使用,nginx可做后端服务器的反向代理、负载均衡、静态图片缓存,以及可使用lua扩展nginx。

LB(负载均衡)

LB(负载均衡)是一个通用服务,一般云厂商的 LB 服务基本都会如下功能:

支持四层协议请求(包括 TCP、UDP 协议); 支持七层协议请求(包括 HTTP、HTTPS 协议); 集中化的证书管理系统支持 HTTPS 协议; 健康检查; 如果你线上的服务机器都是用的云服务,并且是在同一个云服务商的话,可以直接使用云服务商提供的 LB 服务,如阿里云的 SLB,腾讯云的 CLB, 亚马逊 的 ELB 等等。如果是自建机房基本都是 LVS + Nginx。

缓存

对于热点数据需要使用缓存,减轻服务器的压力。现在 Redis 等内存缓存广泛使用,可以选择像阿里云的数据库 Redis版。

静态文件存储

静态文件像图片、视频等文件比较耗磁盘资源,并且耗带宽,需要有磁盘更大、带宽更便宜服务器做这件事。可以自己搭建fastdfs集群做这件事,但比较麻烦。现在很多公司都选择像阿里云OSS、又拍云、七牛云这样的服务。如果使用阿里云的OSS的话,搭配阿里云的ECS、CDN就比较方便。

CDN

使用CDN分发内容,使用户访问比源节点,提高用户访问速度。对于有很多小的静态文件、html文件、视频文件、图片文件的应用效果非常好。CDN可以选择阿里云和腾讯云。

日志系统

日志对于排除应用故障非常有帮助,简单的应用通过打印文件就可以。然后通过ELK组件做收集存储展示。在php中可以使用Seaslog输出规定格式的日志,然后再用ELK。

业务监控

我们平常做的简单的监控是,在系统异常或者错误时,通过企业微信或者钉钉这样的方式发送信息给组成员。这中方式做的事情比较有限,而且不够智能。可以选 new relic 这样的apm监控工具监控页面响应时间等。系统监控看阿里云后台。

短信服务

短信服务时应用中经常用到的,短信服务商包括有容联云通讯、阿里云等,发送量很大时,可以选择几家服务商交替使用。

代码管理

代码管理工具使用gitlab搭建代码管理工具,或者使用github私有库。

持续集成

持续集成,简称CI,是一种软件开发实践。通过持续集成工具,每次提交代码自动完成安装程序依赖、自动化测试等,测试验证开发效果比较方便。如果使用gitlab,可以使用GitLabCI,或者使用Jenkins。

发布部署系统

从测试环境,到预发环境,到最终的正式环境部署,需要有响应的部署系统的支持,发布系统可以考虑使用wallet这样的开源系统,wallet网址:http://www.walle-web.io/docs/

跳板机

开发需要可能登录到多台服务器环境,可以使用跳板机来方便登录,此外来可以做安全审计,查看每个成员的操作,将责任划分到人,提高系统安全性。跳板机可以使用jumpserver。

文档管理

对于创业公司,文档管理很重要。必要的文档,可以让新成员更快地融入到项目,也有利于团队的技术沉淀。对于内部文档管理,可以使用开源的markdown系统,如showdoc。文件附件可以存放到企业微信的文件里。也可以使用第三方的系统,如腾讯tapd,兼具需求管理、文档管理等功能。

需求管理

可以使用腾讯的tapd比较完整的工具,或者使用trello简单的需求管理工具。所有口头需求都要写到需求管理工具上面,防止忘记以及方便查看需求。每天开发成员将当日计划开发的新需求添加到共享excel里,将之前的任务用不同颜色标注为完成和进行中。早会时,简要说下今日工作内容和遇到的问题。

项目管理

  • 有专人对接项目需求,让程序员有更多的时间写代码。
  • 手机24小时开机,快速响应突发问题
  • 团队leader要以身作则,成员较少时,甚至要亲身写代码。
  • 团队leader要放手开发成员做事,让所有成员都有提升,这样也可以减少成员流失。
  • 处理服务器问题时,最好不要让 BOSS 在开发身边,增加压力
  • 项目架构预留扩展,但是不要过于设计架构。架构简单,更易于维护。
  • 项目重构要放在平常工作,逐步去做。不要轻易推翻之前设计,这样很费时间。

参考

[从零开始搭建创业公司后台技术栈]http://www.phppan.com/2018/04/svr-stack/ [从零开始,打造适合创业公司的千万级用户技术架构] http://www.upyun.com/opentalk/244.html [小恩爱技术团队成长及服务器架构演变] http://www.upyun.com/opentalk/245.html [浅谈创业早期技术实现] https://mp.weixin.qq.com/s/OyuYpQfCy0XuGat-YC9iBg

本文分享自微信公众号 - 万少波的播客(Tinywanblog),作者:Tinywan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从零开始搭建创业公司后台技术栈

    有点眼晕,以上只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大...

    搜云库技术团队
  • 从零开始搭建创业公司后台技术栈

    链接 | https://mp.weixin.qq.com/s/fCC-Xl3Eh3CUz8D9bFmFhg

    五月君
  • 从零开始搭建创业公司后台技术栈

    有点眼晕,以下只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大...

    iMike
  • 从零开始搭建创业公司后台技术栈

    转自 : http://ju.outofmemory.cn/entry/351897;编辑:公众号程序员面试

    程序员小强
  • 从零搭建创业公司后台技术栈

    有点眼晕,以下只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大...

    用户1516716
  • 手把手教你从零开始搭建创业公司后台技术栈

    今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框架,语言,数据库,服务,操作系统等等。

    Bug开发工程师
  • 参考:创业公司搭建自己的技术架构

    cnblogs.com/huojg-21442/articles/8194348.html

    良月柒
  • ImageDT王芹:从场景出发,在市场验证下找到技术与零售的结合点丨镁客请讲

    因为了解场景的需求点,ImageDT的产品一出现就备受市场认可,也因此受到了红杉资本、真格基金等多家投资机构的认可。

    镁客网
  • 靠App秒识货架8976种商品,这家AI零售方案商一年3获投资

    量子位
  • 创业互联网公司如何搭建自己的技术架构

    本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活。本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍。

    用户1516716
  • 创业互联网公司如何搭建自己的技术架构

    cnblogs.com/huojg-21442/articles/8194348.html

    用户5224393
  • 进阶Java架构师必看的15本书

    1、大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技...

    Java技术栈
  • 以色列的底层技术如何赋能产业互联网 | 腾讯AI加速器深访以色列

    根据前复兴集团以色列投资经理Daniel Cohen的统计,目前以色列差不多80%拿到融资的企业都在人工智能领域。剩下的20%在生物医药领域,其中也有一些人工智...

    量子位
  • 2018全球机器学习技术大会40位大神即将开讲!

    ​​​"Can Machine Think?" 1936年阿兰· 图灵提出「图灵机」以及机器具备「思维」的可能性。历经82年,以机器学习为代表的人工智能经过近几...

    活动家
  • 架构师之路-创业互联网公司如何搭建自己的技术架构

    本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活.本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍,技...

    李鹏
  • 吴恩达获英特尔投资!这次,英特尔拿出7.85亿砸向AI创业公司

    英特尔投资在其全球峰会上宣布,拿出1.17亿美元(约合人民币7.85亿)投资14家创业公司。

    量子位
  • 九年铸剑 这家公司开启SaaS全面定制时代

    众所周知,SaaS市场近年来发展迅速,受到越来越多用户的欢迎,但SaaS面临的终极挑战即:针对企业核心业务的深度定制与人力成本、规模化的不可兼得。近日,搭搭云宣...

    大数据在线
  • 为什么我不推荐你使用vue-cli创建脚手架?

    最近在知乎看到一个问题,原问题如下: “ 很奇怪,为什么现在能找到自己手动创建vue脚手架的文章非常少,而且大家似乎对webpack4的热情并不高,对于想基于v...

    闰土大叔
  • “私域生态”如何重构零售业的增长新格局?

    2020年初突如其来的疫情让整个线下零售行业措手不及,坏的结果是销售额断崖式下滑,好的方面是零售商的数字化进程大大加速了。

    庄帅

扫码关注云+社区

领取腾讯云代金券