【.com原稿】在WOT2016移动互联网技术峰会平台技术专场,万多多CTO单泽冰先生为我们带来了一个《初创企业之断舍离》的精彩演讲,与参会的小伙伴们分享了创业公司在做技改时遇到和绕过的陷阱,学习和掌握的方法,以及创业者之间的巨大差异。 1。现在的孩子正在经历一个特别糟糕的时期 谈到为什么选择从事玩具租赁行业,单泽兵先生表示,很多孩子都在经历一个特别糟糕的时期。他不好的不是他一无所有,而是他们拥有的太多了。现在的孩子玩的玩具很多,从床铃到汽车,各种摇摇车,各种自行车,各种玩具,应有尽有,但他们真的能玩吗?他们真的从这个玩具中得到了他们想要的东西其实不完全是,因为孩子的父母经历过物质匮乏的时代,所以当孩子抱着父母的大腿在玩具柜前说我要这个,我要那个,爸妈会毫不犹豫的给我买给他,结果呢?屋子里堆满了各种玩具。 其实现在很多孩子的玩具,大多都是密封在塑料盒里的。为什么?他已经四岁半了,一岁两岁的玩具是肯定不会玩的,就一直放在那里。把这些玩具送给朋友很尴尬,不送人很可惜,所以我们提出了一种叫玩具租赁的想法,就是租售,除了陪玩玩具,除了必备玩具,其他玩具、不同的玩具,常识各种玩具都可以通过租赁变现,孩子们有更多的尝试机会。除了租赁,还提供上门安装服务,帮您讲解这款玩具的玩法,甚至陪伴您的孩子,最大限度地发挥这款玩具的可能性。 这个业务看似很简单,是典型的电商业务,但实际上技术挑战非常大。 2、面对技术挑战,从零开始,逐步打造 创业初期,如何解决技术难点对万多多提出了更大的挑战。单泽兵先生在演讲中提到,Twitter、Facebook、Linkedin,以及国内很多大公司的架构图都特别复杂,不适合我们这样的小企业。我们反复思考系统架构是干什么用的?总结了一些经验。我们认为系统架构的外部和内部职责是不同的。对外要解决三高(高可用、高并发、高扩展)。当用户数量增加时,架构可以稳定支撑而不受影响。当业务发生一些变化时,可以准确扩展或适应不断变化的业务需求。对内,对于研发人员来说,需要能够简单的理解架构。如果一个架构让所有研发人员都觉得特别复杂,效果就会下降。 上图是我们认为最基础的网站,有Service层,有前端。前端通常是基于浏览器的,也就是Browser-basedHTMLRendering。只要将基于HTML的页面返回给浏览器,它就会正常呈现。服务器一开始也很简单。通常,它使用MVC,即View和Control,也将Service分开,即逻辑不能写在Control或Moden中。最底层是持久层和第三方API。现在大家在开发中会遇到很多API。处理微信、短信、各种统计服务,需要第三方的API,会分一层。 除了浏览器访问,创业公司的流量主要来自哪里?答案一定是微信。要在微信里放一个应用,在微信里放一个HTML不容易。此外,除微信外,APP、百度应用或微博应用也可申请。可以做一些前端,然后拿出来把前端分成DOMControl和ClientModel,然后再往下走,前端会比较稳定。在服务器端,也分为多个服务,不同的服务解决不同的内容。说到SOA,所谓面向服务,还不止这些。再往下,就会变成使用SOA之外的业务服务的服务。这会将业务服务与平台服务分开。平台服务更底层,更偏向于数据存储和逻辑处理,而业务服务更偏向于业务层面。这就是所谓的微服务架构。 回过头来看,什么是技术选型?一个网站会分为很多层,技术选型无非是确定某一层使用什么样的技术。虽然看起来技术标签很多,有React、JS、Spring、java,实在是太丰富了。就像租玩具一样,我想成功地找到我最需要的工具。 另外,在技术选型上如何考虑前端应用和数据库层。做前端核心有几点需要考虑:一是复用性。我们的大部分应用都运行在微信上,不排除会在百度App、新浪微博等平台上使用。前端的可重用性非常重要。如果前端完成了,不用做太多事情就可以很容易地创建一个新的应用程序。第二个是复杂性。现在做一个前端功能很费劲。如果特别复杂,就会掉坑。前端不够用怎么办?JS已经完全成为一门真正独立的全站语言。如果后端开发和其他开发不能及时填补,太复杂的话,所有的业务逻辑都会压在前端,所有表现层的任何变化都需要前端,这样就形成了一个瓶颈。第三是SEO。您可能认为这个术语有点陈旧。当你创业的时候,你会发现任何流量和PV都是极其宝贵的。之所以在百度移动搜索排名第一,是因为我们想到了一些SEO的方法,但是SEO和JS冲突,因为用JS渲染的页面都是动态的。比如你打开一个纯JS做的网站,比如Gmail,打开的时候只有一行代码。这时候百度等搜索引擎是不会解析的。我们与百度进行了深入的交流。现在解析性能太差了,怎么办?在讨论了很多方案后,我们最终决定前端使用React和JS,相对成熟,语法也相对自由。 后台的重点主要是语言选择,这是一个特别纠结的事情。多多团队大部分来自赶集网。赶集网是基于PHP开发的。尽管PHP是公认的最好的语言,但是PHP也有其自身的问题。当规模变大了,怎么异步,怎么分层,怎么做symbol,怎么和异构语言通信,在赶集网遇到了很多类似的问题。我们曾经想过迁移某些部分,但后来发现成本太高,而且做起来很痛苦。此外,在开始新业务时,首先要考虑的是未来的扩张情况。如果根本无法扩展,只会看起来简单,以后会踩坑。因此,权衡之后,我们选择使用Java作为服务端。在框架选择、可维护性、未来服务扩展性上确实有很多优势。 持久层。我们在选择持久层的时候,毫不犹豫的选择了现在的mysql,但是纠结了一段时间mysql是自建还是云端。使用云的好处是可以自动备份,自动扩容,性能更好。如果是自建,因为所有的服务都运行在云上,自建意味着必须在云主机中开启mysql命令,而云主机的选择可能是普通硬盘,云主机存储本身没有安全保障,糟糕的业务无法再运行,最终选择使用云mysql进行持久化存储。另外,redis也有一个坑。我们redis用的不多,主要是在缓存和一些性能比较弱的地方,用于队列处理或者缓存处理业务。发现使用某云的redis时,命令会比较少。我不知道为什么。安全仍然是为了降低复杂性。命令少了,应用会发现本地开发完全正常,没有问题。一旦部署到云端,就??无法运行。然后我查看日志发现了一堆问题。我发现官方的解释是redis不工作了。它支持CloudFoundry命令,但不能使用,所以我们必须四处走动,将所有与CloudFoundry相关的逻辑都杀掉,然后重新部署。 选择了技术架构,回顾反思,做技术选型要考虑的几点:一是简单,二是快,三是用对人。 3。带着小小的梦想,让世界一点一点变得更美好 关于创业,什么样的人是创业者?一个小梦想,哪怕这个小梦想改变一点点,让世界变得美好一点点,他也会觉得很幸福。 为了这个梦想,你要吃很多苦,被别人质疑,每周工作7天。这就是所谓的企业家。创业是一个长跑的过程。没有丰厚的薪水,没有大公司的诱惑,没有丰厚的福利,没有平台的支持,不得不离开自己的舒适区。 那么,为什么还有那么多人创业呢?单泽兵先生认为,创业给人带来的变化有三个:第一是韧性。以前在公司工作,老板可能包揽一切。掌握在自己手中,必有结果,别无选择。创业者遇到问题就要解决问题,所以会磨练自己的应变能力。二是感恩。以前在大平台上做事,需要调用的平台资源很多,可以使用的资源也比较多。但是创业公司就完全不一样了,要珍惜身边的每一个人,他可能会在你的创业路上助你一臂之力。三是无所畏惧。当你走在创业者中间,你会发现没有什么是你搞不定的,一切都会有解决的办法,而不是不能解决的。经历了这些,你就不再担心、害怕很多挫折了。 》本文由单泽兵先生于2016年8月在WOT2016移动互联网技术峰会平台技术专场上做主旨演讲《初创企业之断舍离》。WOT2016大数据峰会将于2016年11月25-26日在北京举行。广州金融JW万豪酒店举办,届时,数十位大数据领域一线专家和数据技术先驱将齐聚现场,共同探讨机器学习、实时计算等前沿技术、系统架构初创企业、NoSQL技术实践等,在围绕话题进行深入交流和探讨的同时,分享大数据领域的最新实践和最热门的行业应用。更多WOT2016大数据技术峰会信息,请访问大会官网:http://wot.51cto.com/2016bigdata/》【原创稿件,合作网站转载请注明原作者及出处为.com]
