今年参加了公司的肇庆团建(2016.7.25-2016-7.28)4天3夜与以往不同是纯休闲团所以能写的也不是很多,整片文章围绕以下三个方面来介绍:
- 行程与景色
- 住宿与饮食
- 民俗文化与整体感受
由于历史的原因我们的机器目前还是单机或单集群对应一个业务模块的形式,优势应对爆发式增长扩容方便,成本结算简单。但是随着网民的饱和,相同业务模块下移动流量上涨,PC流量直线下降,很多业务出现了低负载情况,海量服务器运维中只要有1%的低负载(既机器利用率不饱和)规模也是惊人的,在实际运营中低负载+长尾模块机器数量可能达到了25%-30%之间,当然这里也包含业务对流量做了冗余与灾备,但是多个业务模块的灾备就会出现浪费资源的情况。我们从运营中发现了这问题的存在,而运维的核心价值也是通过技术优化,能在(成本、质量、效率与安全)四块做优化达到一个很好的收益,所以从2014年中我们开始做离线业务部署项目。项目的思路是通过高负载业务(离线计算)与低负载业务进行混合部署,提升低负载机器利用率同时逐步下线高负载业务的机器为部门节约机器成本。不过经过半年多的运营中我们也发现了很多问题,离线业务的负载均衡权重统一,但是混合部署后的机器负载不均有高有低,混部的结果经常会导致部分机器高负载影响业务,可以看出这里缺少监控负载的和业务合理的手段,经常导致高负载业务影响低负载业务,接口超时影响用户的情况,这是我们不希望看到的,所以总结经验教训,在2015年上半年我们重新打磨项目开发了离线业务混合部署(琥珀自动调度系统)项目,新项目与老项目相比通过docker技术将混部业务控制在容器中,消除争抢资源对业务影响,同时对容器流量进行根据负载调度,在此基础上实现了分时调度等功能。
负载调度演示(图1)
希望通过技术架构优化与升级来充分扎干硬件资源,为公司节约服务器成本。在开发过程中,相关业务也向我们提出了以下需求(已经实现功能见图2):
Web功能展示(图2)
Clip是一款自动化运维工具,适用于海量服务器的管理场景,可以降低系统误操作风险,提高工作效率,工具借鉴了DNS的思路,将传统的IP管理纬度替换为String管理纬度,管理方式的改变使海量运维时更加的便捷、可靠与高效。Clip是C/S架构,它将IP关系保存在Server端,Client端可以下载SDK,通过SDK遍历Server端的IP与模块对应关系,并在本地重新组织与编排,在此基础上工具还扩展了,如远程命令、文件拷贝、IP组织树遍历、历史命令查看、IP对应String关系正反解析与导入等功,以下是两张应用截图。
字符界面
图形界面
首先,传统服务器管理方式与String管理方式的相比,String管理方式的3点优势:
案例1
String由(idc-product-modules-group) 4段组成,了解cmdb的同学会发现它与cmdb的结构很像,4级模块定位一个服务,但是随着业务的发展,笔者觉得4级服务已经无法定位到一个服务,譬如,在一台服务器上混合部署不同的业务模块,这里4级只能定位到服务的IP级别,而无法精确定位到真正的服务,所以Clip在此基础上增加了一级(idc-product-modules-group-port),port端口,通过5段定位一个服务,相比CMDB这也是Clip优势,灵活变换来定位一组服务。
案例2
上海机房,A模块使用80端口提供服务,目前有100多个机器 ,B模块使用8080端口提供服务,目前有100多个机器,由于业务流量下降,为了节约资源目前想将两个模块200台机器资源合并,但功能不合并 。我们可将两个服务表示到不通的String中,如A模块(sh-weixin-friend-a-80), B模块(sh-weixin-friend-b-8080),通过String就很容易的将两个服务分别开,并部署在相同的服务器上提供服务了。以下是真实线上应用效果图
目前SDK共有8个子命令:
来介绍一下《Puppet权威指南》写作过程。做很多事情都需要一个流程,想必大家这里身有体会,譬如一个好的运维体系,基础化、模块化、平台化、自动化和数据挖掘等,少一环节都有可能会影响产品的快速发展。写书也一样,所以这里我差了一个环节,在宣传书的同时分享写书过程与过程中的收益,希望通过介绍整个过程,能让更多朋友为业界提供更多思路与创新技术。
本文目录结构
回忆了一下,首先从来没想要写书,只是偶然的机会而已。在2001年左右,上高中时很喜Photoshop和3Dmax,在那时我就已经会安装Windows 98操作系统,在班级中公认的是一个计算机高手。另外,我也经常买《电脑报》、《网友世界》和《黑客X档案》杂志,通过XCAN来扫描远程服务器开放端口,并根据扫描后端口确认是否有漏洞,这些对于那时的我会带来很多的成就感与自豪感,记忆中曾多次一条命令就可以让网吧远程的系统蓝屏,但有一次在网上遇到了牛人,他能随意改我的QQ密码,盗取我的163账号,查IP地址能定位到我的家门牌号,那一刻我觉得自己弱爆了,后来经常与他交流学习经验,那时我最不喜欢学习编程语言,而他说你要做为一个优秀的黑客就要去学习编程语言和网络协议,也是那时他让我第一次知道TCP/IP协议的三卷书,通过与他交流与指导,我开始自学C编程语言,学了才知道C语言并没有想象中那么难。
后来上了大学,操作系统中学了Linux,了解他历史的都应该知道玩Linux才是真正的黑客,所以那时去电脑市场买了一个Redhat6.0版本的系统盘来安装,安装后不知道怎么用,在网上查资料时知道了www.chinaunx.net (简称CU),那年是2006年,因为我的CU ID(研究僧)注册时间就是2006年。从CU学到了很多东西,譬如记忆深刻的《门户网站运维abc》、《Shell能力测试》和《Shell基础20篇》等都是很好的学习资料, 还有一篇文章来描述如何学习Linux,大概中心是要想学好Linux;
所以,在CU经常找别人问的问题,看是否能解决,如果解决不了再去网上找解决思路与过程,那时也是因为这原因,我写了很多文档,由于看了Shell编程13问的文章,忽然觉得我的文档总结可以写成一本书的形式与别的朋友进行分享,经过对文档总结提炼与打磨,最终在2008年写出了第一版本,不过现在已经找不到最初的版本了,在电脑里找到了2010年最后变更时间的书,无意间人生的第一本书就这样的写完了。
2008年在北京工作后,一天在QQ忽然有人问我,看你CU比较活跃是否可以可以来我们这里帮讲一些网络的课程,我抱着试试看的态度应邀去了华章的编辑社,去了才知道这是有名的机械工业出版社,我很喜欢买他们书。到了后是一位美女来接我,交谈中我说我写过书,美女说是否可以发我看看,几天后我提交了一份书的原本发给编辑社,美女帮我指定了出版策划(杨福川),第一次与福川见面时在中关村的麦当劳,感觉一见如故与技术人交谈很开心,他看过我给的文档后,给了我很多出书的建议,说对于刚出茅庐的我书的内容还是很好的,但对于出版来说要走的路还要很多,不过也鼓励我,希望有机会能合作出一本书。就这样几年过去了,应该是2012年系统架构师大会,再次遇见福川,福川问是否有兴趣来写书,我说OK没问题,正好由于内部部门产品变动,我负责的系统没有运营工具,我对Puppet进行研究并在线上应用。那时Puppet知道人并不是很多,所以一拍即合开始写人生的第二本书《Puppet权威指南》。
下定决心后写书并不复杂,以下为写书流程:
1)寻找一个靠谱出版社,因为他会有渠道帮你做后续推广;
2)确认写书的标题与大纲,其中大纲很重要,有一个目标才好量化时间与写作进度。写作大纲中一般还包含选题思路、读者对象、内容简介、市场分析、卖点分析、作者简介和营销建议这7项;
3)签约合同,合同是双方利益保障,对于出书者来说写完出版社不出版,可以通过合同来约束。当然,反过来没按照预定写出来,还是要陪违约金的(这也是签约后动力之一)。除此之外,还要确认付款方式,两种:
如何让history不记住你的执行记录,我们来看一下流程。
通过history 命令查看命令列表
执行uptime ,然后通过history 查看记录
通过history 可以查看到刚执行的uptime记录,下面让history 不记录执行的命令,如何操作呢。通过 ls命令前边加空格再次执行。
再次查看history记录,!!没有看到刚执行过的ls命令记录(欺骗成功)。
如果执行的命令前边加空格,默认history命令是不会记录历史的,如何才能让history命令记录加空格的命令呢? 我们可以修改系统的HISTONTROL环境变量来实现,详细看以下。
默认值
1 | HISTONTROL=ignoreboth |