×

10年 Go语言声名鹊起

hqy hqy 发表于2024-09-12 19:17:56 浏览109 评论0

抢沙发发表评论


Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,具有垃圾回收功能。自2009年11月Go语言问世以来,以高效的开发效率和完美的运行速度,加之其易于学习、基于 goroutines 和 channels 的简单并发编程、丰富的标准库、强悍的性能、标准化的测试框架、丰富实用的内置数据类型等特性迅速风靡全球。


Go语言拥有“21世纪的C语言”的美誉,并在2016年被评选为“TIOBE 2016年最佳语言”,它虽有些许不足,像没有枚举、接口是结构类型、:= / var 两难选择等,但仍不影响它被国内外知名企业使用。


短短10年,Go早已声名鹊起,今天我们从开源项目中看Go语言的别样风采,明白为什么Google、Facebook、AWS、阿里、腾讯、京东、百度、360、小米为何推崇Go。


CockroachDB



CockroachDB,可实现跨数据中心同步的可伸缩开源数据库 。它不仅能实现全局(多数据中心)的一致性,而且保证了数据库极强的生存能力,就像 Cockroach(蟑螂)这个名字一样,是个打不死的小强。CockroachDB 自2017年5月问世以来,已迭代5个版本,当前版本不仅能实现强一致性、水平可伸缩性、强伸缩性,还引入新功能,像支持备份恢复、GEO Partitioning、CDC、Read From Follower等等。


Docker

Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于Go语言并遵从Apache2.0协议开源,开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。


Docker的典型场景:

▪ Automating the packaging and deployment of applications(使应用的打包与部署自动化)

▪ Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)

▪ Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)

▪ Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)


Go语言杀手级应用Docker,它已成为Go 适用于大规模分布式软件项目的典型范例,但并非万能,像无法在32bit的linux/Windows/unix环境下使用、对disk管理有限、网络管理较为简单等等。


Fedora CoreOS

Fedora CoreOS-Preview an automatically updating Linux OS for containerized workloads.


Fedora CoreOS is an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It is currently available for testing on a limited set of platforms, with more coming soon. Fedora Coreos是一个自动更新的、最小的操作系统,用于安全地、大规模地运行容器化工作负载。它目前可以在有限的平台上进行测试,不久还会有更多的测试。Fedora CoreOS 综合 CoreOS Container Linux 和 Fedora Atomic Host 的最佳功能,作为运行容器化工作负载的新发行版,重点在于安全性和可扩展性。值得注意的是,Fedora CoreOS中 etcd 和 Fleet两个服务都是用Go语言编写的,etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现;Fleet一个分布式初始化系统。


Hugo

Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。较之Jekyll复杂的安装设置而言,Hugo仅需要一个二进制文件hugo(hugo.exe)即可轻松用于本地调试和生成静态页面。


Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.


Hugo provides a robust theming system that is easy to implement but capable of producing even the most complicated websites.


Hugo's Go-based templating provides just the right amount of logic to build anything from the simple to complex. If you prefer Jade/Pug-like syntax, you can also use Amber, Ace, or any combination of the three.


InfluxDB

InfluxDB一个开源的分布式时序、时间和指标数据库,是基于Golang语言编写,无外部依赖,用于记录 metrics、events,进行数据分析。



InfluxDB is a time series database designed to handle high write and query loads.


Istio

Istio-An open platform to connect, manage, and secure microservices.


Istio 是由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供统一化的微服务连接、安全保障、管理与监控方式。Istio 项目能够为微服务架构提供流量管理机制,同时亦为其它增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。这款软件利用久经考验的 Lyft Envoy 代理进行构建,可在无需对应用程序代码作出任何发动的前提下实现可视性与控制能力。Istio 项目是一款强大的工具,可帮助 CTO/CIO 们立足企业内部实施整体性安全、政策与合规性要求。


Istio作为一个开放平台,它提供了统一的方式来集成微服务、管理跨微服务的流量、实施策略和聚合遥测数据。Istio的控制平面在底层集群管理平台(如kubernetes)上提供了一个抽象层。同时还为Service Mesh这一概念的流行增添火力,弥补了Kubernetes在微服务的连接、管理和监控方面的不足,为Kubernetes提供更好的应用和服务管理。


Kubernetes

Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。作为开源项目,主要用于管理云平台中多个主机上的容器化的应用。Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),它提供了应用部署,规划,更新,维护的一种机制。


Kubernetes特点:

▪ 可移植:支持公有云,私有云,混合云,多重云(multi-cloud)

▪ 可扩展:模块化,插件化,可挂载,可组合

▪ 自动化:自动部署,自动重启,自动复制,自动伸缩/扩展


如果有人说Go语言很“烂”的话,就直接回怼“这么烂的语言写了Docker和Kubernetes两个云计算项目”。


Terraform

Terraform是一种开源工具,用于安全高效地预配和管理云基础结构。你可以使用Terraform管理阿里云资源。



Terraform优势:

▪ 将基础结构部署到多个云

▪ 自动化管理基础结构

▪ 基础架构即代码

▪ 降级开发成本


Traefik

万众瞩目的Traefik 2.0 上个月正式发布,该版本在完善原有功能的基础上增添了许多新功能,像大家期待已久的支持TCP功能。作为一款开源的反向代理与负载均衡工具,它能整合常见微服务系统,实现自动化动态配置。



新功能:

▪ SNI 路由和多协议端口的 TCP

▪ 使用中间件自定义路由

▪ 全新的 Dashboard

▪ 金丝雀发布

▪ 流量复制

▪ 迁移


Gravitational Teleport

Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器。其目的是为了替代 sshd。Teleport 基于 Golang SSH 构建,完全兼容 OpenSSH。

Gravitational Teleport is a modern security gateway for remotely accessing:

▪ Clusters of Linux servers via SSH or SSH-over-HTTPS in a browser.

▪ Kubernetes clusters.


Go has become the programming language of choice for forward-thinking projects, especially cloud projects. Go已经成为前瞻性项目,特别是云项目的首选编程语言。


 您阅读本篇文章共花了: 

打赏

本文链接:https://kinber.cn/post/3829.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

群贤毕至

访客