目录

网搜面经

1.怎么理解SRE

2.说说你在实习的主要工作

3.工作期间遇到问题,服务出现报错会怎么解决(上网查啊,看日志定位,修改)

4.Linux了解多少,项目中会用到吗,你会负责些什么(还不错,比较熟练,必然用到,配置更改服务上线)

5.nginx了解多少,有什么作用(反向代理,负载均衡)

6.怎么做的负载均衡,有没有用过什么负载均衡算法(nginx做,用nginx自带那几个配置,目前没有自己写过相关负载均衡算法)

7.有没有用过Python写一些自动化脚本,说说过程(无,我是真的菜)

8.devops开发流程(这个能说好多,建议自己去看)

9.对于Apache Tomcat服务器这些了解多少(就项目入手说经常用Tomcat啊,也会经常看经常改配置文件启动脚步什么的)

10.说说你的日志分析方法(kafka拿数据然后给flink做正则清洗,采集端集成了字节码增强agent可以配合打点,具体参考google dapper论文)

11.大数据工具了解多少,都说说(Hadoop,spark,MapReduce,HBASE都有了解,搭建过很多大数据完全分布式集群在上面跑过APM,个人做得是流计算方面所以说了一下flink)

12.数据存储端,数据库和缓存的可靠性设计(MySQL和Redis相关知识)

13.输入URL的整个过程(访问www.baidu.com的过程)

14.HTTP 怎么传图片的

15.osi七层模型、tcp四层、五层模型及每层功能

16.对于交换机和路由器自己做过配置没?

17.UDP包的结构

18.三次握手与四次挥手过程?什么时候进入time_wait状态

19.如何新增用户

20.给普通用户下放权限

21.Shell学习的情况:变量加载顺序,用户下.bashrc文件和/etc/bashrc文件中变量冲突是怎么读取变量的?

22.Shell的参数:$0 $1 $# 之类的意义,编写脚本输入是字符串 输出是是否是ip;shell的正则表达式,如何进行提取ip(awk);怎么拼接两个字符;怎么对两个数相加

23.怎么修改ip地址(永久和临时)

24.Du –sh 和 ls –l 查看文件大小的区别

25.怎么查看文件最后一行

26.查看过Nginx开启的进程没有?nginx有哪些模块?service模块的作用?

27.装过Mysql没有?主从复制原理

28.Python:编写简单的装饰器;python中使用过哪些内建的包?有哪些数据类型?命名空间与变量查找顺序?

29.TCP与UDP的区别

30.get与post的区别,什么时候get、什么时候post

31.四次挥手的过程。什么时候time_wait,为什么time_wait,为什么是2MSL。

32.python算法复杂度

简历部分


网搜面经

1.怎么理解SRE

网站可靠性工程师(SRE),就像解决运维和基础设施的软件工程师。SRE 专注于创建可扩展、高可用且可靠的软件系统。

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。

DevOps = Development + Operations,简而言之,通过研发(dev)把运维(ops)全部自动化(automation)

所涉及的范围呢:代码管理和部署,配置管理,监控,应急响应,故障处理,压力测试,容灾等等

Devops的核心概念就是通过脚本实现自动化 -> Automation

2.说说你在实习的主要工作

论文、专利

3.工作期间遇到问题,服务出现报错会怎么解决(上网查啊,看日志定位,修改)

先查日志,根据日志定位出错原因与位置,看是不是配置文件出的问题,若出现问题自己不知如何修改,可以上开源软件官网查看标准配置。

4.Linux了解多少,项目中会用到吗,你会负责些什么(还不错,比较熟练,必然用到,配置更改服务上线)

5.nginx了解多少,有什么作用(反向代理,负载均衡)

nginx是一个高性能的HTTP反向代理服务器,其特点是占用内存少,并发能力强.

反向代理

客户端(用户A)向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。而客户端始终认为它访问的是原始服务器B而不是服务器Z。由于防火墙作用,只允许服务器Z进出,防火墙和反向代理共同作用保护了院子资源服务器B。

6.怎么做的负载均衡,有没有用过什么负载均衡算法(nginx做,用nginx自带那几个配置,目前没有自己写过相关负载均衡算法)

7.有没有用过Python写一些自动化脚本,说说过程(无,我是真的菜)

参见主机信息监控脚本

8.devops开发流程(这个能说好多,建议自己去看)

哪些公司在用?

DevOps正在增长,尤其是在大企业中:调查发现,DevOps的接受度有了显著提高。74%的受访者已经接受了DevOps,而去年这一比例为66%。目前,在81%的大企业开始接受DevOps,中小企业的接受度仅为70%。

那么具体而言都有些公司在采用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛欧实时全额自动清算系统)、Walmart、Sony等等。

他们怎么实施的?

首先,大企业正在自下而上接受DevOps,其中业务单位或部门(31%)以及项目和团队(29%)已经实施DevOps。不过,只有21%的大企业在整个公司范围内采用了DevOps。

其次,在工具层面上,DevOps工具的用量大幅激增。Chef和Puppet依然是最常用的DevOps工具,使用率均为32%。Docker是年增长率最快的工具,用量增长一倍以上。Ansible的用量也有显著增加,使用率从10%翻倍至20%。

9.对于Apache Tomcat服务器这些了解多少(就项目入手说经常用Tomcat啊,也会经常看经常改配置文件启动脚步什么的)

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。其主要的应用场景是解析动态程序代码(JAVA) JSP程序可以处理Tomcat界面

tomcat+nginx的负载均衡:

安装jdk

cd /usr/local/tomcat/webapps/ROOT    vim test.jsp

sh startup.sh 开启tomcat服务

nginx配置文件写入后端 加入反向代理 reload

主机curl 172.25.1.2/test.jsp测试

tomcat+nginx+memcache会话保持

购物车 当前登录状态、最新发布的消息及好友状态

cookie是存储在本地浏览器,而session存储在服务器。

10.说说你的日志分析方法(kafka拿数据然后给flink做正则清洗,采集端集成了字节码增强agent可以配合打点,具体参考google dapper论文)

11.大数据工具了解多少,都说说(Hadoop,spark,MapReduce,HBASE都有了解,搭建过很多大数据完全分布式集群在上面跑过APM,个人做得是流计算方面所以说了一下flink)

redis:

hadoop:用Java编写的一个开源软件框架,用于分布式存储和对在计算机集群上的超大型数据集的分布式处理。

12.数据存储端,数据库和缓存的可靠性设计(MySQL和Redis相关知识)

13.输入URL的整个过程(访问www.baidu.com的过程)

(1)浏览器获取输入的域名www.baidu.com
(2) 浏览器向DNS请求解析www.baidu.com的IP地址
(3) 域名系统DNS解析出百度服务器的IP地址 (详细介绍DNS)-通过网关出去
(4) 浏览器与该服务器建立TCP连接(默认端口号80)
(5) 浏览器发出HTTP请求,请求百度首页
(6) 服务器通过HTTP响应把首页文件发送给浏览器
(7) TCP连接释放
(8) 浏览器将首页文件进行解析,并将Web页显示给用户。

https://blog.csdn.net/wlk2064819994/article/details/79756669?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159775782619724843348062%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159775782619724843348062&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~rank_business_v1-1-79756669.ecpm_v3_rank_business_v1&utm_term=%E4%BB%8E%E8%BE%93%E5%85%A5URL%E5%88%B0%E5%8A%A0%E8%BD%BD%E5%9B%BE%E7%89%87%E7%9A%84%E8%BF%87%E7%A8%8B&spm=1018.2118.3001.4187

14.HTTP 怎么传图片的

15.osi七层模型、tcp四层、五层模型及每层功能

OSI七层模型 功能 对应的网络协议 TCP/IP四层概念模型
应用层 文件传输,文件管理,电子邮件的信息处理——apdu HTTP、TFTP, FTP, NFS, WAIS、SMTP 应用层
表示层 确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,最小单位——ppdu Telnet, Rlogin, SNMP, Gopher
会话层 负责在网络中的两节点建立,维持和终止通信,在一层协议中,可以解决节点连接的协调和管理问题。包括通信连接的建立,保持会话过程通信连接的畅通,两节点之间的对话,决定通信是否被终端一斤通信终端是决定从何处重新发送,最小单位——spdu SMTP, DNS
传输层 定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题——tpdu TCP, UDP 传输层
网络层 控制子网的运行,如逻辑编址,分组传输,路由选择最小单位——分组(包)报文 IP, ICMP, ARP, RARP, AKP, UUCP 网络层
数据链路层 主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC(媒体访问控制)地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层,最小的传输单位——帧 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继 数据链路层
物理层 定义物理设备的标准,主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流,因此最小的传输单位——位(比特流) IEEE 802.1A, IEEE 802.2到IEEE 802.
  

16.对于交换机和路由器自己做过配置没?

17.UDP包的结构

18.三次握手与四次挥手过程?什么时候进入time_wait状态

19.如何新增用户

useradd

20.给普通用户下放权限

sudo

21.Shell学习的情况:变量加载顺序,用户下.bashrc文件和/etc/bashrc文件中变量冲突是怎么读取变量的?

22.Shell的参数:$0 $1 $# 之类的意义,编写脚本输入是字符串 输出是是否是ip;shell的正则表达式,如何进行提取ip(awk);怎么拼接两个字符;怎么对两个数相加

23.怎么修改ip地址(永久和临时)

24.Du –sh 和 ls –l 查看文件大小的区别

du查看占磁盘内存大小(真实大小)

ls  -l 查看文件占目录大小

25.怎么查看文件最后一行

tail -n 1

26.查看过Nginx开启的进程没有?nginx有哪些模块?service模块的作用?

ngx_http_access_module模块 
ngx_http_auth_basic_module模块 
ngx_http_stub_status_module模块 
ngx_http_log_module模块 
ngx_http_gzip_module模块 
ngx_http_ssl_module模块 
ngx_http_rewrite_module模块 
ngx_http_referer_module模块 
ngx_http_headers_module模块

service 模块

name参数:此参数用于指定需要操作的服务名称,比如 nginx。

state参数:此参数用于指定服务的状态,比如,我们想要启动远程主机中的 nginx,则可以将 state 的值设置为 started;如果想要停止远程主机中的服务,则可以将 state 的值设置为 stopped。此参数的可用值有 started、stopped、restarted、reloaded。

enabled参数:此参数用于指定是否将服务设置为开机 启动项,设置为 yes 表示将对应服务设置为开机启动,设置为 no 表示不会开机启动。
arguments 给命令提供一些选项
runlevel  运行等级
sleep 如果运行看restarted 则stop and start 之间沉睡几秒中

测试用例

# 测试mysqld
ansible test -m service -a 'name=mysqld state=restarted'

27.装过Mysql没有?主从复制原理

主机执行操作写入bin_log

slave中的IO线程将binlog写入relaylog

sql线程执行relaylog中的操作并写入二进制日志binlog中

28.Python:编写简单的装饰器;python中使用过哪些内建的包?有哪些数据类型?命名空间与变量查找顺序?

29.TCP与UDP的区别

TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

30.get与post的区别,什么时候get、什么时候post

一般的区别: 
(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) 
(2)post发送的数据更大(get有url长度限制) 
(3)post能发送更多的数据类型(get只能发送ASCII字符) 
(4)post比get慢 
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据

若符合下列任一情况,则用POST方法:

* 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
* 若使用GET方法,则表单上收集的数据可能让URL过长。
* 要传送的数据不是采用7位的ASCII编码。

若符合下列任一情况,则用GET方法:

* 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
* 请求结果无持续性的副作用。

* 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

31.四次挥手的过程。什么时候time_wait,为什么time_wait,为什么是2MSL。

TCP 连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务端均可主动发起挥手动作。

刚开始双方都处于ESTABLISHED 状态,假如是客户端先发起关闭请求。四次挥手的过程如下:

  • 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
    即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。
  • 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
    即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
  • 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
    即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
  • 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
    即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。

收到一个FIN只意味着在这一方向上没有数据流动。客户端执行主动关闭并进入TIME_WAIT是正常的,服务端通常执行被动关闭,不会进入TIME_WAIT状态。

在socket编程中,任何一方执行close()操作即可产生挥手操作。

为什么time_wait:

1.保证客户端发送的最后一个ACK报文段能够到达服务端。

2.防止“已失效的连接请求报文段”出现在本连接中。

为什么2MSL

客户端发送的ACK segment存活期1MSL,服务端重发FIN segment存活期1MSL,加一起2MSL。2MSL是一个临界值,利用尽量大的等待时间来确保TCP连接断开的可靠性。

32.python算法复杂度

简历部分

熟悉 Linux 基础知识,并熟练掌握 mkdir、tar、ls、ps、tail、head 等命令
熟练部署并维护 DNS、DHCP、NFS、FTP 等网络基础服务
熟悉 osi 七层与 TCP/IP 四层体系结构,熟悉 TCP 的三次握手与四次挥手过程及状态,熟悉 web 网页访问
过程
熟悉 shell 脚本的编写,并熟练掌握 grep、uniq、cut、diff 等命令
熟悉 python 基础知识,并用 python 实现过简单的冒泡排序、插入排序等
熟悉 python 中的 Django 框架,并用 Django 搭建过简单的图书管理系统、文件对比系统等
熟悉 ansible 与 saltstack 自动化运维工具 ,并自动化部署过 Apache、Nginx 等网络服务
熟悉 Zabbix 监控软件,实现自定义监控项,并结合云告警平台实现微信告警
熟悉主流的 web 服务器如 Apache、Nginx 的配置,例如虚拟主机设定、网页重定向、端口转发、黑白名
单等,熟悉 Nginx、Squid、Varnish 等代理软件的工作原理及配置,实现反向代理
熟悉主流的高可用架构(Nginx、Haproxy、LVS 负载均衡+keepalived)的部署,了解多层高可用架构部
熟悉 MySQL 基础操作与主从复制原理,熟悉 ProxySQL 数据库读写分离熟悉应用分布式 Redis 缓存数据
库(持久化方案、主从同步、高可用等),部署过基于 redis 缓存数据库的 lAMP 架构

美团运维SRE+运维开发一面面经汇总相关推荐

  1. 恒生与中国信通院联合发布《证券行业分布式核心系统SRE运维白皮书》

    在互联网金融模式的变革和冲击下,金融机构面临着海量客户管理.业务场景快速增长.金融服务和产品多样化等挑战. 为应对不断增加的技术创新需求,证券行业核心系统正逐步从传统IT集约型架构向支持敏捷开发.弹性 ...

  2. 什么是 SRE?一文详解 SRE 运维体系

    可观测性系统 在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面: 指标监控:即各种指标监控,比 ...

  3. SRE运维工程师笔记-Linux基础入门

    SRE运维工程师笔记-Linux基础入门 1. Linux基础 1.1 用户类型 1.2 终端terminal 1.2.1 终端类型 1.2.2 查看当前的终端设备 1.3 交互式接口 1.3.1 交 ...

  4. 美团点评数据库智能运维探索与实践

    本文根据赵应钢2018年5月11日在[第九届中国数据库技术大会]上的演讲内容整理而成. 讲师介绍: 赵应钢,曾就职于百度.新浪.去哪儿网等,10年数据库自动化运维开发.数据库性能优化.大规模数据库集群 ...

  5. GOOGLE SRE 运维模式解读

    最近要整理一些关于应急响应方面的解决方案材料,又重新翻阅了一遍<SRE:Google 运维解密>这本书,非常值得我们借鉴和思考.本文将包括如下内容: SRE核心是什么 SRE工程师具有什么 ...

  6. 程序员该面向运维,还是面向开发?

    作者 | 王晔倞 责编 | 郭   芮 去年,我曾写过一篇#架构设计与开发.运维之间关系#的文章,大体对在架构设计时如何权衡面向运维与面向开发进行过一通理论化梳理.也许是因为当时才刚刚开始写作,无论是 ...

  7. SRE运维工程师笔记-文件查找和压缩

    SRE运维工程师笔记-文件查找和压缩 1. 文件查找 1.1 locate 1.2 find 1.2.1 指定搜索目录层级 1.2.2 对每个目录先处理目录内的文件,再处理目录本身 1.2.3 根据文 ...

  8. 对于运维以及运维开发工程师的一些了解

    Linux运行是什么 什么是Linux运维 运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常 在他运转的过程中,对他进行维护,它集合了网络.系统.数据库.开发.安全.监控 ...

  9. 什么是运维?运维开发需要做哪些事情?

    什么是运维?下面和千锋广州小编一起来看看吧! 运维顾名思义就是运行维护,运维工程师就是要做好生产系统的稳定运行维护工作.是不是很好理解?但是光这一句稳定运行,需要运维工程师们具备各方面的能力,以至于一 ...

最新文章

  1. select返回记录的顺序
  2. python基础教程:数值与字符串类型
  3. scala学习笔记-数组转换(8)
  4. Linux下实现视频读取(二)---camera參数设定
  5. 第二章 物理层 1 物理层的基本概念 [计算机网络笔记]
  6. esc键没反应_有机人名反应——Brown 硼氢化反应(Brown Hydroboration)
  7. ios12上滑关闭程序动画_iOS 12.3正式版终于来了:这类用户升级需谨慎!
  8. 利用PMOS实现LED恒流驱动芯片的通断控制
  9. SQL中如何处理除数为0的情况?
  10. 【简简单单来个spider小案例吧】获取emoji表情包
  11. 通用的后台内部管理系统整站前端源码,功能齐全
  12. java的四种访问权限_Java四种访问权限
  13. Oracle——2.查询基本语法
  14. 【计算机毕业设计】50.课程设计管理系统
  15. 大众还是小众?谁在助力《复联3》连破票房纪录
  16. 补充“为什么Scrum不行” (转自陈勇)
  17. Unity集成多个arr包
  18. React Native BLE蓝牙通信
  19. 透明网关配置修改后服务器要重启吗,透明网关_michaeil_yue_新浪博客
  20. Stocks:炒股相关的术语简介、炒股心得、经验

热门文章

  1. U盘、移动硬盘;固态硬盘、机械硬盘
  2. 程序员去大公司面试,阿里P8面试官都说太详细了,社招面试心得
  3. 《互联网周刊》封面报道:P2P——新媒体革命
  4. MySQL怎么用x28改变颜色_MySQL SELECT练习题*28
  5. 首次!TinyML低功耗边缘侧机器学习技术论坛-亚洲分会来到中国!
  6. Ceph配置——5.Ceph-MON设置
  7. 如何零成本实现微信公众号自助查券返利机器人(三)
  8. GitHub上README.md编写教程(基本语法)
  9. android棉花糖,Android-6.0 棉花糖权限的那点事
  10. 小白月赛13 F:小A的最短路(LCA + dfs)