Go语言实战场景:微服务框架监控系统数据库工具容器项目PaaS工具一览

Posted 工匠人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言实战场景:微服务框架监控系统数据库工具容器项目PaaS工具一览相关的知识,希望对你有一定的参考价值。



This browser does not support music or audio playback. Please play it in WeChat or another browser. Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

Go语言,在语言层面就支持并发,可直接编译成可执行文件,不依赖任何东西,静态类型的语言,支持垃圾回收,跨平台编译,内置强大工具,标准库丰富,内嵌C语言支持,开发效率高等等特性。

今年是Go语言问世十周年,Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三位大牛于2007年开始设计发明的。其设计最初的洪荒之力来自于对超级复杂的C++11特性的吹捧报告的鄙视,最终目标是设计网络和多核时代的C语言。到2008年中期,语言的大部分特性设计已经完成,并开始着手实现编译器和运行,大约在这一年Russ Cox作为主力开发者加入。到了2009年,Go语言已经逐步趋于稳定。同年9月,Go语言正式发布并开源了代码。

Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

背景

由于我最近的工作,接触了Prometheus等知识,必须恶补一下Go,本文就当做一篇科普文章,聊聊Go语言的在我们身边的一些实际使用场景。

TIOBE 于 2018 年 11 月份公布的编程语言排行榜中,Go 语言已然挤到了前 10 的位置。

Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

图 1:TIOBE Index for Nov 2018

中国依然是 Go 语言爱好者最多的国家,没有之一。

Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

图 2:Google Trends - Golang 热度随时间变化的趋势

Go语言实战场景:微服务框架、监控系统、数据库工具、容器项目、PaaS工具一览

图 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工具一览的主要内容,如果未能解决你的问题,请参考以下文章

实战笔记| Go语言构建微服务一站式解决方案

华为开源产品级 Go 语言微服务框架 Go Chassis | 软件推介

GO从0到1实战微服务版抢红包系统

Go语言十一大主流微服务框架

Go语言十一大主流微服务框架

每天进步一点点:go基于grpc构建微服务框架-服务注册与发现