内容来自原文地址。并进行整理。
什么是云原生技术?
云原生技术可让企业在构建和运行可伸缩性应用时更加容易,并且应用所部署的环境是新潮的、动态变化。环境可以是公有云,私有云或者其他的云平台。容器,服务网格,微服务,不可变的基础设施,公开的API都接近云原生相关概念。
云原生技术可以让系统松耦合,支持弹性伸缩、可管理的、清晰的。通过整合健壮且有效的自动化,工程师可以用很少的劳动来完成频繁的、预期中的高危代码修改。
在企业中使用云技术时步骤大体分为:
- 程序装箱
- 通常使用Docker作为容器。
- 任意大小的应用和依赖都可以装箱。
- 随着上线后时间推移,可能需要把程序进行适当的分割,并写一些异步函数化的微服务。
- 使用持续集成和持续交付,修改代码后会自动在新的容器中构建,测试,发布到测试环境,如果需要,也可发布到生产环境。
- 安装过程需要自动发布,回滚,测试。
- Kubernetes是行业领先的基础平台解决方案。
- 在cncf.io/ck上选择使用受到认证的Kubernetes分发,托管,安装工具。
- Helm,是Kubernetes的包管理器,可以帮我们定义、安装、更新最复杂的Kubernetes应用。
- 用于监控,日志,问题追踪。
- 可考虑使用CNCF的项目Prometheus用于监控,Fluentd用于日志采集,Jaeger用于问题追踪。
- 对于问题追踪也可用OpenTracing,实现类似Jaeger。
- 如果要用更灵活的网络,需要使用符合CNI的网络项目,例如Calico,Flannel,Weave Net。Open Policy Agent(OPA)是一个常规的策略引擎,包括授权、准入控制,数据过滤等。
- 如果需要数据库弹性和扩展性,Vitess是通过切分方式水平扩展MySQL。Rook是一个存储协调器,整合Kubernetes上的存储解决方案。etcd提供可靠的在集群中储存数据功能,是Kubernetes的大脑。TiKV是通过Rust开发的高性能的分布式带事务的key-value数据库。
- 如果需要安全稳定的程序分发,可使用Notary,基于TUF(The Update Framework)的实现。