云原生技术栈的关键技术
笔者从事云原生相关工作三年有余,了解分布式事务、了解分布式一致性原理;近两年主要从事资源调度、容器管理平台的开发,当前工作是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相关的文章。
版权声明: 本文为 InfoQ 作者【李英俊】的原创文章。
原文链接:【http://xie.infoq.cn/article/59c4e6e2c2a6b47d646288e94】。文章转载请联系作者。
评论