0基础学go语言需要看哪些书?

Python062

0基础学go语言需要看哪些书?,第1张

我从Java开发转型go开发工程师的时候,也是从零开始学GO,当时没去买书,书太慢了也更枯燥。是去慕课网看的GO开发工程师体系课,学了一段时间感觉选择是对的,go有接近c的执行性能,又稳定高效!而且慕课网这门课做的也还不错,不仅学会了GO,后面还学了Typescript、k8s+docker部署、jenkins部署等。

推荐来老男孩教育,国内最早也是Linux运维培训的佼佼者品牌,其中,创始人依然在亲自授课,课程除了讲技术,还会讲解学习方法,学习能力,记忆力,表达沟通,职场高薪。

1.6.1 Linux运维工程师岗位职责

一般从企业入门到中级Linux运维工程师的工作大致有:

□挑选IDC机房及带宽、购买物理服务器。

□购买云服务及CDN服务相关。

□搭建部署压力测试和正式的业务系统运行环境(例如:网站运行环境)。

□负责日常项目或业务代码上线、故障排除、代码回滚等。

□对企业数据进行备份及故障恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)。

□对网站的运行状态及故障进行监控、提前解决网站运行的潜在安全问题。

□开发自动化程序或平台提高工作效率。

□根据访问量增加,提前规划和升级网站集群架构,根据公司需求增加业务应用。

□程序发布流程和规范,制定运维工作制度和规范。

□配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求。

□公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。

涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,Shell/Python/Go语言等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。

总的来说:Linux初中级运维工程师更多的是使用工具软件的阶段,在一线城市互联网公司的薪资一般在8000-20000/月。

职业发展方向:Linux运维工程师、系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监

1.6.2Linux运维架构师岗位职责

运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:

1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;

2、云计算部署架构及Docker微服务架构方案;

3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);

4、10万并发的网站架构、秒杀系统的架构及解决发你个案;

5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;

6、数据库、存储及各重要服务节点的集群和高可用方案。

7、各网络服务的极端优化方案、服务解耦/拆分。

8、运维流程、制度、规范等的建设和推行。

9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。

这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。

总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-50000/月。

职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监

运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。

技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩

运维工程师必须掌握的基础技能有:基础命令、基础服务、自动化技能、安全。

1、基础命令:

这个基础就包括:用户管理命令,文件管理命令,权限管理命令,软件包管理命令,vim命令,网络管理命令等。这些命令好学,因为每个命令都有相应的help帮助文档,而且很多网站都集成了命令帮助,把这些站点进行收藏,时不时的查下就记住了。

2、基础服务:

企业常用的基础服务就包括DHCP,NTP,DNS,Nginx,Apache,Mysql,Redis,Vsftpd,Nfs。基础服务的掌握,相比命令稍微的难一点,但是同样有很多技巧。比如可以去各大视频站获取优质的免费视频学习。

3、自动化技能:

这个自动化就包括脚本自动化,需要熟悉掌握shell脚本或者Python脚本;包括监控自动化,不能靠传统的点击页面,查看进程来判断服务是否在线,需要熟悉掌握zabbix,Prometheus等主流监控软件;还包括工具自动化,需要掌握向ansible,puppet,Jenkins等自动化软件,实现服务的批量部署与业务的自动化。

4、安全:

作为运维工程师,首先就要时刻保障公司业务系统,服务器安全稳定运行。所以安全至关重要,主流的iptables,firewalld防火墙技术要熟练掌握,有必要的话常见的挖矿病毒,ddos等攻击有段也要有所了解。

运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。

运维工程师面对的最大挑战是大规模集群的管理问题,如何管理好几十万台服务器上的服务,同时保障服务的高可用性,是运维工程师面临的最大挑战。