总结两句话:
1、保障事业长期稳定运行(如网站服务器、游戏服务器等)。
2、确保数据安全(如用户名密码、游戏数据、博客文章、交易数据等)。
从这两句话中引导承运人必须学到什么?
一、保障业务长期稳定运行
因为一点小错误,用户会投诉。
1、业务在什么上面运行?
网站一般是apache、nginx、tomcat等。 但是,要真正通过进程,还需要Mysql数据库来存储用户密码等。 由于许多程序需要分析php,因此部署LNMP、LAMP (即nginx、apache、mysql、php )环境是必须具备的技能。
2、业务有问题的话,怎么马上知道?
这需要监控软件通过邮件或邮件通知。 常用的有zabbix、nagios等。 向警察发送邮件也需要邮件程序、sendmail或postfix。
3、家里接到报警,服务器是内网IP,怎么也要解决问题吗?
在公司构建openvpn、pptp或openswan,在家通过VPN拨入内部网,24小时解决问题…啊,半夜起来解决问题没有工资。
二、保障数据安全
有一点失误,领导要去给你喝茶。
1、是否需要手动更改数据库内容?
因此,需要基本的Mysql数据库添加/删除/更改命令。
2、万一数据库服务器硬件坏了怎么办?
因为需要准备库,所以需要复制Mysql主从机。
3、如何恢复数据库?
因此,必须定期在crond上完全装备Mysql数据,进行恢复使用。 如果要恢复到指定的时间点,还将学习增量Mysql备份和恢复。
4、用户上传的图片或文件服务器坏了怎么办?
定时备份可能还不够。 实时备份必须使用rsync和inotify。 无论何时主服务器损坏,都确保所有图像都已备份。
5、如何注意黑客,提高服务器安全性?
如果ssh不容易让外人访问,请将其设置为仅允许公司IP或板机的IP访问。 它们由iptables控制。
三.较大性能
1、越来越多的用户进入我们的网站,一台web服务器受不了了怎么办?
这需要由多个web服务器承担,那么在多个服务器之间如何平衡负载呢? 为此,必须使用nginx反向代理、LVS关键型或ha代理健康型beat。
2、用户注册发表的文章和评论太多,一台数据库吃不消吗?
数据库的压力分为读取和写入,如果无法承受写入,则需要进行表格划分并库到多个服务器。 如果读取压力不足,请使用mysql-proxy读写分离,
分担阅读的压力。 如果以更简单方便的方式将数据库内容放在内存中,则使用memcache或redis。
3、n如果多用户上传下载文件,导致磁盘受不了怎么办?
使多个磁盘成为raid,或者使用MFS、GlusterFS等分布式存储文件系统提高磁盘的读写能力。
4、网站上有很多照片,总是网站加载太慢,怎么办?
此时,可以使用squid或varnish将站点上的图像缓存到站点前端,以尽量提高访问速度。 当然,最好购买商业的CDN来加速。
5、运营商是个大难题,他们之间的带宽似乎很小,联通IP怎么会这么慢呢?
在这种情况下,可以使用bind自制DNS服务器,将网站的DNS记录指向自制的DNS服务器,设定解决规则,稍后联通IP解决为联通网站。
通信IP被解析到通信网站后,体验会变好。
四.自动化
终极目标:开机器,闲杀人。
1、公司新购买100台服务器,公司竟然对一个移动光驱,这个系统什么时候能买到?
使用kickstart或cobbler通过网络远程自动安装系统吧。
2、每次塞满机器都要优化很多内容。 安装什么文件描述符、端口和软件? 手动操作不累吗?
很快掌握shell会释放非常多的工作量。
3、安装系统后,登录必须输入密码。 这么多吗?
使用expect吧。 自动读取提示并输入密码,然后执行命令。
4、如何将新代码批量发布到在线服务器上?
用saltstack、puppet或ansible吧。 绝对会清爽的。
五.其他
1、整套测试环境需要五台服务器,公司贫穷的只有一台空闲服务器吗?
记住xen、kvm和docker吧。 虚拟地推出多台服务器,就可以解决资源问题。 特别是docker,强烈建议今后的研究开发人员引入新环境,以分钟为单位进行解决。
2、研发人员的代码控制、权限控制,总是要由承运人管理吗?
svn或git,这是必须的。
结尾:
我们现在在回顾考虑。 运输工程师平时都做什么呢?
1、随时解决报警故障。
2、业务流程更新。
3、编写若干脚本,监测或完成其他可自动化功能。
4、引进运维结构完善、更方便可靠或性能较好的开源工具,制定运维流程规范。
5、调试交换机、安装系统、引入新环境等杂事。