初创公司技术架构选择

    前几个月离职加入一家创业公司,体验了一次从0到1的过程,旅途的艰辛和坑是在大公司上班很难体会到的。mysql

    公司主营o2o上门服务,因此与之相对应的业务包括:nginx

   C端:提供用户浏览,搜索,注册,下单,支付,评价,投诉,退款,分享,推送等程序员

   B端:提供商家入驻,提醒,数据统计,财务结算等redis

   用户行为分析:因为公司属于创业初期,数据埋点若是从代码上实现,仍是很是消耗程序员和产品的时间的,因此建议仍是使用目前市面上的友盟等免费产品。(H5无痕埋点目前大部分收费)sql

对应的模块基本就很是清晰了,总体的架构采用微服务的设计理念,模块大致拆分为数据库

产品,订单,支付,搜索,统计,推送,结算这几个模块,独立运行,互不相关又密不可分。安全

其实,如今主流的技术架构,尤为初创公司(电商性质),基本都差很少。只是理念上微服务和soa的差异,soa可能偏多一些,可是我仍是很喜欢微服务组件化的理解,很是棒。架构

简单介绍几个目前在使用的一些中间件:app

负载均衡:nginx负载均衡

cdn:七牛云 包裹图片存储,瘦身,裁剪均可以使用七牛云

搜索:elasticsearch

nosql:redis (由于须要实时的使用,因此改成aof持久化,防止重启丢失一段时间的数据),redis一开始没有设置密码,致使被一个挖矿工木马病毒侵入,我也意识到了不少中间件不能简单的下载安装就直接使用,保证中间件的安全才是第一步。

关系型sql:mysql,做为主流的关系型数据库。对mysql的索引优化有必定的理解,因此选择mysql来做为数据的磁盘存储。

mq:rabbitmq,对于性能来说,他不是最好的,可是支持持久化和消息确认,从数据一致性的角度来说,咱们须要牺牲一些性能来保证,甚至着重于某些业务(支付)的安全。

app推送和数据埋点:友盟

对于创业公司来说,

1,做为架构搭建者,不要选择一些太前沿的框架,最好初创技术团队都会使用的。

2,能用开源的东西就用,本身造轮子坑多时间长,还不必定稳定好用。

其实创业的艰难和艰辛,技术团队是最小的,更多的是管理团队的前景规划,市场团队的拼死开拓和运维团队的细心呵护。祝在创业路上的朋友们都能实现纳斯达克敲钟的梦想。

相关文章
相关标签/搜索