揭秘Linux工程师一路走来都需要哪些技能

Linux的千语千思,千创千问

----- 揭秘Linux工程师一路走来都需要哪些技能

作者: 三疯@MagEdu(马哥教育)

来源:www.magedu.com

大公司也是从小公司一步步走过来的,而大公司之所以与小公司不同,不在于基础的技术体系不同,而是当数据量达到一定程度后,引发的质变而已。而在思考质变带来的性能问题中,总结出来了一系列的工具,然后通过把对应的工具集合起来后形成了对应的运维工具平台。

“万丈高楼平地起”

有了运维工具平台是不是运维能力就够了?这句话先放在这里……

刚才已经说了,工具无大小,适合公司的使用即可,先抛开大公司使用的工具,我们先来聊聊小公司日常都需要什么工具?出入公司首先解决的是网络问题,然后大家能够上网后开始解决共享存储问题,比如搭建FTP,SAMBA,NFS网络存储,解决员工之间的文件传送和备份,这些在Linux学习过程中都有体现,马哥课程中也有比较详细的描述,比如如何搭建,此处省略不说了。

“古树千年幼苗成”

随着人们增加,必然会出现公司网络带宽首先,很多时候买的路由器也可以去做一定的限流功能,那随着业务的发展,公司有了自己网站的特色,这些特色的背后其实是公司核心的商业价值,比如网站的搭建,一个普通网站的背后究竟有什么呢?纯静态网站就不说了,没啥技术含量,我们聊聊动态网站,动态网站是会动的网站吗?显然不是,他其实是存在数据交换的网站,那既然有数据交换,数据交换过程中有哪些东西呢?数据交换后的状态有哪些呢?这其实就是所谓的数据对象存储的问题,比如常见的数据库存储软件有MySQL,既然用到了MySQL,那他日常的维护都需要什么?举个简单的栗子,他的部署,服务启停,数据备份,数据库容灾,对应时间点的备份,抽取binlog……,这背后的工具不用我详细描述,相信大家都知道了,那就是基本的数据库的维护,数据库的备份,恢复,策略都有哪些呢?这块如果你不知道请自行翻阅马哥课程进行脑补,已经被讲烂的课题,但是有时大家必须要掌握的,好了说外数据库的事情,那聊聊应用程序吧!

“盘龙卧虎高山地”

应用程序运行究竟是如何的?运行环境有哪些?比如公司早期需要快速迭代,那么PHP是不二之选,毕竟PHP是世界上最好的语言嘛,Linux上运行PHP环境的常见组合是Nginx+PHP+PHP-FPM,抛个问题,这样部署好后,代码请求的流程是怎么样的?php-fpm作用是什么?fastcgi又是干什么的?fastcgi被启动的worker用完了怎么办?这些信息在配置中如何体现?如何合理的优化?

带着上面的思考,如果你会了我就不说了,如果你不会,请自行恶补,已经是面试被问烂的问题了,如果连这个都回答不上来,真该回马哥教育回炉了。

那么谈到LNMP,那为啥一个请求通过一个LNMP就能访问到?一个请求又经过哪些过程达到最终想要的结果呢?这一块需要去了解DNS解析原理,HTTP协议请求,谈到DNS不得不说DNS解析方式有哪些?

DNS记录类型有哪些?DNS服务器的类型有哪些?

你是否知道什么叫主服务器,辅助服务器,缓存名称服务器,转发器?

那对于主辅架构中,区域的传送类型有哪些?

区域类型有哪些?什么叫子域,什么叫子域授权?

知道RNDC是干嘛的不?

以上问题也不多,翻翻看看应该都会,当然请不要告诉我你不会,要不然上半年都过完了,这些姿势还没学会的话,下半年岂能安身立命呢?

回过神来,HTTP协议知道多少呢?了解什么叫跨域吗?Nginx如何解决跨域问题?平时见过不少学员一个HTTP请求返回个403,啥意思呀?知道几个状态码呢?都表示啥意思呢?419表示啥(不是你知道的那个4-1-9)?对于HTTPS了解几分?为啥要搞HTTPS,解决什么问题?带来的性能问题有哪些?知道什么叫泛域名证书吗?和普通的证书哪个贵?最后再问一个最基础的,HTTP协议在TCP/IP协议栈中哪个位置?那你知道TCP/IP协议栈和OSI相关的知识吗?如果不知道,不好意思,下面你也不用读了,你真的不可能再看懂的。

………

“大海无边百川融”

能躺着看到这地方的说明基础还有一定水平,那好吧,接着我们俩聊聊,随着流量增加后,你需要了解的知识有哪些?你的应用服务器如何水平扩展,扩展后代码的结构和部署方式如何实现同步,如何实现流量的迁移,迁移的健康检车方式有哪些?你知道的负载均衡设备有哪些?

你觉得LVS和F5哪个更适合做CDN的负载均衡?

谈到LVS,那你知道LVS的模式吗?

每个模式的特点有哪些?他都解决了什么场景下的问题?

我感觉问题到这里后,你已经蒙圈了。在你还没彻底挂的情况下,我再补一个问题:LVS的负载均衡算法有哪些?他们解决的是什么问题?

谈完集群的LB类型后,那我们俩聊聊单点背后我们要干的事情—永无宁日,为了让自己吃得好,睡得香,咋整呢?高可用呀,High available Cluster嘛,简称HA。常见的HA软件有哪些?知道keepalived的vrrp原理吗?常见高可用软件中对资源如何管理的?脑裂是如何产生的又该如何应对呢?有些东西他们本身是独立的,但是一旦结合起来后,你会发现他们之间其实能产生很大的效果,也就是1+1 > 2的节奏,比如当LB和HA结合起来的时候,是不是可以消除LB的单点问题,也可以消除HA的负载均衡问题,然后你也许会陷入LB的HA和HA的LB循环坑里面,不过这不重要,重要的是你是一个对架构有追求的好孩子,难道不是吗?

量变带来了质变,质变带来了架构的变化,所以对于对于一个普通的电商架构来说,上面的基础设施层基本上欧了,当然对于图片服务器,我们可以需要加一些静态文件服务器,或者换成服务器,比如通过Nginx和Varnish来解决静态文件的存储、缓存问题,提高用户端的快速响应能力,而对于我们的数据层面我们也可以通过添加缓存来解决应用和数据库IO速度不匹配的问题,大家都知道大型互联网架构中,缓存为王,那是不是所有的都需要加缓存,缓存又该如何加呢?举个简单的栗子,大家都知道MySQL也可以加缓存,比如Memcached,那你是否听过MySQL的Memcache Plugins呢?为什么要把他们放到同一台机器上,有什么特俗含义吗?

好了,到这里我们已经跨越到了中型互联网公司的范畴了,那接下来对于大型互联网公司他们都需要什么呢?举个简单的栗子,对于业务组件来说,他们需要的是一套完整的服务管理组件,中间层,底层封装好的api,那这些api对于业务的使用其实是透明的,他们也不需要去实现,只需要找对应的人去要授权,然后调用即可,这就是服务化的雏形,当然他们一样会面临服务负载均衡问题,一样会面临消息,队列,缓存,存储问题,当大型互联网公司在逐渐升级,逐渐解决遇到的瓶颈后,他们也开始逐渐思考如何把这种实践带来更多的市场价值,比如阿里云的诞生。我相信早期阿里云初衷是为了解决每年双十一后过剩机器带来的资源浪费问题,但是随着这条路深入到根底发现他不仅仅是解决资源问题,更是解决中国互联网基础设施问题,当然也是解决众多创业小公司的效率问题。

原文链接:http://www.magedu.com

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构

阿里java架构师:微服务写的最全的一篇文章

今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮助。

2K3
来自专栏北京马哥教育

20款开发运维必备的顶级工具

开发运维工具与软件开发领域的最佳实践密切相关,也与必要的规范密切相关。在整个开发生命周期涉及到一大批新旧工具,从规划、编码、测试、发布到监控。本文介绍你应该考...

5166
来自专栏云计算D1net

私有云下的身份与管理解决方案

信息化时代,企业分布式管理模式的广泛应用使当今的IT系统管理变得复杂,企业必须提供一个全方位的资源审视以确保企业资源的有效访问和管理。而云计算的不断发展使得众企...

3958
来自专栏FreeBuf

不止Intel芯片,每个1995年后的处理器都可能受此次底层漏洞影响

昨天不少外媒报道了 Intel 芯片级安全漏洞出现,可能导致 Linux 和 Windows 内核关键部分需要重新设计。这个漏洞会导致攻击者从普通程序入口获取推...

2416
来自专栏华章科技

我用爬虫一天“偷了”知乎一百万用户,只为证明PHP是最好的语言(内含源代码)

看了不少朋友圈里推荐的Python爬虫文章,都觉得太小儿科,处理内容本来就是PHP的强项,Python唯一的好处估计也就天生的Linux自带,和Perl一样,这...

2613
来自专栏鹅厂网事

挖掘故障中的金矿----记一次故障的详细分析

“鹅厂网事”由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

2098
来自专栏华章科技

(内含源代码)我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言

看了不少朋友圈里推荐的Python爬虫文章,都觉得太小儿科,处理内容本来就是PHP的强项,Python唯一的好处估计也就天生的Linux自带,和Perl一样,这...

1653
来自专栏Web项目聚集地

为什么一定要前后端分离?

孤独烟,中国平安研发工程师,目前负责云平台架构设计以及需求研发工作。毕业后一直从事Java开发工作,在Web开发、架构设计上有多年的实战经验。在MySQL性能优...

1611
来自专栏数据和云

微博MySQL优化之路 - 肖鹏

肖鹏老师对于开源数据库尤其是MySQL的研究特别深入,今天我们来一起听他分享自己对MySQL数据库的优化经验! 作者简介 ? 肖鹏 微博研发中心数据库技术负责人...

4187
来自专栏PHP在线

可以使用框架但千万不要依赖框架

我们是由于效率和易用性的考虑才产生框架。框架能节省开发时间。框架强制使用公共的约定,因此它能有效地解决一些共有的问题,比如页面渲染,assert判断,安全或者应...

3555

扫码关注云+社区

领取腾讯云代金券