云原生杂谈
Posted 热罐小角
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生杂谈相关的知识,希望对你有一定的参考价值。
点击蓝字关注,一起探讨更好玩的IT世界
最近云原生这个话题挺火的。有个技术大拿在跟我讨论云原生的时候,对“云原生”这个词不屑一顾,说云就是云,没什么原生不原生的。就好像前段时间“中台”的概念一样,美国公司运营了那么多年,从来不提什么中台的概念。事实上人家早就有强大的系统支撑,只是不叫中台罢了。
最近见到的许多投资人也问我什么是云原生,我也只能按照我的理解,用什么DevOps,k8s,容器,微服务等概念简单解释了一下,我估计投资人朋友们也听得云里雾里的。我当年就一直说云角是云原生企业,不过这个云原生是Born in Cloud,不是今天流行的Cloud Native。
到底什么是云原生呢?有一篇文章流传得特别广泛:《什么是云原生?这回终于有人讲明白了》,如果你用这个标题作为关键字,可以看到无论是知乎,华为云社区还是阿里云社区,都有这篇文章的转载,现在已经不知道最初的作者是谁了。我甚至在阿里云的国际网站,也看到了这篇文章的全文英语翻译。
这篇文章的确写得深入浅出,一开始引用云原生计算基金会CNCF(Cloud Native Computing Foundation)关于云原生的定义,包括容器、服务网格(Service Mesh)、微服务、不可变基础设施和声明式API。然后就是引用2013年Pivotal的Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征,比如12因子方法,微服务,自敏捷架构,基于API的协作以及抗脆弱性。最后被总结成了微服务,DevOps,持续交付和容器化四个要点,包括模块化、可观察、可部署、可测试、可替换、可处理等六个特质。从技术角度而言,云原生就被归纳成了大家不断转发的下面这张图。
前几天我在看一本微软的《为Azure构建云原生的.NET应用程序》(https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/)里看到了另外一个关于云原生的定义,内容虽然大同小异,不过我比较喜欢微软从业务角度定义架构的云原生的尝试,说“云原生就是改变您构建关键业务系统的想法。”
虽然微软没能逃出CNCF的定义,不过这本书通过介绍Netflix,Uber和微信的架构来说明云原生的优势,非常有借鉴意义。Netflix生产系统中有600多个服务,每天有数百次部署;Uber生产系统中有1000多个服务,每周部署数千次;最恐怖的是微信,生产系统中有3000多个服务,每天部署1000次。按照微软的定义,云原生由现代化的设计,微服务,容器,后台服务和自动化组成,这个架构的定义就跟CNCF和Pivotal的定义不大一样了。
当然其中的内容还是大同小异的,无非是把Azure的各种支持云原生的产品掺合到这个架构当中,现代设计主要是著名的12因子方法,作者还增加了3个额外的方法。后台服务其实就是支持Matt Stine提到的支持六种特质的工具和服务,而自动化包含的内容就是DevOps以及基础设施即代码(Infrastructure as Code,IaC),声明式API就是实现IaC的一种方式。
我把微软关于云原生的定义的思维导图放在下面供大家参考。
我在和陈春花老师的知室课程里的最后一章里提到云计算对企业运营的影响,大体也是遵循了云原生的设计哲学:敏捷高频地对市场响应,持续更新持续演进,降低内部各部门的耦合,从而提高运营的效率。这种思路和云原生容器,微服务,支持CI/CD的DevOps的技术也是异曲同工。
总之,作为技术男,我也觉得云原生不是什么技术上的大突破,几十年前的软件开发也在追求敏捷和效率,只是当时的技术达不到而已。随着Docker,Kubernetes等工具的快速出现,对敏捷和效率的追求被提升到了一个新的层次,从而就造就了云原生概念和技术的快速发展。难怪上周我在青城山参加Intel的合作伙伴论坛上,大量和云原生相关的创业企业被邀请参会。连传统的硬件厂商都在拥抱云原生,这个赛道上的创业企业一定有大量的机会和挑战。
当然云原生的发展也会影响一些云计算的传统技术,比如OpenStack或者MSP,在这里我就不再赘述了,欢迎大家后台留言和我讨论。
END
曾今,伏案只识技术世界
而后,抬头遍历创业之艰
现如今
不惑之年
以创业者眼光,再探技术世界
长按二维码关注,一起窥探云上世界
以上是关于云原生杂谈的主要内容,如果未能解决你的问题,请参考以下文章