1、如何发布和回滚,用jenkins又是怎么实现?
发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。
2、Tomcat*模式?
Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种*模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。
进入Tomcat的请求可以根据Tomcat的*模式分为如下两类:
Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache,IIS,Nginx等;
3、监控用什么实现的?
现在公司的业务都跑在阿里云上,我们首选的监控就是用阿里云监控,阿里云监控自带了ECS、RDS等服务的监控模板,可结合自定义报警规则来触发监控项。上家公司的业务是托管在IDC,用的是zabbix监控方案,zabbix图形界面丰富,也自带很多监控模板,特别是多个分区、多个网卡等自动发现并进行监控做得非常不错,不过需要在每台客户机(被监控端)安装zabbix agent。
4、现在给你三百台服务器,你怎么对他们进行管理?
(1)设定跳板机,使用统一账号登录,便于安全与登录的考量。
(2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。
(3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录。
5、什么叫网站灰度发布?
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式ABtest就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来灰度发布可以*整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以*其影响度。
6、简述DNS进行域名解析的过程?
用户要访问www.baidu.com,会先找本机的host文件,再找本地设置的DNS服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.com.cn,就去找二级域名服务器,二级域服务器只能提供三级域名服务器.baidu.com.cn,就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份之后,再发给客户端。
7、如何重置mysql root密码?
在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法:
(1)在SHELL环境下,使用mysqladmin命令设置:
mysqladmin–u root–p password“新密码”回车后要求输入旧密码
(2)在mysql>环境中,使用update命令,直接更新mysql库user表的数据:
Update mysql.user setpassword=password(‘新密码’)where user=’root’;
flush privileges;
(3)在mysql>环境中,使用grant命令,修改root用户的授权权限。
grant all on.toroot ’localhost’identified by‘新密码’;
如忘记了mysql数据库的ROOT用户的密码:
(1)关闭当前运行的mysqld服务程序:service mysqld stop(要先将mysqld添加为系统服务)
(2)使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld服务
/usr/local/mysql/bin/mysqld_safe--skip-grant-table&
(3)使用空密码的root用户登录数据库,重新设置ROOT用户的密码
#mysql-u root
Mysql>Updatemysql.user set password=password(‘新密码’)where user=’root’;
Mysql>flushprivileges;
8、cpu单核和多核有什么区别?
双核CPU就是能处理多份任务,顺序排成队列来处理。单核CPU一次处理一份任务,轮流处理每个程序任务。双核的优势不是频率,而是对付同时处理多件事情。单核同时只能干一件事,比如你同时在后台BT下载,前台一边看电影一边拷贝文件一边QQ。
9、常用哪些监控系统?有什么区别?
zabbix、nagios。
(1)从web功能及画图来讲:
Nagios简单直观,报警与数据都在同一页面,红色即为问题项。Nagios web端不要做任何配置。Nagios需要额外安装插件,且插件画图不够美观。
Zabbix监控数据与报警是分开的,查看问题项需要看触发器,查看数据在最新数据查看。而且zabbix有很多其它配置项,zabbix携带画图功能,且能手动把多个监控项集在一个图中展示。
(2)从监控服务来讲:
Nagios自带的监控项很少。对一些变动的如多个分区、多个网卡进行监控时需要手动配置。
Zabbix自带了很多监控内容,感觉zabbix一开始就自动做了很多事,特别是对多个分区、多个网卡等自动发现并进行监控时,效率会提高。
(3)从批量配置和报警来讲:
Nagios对于批量监控主机,需要用脚本在server端新增host,并拷贝service文件。Nagios用脚本来修改所有主机的services文件,加入新增服务。
Zabbix在server端配置自动注册规则,配置好规则后,后续新增client端不需要对server端进行操作。Zabbix只需手动在模板中新增一监控项即可。
(4)总体来讲:
Nagios要花很多时间写插件,Zabbix要花很多时间探索功能。
Nagios更易上手,Nagios两天弄会,Zabbix两周弄会。
Zabbix画图功能比Nagios更强大。
Zabbix对于批量监控与服务更改,操作更简洁;Nagios如果写好自动化脚本后,也很简单,问题在于写自动化脚本很费神。
10、给你一套环境,你会如何设计高可用、高并发的架构?
如果这套环境是部署在云端(比如阿里云),就不用去考虑硬件设计的问题。可直接上阿里云的SLB+ECS+RDS这套标准的高可用、高并发的架构。对外服务直接上SLB负载均衡技术,由阿里的SLB分发到后端的ECS主机;ECS主机部署多台,应用拆分在不同的ECS主机上,尽量细分服务。数据库用RDS高可用版本(一主一备的经典高可用架构)、或者用RDS金融版(一主两备的三节点架构)。在结合阿里其它的服务就完全OK,业务量上来了,主机不够用了,直横向扩容ECS主机搞定。
如果这套环境托管在IDC,那么就要从硬件、软件(应用服务)双面去考虑了。硬件要达到高可用、高并发公司必须买多套网络硬件设备(比如负载设备F5、防火墙、核心层交换、接入层交换)都必须要冗余,尤其是在网络设计上,设备之间都必须有双线连接。设备如果都是跑的单机,其中一个设备挂了,整个网络都瘫痪了,就谈不上高可用、高并发了。其次在是考虑应用服务了,对外服务我会采用成熟的开源方案LVS+Keepalived或者Nginx+Keepalived,缓存层可以考虑redis集群及Mongodb集群,中间件等其它服务可以用kafka、zookeeper,图片存储可以用fastDFS或MFS,如果数据量大、又非常多,那么可采用hadoop这一套方案。后端数据库可采用“主从+MHA”。这样一套环境下来是绝对满足高可用、高并发的架构。
究其根本,其实面试考察的除了专业技能,还有价值观,稳定性,和性价比三个方面。如果价值观和企业契合,那么管理起来就会比较轻松;如果稳定性高,那么就少了人员流失;而性价比是专业性和未来发展潜力的必要考虑项,如果性价比高,那么公司未来获益也就大。所以当你越契合公司的需求,那么面试*越高。