首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试 Linux 运维工作至少需要知道哪些知识?

    作者:defcon来源:马哥教育链接:https://mp.weixin.qq.com/s/ZocozTkCNViMAtZIr7C7ww前言我们已经发过不少 Linux 面试题,但是单独的面试题总感觉会过于零碎,没有体系化内容给人的帮助大。知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案对这一话题的解读非常深入,今天特别分享给大家。一、什么是大型网站运维?首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范、知名度、服务器 量级、pv量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排名前10),如sina、baidu、 QQ,http://51.com等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够和成本因素有关,更多的是集合网络、系统 、开发工作于一身的“复合性人才”,就如有些公司把一些合同采购都纳入了运维职责范围,还有如IDC网络规划也纳入运维职责。所以,非常重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统开发、存储,安全,DB等;我在这里所讲的运维工程师就是指专职运维工程师。我们再来说说一般产品的“出生”流程:1、首先公司管理层给出指导思想,PM定位市场需求(或copy成熟应用)进行调研、分析、最终给出详细设计。2、架构师根据产品设计的需求,如pv大小预估、服务器规模、应用架构等因素完成网络规划,架构设计等(基本上对网络变动不大,除非大项目)3、开发工程师将设计code实现出来、测试工程师对应用进行测试。4、好,到运维工程师出马了。首先明确一点不是说前三步就与运维工作无关了,恰恰相反,前三步与运维关系很大:应用的前期架构设计、软/硬件资源评估申请采购、应用设计性能隐患及评估、IDC、服务性能\安全调优、服务器系统级优化(与特定应用有关)等都需运维全程参与,并主导整个应用上线项目;运维工程师负责产品服务器上架准备工作,服务器系统安装、网络、IP、通用工具集安装。运维工程师还需要对上线的应用系统架构是否合理、是否具备可扩展性、及安全隐患等因素负责,并负责最后将产品(程序)、网络、系统三者进行拼接并最优化的组合在一起,最终完成产品上线提供用户使用,并周而复使:需求->开发(升级)->测试->上线(性能、安全问题等之前预估外的问题随之慢慢就全出来了)在这里提一点:网站开发模式与传统软件开发完全不一样,网站一天开发上线1~5个升级版本是家常便饭,用户体验为王嘛,如果某个线上问题像M$ 需要1年解决,用户早跑光了;应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作、服务监控、应用状态统计、日常服务状态巡检、突发故障处理、服务日常变更调整、集群管理、服务性能评估优化、数据库管理优化、随着应用PV增减进行应用架构的伸缩、安全、运维开发工作:a 、尽量将日常机械性手工工作通过工具实现(如服务监控、应用状态统计、服务上线等等),提高效率。b、解决现实中服务存在的问题,如高可靠性、可扩展性问题等。c、大规模集群管理工具的开发,如1万台机器如何在1分钟内完成密码修改、或运行指定任务?2000台服务器如何快速安装操作系统?各分布式IDC、存储集群中数PT级的数据如何快速的存储、共享、分析?等一系列挑战都需运维工程师的努力。在此说明一下其它配合工种情况,在整个项目中,前端应用对于网络/系统工程师来说是黑匣子,同时开发工程师职责只是负责完成应用的功能性开发,并对应用本身性能、安全性等应用本身负责,它不负责或关心网络/系统架构方面事宜,当然软/硬件采购人员等事业部其它同事也不会关心这些问题,各司其职,但项目的核心是运维工程师~!所有其它部门的桥梁。上面说了很多,我想大家应该对运维有一些概念了,在此打个比方吧,如果我们是一辆高速行驶在高速公路上的汽车,那运维工程师就是司机兼维修工,这个司机不简单,有时需要在高速行驶过程中换轮胎、并根据道路情况换档位、当汽车速度越来越快,汽车本身不能满足高速度时对汽车性能调优或零件升级、高速行进中解决汽车故障及性能问题、时刻关注前方安全问题,并先知先觉的采取规避手段。这就是运维工作~!最后说一下运维工程师的职责:”确保线上稳定“,看似简单,但实属不容易,运维工程师必须在诸多不利因素中进行权衡:新产品模式对现有架构及技术的冲击、产品高频度的升级带来的线上BUG隐患、运维自动化管理承度不高导致的人为失误、IT行业追求的高效率导致流程执行上的缺失、用户增涨带来的性能及架构上的压力、IT行业宽松的技术管理文化、创新风险、互联网安全性问题等因素,都会是网站稳定的大敌,运维工程师必须把控好这最后一关,需具体高度的责任感、原则性及协调能力,如果能做到各因素的最佳平衡,那就是一

    02

    从零搭建一个自动化运维体系

    DevOps的出现有其必然性。在软件开发生命周期中,遇到了两次瓶颈。第一次瓶颈是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,后来出现了敏捷方法论,强调适应需求、快速迭代、持续交付。第二个瓶颈是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。 DevOps的三大原则: 1、基础设施即代码(Infrastructure as Code) DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等 2、持续交付(Continuous Delivery) 持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等。 3、协同工作(Culture of Collaboration) 开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:1、自动化(减少不必要的协作);2、小范围(每次修改的内容不宜过多,减少发布的风险);3、统一信息集散地(如wiki,让双方能够共享信息);4、标准化协作工具(比如jenkins) 附上DevOps的定义: DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

    03

    Python学习----小白成长必备路线图

    来源:马哥教育链接:www.magedu.com马哥教育历经近十年发展,以“匠心精神,良心教育”为宗旨,以国际“MVP”体系为标准,培养了数万名资深、专业的高端IT人才,80%以上学员在互联网排名前300的企业高薪就业,拥有Linux运维、Python开发、云计算等多个高端学科。凭借马哥教育职业IT培训的高品质和毕业学员的良好口碑,其已经成为业内知名互联网公司重要人才战略合作伙伴,获得了百度、腾讯、阿里、中兴、科大讯飞、大众点评、51CTO、唯品会、京东、中国移动、 新浪、红帽等互联网巨头的人才合作支持,2013年成为51CTO官方推荐合作机构,与多家IT互联网企业签订专项人才培养计划,毕业学员平均薪资达10K以上。我们将让您从0基础的小白一步步变成:自动化运维工程师、数据挖掘工程师、全栈开发工程师。Python是创始人吉多·范罗苏姆(Guido van Rossum)在1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,而在给自己新创造的计算机语言起名字的时候,由于其是,自于七十年代风靡全球的英国六人喜剧团体,巨蟒剧团(Monty Python)的忠实粉丝,所以,就把此计算机语言的名字叫做:Python。Python是一种脚本语言。脚本,对应的英文是:script。普通人,看到script这个英文单词,或许想到的更多的是:电影的剧本,就是一段段的脚本,所组成的电影剧本的脚本,决定了电影中的人和物,都做哪些事情,怎么做。而计算机中的脚本,决定了计算机中的操作系统和各种软件工具,要做哪些事情,以及具体怎么做。其实,脚本这个词还有另外一种感觉:随性因为,现实中,写电影脚本,那直接拿张纸和笔,就可以写了,写完了,就可以拿去用,拿去拍电影了而计算机中的脚本,其实就是普通的文本,就是写到文本文件中的代码而已,其也是有随性这个特点,写完了,直接就可以(在某种具有解释功能的环境中)运行了比如:Linux中的shell脚本,就是直接弄个文本文件,写上shell脚本代码,然后保存文件,然后就可以,在Linux的Shell这个带有shell的解释功能的shell环境中,运行了与此相对的,不那么随性的是:其他的,非脚本语言,常叫做编译性语言,比如C语言,往往都是需要额外加上编译这个步骤,才能执行的。Python拥有功能丰富的自带的库以及种类和数量繁多且强大的第三方库,除了本身Python语言本身自带的标准库之外由于Python语言本身很好用,促使很多其他人,前前后后,写了N多个库积累至今,就成了:Python拥有数量巨大的,各种各样的,功能强大的,第三方的库函数。此特点,对于Python语言的使用者来说,有着显而易见的好处:当你去实现很多各种功能的时候,往往不需要重复造轮子,往往是可以找到,现成的,已有的,内置Python库,或第三方的Python的库,去帮你实现你要的功能换句话说:你去实现一个复杂的功能的时候,往往变成了,找到合适的库,并使用,即可。与此相对的,用其他语言去实现同样的功能的时候,由于缺少好用的库,而使得你需要重头到尾,全新的实现对应的功能所需的代码。由此对比出,Python的好用和强大。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。当然Python也有它的缺点,最大的缺点就是性能,这也是为什么python在年近30岁的时候才火起来的原因,因为Python解释性语言都是需要翻译的,这个过程比较浪费时间,在以前计算机硬件性能低下的情况下,都是靠计算机语言的高性能来提高效率的,不过在现在计算机的硬件速度已经非常快了,硬件的性能问题已经不是瓶颈,而要处理大数据和类似人工智能等的超复杂的算法成立程序员编程的瓶颈,所以Python以其简介的语言风格和强大的第三方库能够节省程序员很多操作和步骤,使Python大放异彩。添加描述习----小白成长必备路线图

    03
    领券