⑴ 观点 优秀的运维架构师应该具备哪些能力
具备一定运营技能;要有运营意识;主动性要强;学习能力要跟得上。
大家都会发现这些条件基本是主观性方面的占的多一些,而与客观沾边的貌似只有一点:学习能力问题。运营技能差可以培养,运营意识差可以培养,主动性差也可以受环境影响,可以熏陶。
而学习能力完全是一个人综合能力的体现,这一点个人觉得客观性占绝大部分。最近发生的一系列事情,我颇有感触,合格与不合格的运营工程师就差在这里。接下来,我就简单的跟大家分享一下。
回归到我们OPS生产线运营中来,大家分析一下自己的工作经历,都会发现我们之前做过一些“傻事”,比如:
运营过程中RM掉lib目录及关键的数据文件目录;Drop掉数据库,甚至就连自己远程管理的服务器,比如做一些安全策略等导致自己也连接不到自己的服务器,诸如此类。
⑵ 架构师 一般会是什么级别的来面试
架构师是行业中一种新兴职业,工作职责是在一个项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个开发项目的成败。 一般来讲,系统架构师应该拥有以下几方面的能力: 1:具备 8 年以上行业工作经验; 2:具备 4 年以上 C/S 或 B/S 体系结构产品开发及架构和设计经验; 3:具备 3 年以上的代码编写工作经验; 4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验; 5:对相关的技术标准有深刻的认识,对工程标准规范有良好的把握; 6:对 .Net/JAVA 技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE 架构和设计模式,并在此基础上设计产品框架; 7:具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发; 8:精通大型数据库如 Oracle、sql Server 等的开发; 9:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础; 10:在应用系统开发和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例; 11:良好的团队意识和协作精神,有较强的内外沟通能力。
⑶ web前端维护是做什么的
前端开发工程师的主要职责是与交互设计师、 视觉设计师协作,根据设计图用HTML和CSS完成页面制作(也可能是一个人完成所有)。同时,在此基础之上,对完成的页面进行维护和对网站前端性能做相应的优化。另外,一名合格的前端开发工程师,应该具有一定的审美能力和基础的美工操作能力,能很好的与交互及视觉协作。
现在的前端工程师可能都需要一定程度上的全栈了,也就是前后端都需要会。不仅需要制作静态页面,包括网站架构,H5等。
如今市场上招聘web前端需要你会写JS、会用JS、能设计、切图、懂用户交互等,还需要前端架构是开发和优化框架,及服务器,用户体验等涉汲就比较广,当然全栈式前端工程师工资也就比较高了。
⑷ 各位大神 女生做前端,测试,运维 哪个比较
你好,现在前端市场不是特别火了,现在市场上对初级前端开发工程师的要求不多,很多公司招中高级的前端开发工程师。如果你对前端非常感兴趣,你在自学了解这个课程时候觉得非常简单,那你可以选择前端开发。测试的话,基本上难度不大,也不需要你写太多的代码。运维的话,也是需要些代码的。运维必须你要懂数据库这一块。其实这3个专业当中,我觉得最适合女生是测试专业,难度不大,女生做的也不少。
⑸ 谁知道面试 百度公司 的 平台运维工程师 的要求
运维平台研发
岗位职责:
-负责网络核心搜索产品的超大规模(以万计)、高可用集群的稳定性运维
-深入研究核心搜索产品运维相关技术,持续优化服务架构
-深度参与业务系统的设计与实施,主导系统架构的可运维性设计
-理解搜索业务,能设计实现可支撑大规模分布式集群的运维平台与工具
-探索、研究新的运维技术方向
任职资格:
-本科或以上学历,专业不限,但需要有较强的学习能力
-深入理解Linux操作系统、体系结构,研发能力强
-能够结合产品需求制定并实施综合性的运维技术方案
-强烈的责任心与主动性,对所负责工作有owner意识,并能自我驱动成长
-具备搜索引擎、电商、社交网络、云平台的开发、运维经验者优先
云计算运维工程师
工作职责:
-负责云计算业务大规模、高可用的运维架构设计与优化
-负责稳定性、用户访问速度及集群性能的优化,提升用户体验
-负责设计实现与运维相关的自动化工具或系统
-负责产品多地域部署、容量规划及流量迁移
-负责制定公有云相关的容灾、故障预案等相关的运维技术方案
职位要求:
-计算机或相关专业本科或以上学历
-对Linux操作系统原理有深入的理解,精通Shell/Python语言
-了解网络架构,了解服务器、网络硬件相关知识
-良好的沟通、组织协调能力和强烈的责任心,具备很强的分析和解决问题的能力
-有三年以上互联网行业工作经验
有以下经验者优先:
-有大规模在线集群及LAMP架构运维经验优先
-熟悉国内外运维发展趋势及运维优化方案优先
-熟悉阿里云、亚马逊等IAAS、PAAS、SAAS等云技术方案优先
-虚拟化/容器平台和技术(VMWare,Xen,KVM,VirtualBox,Vagrant,Docker等)
⑹ 应聘JAVA架构师需要掌握哪些必要技术
架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
一般来讲,系统架构师应该拥有以下几方面的能力:
1:具备
8
年以上软件行业工作经验;
2:具备
4
年以上
C/S
或
B/S
体系结构软件产品开发及架构和设计经验;
3:具备
3
年以上的代码编写工作经验;
4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;
5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
6:对
.Net/JAVA
技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE
架构和设计模式,并在此基础上设计产品框架;
7:具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通
UML
和
ROSE,熟练使用
Rational
Rose、PowerDesigner
等工具进行设计开发;
8:精通大型数据库如
Oracle、Sql
Server
等的开发;
9:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;
10:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
11:良好的团队意识和协作精神,有较强的内外沟通能力。
⑺ 程序员面试,为什么感觉很多都和运维有关
不会运维的程序员不是好程序员。 这个信条要时刻谨记,不管是面试还是自己平时在工作中都要坚持这个准则,因为这对你以后的发展大有裨益。
一直以来,很多圈外人对我们程序员的观念就是永远的一本正经,着装单一,了无生趣,聪明绝顶,其实这是他们对程序员的误解,因为多才多艺,多姿多彩的程序员比比皆是,但是传统的观念或者说以偏概全的观念蒙蔽了他们的双眼,而他们自己又没有尝试去了解,所以导致人云亦云,给程序员披上了一层灰。
同样的,我们大部分程序员的观念也跟他们差不多,认为程序员就只是搬砖撸码的,至于各种部署服务器相关的工作应该是运维做的,其实非也,如果真的这样认为的话,那就真的太不把自己当程序员了。为什么这么说呢?因为我们程序员是实实在在撸码开发产品的群体,可是如果我们开发出来的东西只能自个在本地玩耍,却不能众乐乐,那还有什么意义,此时,你可能会说,交给运维啊,那么如果没有运维呢,就没法玩了,所以我们不能总是将希望寄托在别人身上,当自己有能力能够将系统进行部署的时候,那就该学会部署。
其实不仅仅是程序员,优秀的运维工程师也是需要会开发撸码的,因为有时候他们也需要开发一些小工具来进行验证,或者开发网页来进行服务的管理,所以说程序员和运维都是相辅相成的。
像我们现在很多的公司都没有明确的人员分工,特别是小公司连运维都没有,所以就谈不上让运维去部署了,那么怎么办呢?肯定就是开发人员自己去部署了,如果不会部署的话就可以去网上查找资料,其实总体来说不会很难,因为我看过很多运维其实也是在网上找资料按步聚进行操作。
另外公司之所以这么要求,一方面是基于人员成本的考虑,毕竟如果一个人能干好的事为啥非得招两个人;另一方面可能基于公司的发展问题,像一般的小公司确实没必要专门招一个运维,不过随着公司的发展,后期肯定会招专业运维,毕竟专人做专事,事半功倍。
永远记住“不会运维的程序员不是好程序员”,其实作为程序员不能总是把自己陷在撸码的深渊,除了撸码,我们还要学会产品需求分析、简单的UI画图、数据库分表分库及性能优化、运维服务器部署、单元及系统测试等等,总的来说,要想成为优秀的程序员,我们有必要把产品线上的每一个环节都略知一二,这是经验收获,一定会成为我们日后发展的资本。
技术迭代是需要时间的,而且公司预算不多的话,会选择现有系统继续使用。有的企业也会选择维稳,不会轻易开发新系统代替现有系统。
这是一个非常好的问题,作为一名IT从业者,我来回答一下。
首先,在当前的大数据、云计算时代,程序员在面试的过程中,经常会遇到与运维相关的问题,尤其是有自身产品(平台类)的企业,往往对于程序员的运维类知识有比较多的要求,所以当前的程序员,尤其是Java程序员,要想获得较强的岗位竞争力,一定要重视运维类知识的学习。
在当前的大数据时代背景下,很多程序员在日常开发过程中,需要与运维人员进行配合,所以程序员在面试过程中,经常会被问及与运维相关的问题,通过这样的问题,也能够全面了解程序员是否面对过大用户的并发问题,这对于判断程序员是否适合当前的招聘岗位也有一定的参考价值。
以大数据开发岗位为例,程序员在进行大数据任务开发的过程中,不可避免地需要与运维人员打交道,其中大数据平台的搭建就是比较繁琐的过程,另外还有一系列产品的安装和部署,这些通常都需要运维人员来完成。对于一款平台类产品来说,运维人员的技术能力能够在很大程度上决定软件平台的性能,而且运维人员与开发人员的配合也非常关键。
当然,对于程序员来说,如果能够自己掌握一定的运维知识,对于开发任务的开展还是很有帮助的,如果什么问题都需要运维人员来完成,不仅需要更多的运维人员,同时也会影响项目的整体开发进度。从这个角度来看,随着未来大数据技术的逐渐落地,程序员掌握一定的运维类知识,对于提升自身的工作效率,还是很有帮助的。
在程序员面试过程当中,通过一些运维知识也能够更加直观地了解到程序员的技术栈,相对于比较复杂的开发问题来说,运维知识的脉络还是比较清晰的,通过运维知识能够在一定程度上挤出一些“技术水分”,这也是很多面试官比较愿意问运维问题的主要原因。另外,对于一些创业型公司来说,程序员掌握一定的运维类知识,也会节省一些投入,尤其在产品研发的初期。
从技术体系结构来看,要想解决大用户的并发问题和系统扩展性问题,通常需要从两个角度出发,一个角度是技术选型,比如采用扩展性比较强的大数据平台,另一个角度就是硬件扩充,但是硬件扩充的前提是要有一个可扩充的平台体系,而通过运维知识,程序员的交流会更明确,技术方案也比较直观。
从岗位任务划分的角度来看,程序员的工作任务与运维人员的工作任务有比较明确的边界,但是在云计算技术的推动下,程序员接触运维场景的情况也在不断增加,比如通过云计算平台的支撑,很多传统的运维类任务,程序员也会比较方便地完成,比如安全配置等等。
最后,程序员在进行面试的过程中,如果遇到的运维类问题并不清楚,一定要如实回答,因为运维类知识需要一个积累的过程,而且经验往往非常重要,所以很多运维类知识,在短期内是无法掌握的,如果盲目扩展自己的知识面,会为后续的工作带来很多麻烦。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
一、提问之前的准备
首先,最重要的是,你自己一开始就应该想清楚:
只有明确这些根本性的问题,才能正确高效地完成面试。
二、提问的原则
假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。
有一些提问的原则,是你应该遵循的:
三、考察专业能力
为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。)
比如,你的招聘职位是系统管理员,你可以问"如何快速地在50台机器上部署Linux?"(提示:正确答案不是刻录50张安装光盘。)
另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。
四、考察综合素质
因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。
所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。
下面是一些典型问题:
五、考察理性思维
某些情况下,你可能需要了解面试者的分析判断能力,看他能否全面地思考问题、客观地评价自己。
那么,你可以依次提出这样三个问题:
这里的重点是,让面试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要面试者有一个明确的立场,能够从正反两方面说出令人信服的理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样就很好。
不邀自来。众所周知,越大型的公司,分工越明确。在BAT里面,有专门的前端,后端,ops,dba等等。他们专研一方面,所以有深度,有沉淀。遇到问题了,找到相应的人,能够快速解决问题。
但绝大多数中小公司,更偏爱样样都会的全栈,恨不得你一个人把所有活儿做完。并不一定需要有多大深度,能干活儿就行了。
再说,现在提倡devops,开发懂点运维,能够更好地定位问题,部署和架构项目,这是需求,也是趋势。
对小公司而言基本没有专门的运维,所以需要研发具备一些运维的知识,比如数据库的搭建、nginx、jdk部署,其它开源中间件,比如Kafka、es等等
其实这个目前真正大规模用的少,炒概念的多,很多公司根本没机会用. 但是他会问
我觉得很自然的事,为什么总有人说得高大上?装个软件,调个参数,做个逻辑卷,调一调网络,配置一下分布式组件,搞个文件系统程序员就应该不会?
这些工作,我们公司一般运维人员搞不定的。所以用啥,自己整。
个人观点,计算机知识就必须全面,才能做好一个程序员吧?
而且看大家回复,我有8成猜对,有8成以上的架构师,不懂底层,知识面也没传说中那么广。
现在devops在流行,说白了企业为了省成本,研发要干一部分运维的活。运维只负责硬件网络和k8s维护,其他什么部署啦,服务编排啦,通通交给程序员做。
不过这样倒也合理,运维只负责全公司通用的设施建设,至于cicd,服务编排,熔断限流等等,都和业务强相关,交给开发做比较贴近实际业务
⑻ 成为合格的Web前端需要具备的条件!
今天小编要跟大家分享的文章是关于成为合格的Web前端需要具备的条件!初级Web前端工程师,如何进阶成为优秀的Web前端,手拿高薪?今天小编就为大家带来了这篇成为合格的Web前端需要具备的条件,让我们一起来看一看想成为优秀的Web前端工程师需要具备哪些条件!
前端领域这几年发展速度非常快,人才分布呈两级分化趋势,大家都在说缺前端,其实缺的是厉害前端,对于低端的前端,培训机构一直在量产,但是无法满足要求。很多情况下,一个厉害前端对于团队的价值是再多低端前端都无法提供的。
厉害的前端工程师有一些共通的特质,这些特质也许不属于前端的核心范畴,但是可以通过它们将厉害的人识别出来。
一、对用户体验的追求
不要认为用户体验只由设计师和产品经理把关就可以了。前端工程师对用户体验的关注度会直接影响产品的最终效果。
不管设计文档有多么详细,产品中仍然有大量的细节是设计方没有考虑到或者默认的,而这些细节需要前端工程师来把关。同样的设计,交给不关注体验的前端来做的话,会有很明显的粗糙感,而想要填平这些粗糙感需要大量的附加成本。
目前多数视觉设计师的不足是无法以动态的角度理解产品。比如我们要出一个设计稿,PC时代我们会出一个固定宽度的稿,比如800像素,然后让工程师去还原。后来到移动时代,我们会让设计师出两三个稿,对应不同屏幕的手机。这就是缺乏动态思维的弥补措施,无论出几个宽度的视觉稿,都只是动态形态的截面。
二、动机的来源
我遇到的很多转行做前端的人是认为前端门槛低,所以先从前端做起。这样的人也许能做基础的工作,但很难做到优秀。
厉害前端是奔着前端领域有更多的挑战和发挥空间而来的,而不是为了好找工作。事实上胜任高级前端的职位很难,我们招聘高级前端工程师的面试通过概率可能是研发类职位中最低的。
还有的人说对前端有兴趣,所以转行做前端。对于前端的兴趣要建立在对计算机的兴趣、对编程的兴趣之上。如果一个人对于做前端很有兴趣,但是对做后端或者其它开发类职位有排斥,那么就要对他的兴趣打个问号了,这类人可能不适合做研发类的工作。
三、全栈意识
这里所说的全栈并不是真的要去做后端工程师一样的事情。对于前后端分离,很多人有误解,理解成前端不用写后台代码。真正的前后端分离指的是系统级的分离,前端有独立的系统,当然要有自己的后台,还有各种辅助支撑系统。代码构建、发布、线上运维、数据统计监控都要了解,否则没法独立承担一块业务。
厉害的前端工程师首先得是一个厉害的软件工程师,他们是不会给自己的能力设限的。
而前端工程师所做的事情是将截面延展为一个完成的产品形态。
厉害的前端能够主动追求用户体验的提升,对于交互、UI、视觉设计有基本的认识和审美能力,即使脱离设计师的支持依然能交付用户体验良好的产品。
四、了解自动化测试
优秀的前端不一定真的有多丰富的自动化测试实践经验,但一定要了解与自动化测试相关的基础知识。系统的可测试性本身比具体的测试用例覆盖度更重要。
追求质量不是一件有时间了再去做的事情,追求质量本身是提高效率的方法,从而给你更多的时间。自动化测试是前端工程化建设的必备环节,虽然前端的自动化测试还没有形成稳定且应用广泛的实践方法,但是自动化测试这一块完全缺失的话,肯定是成为不了一个厉害前端的。
五、重视监控系统
初级前端看功能,中级前端看测试,高级前端看监控。
前端做监控的目的就是在产品上线之后要从用户端拿到第一手的数据,毕竟用户端好用才是真正的好用。
目前多数公司对于前端的监控做的是不够的。在前后端分离的技术架构之下,前端要有自身的一整套监控体系才行。
很多时候后台监控到的是结果,结合前端监控才能分析出原因。我举个例子,比如后台监控到实时订单量骤减,这个是最终的结果,如果有前端的监控,我们就要看一下前端的可用性状况、各个页面的UV、加载性能、每个交互环节的点击量,各个接口的性能和出错占比、前端代码报错的量和位置,然后定位出问题所在。
真正经历过大型项目并且做过技术架构的工程师都会重视监控系统的建设。
做好监控需要有很好的大局观,一方面是产品的大局观,包括思考用户会如何使用产品,如何量化这些行为,每个环节数据的预期变化。另一方面是技术的大局观,要了解到整个技术架构不同模块是如何协作的,怎样测量它们是否正常工作。
最后:
厉害的Web前端肯定不会只把时间花在研究浏览器上,他们所共有的特质就是:对于用户体验的追求、迎难而上的动机、全栈意识、注重自动化测试与数据监控。基础知识之外,对于周边体系的掌控状况最有区分度。
以上就是小编今天为大家分享的关于成为合格的Web前端需要具备的条件的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助。想要了解更多会计相关知识记得关注北大青鸟会计培训官网。最后祝愿小伙伴们工作顺利!
来源:#/p/22026860
⑼ 运维工程师的合格标准:
一个优秀的运维工程师标准是什么,是不是做运维是一个比较低级的工作?
做IT这行是不是只有做编程才能挣高薪?
发现毕业后大部分同学都去编程了. 像我这种做了运维的主要是linux系统管理方面的.就偶一个
首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂 性角度考虑,如网站规范、知名度、服务器量级、pv量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内 排名前10),如sina、、QQ,renren.com等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够和成本因素有关,更多的 是集合网络、系统、开发工作于一身的“复合性人才”,就如有些公司把一些合同采购都纳入了运维职责范围,还有如IDC网络规划也纳入运维职责。所以,非常 重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统开发、存储,安全,DB等;我在这里所讲的运维工程师就是指专职运维工程师。
我们再来说说一般产品的“出生”流程:
1、首先公司管理层给出指导思想,PM定位市场需求(或成熟应用)进行调研、分析、最终给出详细设计。
2、架构师根据产品设计的需求,如pv大小预估、服务器规模、应用架构等因素完成网络规划,架构设计等(基本上对网络变动不大,除非大项目)
3、开发工程师将设计code实现出来、测试工程师对应用进行测试。
4、好,到运维工程师出马了,首先明确一点不是说前三步就与运维工作无关了,恰恰相反,前三步与运维关系很大:应用的前期架构设计、软/硬件资源评估申请 采购、应用设计性能隐患及评估、IDC、服务性能\安全调优、服务器系统级优化(与特定应用有关)等都需运维全程参与,并主导整个应用上线项目;运维工程 师负责产品服务器上架准备工作,服务器系统安装、网络、IP、通用工具集安装。运维工程师还需要对上线的应用系统架构是否合理、是否具备可扩展性、及安全 隐患等因素负责,并负责最后将产品(程序)、网络、系统三者进行拼接并最优化的组合在一起,最终完成产品上线提供用户使用,并周而复使:需求->开 发(升级)->测试->上线(性能、安全问题等之前预估外的问题随之慢慢就全出来了)在这里提一点:网站开发模式与传统软件开发完全不一样, 网站一天开发上线1~5个升级版本是家常便饭,用户体验为王嘛,如果某个线上问题像M$ 需要1年解决,用户早跑光了;应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作、服务监控、应用状态统计、日常服务状态巡检、突发故障 处理、服务日常变更调整、集群管理、服务性能评估优化、数据库管理优化、随着应用PV增减进行应用架构的伸缩、安全、运维开发工作:
a 、尽量将日常机械性手工工作通过工具实现(如服务监控、应用状态统计、服务上线等等),提高效率。
b、解决现实中服务存在的问题,如高可靠性、可扩展性问题等。
c、大规模集群管理工具的开发,如1万台机器如何在1分钟内完成密码修改、或运行指定任务?2000台服务器如何快速安装操作系统?各分布式IDC、存储集群中数PT级的数据如何快速的存储、共享、分析?等一系列挑战都需运维工程师的努力。
在此说明一下其它配合工种情况,在整个项目中,前端应用对于网络/系统工程师来说是黑匣子,同时开发工程师职责只是负责完成应用的功能性开发,并对应用本 身性能、安全性等应用本身负责,它不负责或关心网络/系统架构方面事宜,当然软/硬件采购人员等事业部其它同事也不会关心这些问题,各司其职,但项目的核 心是运维工程师~!所有其它部门的桥梁。
上面说了很多,我想大家应该对运维有一些概念了,在此打个比方吧,如果我们是一辆高速行驶在高速公路上的汽车,那运维工程师就是司机兼维修工,这个司机不 简单,有时需要在高速行驶过程中换轮胎、并根据道路情况换档位、当汽车速度越来越快,汽车本身不能满足高速度时对汽车性能调优或零件升级、高速行进中解决 汽车故障及性能问题、时刻关注前方安全问题,并先知先觉的采取规避手段。这就是运维工作~!
最后说一下运维工程师的职责:”确保线上稳定“,看似简单,但实属不容易,运维工程师必须在诸多不利因素中进行权衡:新产品模式对现有架构及技术的冲击、 产品高频度的升级带来的线上BUG隐患、运维自动化管理承度不高导致的人为失误、IT行业追求的高效率导致流程执行上的缺失、用户增涨带来的性能及架构上 的压力、IT行业宽松的技术管理文化、创新风险、互联网安全性问题等因素,都会是网站稳定的大敌,运维工程师必须把控好这最后一关,需具体高度的责任感、 原则性及协调能力,如果能做到各因素的最佳平衡,那就是一名优秀的运维工程师了。
另外在此聊点题外话,我在这里看到有很多人要sina、QQ、,51.com等聊自已的运维方面的经验,其实这对于它们有点免为其难:
a、各公司自已网络架构、规模、或多或少还算是公司的核心秘密,要保密,另外,对于大家所熟知的通用软件、架构,由于很多公司会根据自已实际业务需要,同 时因为原版性能、安全性、已知bug、功能等原因,进行过二次开发(如apache,php,mysql),操作系统内核也会根据不同业务类型进行定制 的,如某些应用属于运算型、某些是高IO型、或大存储大内存型。根据这些特点进行内核优化定制,如sina就在memcache上进行过二次开发,搞出了 一个MemcacheDB,具体做得如何我们不谈,但开源了,是值得称赞的,国内公司对于开源基本上是索取,没有贡献;另外,服务器也不是大家所熟知的型 号,根据业务特点,大部份都是找DELL/HP/ibm进行过定制;另外,在分布式储存方面都有自已解决方案,要不就是使用现成开源hadoop等解决方 案,或自已开发。但90%都是借鉴google GFS的思想:分布式存储、计算、大表。
b、各公司业务方向不一样,会导致运维模式或方法都不一样,如51.com和运维肯定区别很大,因为他们业务模式决定了其架构、服务器量级、 IDC分布、网络结构、通用技术都会不一样,主打新闻门户的sina与主打sns的51.com运维模式差异就非常大,甚至职责都不大一样;但有一点,通 用技术及大致架构上都大同小异,大家不要太神化,更多的公司只是玩垒积木的游戏罢了,没什么技术含量。
c、如上面所讲,目前大型网站运维还处于幼年时期理念和经验都比较零散,没有成熟的知识体系,可能具体什么是运维,大家都要先思索一番,或压根没想过,真 正讨论也只是运维工作的冰山一角,局限于具体技术细节,或某某着名网站大的框架,真正运维体系化东西没有,这也许是目前网上运维相关资料比较少的原故吧。 或者也是国内运维人员比较难招,比较牛的运维工程师比较少见的原因之一吧。
二、运维工作师需要什么样的技能及素质
做为一名运维工程师需要什么样的技能及素质呢,首先说说技能吧,如大家上面所看到,运维是一个集多IT工种技能与一身的岗位,对系统->网络 ->存储->协议->需求->开发->测试->安全等各环节都需要了解一些,但对于某些环节需熟悉甚至精通,如系统 (基本操作系统的熟悉使用,*nix,windows..)、协议、系统开发(日常很重要的工作是自动运维化相关开发、大规模集群工具开发、管理)、通用 应用(如lvs、ha、web server、db、中间件、存储等)、网络,IDC拓朴架构;
技能方面总结以下几点:
1、开发能力,这点非常重要,因为运维工具都需要自已开发,开发语言:c/c++(必备其中之一)、perl、python、php(其中之一)、shell(awk,sed,expect….等),需要有过实际开发经验,否则工作会非常痛苦。
2、通用应用方面需要了解:操作系统(目前国内主要是linux、bsd)、webserver相关 (nginx,apahe,php,lighttpd,java。。。)、数据库(mysql,oralce)、其它杂七八拉的东东。。。系统优化,高可 靠性。。。这些只是加分项,不需必备,可以边工作边慢慢学,这些东西都不难。当然在运维中,有些是有分工偏重点不一样。
3、系统、网络、安全,存储,CDN,DB等需要相当了解,知道其相关原理。
个人素质方面:
1、 沟通能力、团队协作:运维工作跨部门、跨工种工作很多,需善于沟通、并且团队协作能力要强;这应该是现代企业的基本素质要求了,不多说。
2、工作中需胆大心细:胆大才能创新、不走寻常路,特别对于运维这种新的工种,更需创新才能促进发展;心细,运维工程师是网站admin,最高线上权限者,一不小心就会遗憾终生或打入十八层地狱。
3、主动性、执行力、精力旺盛、抗压能力强:由于IT行业的特性,变化快;往往计划赶不上变化,运维工作就更突出了,比如国内各大公司服务器往往是全国各 地,哪里便宜性价比高,就那往搬,进行大规模服务迁移(牵扯的服务器成百上千台),这是一个非常头痛的问题;往往时间非常紧迫,如限1周内完成,这种情况 下,运维工程师的主动性及执行力就有很高的要求了:计划、方案、服务无缝迁移、机器搬迁上架、环境准备、安全评估、性能评估、基建、各关联部门扯 皮,7X24小紧急事故响应等。
4、其它就是一些基本素质了:头脑要灵光、逻辑思维能力强、为人谦虚稳重、亲和力、乐于助人、有大局观。
5、最后一点,做网站运维需要有探索创新精神,通过创新型思维解决现实中的问题,因为这是一个处于幼年的职业(国外也一样,但比国内起步早点),没有成熟体系或方法论可以借鉴,只能靠大家自已摸索努力。
三、怎样才算是一个合格的运维工程师
1、保证服务达到要求的线上标准,如99.9%;保证线上稳定,这是运维工程师的基本责职所在。
2、不断的提升应用的可靠性与健壮性、性能优化、安全提升;这方面非常考验主动性、和创新思维。
3、网站各层面监控、统计的覆盖度,软件、硬件、运行状态,能监控的都需要监控统计,避免监控死角、并能实时了解应用的运转情况。
4、通过创新思维解决运维效率问题;目前各公司大部份运维主要工作还是依赖人工操作干预,需要尽可能的解放双手。
5、运维知识的积累与沉淀、文档的完备性,运维是一个经验性非常强的岗位,好的经验与陷阱都需积累下来,避免重复性范错。
6、计划性和执行力;工作有计划,计划后想法设法达到目标,不找借口。
7、自动化运维;能对日常机械化工作进行提炼、设计并开发成工具、系统,能让系统自动完成的尽量依靠系统;让大家更多的时间用于思考、创新思维、做自已喜欢的事情。
以上只是技术上的一些层面,当然个人意识也是很重要的。
四、运维职业的迷惘、现状与发展前景
运维岗位不像其它岗位,如研发工程师、测试工程师等,有非常明确的职责定位及职业规划,比较有职业认同感与成就感;而运维工作可能给人的感觉是哪方面都了 解一些,但又都比上专职工程师更精通、感觉平时被关注度比较低(除非线上出现故障),慢慢的大家就会迷惘,对职业发展产生困惑,为什么会有这种现象呢? 除了职业本身特点外,主要还是因为对运维了解不深入、做得不深入导致;其实这个问题其它岗位也会出现,但我发现运维更典型,更容易出现这个问题;
针对这个问题我谈一下网站运维的现状及发展前景(也在思考中,可能不太深入全面,也请大家斧正补充)
运维现状:
1、处于刚起步的初级阶段,各大公司有此专职,但重视或重要承度不高,可替代性强;小公司更多是由其它岗位来兼顾做这一块工作,没有专职,也不可能做得深入
2、技术层次比较低;主要处于技术探索、积累阶段,没有型成体系化的理念、技术。
3、体力劳动偏大;这个问题主要与第二点有关系,很多事情还是依靠人力进行,没有完成好的提练,对于大规模集群没有成熟的自动化管理方法,在此说明一下,大规模集群与运维工作是息息相关的如果只是百十来台机器,那就没有运维太大的生存空间了。
4、优秀运维人才的极度缺乏;目前各大公司基本上都靠自已培养,这个现状导致行业内运维人才的流动性非常低,非常多好的技术都局限在各大公司内部,如 google 50万台机器科学的管理,或者国内互联公司top 10 的一些运维经验,这些经验是非常有价值的东西并决定了一个公司的核心竞争力;这些问题进而导致业内先进运维技术的流通、贯通、与借签,并最终将限制了运维 发展。
5、很多优秀的运维经验都掌握在大公司手中;这不在于公司的技术实力,而在于大公司的技术规模、海量PV、硬件规模足够大,如可怕的流量、 51.com海量数据~~~~这些因素决定了他们遇到的问题都是其它中/小公司还没有遇到的,或即将遇到。但大公司可能已有很好的解决方案或系统。
发展前景:
1、从行业角度来看,随着中国互联网的高速发展(目前中国网民已跃升为全球第一)、网站规模越来越来大、架构越来越复杂;对专职网站运维工程师、网站架构 师的要求会越来越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱;目前国内基本上都是选择毕业生培养(限于大公司),培养成本高,而且没 有经验人才加入会导致公司技术更新缓慢、影响公司的技术发展;当然,毕业生也有好处:白纸一张,可塑性强,比较认同并容易融入企业文化。
2、从个人角度,运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了解最熟悉的人、越来越得到重视。
3、网站运维将成为一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综合性技术岗位,给大家提供一个很好的个人能力与技术广度的发展空间。
4、运维工作的相关经验将会变得非常重要,而且也将成为个人的核心竞争力,具备很好的各层面问题的解决能力及方案提供、全局思考能力等。
5、特长发控和兴趣的培养;由于运维岗位所接触的知识面非常广阔,更容易培养或发挥出个人某些方面的特长或爱好,如内核、网络、开发、数据库等方面,可以做得非常深入精通、成为这方面的专家。
6、如果真要以后不想做运维了,转到其它岗位也比较容易,不会有太大的局限性。当然了,你得真正用心去做。
7、技术发展方向、网站/系统架构师。
五、运维关键技术点解剖
1、 大规模集群管理问题
首先我们先要明确集群的概念,集群不是泛指各功能服务器的总合,而是指为了达到某一目的或功能的服务器、硬盘资源的整合(机器数大于两台),对于应用来说 它就是一个整体,目前常规集群可分为:高可用性集群(HA),负载均衡集群(如lvs),分布式储、计算存储集群(DFS,如go
⑽ Linux运维工程师会面试哪些
知识上面的答主说的很精准了,我来说说技巧。我本身是一名HR,负责新盟教育的Linux讲师招聘,所以我需要懂Linux基础知识,方便对面试者提问。
首先,我会就应聘者简历上填写的内容进行,提问,一般会包括拿到的证书,有无经验,熟悉的技能,然后我的同事会提问专业内容。比如你写了擅长MySQL ,Jquery,bootstrap,那么我们就会提问这些内容,当然都不会特别困难,只需要证明你确实知道,不是在吹嘘就行。
其次我们会就岗位需求进行提问,我会问到加班,出差,经验等问题,我的同事会问会不会某些特定要求的内容,比如zabbix、nagios、elk等……
如果不会,请千万不要吹牛,我们会问到说明我们肯定知道这玩意,如果吹牛肯定一眼就看出来,然后三两句话把你送走这样。
如果你一面过了,要准备二面,那么请你至少,在二面之前,把我们提到的岗位要求的内容了解一下,避免我们再次提到的时候还是不知道,这样很影响面试结果。