前幾個月離職加入一家創業公司,體驗了一次從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,能用開源的東西就用,本身造輪子坑多時間長,還不必定穩定好用。
其實創業的艱難和艱辛,技術團隊是最小的,更多的是管理團隊的前景規劃,市場團隊的拼死開拓和運維團隊的細心呵護。祝在創業路上的朋友們都能實現納斯達克敲鐘的夢想。