始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

系统运维秘诀:变化,监控,扩展(技术篇)(3)

发布时间:  2012/5/28 10:19:31

多一些横向扩展,少一些纵向扩展

◆横向扩展是我们应该走的路。应该使用常规的(即:可用的,价格适中的,标准的。而不是特便宜的!)硬件,然后和大家一起努力,确保各方面都可以进行横向扩展。

◆横向扩展从两台机子开始。另外,进行冗余的时候也会涉及到横向扩展。

◆尽可能的横向扩展,但是不要傻乎乎的扩展。在MySQL复制中有一个经典的白痴扩展的例子:使用一个master对很多个slave。所有的 slave必须完成全部的写入,而写入次数是与读取次数成比例增加的(大多数应用都是这样)。也就是说,你添加的slave越多,通过添加slave扩展的资源就越少。

◆留意一下替代的解决方案。按照用户或区域对多个数据库进行划分,同时避免增加过多的slave。实际上,有许多种方法可以达到这个目的。

◆一切都可能扩展!路由器,交换机,负载均衡器,Web服务器,数据库,等等。

◆记得纵向扩展吗?以前那些邪恶的大型机们有很多核,很多IO板,配备了非常昂贵的存储设备。而现在,多核这个概念开始蔓延了。

◆RAM是廉价的。

◆将以上两点合并起来,这意味着你只需要再次合并服务就可以了。这儿有一个负载均衡器,那儿有一个Web服务器……如果一个应用程序可以使用许多个 CPU(比如apache),那么这是完美的。如果它不能(比如memcached),那么你最终可能会由于离散的服务太多而浪费掉大量的可用资源。

◆作业系统(job systems)也许可以填补这个鸿沟。哪里的核心的越多,哪里的工作线程就越多。

缓存

◆对于开发者和系统运维人员来说,缓存可是个好东西,值得大力发展!的确,它是不可思议的。它是与众不同的。有时你可能必须要为它做一个权衡。有效地使用缓存可以让系统的整体性能提升10倍之多。对于你当前的系统来说,这是一个巨大的“放大镜”,并且,它的成本在总成本中只占很小的一部分。

◆Memcached。它可以为服务提供缓存,让数据库结构非标准化(这可以提升性能!),对squid缓存进行优化,甚至可以提高操作系统缓存的利用率。

◆测试它,玩弄它,并打破它。使用缓存会带来新的问题。要做好准备。

让工作异步化

◆可以使用Starling, Gearman, The Schwartz等工具。作业系统可以给应用程序提供更多的灵活性。工作线程可以一次性地产生出来,也可以是持久的(载入缓存数据,准备数据等)。它们可以在不同的硬件上,它们的地理位置也可以不同。它们既可以是同步的,也可以是异步的。

◆维护这些东西是一个运维人员的问题。使用它们既是开发者的问题也是运维人员的问题。

◆当用户点击“给我所有的朋友发送邮件”的时候,把这个工作列入计划,然后马上说:“OK,已经完成了!你的朋友马上会收到你的邮件!”——通过异步化的方式来处理这个工作。

◆作业系统是衔接各个服务的一个场所。博客投递-〉IM通知,定期计费-〉收费服务,网关认证等。

◆容易扩展。在请求进入的地方会有一些瓶颈,所有的工作线程必须要做的事情就是“拉”。这个是相对于HTTP中大量推/拉的状态而言的。

安全和巡查

◆一定要安装安全更新!这十分重要!有很多疯狂的网络专家致力于在尽可能短的时间内给你提供这些更新。不要因为你害怕改变而让他们白白地付出劳动。

◆安全性也是分层的。明白你能确保什么,以及不能做什么。MySQL有密码访问机制,并不意味着可以允许直接通过互联网来访问它。

◆在SSH上禁用密码。使用经过加密的passphrase密钥来进行身份验证。远程的用户无法猜出你的私有密钥。他们必须从你这里才能得到它。把它保管好。做好这点,就没必要在防火墙中关闭你的SSH端口了。

◆搞清楚你的应用程序是如何工作的,它具体需要做些什么,并相应的进行调整。比如说,如果你的应用当中,只有付费页面和Twitter投递服务是需要连接外部互联网的,那么就把它们做成工作线程。将这部分工作线程放在特定的设备中,让它们只能访问特定的主机。这可以神不知鬼不觉地把你的网络的其余部分保护起来。

◆对于PHP站点来说,以上这些建议尤其重要,但是在其他地方,它们也可以发挥作用。如果有人要入侵,那么多半是通过你的应用。即使有人从前门入侵了系统,也要让他们花费很大精力才能进入保险箱。你需要确保的是他们无法将数据带走或上传至别的什么服务器上。

◆除了这些具体的建议之外,你还应该多读一些资料。自己判断,自己动手测试。如果你不知道一个安全模型是如何工作的,一时半会儿可能问题不大,但是这就会导致你不知道它的限制在哪里,甚至于无法判断它是否在工作。

◆基于测试,理论,攻击树的安全机制是不会在背后给你一刀的。当人们构想出模糊的安全模型的时候我也很喜欢它,但是像我这样的普通人都可以把它弄的支离破碎。

◆尽可能地进行巡查!登录,退出,以及使用的命令都要进行审查。对面向外部服务的所有访问,包括所有在请求中指定的参数,都要进行审查。对于你的应用程序来说,找出极值,然后彻底禁止输入超出范围的值。做你能做的所有事情,让数据以可追溯的方式工作。

◆如果你怀疑某些东西可能会被破坏,应该采取适当的预防措施,最好懂得一点计算机取证方面的知识(或者聘请一个专门从事这项业务的公司)。通过移除可疑的网络访问来做出响应,通过一系列的控制台或直接通过终端来检查整个系统。在已经被破坏的机器上,避免使用任何的服务,配置文件,或数据。很多人都是 “清除了一个木马”,但是不知道它是怎么进来的——这样并不算真正地清除了这个木马。

◆如果你有安全团队,取证专家,或其他人手,那么你尽量不要接触那台机器,把它隔离起来。这意味着不要重新启动它来“清除一些奇怪的进程”。他们需要这些证据。如果你必须这么做,就去做吧,但是要记得把系统彻底地清理干净,打上所有的安全更新,尽量搞清楚他们是否已经破坏了重要的数据。做你能做的所有事情。

◆安全实际上是一种权衡。如果你做错了,开发者和用户们都会“揭竿而起”:他们会找到一些方法来绕过安全机制。如果他们可以绕过它,那说明你的工作并没有做好。如果他们不能绕过它,那么他们也许会放弃,然后离开。

◆紧抓访问控制。这意味着运维人员必须要为已经锁上门的“房间”提供一些窗户。不让开发人员进入生产环境,意味着他们必须抹黑解决难题。你的确不能让开发者们直接对服务进行修改,但是你可以提供日志工具和调试工具等等。对于各种产品来说,这些都是成功的秘诀。


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线