搜索
简帛阁>技术文章>13款你需要了解的云原生工具

13款你需要了解的云原生工具

来源 | https://codersociety.com/blog/articles/cloud-native-tools

今天,我将跟大家分享13款实现云原生所需的工具。

什么是云原生?

云原生是利用云的优势来更快地处理业务并降低IT成本,云原生计算基金会(CNCF)对云原生的官方定义是:

“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格(Service Mesh)、微服务、不可变基础设施和声明式API。

这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。”

简而言之,云原生的目标就是根据需求快速、敏捷地向用户交付软件产品。

为什么云原生很重要?

云原生应用程序只需要小型团队就可以快速构建,它部署的平台可进行扩展和硬件解耦,这为企业跨云环境提供了极大的敏捷性、灵活性和可移植性。

(1) 竞争优势

云原生开发能够节省IT成本,这意味着团队有更多的精力去拓展业务。在软件时代,能够及时响应客户需求,快速构建和交付应用程序的企业更有竞争力。

(2) 弹性扩展

传统基础架构在发生故障时,服务很可能会受到影响。在云原生系统中的弹性架构可以快速扩展,这有助于企业构建一种保持在线的系统,而不用考虑环境中的问题。

(3) 灵活性

借助支持云原生开发的平台,企业无需修改即可构建任何云上运行的应用程序。不受时间空间限制,企业可以在最有商业意义的情况下运行应用程序和服务,避免了云锁定。

(4) 运营始终与业务需求保持一致

通过使IT运营自动化,企业可以将精力更多地放在业务上,并且消除了由人为错误造成的失败风险。在堆栈的各个级别上自动化实时补丁和升级,消除了停机时间,并且节省了人工劳动力。

云原生工具

以下是业界常用的云原生工具及方法。各大公司通过使用它们,实现了更快的产品交付,更少的摩擦,以及更低的开发与维护成本。

1、 微服务

微服务是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。在传统的部署中,通常只有一个网站服务来管理API和客户交互,若使用微服务,我们就可以将该网站分解为多种服务,例如结帐服务和用户服务,我们可以分别开发,部署和扩展这些服务。此外,微服务通常是无状态的,公司可充分利用云原生提供的灵活性。

推荐技术:Node.js

替代技术:Kotlin,Golang

2、 CI / CD

CI / CD的主要概念是持续集成,持续交付和持续部署。这种方法简单而言就是在应用程序的整个生命周期(从集成和测试阶段到交付和部署)中引入了持续的自动化和连续监控。使用CI / CD,公司能够即使并且灵活地实施质量检验,例如单元测试,静态分析或安全性分析。总之,CI / CD是云原生生态系统中的基础工具,可以提高工程效率并减少错误。

推荐技术:Gitlab CI / CD

替代技术:Github Actions

3、容器

容器是云原生生态系统的核心,它通过简化开发人员的操作极大地提升了开发速度和质量。通过使用容器(例如Docker),团队可以指定其系统依赖关系,同时提供统一通用的执行层,该层使基础架构团队能够操作单个基础设施,例如容器编排工具(如Kubernetes)。

工程团队可以将容器映像存储在容器注册表中,在大多数情况下,该注册表还提供漏洞分析和细粒度访问控制。这方面流行的服务有Docker Hub,Google Container Registry或Quay。

推荐技术:Docker

替代技术:Podman , LXD

4、容器编排

容器编排是用于启动和管理大量容器的工具,不需要特定语言或特定团队的部署策略。容器编排允许用户指定某个映像或某个映像组的配置,最后,编排器采用这些规范并将其转换为运行的工作负载。容器编排器使基础设施团队可以维护单个基础设施组件,该组件可以执行任何符合OCI规范的容器。

推荐技术:Kubernetes

替代技术:Google Cloud Run

5、基础架构即代码

基础设施即代码是一种通过代码来定义计算和网络基础设施的方法,它可以应用于任何软件系统中。这样的代码放在源代码管理中,具有可审查性、可重用型,并且符合测试惯例,还完全遵从持续交付的原则。

公司一般通过管理面板手动配置云资源,但是,手动配置很难跟踪更改。基础架构即代码通过将云资源定义为代码并将其置于版本控制之下来解决该问题。在代码中的基础设施配置中进行更改,并通过公司的部署过程(包括同行评审、CI/CD)进行升级。版本控制提供了一个审核日志,显示谁更改了哪些资源以及更改的时间。

推荐技术:Terraform

替代技术:Pulumi

6、隐私管理

隐私管理对于云原生解决方案至关重要,但总是被忽略。这里的隐私可以是任何私密的东西,例如密码,私钥和API凭据。成熟的解决方案支持发布临时数据库凭证或轮换凭证,使隐私管理更加安全。一个合适的隐私管理解决方案对于云原生应用非常重要,因为容器化服务可以水平扩展,并且可以在许多不同的设备上调度,忽略隐私管理的组织可能会增加数据泄漏的风险。

推荐技术:Vault

替代技术:Sealed Secrets

7、 认证

通过TLS保证通信安全是必不可少的。这在基于容器的解决方案中尤其重要,因为许多不同的服务可能在同一台物理计算机上运行。如果不进行加密,攻击者就可以获得主机网络的访问权限,他们可以读取这些服务之间的所有流量。总之,手动更新云本地部署的证书是站不住脚的,这就是为什么某种自动化解决方案是必不可少的。

推荐技术:cert-manager

替代技术:Google managed certificates

8、API网关

API网关是反向代理,比起传统反向代理(例如Apache和NGINX),API网关还支持:

  • gRPC、HTTP/2和Websockets等协议

  • 动态配置

  • 双向TLS

  • 路由

  • 提供诸如速率限制和电路中断等云服务弹性功能

  • 提供各类监控指标的可见化

推荐技术:Kong

替代技术:Ambassador

9、日志

日志是可观察性的基础。日志对于了解系统中正在发生的事情至关重要,而且对于调试系统也非常有帮助。云原生工具强调指标的时间序列,因为它们比存储日志更具成本效益。

推荐技术:EFK

替代技术:Loki

10、监控

我们可以为监控指标分配不同的维度,以深入了解单个计算机、操作系统、版本等性能。监视系统会将重要事件按时间顺序存储,但它不会存储所有事件。这使其对于云本机系统具有成本效益,用户可以为监视指标分配不同的维度,以深入了解单个计算机、操作系统、版本等的性能。

推荐技术:Prometheus、Grafana

替代技术:Datadog

11、警报

警报可将系统问题通知操作员,例如,当HTTP 500状态代码增加或请求持续时间增加时,警报就会通知团队。警报对于云原生系统非常重要,没有警报,公司就不知道出现了问题。

推荐技术:Prometheus Alertmanager

替代技术:Grafana Alerts

12、追踪

云原生技术减少了扩展服务的成本,因此,我们可以推出更多的服务。追踪技术能够监视服务之间的通信,并将整个事务中的每个阶段都进行可视化,当出现性能问题时,团队可以查看发生了哪些服务错误以及事务的每个阶段花费了多长时间。追踪技术使团队可以更快地调试问题,减少停机时间。

推荐技术:Jaeger

替代技术:Zipkin

13、 服务网格

作为上述功能的综合,云服务网格可以提供动态路由、负载平衡、服务发现、网络策略,以及包括断路器和重试机制在内的云服务弹性功能。我们可以将服务网格视为云计算原生架构在负载平衡方面的一种演进。

推荐技术:Istio

替代技术:Consul

通过灵活地选用上述云原生工具,我们可以适当地提高云服务产品的交付速度,增加服务的可用性与性能,以及保持企业的竞争优势。

本文完〜

背景产品设计、开发、测试过程中,需要了解到身份证知识点。正反面辨别国徽面为正面,人像面为反面(其他身份证件同理)。与“常识”正好相反。依据:中华人民共和国临时居民身份证管理办法中第四条明文规定。大陆
目录1数组11数组声明格式111格式一112格式二12数组本质2数组遍历21常规22C++11遍历新语法221格式一222格式二3多维数组31多维数组本质32声明格式33多维数组遍历4数组安全
我们将常用测试工具分为10类。测试管理工具接口测试工具性能测试工具C/S自动化工具白盒测试工具代码扫描工具持续集成工具网络测试工具app自动化工具web安全测试工具注:工具排名没有任何意义。大多数初
源:SDNLAB5G5G,第五代移动通信技术(5thGenerationMobileCommunicationTechnology)是具有高速率、低时延和大连接特点新一代宽带移动通信技术,是实现人
1CISP(国家注册信息安全专业人员)说到CISP,安全从业者基本上都有所耳闻,算是国内权威认证,毕竟有政府背景给认证做背书,如果想在政府、国企及重点行业从业,企业获取信息安全服务资质,参与网络安全项
1970年开始,vi和vim就成为了程序员最喜爱文本编辑器之一。5年前,我写了一个问自己名为“每个程序员都应该知道100个vim命令”这次算是之前那篇文章改进版,希望会喜欢。基础:efile
互联网业务飞速发展带来急剧膨胀数据规模,多样化数据类型、更复杂业务特征和对数据实时洞察需求,推动了传统数据库技术向可扩展、高可用、实时弹性等方向发展。而计算技术发展为解决这些问题带来了新
摘要:在华为开发者大会(Cloud)上,华为发布了基于华为CloudIDE智能化编码工具原生应用调测工具在华为开发者大会(Cloud)上,华为发布了基于华为CloudIDE智能化编码工
数据库索引,相信大家都不陌生吧。索引是对数据库表中一列或多列值进行排序一种结构,使用索引可快速访问数据库表中的特定信息。作为辅助查询工具,合理设计索引能很大程度上减轻db查询压力,db我们都
Web项目变得越来越大时,他CSS会变得像天文数字那么大而且还变得混乱。为了帮助我们解决这个问题,新CSS变量很快就会出现在主流浏览器中,它让开发人员能够重用并轻松编辑重复出现CSS属性。用过