写点什么

云原生技术栈的关键技术

用户头像
李英俊
关注
发布于: 2020 年 07 月 19 日

笔者从事云原生相关工作三年有余,了解分布式事务、了解分布式一致性原理;近两年主要从事资源调度、容器管理平台的开发,当前工作是serverless相关的开发工作,本文将根据云原生全景图https://l.cncf.io,梳理一下云原生技术栈的关键技术。

云原生技术栈包含应用定义和部署编排与管理、运行环境、配置、观察和分析、无服务六个板块,以下分别梳理汇总。

应用定义和部署

  • 数据库领域

Redis(C)、TiDB(Go)、CockroachDB(Go)、MongoDB(C++)、Seata(Java)

  • 流式处理和消息队列

Apache Spark(Scala)、Kafka(Java)、Flink(Java)

  • 应用定义和镜像构建

Docker Compose(Python)、Helm(Go)

  • 持续集成与持续部署

Jenkins(Java)

编排与管理

  • 编排与调度

Kubernetes(Go)

  • 一致性与服务发现

etcd(Go)

  • 远程调用

Dubbo(Java)、gRPC(C++)

  • 服务代理

Traefik(Go)、Envoy(C++)

  • API网关

Kong(Lua)、Sentinel(Java)

  • Server Mesh

Istio(Go)、Consul(Go)

运行环境

  • 云原生存储

Ceph(C++)

  • 容器运行时

runc(Go)、containerd(Go)

  • 云原生网络

Flannel(Go)、Weave Net(Go)

配置

  • 自动化与配置

Ansible(Python)、Terraform(Go)、Apollo(Java)

  • 容器注册

Harbor(Go)

  • 安全与合规

cert-manager(Go)、Clair(Go)

  • 密钥管理

Vault(Go)

观察和分析

  • 监控

Prometheus(Go)

  • 日志

Elastic(Java)、Grafana Loki(Go)、Fluentd(Ruby)

  • 追踪

SkyWalking(Java)、Jaeger(Go)、OpenTracing(Go)

  • 混沌工程

Chaosblade(Go)

无服务

  • 工具

Hasura GraphQL Engine(Haskell)

  • 框架

Serverless(JavaScript)

  • 平台

AWS的Lambda、阿里云的函数计算服务、Google的cloud functions服务等

  • 安装平台

OpenFaaS、Kubeless、Knative

补充

  • 容器管理平台(container management platform)

rancher(Go)

k3s(Go)

总结

原云生的技术栈编程语言主要是Go,未来笔者将会多写一些Go相关的文章。



发布于: 2020 年 07 月 19 日阅读数: 127
用户头像

李英俊

关注

分布式、云原生 2014.08.19 加入

从事云原生相关工作三年有余,了解分布式事务、了解分布式一致性原理;近两年主要从事资源调度、容器管理平台的开发,当前工作是 serverless 相关的开发工作。

评论

发布
暂无评论
云原生技术栈的关键技术