许多游戏商都从云中受益匪浅
Alex 发自 凹非寺
非常AI | 公众号 QbitAI
有个小游戏,今年风靡全网,堪称现象级,但很快又遭群嘲。
在它刚火的日子里,有人玩着玩着手机突然卡住;有人费了好大劲也没通关,一问才发现身边人早就闯关成功了……
——没错,说的就是《羊了个羊》。
且不论游戏模式本身。造成此番混乱场景的原因,除了“羊”火得太出人意料,还有就是其服务器和API受到海量CC攻击和bot攻击,市面上还出现了一堆针对API的外挂软件。
怎么应对?
等等,“API”、“服务器”……这些不正是云的关键词吗?
事实上,“羊”的开发者后来真去求助了云服务商。据悉,腾讯云团队帮助“羊”拦截的bot自动化攻击高达5000万次。
说起云和云计算,其核心技术主要在于大规模的计算力调度。
不过在云迅速发展的同时,技术人员发现,传统软件上云并非易事,各大APP往往都有自己独特的架构;现在要上云,大伙儿还得费尽周折地做构建,显得比较笨拙。
为了让软件上云更灵活,有人打开新思路:
之前是先有软件再考虑上云,诶~那何不反过来从云出发来构建软件?
这个新思路,后来衍生出了一种新技术,并且有了个形象的名字:云原生。
云原生:云计算基础上生出的新事物
这里阐明一点:云原生和云计算关系密切,但云原生≠云计算。
云原生的概念说来话长,简单来讲,云原生是通过在云环境中运行容器化等,来构建和运行应用程序,它继承了云计算的不少优点。
对云计算服务而言,“成本,可能是其最大的一个优势。”
中国人民大学信息学院计算机科学与技术系主任柴云鹏如是说道。
当一个东西足够便宜,就可以吸引许多人来用它,让规模化变得比较容易。
另外,云计算有利于硬件资源共享,保障服务质量,能提高资源利用率,减少浪费。
柴教授指出,云计算本身,就属于是技术和商业模式的结合。
现在越来越多产品算法的设计,都是把成本优化和系统优化放在一起考虑的,所以天然就有一定的成本优势。这点对不管是大企业还是小企业来说,都很有魅力。
小企业前期的投入门槛很低,使用云计算的风险很小;大企业效率很高,对资源共享需求很大。
举个例子~
一项Olap数据分析的任务,以前需要10台机器计算10个小时;而用上云计算这个BUFF后,花同样的成本就可以租来100台机器——于是只要1个小时就搞定了。
后来,随着各公司一个接一个纷纷上云,有人在实践中发现,效率其实还能更上一层楼。
因为传统软件的硬件资源利用率并不是很高,主要是它们不够“有弹性”。
过去为了追求性能,一般会把CPU、Memory等硬件资源用满,并且可能还远远超过了上层软件的需求,造成大量的资源浪费。
另外,传统软件的架构往往是唯一的,当面对不同情况时,其不灵活的一面就凸显出来了。
那么如何才能减少浪费、让上云变得更灵活?
答案是:软件架构分离。
这就好比拆机,一层层剥开来看的话,首先是存算分离,然后进一步是CPU和内存分离(阿里也在搞这个),再往下细分就是软件内部模块化。
和传统软件不同,云原生软件在编写过程中更注重设计一个个小模块,更有个性化的味道——这有点像搭积木,先把一块块积木都准备好,然后根据不同人的需求造出他们想要的样子。
不过一块块“积木”可不是随意设计的,需要符合一定标准,也就是说,云原生软件要符合特定框架或“合同”,比如12-factor app。
至于整个软件的个性化,完全靠人力定制是不够的,必须要通过自适应技术来做;而要怎么做好自适应,这是一个需要研究探索的新课题,或许还任重而道远。
随着当下云原生的发展,整个云计算圈子的比赛开始进入下半场,抢占萝卜坑的时代已成过往,精细化运营被提上日程。
安全,就是无数个“0”前面那个“1”
云计算、云原生,听着很高大上,但它们都离不开一个基础——安全。
如果说,各种子业务好比一个个“0”,那么安全就是0前面的那个1。有了安全这个1,整体业务才有不断成长扩大的机会;否则说难听点,再怎么折腾也是白瞎。
由于云拥有资源集中、共享等特点,所以云厂商能够比较容易地从宏观角度去观测全网的一个安全势态。
结果,不看不知道,一看吓一跳。
腾讯安全云原生产品安全负责人徐展指出,截止到今年10月底,互联网已经披露出2.5万+漏洞,其中有超过4000个是高危漏洞。
然而……这些漏洞的修复率还不到20%。
漏洞对许多企业来说都有极大影响,连鹅厂自己都不例外。
他们一度深受某漏洞的困扰——这个漏洞名曰Log4j,利用Java中的一个缺陷,可发起能完全控制系统的远程代码攻击,破坏力惊人。
徐展坦言,连腾讯这样的大厂,动员了全集团去修复收敛,都花了近2个月的时间。
更让人难受的是,云计算技术在进步的同时,漏洞也在更新换代,Log4j3.0版本之后,又有了 Log4j3.01……
对整个云上的攻击,腾讯团队做了一个抽样分析,然后发现有其中将近70%都是和挖矿勒索有关。
另外,他们研究发现,自今年以来,云上的攻击的手法越来丰富多样,还孵化出了一堆黑产团队。
而在云原生架构下,面临的情况其实更复杂。
在云原生环境下,包括容器的构建、部署到运行等,整个过程会产生更多风险。
比如,容器带来了更多东西向流量访问,这就让传统的南北向网络防火墙有点尴尬了。
另外,云原生化的应用,主要包括API 、 Serverless,微服务,都成了新的靶子。
来看个真实事件感受一下:某省份专用云的API遭到轰击,导致好几百G的重要数据泄露。
而企业老板们也饱受安全问题折磨,一顿饭功夫都能收到好几个报警。
不难看出,云原生的总体安全堪忧。
那怎么办?
从监管机构角度,信通院已经发了一份《云原生能力成熟度模型》,专门云原生的架构安全制定了行业标准。
从云服务商的角度来看,简单来说,在云上构建新应用时,不能只追求性能了,还得为原生的基础设施加上“保护壳”——安全能力也要原生化。
而且,这些“保护壳”也要足够有弹性,这样才能适配云原生应用的“模块”。
作为国内比较有经验的云厂商,腾讯也分享了他们“纵深防御”的一些经验:三道防线,再加一个整体运营。
云原生,实用效果如何?
其实,从2015年起几条大方向的规则被提出,云原生出现也有几个年头了。
那么云原生的实践结果如何?
不妨来看一段小故事:
时间回到2015年,吕晓阳和同事从一个游戏公司出来创业。
彼时还处于IDC时代,他们的前公司也挺厉害——2013年月流水就有大几个亿的那种。在那时,他们的前公司也用着自己的网络数据中心机房。
“但是创业公司没有钱啊。”吕晓阳言简意赅。
穷则变,变则通,通则久。
他们只花了一晚上就做出一个决定:要把 IDC 干掉!
虽然那时云并不太稳定,外界许多声音都在说云不靠谱,但他们还是早早地成了阿里云的深度客户,甚至亲自上手帮阿里修改了很多底层Bug。
了解科技最新势头的他们,后来又用上了云原生。
在今天看来,他们当初的选择和血汗泪,都获得了回报。
现为游酷盛世科技VP的吕晓阳分享道,同是处理一项相似的业务,他们和另一家规模相似(如今都有几十亿流水)的友商比起来,成本仅为后者的1-2%。
因为他们深谙云原生的一个特点:无状态。
无状态的东西是比较容易扩展,对于降成本来说很有意义;但是在很多行业里,很多场景下,无状态其实不太合适:
比如王者荣耀,如果全用无状态,每次数据都要从存储上去拉,成本反而很高,所以游戏场景很多是有状态的。
但吕晓阳他们偏偏另辟蹊径,花了很大的心血,从有状态的东西拆分出无状态的部分。
最终,他们可以更容易地做出伸缩、多级缓存,甚至还有余力去做下内存加速,而且也能在无状态中做有状态加速。
总而言之,他们通过云原生和自身努力,极大地降低了运维成本。
在这次活动的Panel上,吕晓阳分享道:
云原生确实有很多问题,但是在当下,云原生在一些特定的场景下,已经比原来的云有非常多的提升了。
CCF C³
以上精彩内容,全部出自CCF C³的第16期活动,主题为“云原生技术的探索与实践”,由腾讯北京总部承办。
C³活动由中国计算机学会CCF CTO Club发起,旨在联结企业CTO及高级技术人才和资深学者,每次以一个技术话题为核心,走进一家技术领先企业。
目前为止已经举办至第16期,此前已先后走进京东、小米、搜狗、百度、亚马逊、阿里巴巴、快手等企业。
下次CCF将再度走进联想,开展第17期活动,敬请期待~