2020年马哥Go运维开发架构师学习路线图共八个阶段的学习:GO核心编程--数据库处理--Web开发框架--多云管理平台--用户管理平台--监控报警系统--发布系统--Docker与K8S。
前一篇文章详细列举了第一阶段:GO核心编程以及数据库处理的自学资料
豆包同学在路上:[启航]入门Go语言!变身架构师!超全学习资源+笔记,新手从零学习全过程资源汇总zhuanlan.zhihu.com本文为第二阶段:Go语言Web框架开发及开源项目,学习路线、学习教程和视频将会整理在后续一篇文章里。
一、Web框架开发
(一)技术要点
1.HTML介绍
2.Beego框架介绍
3.MVC模式
4.Session&Cookie介绍
5.Beego路由 、控制器 、模型、 模板学习
6.表单及验证
7.日志记录
8.Css及Bootstrap介绍
9.第三方库http://github.com/spf13/ cobra介绍
10.Javascript 及 jQuery介绍
11.Datatables 、Sweetalert等js插件介绍
(二)解锁技能
1.可以使用Beego框架开发WEB系统和API服务
2.熟练使用HTML/JS/CSS三大技术进行前端开发
3.jQuery和AJAX,及JS组件Datatables、sweetalert使用
4.Bootstrap 4.0使用
GF(Go Frame)
是一款模块化、高性能、生产级的Go基础开发框架。实现了比较完善的基础设施建设以及开发工具链,提供了常用的基础开发模块,如:缓存、日志、队列、数组、集合、容器、定时器、命令行、内存锁、对象池、配置管理、资源管理、数据校验、数据编码、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、服务注册、模板引擎等等,支持热重启、热更新、域名绑定、TLS/HTTPS、Rewrite等特性。
如果您初识Go
语言,您可以将GoFrame
类似于PHP
中的Laravel
,Java
中的SpringBoot
或者Python
中的Django
。
二、五大项目实战
(一)用户管理平台
开源系统千千万,如何整合最关键;如何快速整合监控、自动部署系统、工单系统、K8S等,迅速搭建符合业务的定制化运维自动化体系?
统一用户账号体系是关键 。教授用户管理平台的核心原理,并掌握 Beego框架使用及WEB开发流程。
1.技术要点
(1)Beego
(2)HTML、CSS
(3)Bootstrap
(4)部署
2.解锁技能
掌握WEB开发流程,框架Beego使用及高可用部署。
(二)多云管理平台
多云管理是云计算时代运维人员必学必备的技能之一 。通过课程掌握如何自动获取与管控云资产,如何与CMDB等外部系统同步联动;以阿里云、腾讯云为例深度分析研讨RESTful API、SDK使用。
1.技术要点
(1)腾讯云API&SDK介绍与使用
(2)并发获取&存储主机信息
(3)插件设计模式
(4)实现云主机操作功能
2.解锁技能
具备熟练使用SDK的能力,能够综合使用前端库、web框架、数据库等,独立设计开发多云主机的统 一 管 理 、同步 、查询 、操作等功能,并具备扩展到其它云平台的能力。
(三)监控报警系统Prometheus原理剖析与二次开发
Prometheus是一套开源的系统监控报警框架。它启发于Google的borgmon监控系统 。深入理解pro metheus 原理 ,学习使用consul进行服务发现及管理 、Exporter开发及Alertmanagerwebhook开发。
1.技术要点
(1)学习prometheus原理及部署方式
(2)组件主要代码解读
(3)Prometheus API介绍
(4)针对使用consul进行服务发现及管理
(5)采集插件Exporter开发
(6)Alertmanager webhook开发
2.解锁技能
熟练掌握prometheus项目部署 、代码结构与设计架构,可基于Exporter进行各种监控插件,掌握使 用consul进行服务发现并通过CMDB系统对服务进行管理。了解alertmanager webhook功能并基于webhook进行告 警通知二次开发。
(四)发布系统syncd原理剖析与二次开发
Syncd是Go原生开源代码部署工具,支持Git仓库与分支、tag上线,GitHub上千Stars 。部署Hook支 持,完善的上线工作流 ;深入剖析学习企业级代码发布部署系统工具的架构与关键代码。
1.技术要点
(1)学习syncd原理、部署、使用
(2)Syncd源码解读,核心代码流程介绍
2.解锁技能
掌握GitHub项目操作能力、Syncd项目设计架构与代码架构、关键部分实现逻辑;熟练掌握Syncd部署与使用。
(五)容器云K8s介绍与二次开发
K8s自身的UI与CLI并不是那么强大,但K8s具备丰富的SDK与API来支撑灵活的开发来完成微服务的业务逻辑; 通过K8S RESTFUL API 、SDK介绍与深入剖析,掌握K8s 基本概念与原理,并掌握如何基于k8s SDK进行二次开发,并实现对服务资源进行控制。
1.技术要点
(1)K8s基本概念介绍(namespace, controller, ser vice等)
(2)K8s对应用生命周期管理(命令式与声明式)
(3)K8s认证机制
(4)K8s SDK github.com/kubernetes/client-go 介绍与使用
(5)使用SDK对资源进行操作
2.解锁技能
掌握K8s关键原理 、认证机制及SDK ;可利用k8s SDK进行自定义的二次开发的能 力 。