Go语言实战场景:微服务框架监控系统数据库工具容器项目PaaS工具一览
Posted 工匠人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言实战场景:微服务框架监控系统数据库工具容器项目PaaS工具一览相关的知识,希望对你有一定的参考价值。
Go语言,在语言层面就支持并发,可直接编译成可执行文件,不依赖任何东西,静态类型的语言,支持垃圾回收,跨平台编译,内置强大工具,标准库丰富,内嵌C语言支持,开发效率高等等特性。
今年是Go语言问世十周年,Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三位大牛于2007年开始设计发明的。其设计最初的洪荒之力来自于对超级复杂的C++11特性的吹捧报告的鄙视,最终目标是设计网络和多核时代的C语言。到2008年中期,语言的大部分特性设计已经完成,并开始着手实现编译器和运行,大约在这一年Russ Cox作为主力开发者加入。到了2009年,Go语言已经逐步趋于稳定。同年9月,Go语言正式发布并开源了代码。
背景
由于我最近的工作,接触了Prometheus等知识,必须恶补一下Go,本文就当做一篇科普文章,聊聊Go语言的在我们身边的一些实际使用场景。
TIOBE 于 2018 年 11 月份公布的编程语言排行榜中,Go 语言已然挤到了前 10 的位置。
图 1:TIOBE Index for Nov 2018
中国依然是 Go 语言爱好者最多的国家,没有之一。
图 2:Google Trends - Golang 热度随时间变化的趋势
图 3:Google Trends - Golang 按区域显示的搜索热度
在我国,Go 语言开发者主要集中在北京、深圳、上海三个城市。在北京,由于做云计算的公司很多,不论是面向市场的公有云还是自建自用的私有云,开放平台技术、容器技术、集群管理技术、微服务(Microservices)和 Serverless 技术等等都是Go语言擅长的技术方向。
服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
脚本编程。你完全可以使用go当做Python来用,日常的各种自动化任务、小工具等都非常适合使用go编写
网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用、
云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。大名鼎鼎的docker就是用go开发的。
Go语言开发的监控系统
Grafana
Prometheus
bosun
checkup
rtop
kapacitor
OpenFalcon(小米开源监控系统)
Pome(Postgres Metrics)
OWL
SmartPing(各机器(点)间相互PING检测工具)
pingd
Cloudinsight Agent
Satellite(监测kubernetes健康状态的一个工具/库)
Zabbixctl(采用Zabbix服务API的命令行工具)
Go语言开发的微服务框架
Istio
Go-kit
Jaeger
Micro
fabio
Goa
gizmo
kite
hystrix-go
Gateway(用go实现的基于HTTP的API 网关)
rainbond
appdash
Hprose
Go语言常见Web框架
Beego
Buffalo
Echo
Gin
Iris
Revel
Go语言开发的容器项目
Docker
Rocket
vmware/harbor
Shipyard
Weave( 创建一个虚拟网络并连接到部署在多个主机上的 Docker 容器)
Clair(容器漏洞分析服务)
Pouch(Alibaba开源的容器引擎技术)
weaveworks/scope(docker&kubernetes的管理,监控可视化工具, 可以看到容器间的拓扑关系和tcp通信)
SwarmKit(Docker集群管理和容器编排工具)
REX-Ray(Docker、Mesos 及其他容器运行环境提供持续的存储访问)
Libnetwork(容器网络)
cloud66/habitus(快速实现docker build 流程的工具)
WWormhole(识别命名空间的由 Socket 激活的隧道代理)
Go语言开发的PaaS工具
Kubernetes
Rancher
Tsuru
Lain
Atlantis
OpenDCP
Cloud Foundry-Mesos
Go语言开发的数据库工具
TiDB
influxdb
CockroachDB:CockroachDB (蟑螂数据库)是一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统。
Cayley:Google 的一个开源图(Graph)数据库
dgraph:可扩展的,分布式的,低延迟图形数据库。
Codis:分布式 Redis 解决方案
Vitess:开源分布式mysql工具集Vitess
pgweb:基于 Web 的 PostgreSQL 管理系统
kingshard:高性能的mysql中间件
elastic:开源搜索引擎elasticsearch的golang客户端
ledisdb:参考ssdb,底层基于leveldb,类似redis的高性能nosql数据库
Gaea:小米商城/系统组研发的基于mysql协议的数据库中间件
qb:数据库工具包
radix.v2:redis官方推荐的客户端之一,相比于redigo,radix.v2特点是轻量、接口实现优雅、API友好。
redis-go-cluster:Redigo 实现的 Golang Redis 客户端
mysql-schema-sync:一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具,用于将线上(其他环境)数据库结构变化同步到测试(本地)环境
GoshawkDB:支持多平台的分布式的对象存储服务,支持事务以及容错。
欢迎购买扫码购买我的新书:
以上是关于Go语言实战场景:微服务框架监控系统数据库工具容器项目PaaS工具一览的主要内容,如果未能解决你的问题,请参考以下文章