Go 中的 DevOps——你的第一个 Go 步伐

分享
计算机软件开发 2024-9-16 14:33:07 62 0 来自 中国
Go 训练营系列中的 DevOps

为什么在 Go 中利用 DevOps?

现在,大多数 DevOps 工程师都利用Python它作为他们的 DevOps 编程语言。但是Python伴随着一些编译时和服务扩展问题。
比方,简朴地升级到新版本的 Python ( Python2 to Python3, Python3.7 to Python3.11) 可能会导致您现有的脚本停止工作。当出现兼容性问题时,回滚到旧版本的 Python 并不容易。
现在在云时代,Go已经成为云原生编排和应用的毕竟语言。Go随附您在工具可靠性和扩展本领方面取得巨大进步所需的全部工具。
快速浏览 Go 官方网站,您可以看到以下公司(以及更多公司)已经在利用 Go(https://golang.google.cn/solutions/#case-studies):
2.png 好比:Docker-compose, kubernetes, istio, k3s, prometheus, argocd, terraform, 等。你可以看到越来越多的云服务软件在利用Go。对于 DevOps 工程师,我个人以为接纳 DevOps 编程语言很告急,它将资助您把握新的云原生应用步伐,并使您在职业生存中保持竞争力。
Go版本

现在,Go团队已经将版本的发布节奏稳固在每年两次大发布,通常是二月和八月。Go 团队答应为最新的两个稳固告急版本的 Go 提供支持。
比方,假如最新的告急版本是Go 1.17,那么 Go 团队将提供对Go 1.17和Go 1.16提供支持。支持范围告急包罗版本巨大问题修复、文档变动、安全问题更新等。
我发起您选择最新Go版本。由于稳固版的均匀质量Go不绝都很高,很少有影响利用的大bug。您不必太担心新版本的支持。Google 自己的产物,比方 Google App Engine,将很快支持它。
在 Linux 服务器上安装 Go v1.19.3

Go支持险些全部主流Linux发行版操纵体系。常见的有Ubuntu、CentOS、Fedora、SUSE等,Go在这些主流的Linux发行版操纵体系上的安装方法都是一样的(固然某些发行版也可能利用其软件安装管理器只提供自己的安装方法)。可以参考以下安装步调(https://golang.org/doc/install)

  • Go v1.19.3从其官网下载:
$ wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz                                                                                               --2022-11-08 08:12:19--  https://go.dev/dl/go1.19.3.linux-amd64.tar.gz...Saving to: ‘go1.19.3.linux-amd64.tar.gz’go1.19.3.linux-amd64.tar.gz                100%[======================================================================================>] 142.01M  13.2MB/s    in 11s2022-11-08 08:12:30 (13.2 MB/s) - ‘go1.19.3.linux-amd64.tar.gz’ saved [148907134/148907134]

  • 将 Go 二进制文件安装到“/usr/local/bin”
$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz$ ls /usr/localbin  etc  games  go  include  lib  lib64  libexec  sbin  share  src

  • 假如您已经如许做了,请把“/usr/local/go/bin”添加到环境变量中
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc

  • 查抄 Go 版本
$ which go/usr/local/go/bin/go$ go versiongo version go1.19.3 linux/amd64Go Hello world

现在我们已经Go安装乐成了,让我们来创建我们的第一个Go步伐吧!

  • 在主目次下创建一个文件夹godev
$ mkdir godev

  • 在godev中创建文件夹helloworld
$ cd godev$ mkdir helloworld$ cd helloworld

  • 创建main.go文件内容如下(留意,在Go中,我们通常直接将多个单词拼接起来作为源文件名,而不是利用下划线或其他分隔符,这是由于下划线在Go中有特殊的作用)。
package mainimport "fmt"func main() {        fmt.Println("Hello, world")}

  • 运行:
$ go fmt main.go$ go run main.goHello, world恭喜,你刚刚乐成运行了你的第一个 go helloworld步伐!
源码分析

现在您已经乐成运行了第一个 Go 步伐,让我们查抄每一行
package main
这界说了一个包Go。包是Go语言的根本单位,Go步伐本质上是包的聚集。
在我们的示例中,它告诉 Go 编译器创建可实验文件而不是库文件。假如您以差别的方式定名包,您将运行 int 以下错误:
package command-line-arguments is not a main package好比重定名为apple,如下:
package appleimport "fmt"func main() {        fmt.Println("Hello, world")}假如你想运行利用go run main.go:
$ go run main.gopackage command-line-arguments is not a main package但是您仍然可以构建它,但它不会生成任何可实验文件:
$ go build main.go$ lsmain.goimport

顾名思义,这个import关键字从 $GOPATH 目次(假如没有提到路径)或从提到的目次中导入指定的包。
在我们的例子中,fmt是一个包的名称,它也代表了包的导入路径,也就是fmt尺度库下的目次。
func

func是 中的关键字Go,用于创建函数。语法如下:
func function_name(Parameter-list)(Return_type){    // function body.....}这里的main函数比力特殊:当你运行一个可实验Go步伐时,全部的代码都会从这个入口函数开始运行。
fmt.Println
fmt包利用类似于 C 的 printf() 和 scanf() 函数的函数实现格式化 I/O。该fmt.Println()函数利用默认格式的运算对象并写入尺度输出。末了添加一个换行符。
Go IDE

我保举你利用GoLand或VsCode。但是 GoLand 每月淹灭 19.90 美元或每年 199.00 美元。VsCode 是免费的,这就是我利用的。要利用 VsCode 设置 Go,您只需遵照 VsCode 官方文档:https ://code.visualstudio.com/docs/languages/go
3.png Have a nice day, Happy coding.
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-23 09:53, Processed in 0.230916 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表