变身Go运维架构师,看这一篇就够了!

2020年马哥Go运维开发架构师学习路线图共八个阶段的学习:GO核心编程--数据库处理--Web开发框架--多云管理平台--用户管理平台--监控报警系统--发布系统--Docker与K8S。git

本文为第一阶段:GO核心编程,剩余阶段的学习路线图、学习教程整理在后续三篇文章里。程序员

Go语言:出身名门的后起之秀github

Go语言2009年诞生于谷歌,由计算机领域的三位宗师级大牛Rob Pike、Ken Thomp-son 和 Robert Griesemer写成。因为出身名门,Go在诞生之初就吸引了大批开发者的关注。

Go语言在语法上与C语言相似,但它增长了内存安全、垃圾回收、结构形态和CSP-style并发计算等优势。最重要的是,Go 语言是专为提升多核、联网计算机和大型代码库的工做效率而设计的,可帮助程序员快速扩展软件开发和部署。golang

Go语言优点:将来可期面试

Go 在全球拥有上百万用户,他们遍及各个行业、经验领域和工程学科。Go 语言具备语法简洁明了、使用容易、格式简单、速度快等优势,这使它成为发展最迅速的语言之一。此外,它还有一个繁荣的开源社区。docker

随着 Go 的使用量不断增加,愈来愈多的基础服务也随之创建。基于 Go 构建的热门开源应用包括DockerHugoKubernetes。Google 的混合云平台Anthos也是基于Go构建而成。数据库

Go最初用于支持大量Google服务和基础架构。现在,Go不只仅在美国应用普遍,在国内落地日趋成熟,阿里、京东、搜狗、美团等一线大厂的技术团队在各自公众号上都有相关的分享,感兴趣的小伙伴能够找来看看。

互联网基础设施表明项目:以太坊、hyperledger等。采用Go的一些国外公司,如Google、Docker、Apple、Cloud Foundry、CloudFlare、Couchbase、CoreOS、Dropbox、MongoDB、AWS等公司;采用Go开发的国内企业:如阿里云CDN、百度、小米、七牛、PingCAP、华为、金山软件、猎豹移动、饿了么等公司。编程

Facebook也在用,为此他们还专门在Github上创建了一个开源组织facebookgo,你们能够经过https://github.com/facebookgo...,好比著名的是平滑升级的grace。后端

腾讯做为国内的大公司,仍是勇于尝试的,尤为是Docker容器化这一块,他们在15年已经作了DocKer万台规模的实践。七牛云存储

小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。

360对Golang的使用也很多,一个是开源的日志搜索系统Poseidon,托管在Github上,还有360的推送团队也在使用,他们还写了篇博文在Golang的官方博客上 https://blog.golang.org/qihoo

美团利用Go语言作后台流量支撑程序。应用范围包括支撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps,latency)等功能。

今日头条当先后端 服 务 超 过80%的流量是跑在Go构建的服务上微服务数量超
过100个,高峰QPS超过700万,日处理请求量超过3000亿,多是业内最大规模的Go应用。

还有不少,好比阿里中间件、百度、京东云、滴滴、金山微看、新浪微博、爱奇艺、网易、哔哩哔哩、聚美优品、高升控股、探探、斗鱼直播、人人车、亚信、Udesk、方付通、招财猫、三一集团、美餐网等。通常的选择,都是选择用于本身公司合适的产品系统来作,好比消息推送的、监控的、容器的等,Golang特别适合作网络并发的服务,这是他的强项,因此也是被优先用于这些项目。Go语言做为一门大型项目开发语言,在不少大公司相继使用,甚至彻底转向Go开发。

Top1:程序员最想学习的编程语言
招聘网站是行业的晴雨表,今年咱们发现,像知乎、bilibili往Go迁移,涌现出的Go开发招聘愈来愈多。相反,以前一直很火热的Python开发招聘数量却减小了。
IT行业大揭秘:2020最受欢迎的十大岗位是什么?薪资水平又如何呢?
HackerRank 是聚集了超过500万开发人员(占全球开发人员总数的20%以上)和1200多个客户的平台。HackerRank 在社区发起了程序员技能调查问卷,来自100多个国家、超过70000名开发者参与其中。

Go语言的应用领域

早期的Go语言开源项目只是经过Go语言与传统项目进行C语言库绑定实现,例如Qt、Sqlite等;后期的不少项目都使用Go语言进行从新原生实现,这个过程相对于其余语言要简单一些,这也促成了大量使用Go语言原生开发项目的出现。

云计算基础设施领域表明项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

基础软件表明项目:tidb、influxdb、cockroachdb等。

微服务表明项目:go-kit、micro、monzo bank的typhon、bilibili等。

Docker 是一种操做系统层面的虚拟化技术,能够在操做系统和应用程序之间进行隔离,也能够称之为容器。Docker 能够在一台物理服务器上快速运行一个或多个实例。基于lxc的一个虚拟打包工具,可以实现PAAS平台的组建。例如,启动一个 CentOS 操做系统,并在其内部命令行执行指令后结束,整个过程就像本身在操做系统同样高效。

项目连接:https://github.com/docker/docker

KubernetesGoogle 公司开发的构建于 Docker 之上的容器调度服务,用户能够经过 Kubernetes 集群进行云端容器集群管理。

项目连接:https://github.com/kubernetes...

etcd一款分布式、可靠的 KV 存储系统,能够快速进行云配置。

项目连接:https://github.com/coreos/etcd

beegobeego 是一个相似 Python的 Tornado 框架,采用了 RESTFul 的设计思路,使用 Go 语言编写的一个极轻量级、高可伸缩性和高性能的 Web 应用框架。

项目连接:https://github.com/astaxie/beego

martini一款快速构建模块化的 Web 应用的 Web 框架。项目连接:https://github.com/go-martini...

codis国产的优秀分布式 Redis 解决方案。项目连接:https://github.com/CodisLabs/...

1、Go语言基础编程

了解GO语言历史及特色,学习GO开发环境搭建及工具链使用,掌握Go基本语法、Go面向对象语法、Go对IO操做等。

(一)技术要点

1.Go的发展历史

2.Go开发环境搭建

3.Go程序结构介绍

4.变量声明&赋值

5.基本数据类型定义&操做

7.Go语言流程控制

8.复合数据类型定义&操做

9.Go的函数定义&调用

10.Go语言中的错误处理方法

11.Go语言中包定义&导入

12.结构体定义与面向对象编程

13.Go语言的方法声明

14.变量/属性/方法可见性

15.Go的文件与IO操做

16.Go语言的编码和解码

17.Go的接口介绍与使用

18.反射的原理与使用

(二)解锁实战

1.完成猜数字游戏

2.完成访问日志统计,每一个IP出现次数,每一个状态码出现次数

2、Go进阶并发编程

(一)技术要点

1.Goroutine的介绍与实战

2.闭包陷阱

3.计数信号量

4.读写锁与互斥锁

5.原子操做

6.管道(带缓冲器管道、读写管道)

7.多路复用

8.定时器/延迟器

9.runtime包经常使用函数解析

(二)解锁实战

1.初步掌握并发编程要点

2.掌握生产者/消费者模型

3、Go进阶网络编程

了解网络编程,熟悉HTTP协议、远程方法调用RPC及实现方式,掌握TCP,UDP服务器、客户端开发、Go WEB编程、Go WEB client开发等。

(一)技术要点

1.Socket介绍

2.TCP,UDP服务器和客户端开发介绍

3.HTTP协议介绍

4.远程方法调用RestAPI,RPC介绍

5.WEB编程处理器介绍

6.HTML及模板介绍

(二)解锁实战

1.命令行端对端聊天系统

2.简单文件服务

3.完成命令行用户管理功能(实现登陆 、查询 、添加 、修改 、删除功能,使用文件存储数据)

4.完成命令行端对端聊天系统

※部分文章来源于网络,若有侵权请联系删除;更多文章和资料|点击后方文字直达 ↓↓↓
100GPython自学资料包
阿里云K8s实战手册
[阿里云CDN排坑指南] CDN
ECS运维指南
DevOps实践手册
Hadoop大数据实战手册
Knative云原生应用开发指南
OSS 运维实战手册
云原生架构白皮书
Zabbix企业级分布式监控系统源码文档
10G大厂面试题戳领
相关文章
相关标签/搜索