关闭

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

时间: 2020-12-29阅读: 126标签: 工具

本文将介绍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

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

参考:https://codersociety.com/blog/articles/cloud-native-tools


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/10136

程序员必备的学习工具

学习技术过程我们经常需要使用搜索引擎来检索资料,国内常用的也就是某度了。当然有条件的话,搜索引擎首先还是推荐使用 Google,如果没办法使用,可以使用以下几个作为备用:

购买网络自动化工具时应考虑的7个方面

网络自动化这个概念自网络问世以来就存在了;就在不久前,由于许多原因(包括网络工程师的抵制),其采用速度一直很慢。但现在,众多因素共同上演了一场完美风暴,推动企业需要网络自动化工具。

js工具类

整个body显示半透明的遮罩层;给指定的div显示半透明的遮罩层;清除显示半透明的遮罩层;将数字每三位分割;为数字加上单位:万或亿;layout方法扩展 ;js截取字符串,中英文都能用

Node.js 命令行工具的编写

日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作。其编写也不难,和日常编写 Node.js 代码并无二致。package.json 中的 bin 字段

程序员常用命令行工具

WordGrinder它是一款使用起来很简单,但拥有足够的编写和发布功能的文字编辑器。Proselint:它是一款全能的实时检查工具。GNU Aspell:

Dojo Build 简介

Dojo 提供了一套强大的命令行工具,让构建现代应用程序更加简单。可以自动创建包(Bundle),可以使用 PWA 在本地缓存文件,可以在构建阶段渲染初始的 HTML 和 CSS

十大最佳自动化测试工具

对更快交付高质量软件(或\\\"快速质量\\\")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找解决方案。测试自动化是这些方面的重要组成部分。最新的《 2018-2019年世界质量报告》表明

面向企业网络的九大带宽监控工具

带宽使用情况是确定网络运行情况的指标之一。带宽是指网络在任何给定时间可以处理的最大数据传输量。测量带宽使用情况意味着,你在检查正在使用多少带宽。理想情况下,贵企业希望使用尽可能多的带宽

面向软件开发人员的7款产品路线图工具

产品路线图软件可以帮助软件产品经理完成核心的规划任务,并向项目团队成员和相关人员通报目标和状态。产品工具可以帮助团队制定战略、确定目标的优先级、安排要完成的工作,并使每个人在整个产品生命周期中步调一致

怎么做一名高薪前端工程师,必备哪些技术工具?

怎么做一名高薪前端工程师?必备哪些技术工具?想要成为一个高薪高职的Web前端工程师并不容易,你不仅需要掌握专业的技能点,还要具备较多的项目经验。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!