一 未来计划
吹个'NB'哈,先给自己立个'flag'
① nginx
1) http2、grpc --> 两篇
备注: http2暂时不细讲,只讲解'遇到的坑'
2) 结合nginx讲解http'状态码' --> 预计'10'篇 --> '排错'
备注: 会预留'小部分',在学习完'tcp/ip'协议的知识后,在深入探究'502、504'的报错
3) '只是铺垫:tcp/ip协议、操作系统、数据结构、C语言' --> nginx的性能优化
② lua
1) lua'基本'语法
2) openresty与lua的'交汇'
备注: api网关、waf、openresty与'中间件'的交互
3) wiresahrk 使用'lua'扩展 --> '自定义协议解析'
4) nmap安全端口扫描关于'lua'
5) kong、nginx-ingress、APSIX --> 后续写成'系列'
备注: 'APIGateway'具备哪些能力?要'重点'掌握
③ tcp/ip
1) 数据结构与算法 --> '长久'
2) 计算机原理
3) 操作系统 --> '重点'
备注: 'ns'和'cgroup'学习、'网络 [重点]'、'内存'、'cpu' --> '调度流程'
4) tcp/ip协议 --> 'DNS、ICMP、UDP、TCP' --> '重点' ,辅助'tcpdump+wireshark'
补充: 'tls/ssl'也是'重点'
5) ebpf --> 'c'+'python'
6) 涉及'部分内核'知识
7) IAAS的'cpu、memory、负载'的分析 --> 涉及'命令 [重点]'和分析手段
备注: openstack 'KVM(重点主流)'和'Xen'需要'了解'
补充: 涉及'操作系统'和'计算机原理',C语言是'绕不过'的门槛
8) 'C'语言 --> '基石'
[1]、会基于'已有'的博客进行扩展
[2]、后续深入理解'redis、nginx'源码
[3]、makefile、'cmake'、'gdb'
④ 中间件
1) mysql --> '45讲',目标:'开发'和'运维'DBA
备注: 重点掌握'navicat工具',因为业界使用该'客户端'工具较多,已安装'linux'无限试用期版本
补充: 暂时不再折腾'DB2、Oracle'了,有时间了搞下'pgsql'
思考: 像写'编程'语言一样写'sql'有必要吗?
2) nacos --> 结合'spring'进行实战,了解'核心'原理,'必备技能'
3) redis --> 掌握常见的'redis命令'、'高可用'、'性能优化'、'spring关于redis使用'
4) mq --> kafka、rabbitmq、rocketmq ,核心掌握'前两个',知道不同的'应用场景'
5) tomcat --> 结合'java'进行深入理解
6) nginx --> '复习和回顾'
7) etcd、consul、zookeeper --> '重点'
目标: 通过 'java' 串连所有的 'middleware'
⑤ 云产品
1) CDN --> '缓存',结合HTTP'深入'理解 --> '边缘脚本: DSL over CDN'
2) OBS --> '对象存储服务' --> 's3' --> 'obsutils工具'
3) CCE、TKE、ACK --> '容器和镜像仓库'服务 --> '云原生'
关注1: promethues、'workload'对象、'istio'、'ingress'
关注2:'网络(BGP、GRE、flannel、calico、Cilium 、openswitch)',云厂商的实现
4) VPC --> '对等网络',更高级的知识 --> '数通',ensp理解'路由器和交换机'等 --> HCIP
5) 块存储、文件存储 -> '需要了解'
6) 中间件 --> '云产品化',了解与开源的'差异'点
⑥ 监控和日志
1) ELK --> EFK --> PLG 'Promtail + Loki + Grafana'
备注: 会'搭建'和'采集日志'即可,了解常见的'坑'点
2) zabbix、'promethues重点'
⑦ 语言
1) lua --> 'openresty'
2) perl --> '正则'、'生信'
3) java --> '业务'
[1]、 maven、gradle'构建'工具
备注: 'ant小蚂蚁'不再深入掌握,主要看'gradle'使用'ant'的扩展
[2]、 SE'核心'关注'反射和并发'、'注解'
[3]、 重点是'spring'全家桶 --> 'mvc' + 'boot' + 'cloud' + 外加'mybatis'
[4]、 'xml、yaml' Parse、'logging'、'JDBC'
[5]、 安全'编码'
[6]、 设计模式 --> 在'源码'和'业务'侧的体现
4) go --> '云原生' --> 'k8s源码分析'
5) python、'shell'、'bat'、powershell --> '运维脚本'
备注:powershell暂时'没有'涉猎,后续有时间会关注
6) websocket编程 --> 'socket.io'、js、java
7) css+html+js --> '前端'深入学习
备注: js将是'重点',掌握'vue(2|3)'框架,npm和webpack打包
8) c --> '重点'
备注: '网络'编程,暂时不再深入学习'c++'了
⑧ 自动化
1) 项目管理 --> 类似'jira'可以进行'Bug'缺陷项目管理 --> '问题单'
2) 代码托管 --> 重点学习'gitlab'即可,内含'CI'
3) 持续交付 --> 类似'jenkins'的CI工具,可能要学习'Groovy'语言,要会自己开发'插件'
备注: 要掌握'声明'和'脚本式'的pipeline
备注: SonarQube、Confluence --> '了解'
4) 测试: selinum、postman、jemeter 、appium --> 掌握前'三个'工具,以及测试理念和手段
辅助: curl、wget '构造'请求
备注: 掌握Java的'Junit5'单元测试即可
补充: linux连接工具:secureCRT、'xshell'、PuTTY
5) 部署 --> 掌握'业界'主流的两种'CD'工具ansible slatstack即可
6) git --> 闭环整个'devopssec'过程 --> 'SVN'银行使用比较多
目标: 熟练使用'devops'常用的工具链
⑨ 架构层面
1) 运维方案 --> '技术选型'
基础服务: DNS、'4+7'层的LB、'业务侧'
2) 容量规划 --> '包含业务量预估和费用预估'
3) 灾备规划 --> '高可用,冗余',涉及'容灾'演练
4) 知识体系 --> '团队和个人wiki'