ID:205260

云时代的生活

php兼运维工程师

  • 公司信息:
  • 新浪网
  • 工作经验:
  • 6年
  • 兼职日薪:
  • 600元/8小时
  • 兼职时间:
  • 周六
  • 周日
  • 可工作日远程
  • 可工作日驻场(离职原因)
  • 所在区域:
  • 杭州
  • 江干

技术能力

1、lnmp运行环境运维。
2、mysql数据库集群搭建与维护。
3、redis缓存集群建设。
4、zabbix服务器监控。
5、jenkins、gitlab(github)、ansible CI&CD自动化运维。
6、ELK日志分析系统搭建与维护。
7、Vmware vsphere运维。
8、http、socket5代理服务器搭建。
9、bind9 DNS服务器搭建。
10、阿里云服务产品运维,包括但不限于ECS、WAF、SLB、OSS、k8s容器服务。
11、网络布线工程。
12、无线局域网覆盖工程。
13、桌面技术支持,包括但不限于windows系统批量部署、windows系统故障解决。
14、大型会议/活动现场IT技术支持工作。
15、IDC服务器上架。

项目经验

1、自动化运维建设
为了方便集群运维,我用ansible-playbook脚本实现了lnmp全自动化部署与环境配置,服务器集群的lamp环境自动化部署与环境配置,服务器集群的服务管理,服务器集群nginx批量增加站点,自动化发布代码,服务器集群tcpdump抓包,服务器集群php-fpm配置批量修改(增加static模式下children进程数量等),服务器集群批量自动安装应用(yum),管理服务器集群logrotate配置。

2、数据库集群部署
根据dba的方案线上数据库节点为国内4个节点,2写2读,香港2个只读节点,美国2个只读节点。数据库读写分离使用mycat实现,每个大区域设置一个mycat节点,大区域的数据库读写操作均由mycat中间件代理转发。负载均衡策略设置为所有大区域的读请求随机的分发到国内wiriterHost 对应的readhost 执行,writerHost 不负担读压力。香港和美国的读请求随机分发到本地readhost执行,所有写入操作均发送到国内writerHost执行。

writeType设置为所有写操作都发送到第一个配置的writerHost执行,当第一个writerHost挂了自动切换到第二个writerHost执行写入操作。

数据库之间同步使用otter+canal进行全量同步,同步方向为由国内写同步到国内读,再有国内写向香港、美国方向单项同步。若有节点挂了则待节点重新上线后查看mysql binlog确定最后写入的Position以及写入内容,从其他健康写入节点binlog确定同步Position,开启用由健康写入节点向故障恢复节点的单项增量同步。

项目上线1年后用户行为日志表越来越大,即将突破1000万条数据,此时查询用户行为表往往需要10秒甚至更长时间才能得到结果。为了解决此问题,DBA建议使用mycat的分库分表功能,在此问题上我们采用的是按照日期分片的方式将数据表分配到两个只读节点。

3、公司内网DNS建设
因公司内网项目测试需要将一些特定的域名(可能未在注册局注册)解析到对应的服务器上。我使用bind9搭建了公司内网DNS服务器,并将内网域名zone设置forwarders {}禁止转发,只使用本地缓存。

在项目初期,公司内网测试环境还未实现负载均衡测试,我将不同的二级域名解析到对应的项目服务器ip。后来当项目测试环境使用nginx实现了7层负载均衡后(nginx负载均衡稍后详述),只需添加泛解析记录。

项目偶尔会遇到zabbix监控报错或者相关同事反馈项目、网站无法正常工作的情况,此时我可借助bind9添加线上环境域名解析,将域名解析到内网ip通过专线访问,其请测试同事配合测试在连上公司网络(有线网络或者WIFI)时网站或者app是否能够正常工作,从而排查是否是某一台项目服务器出现问题或者是公网负载均衡出现问题,如果是公网负载均衡的问题就需要集团负责F5负载均衡的同事配合处理。

有时同事或者客户会反映网站、APP无法正常访问,明明输入了正确的域名却显示的不是相关的网页。像这种情况多半是遇到了DNS劫持,或者是当地运营商DNS服务器出现问题。此时只需要保证内网dns的转发区ip是国内权威的DNS如阿里巴巴公共dns、百度公共dns、114公共dns,并将线上域名转发到上述权威dns解析,请测试同事连上公司内网进行相关测试即可说明问题不是由于线上系统出现了问题。

4、项目迁移阿里云
由于公司没有专门负责网络安全的人员,考虑到安全问题和全球多地节点部署问题,公司决定把项目整体迁移到阿里云。

迁移工作分3个阶段进行。我负责带领研发、测试团队共同完成上云工作。

阶段一,确认需求。此阶段第一步与研发同事沟通,确认上云后的代码运行环境、需要迁移的代码以及上云后代码的变动。第二步与多家云服务商联系确定方案与报价,在国内众多云服务商中我选择阿里云、腾讯云、百度云做对比,跟云服务商销售以及售前工程师沟通确认需求,以及他们能够提供的产品。确认后由云服务商开具报价单,最终比价完成后,领导确认采用阿里云的方案后此阶段完成。

阶段二,迁移上云。此阶段跟研发人员开会讲解已确认的上云方案、讨论迁移方案,确认上云后代码的改动,并督促开发完成代码的修改。跟开发沟通好之后与测试团队开会讲解上云方案,讨论上云后的测试要点,确定上云后故障相关责任人。

阶段三,上云后的测试,此步骤由运维、开发、测试团队共同完成。

阶段四,上云后续事宜。此阶段考虑远程登陆服务器安全问题,数据库运维安全,云服务监控,日志分析,以及多人登陆阿里云账号安全问题。

5、项目自动化部署
由于项目上线频繁,手动部署上线耽误运维、开发的时间也影响上线速度。

信用行为

  • 接单
    0
  • 评价
    0
  • 收藏
    1
微信扫码,建群沟通

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服