Cloud Native Computing Foundation
1) DevOps
DevOps(Development和Operations的组合词)即开发、运维一体化。涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。
最佳实践:Git,Jenkins,Bamboo,Docker,Kubernetes
2) 持续交付
持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑。
最佳实践:CI/CD, gitlab, Jenkins,流水线pipeline,tekton等
3) 微服务 (Microservice)
几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分。
4) 容器 (Container)
2013年,Docker项目正式发布,2014年,K8s项目也正式发布。
Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用。K8S是容器编排系统,用于容器管理,容器间的负载均衡
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用
新的定义中,继续保持原有的核心内容:容器和微服务,但是非常特别的将服务网格单独列出来,而不是将服务网格作为微服务的一个子项或者实现模式,体现了云原生中服务网格这一个新生技术的重要性。而不可变基础设施和声明式API这两个设计指导理念的加入,则强调了这两个概念对云原生架构的影响和对未来发展的指导作用。
1、服务网格 (Service Mesh)
微服务技术架构实践中主要有侵入式架构和非侵入式架构两种实现形式。侵入式架构是指服务框架嵌入程序代码,开发者组合各种组件,如RPC、负载均衡、熔断等,实现微服务架构。非侵入式架构则是以代理的形式,与应用程序部署在一起,接管应用程序的网络且对其透明,开发者只需要关注自身业务即可,以服务网格为代表。为了解决微服务框架的侵入性问题,引入Service Mesh。
Serice Mesh提供了专业化的解决方案,其中所涉及的服务通信、容错、认证等功能,都是专业度极高的领城,这些领城应该出现工业级成熟度的制成品,这对于中小企业来说是一个降低成本的选择。
云原生是一个很宽泛的概念,想要开发一个支持云原生的应用并不难,可能就是简单的实现可基于容器部署、使用Kubernetes进行编排与调度,集成CI/CD工具以及Prometheus监控工具等。
云原生在一个更好的基础平台与设施上提供了更多的应用。因为做了容器化就不需要指定操作系统,K8S 的资源调度更有弹性,之前需要通过代码来协调实现伸缩策略,比较麻烦,借助DevOps 会容易达成协作,因为它整个流程都是自动的,能够敏捷开发。还有微服是都是各自独立的,具有高内聚、低耦合的原则,具有自动化运维、快速恢复的特点,自愈能力强。当集群宕掉了,它会自动拉起。
CNCF 目前托管了非常多的开源项目,其中有很多我们耳熟能详的项目,例如 Kubernetes、Prometheus、Envoy、Istio、etcd 等。更多的项目,你可以参考 CNCF 公布的Cloud Native Landscape,它给出了云原生生态的参考体系,如下图所示:
整个路线图分成了十个步骤,每个步骤都是用户或平台开发者将云原生技术在实际环境中落地时,需要循序渐进思考和处理的问题:
容器化。目前最流行的容器化技术是Docker,你可以将任意大小的应用程序和依赖项,甚至在模拟器上运行的一些程序,都进行容器化。随着时间的推移,你还可以对应用程序进行分割,并将未来的功能编写为微服务。
CI/CD(持续集成和持续发布)。创建CI/CD环境,从而使源代码上的任意修改,都能够自动通过容器进行编译、测试,并被部署到预生产甚至生产环境中。
应用编排(Kubernetes)。Kubernetes是目前市场上应用编排领域被最广泛应用的工具,Helm Charts可以用来帮助应用开发和发布者用于升级Kubernetes上运行的应用。
监控和分析。在这一步中,用户需要为平台选择监控、日志以及跟踪的相关工具,例如将Prometheus用于监控、Fluentd用于日志、Jaeger用于整个应用调用链的跟踪。
网络。Calico、Flannel以及Weave Net等软件用于提供更灵活的网络功能。
分布式数据库和存储。分布式数据库可以提供更好的弹性和伸缩性能,但同时需要专业的容器存储予以支持。
流和消息处理。当应用需要比JSON-REST这个模式更高的性能时,可以考虑使用gRPC或者NATS。gRPC是一个通用的RPC(远程调用)框架(类似各种框架中的RPC调用),NATS是一个发布/订阅和负载均衡的消息队列系统。
- 容器镜像库和运行环境。Harbor是目前最受欢迎的容器镜像库,同时,你也可以选择使用不同的容器运行环境用于运行容器程序。
- 软件发布。最后可以借助Notary等软件用于软件的安全发布。
因此我们也可以简单地把云原生理解为:云原生 = 容器化(docker+k8s) + 微服务(Microservices)+ 无服务(Serverless) + DevOps + Service Mesh(服务网格) + 云(Cloud)
https://liugp.blog.csdn.net/article/details/121187610?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-121187610-blog-120904009.235%5Ev36%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-121187610-blog-120904009.235%5Ev36%5Epc_relevant_default_base3&utm_relevant_index=9
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
众惠生活是一种以人的社会生活为核心,注重帮助他人、回馈社会、共创美好的生活方式。这种生活方式强调个体与集体的平衡与融合,追求社区内外的和谐与共荣。 在众惠生活中,每个人都可以发挥自己的特长,为社区或他人提供力所能及的帮助。例如,有些人善于烹饪,可以担任社区厨师…