云原生的进一步具象化

本文转载自公众号:HelloJava。缓存

云原生这个概念已经愈来愈深刻人心,但对“云原生究竟是什么?”这个问题,仍然是各类各样的解读,最近对云原生具体是什么有了点感触,因而写下来分享和探讨下。架构

我如今认为云原生实际上是让众多的公司,经过基于云的产品迅速得到在构建一个如今这个时代的应用(是否是有点像 AWS 一直讲的 Modern Applications)所必需的各类基础能力(如:极强的规模伸缩性、极高的可用性、极低的创新/运营成本、大数据的分析/运营能力等等),而不须要像之前的不少公司,为了具有这些能力,投入巨大,或者用另一句话说:云原生就是专业的基础能力普惠化,随手可得框架

当今时代的应用和多年前的应用面临的情况差异太大,这个差别和当今业务面临的激烈竞争和玩法有很大的关系,我之前一直以为像阿里在发展过程当中积累的不少能力,外面不多有公司会须要,就像当年百亿、千亿美金的公司是多么难才出现,但如今看来则彻底不同,因此这也奠基了当今时代的应用在技术层面能力的要求也远不同,简单说几个点:异步

  1. 对可用性的要求远高于之前的应用:如今的应用一般一上线对可用性要求就已经不低了,由于一旦出问题就很容易把用户送给竞对;
  2. 对伸缩性的能力要求也远比之前高,主要体如今两个方面:一是团队规模,如今的业务公司很容易迅速发展到百人以上,而百人以上的研发效率如何保持尽可能不降低,这对系统的伸缩能力有着很高的要求;二是用户规模,如今众多业务的用户规模能够很快地突破百万、千万规模,这就要求系统必须能根据用户规模快速地伸缩;
  3. 创新和运营的成本必须低:业务竞争无比激烈,快是关键,因此怎么在不须要太大投入的状况下快速上线各类业务,是无比重要的;另外一个方面就是运营的成本,这个是和如今应用的用户规模、激烈竞争密切相关的;
  4. 大数据的玩法:如今的不少业务对获客、推荐、搜索等的大数据化要求仍是至关高的。

阿里是一家在自身发展过程当中,逐步碰到上述的挑战(当年的竞争环境基本还不会要求一个业务上来就把各类能力具有好),但之前也没有云可用,因此在发展过程当中不断积累各类能力,如今经过开源、云商业化对外输出这些能力,使得即便到了如今这样的竞争环境下,各类有业务创新想法的同窗们,仍是能够像当年同样快速上线业务,而不是要先投入巨多力量、花费巨多时间把须要的基础能力打磨出来。分布式

我本身并无彻底经历阿里的发展过程,接下来主要仍是简单说下我本身经历的一些。ide

  1. 在 2007 年,淘宝在基础能力上面临的最大问题是伸缩性,两个现象当时都出现了:用户数量大量增长,加机器已经基本要加到瓶颈了;研发人员大量增加,研发效率下滑很是明显。在这个阶段,淘宝作了一轮很是重要的架构改造,磨练出了例如服务框架、消息中间件、分库分表方案、分布式文件系统、分布式缓存等基础技术产品,结合业务架构的从新设计,很好地解决掉了伸缩性的问题。
  2. 在 2009 年,淘宝面临了可用性问题,常常出各类故障,因而开始积累各类监控、快速恢复、tracing、系统设计里如非关键路径异步化等技能。可用性这块的投入一直在持续,到后来为解决 双11 这种特殊状况的可用性、肯定性诉求而创造的全链路压测;经过同城双活、异地多活的多机房体系构建的强容灾能力以及快速恢复能力等;以及在线下场景加入后来面临的不同的可用性方案等。各类场景的高可用方案的积累,也使得业务的可用性愈来愈有保障。
  3. 2011 年左右,阿里开始以为将来在资源投入上的运营成本可能会很夸张,因而在 2011 年开始经过容器化来提高机器使用效率、持续进行成本优化,后来又持续经过云资源弹性来解决 双11 这类型的短时高峰的成本投入问题,经过在线离线混部解决大数据机器投入愈来愈大、在线机器集群利用率不高产生浪费的问题,通过多年努力,使得业务在高速增加的状况下,机器资源投入上的运营成本仍是相对可控的。

如上文所讲,阿里是依靠巨大的人力投入、场景打磨和多年的持续投入才逐渐造成了完备的能力。而如今的业务,则能够用云原生的方式构建,使自身一上来就具有这些能力,至少可以让本身在现在激烈且要求更高的业务竞争环境中,不会在这些基础能力上拖后腿,以此能够花更多的精力、时间、资源在真正的业务创新上。这样具象化的云原生对整个社会的创新仍是至关有价值的。大数据

相关文章
相关标签/搜索