Linux培训
达内IT学院

400-111-8989

一个合格的运维工程师都应该知道哪些技巧?


今天小编要跟大家分享的文章是关于一个合格的运维工程师都应该知道哪些技巧?如今的互联网是一个巨大的变幻莫测的世界,每个站点、每个应用程序、每项服务都急切要求增加流量、得到扩展,都需要我们重点关注。这些都是关键任务系统,所以,要想在当今的市场竞争中获胜,必须保证这些系统能够全天候24小时处于开启状态并且拥有很快的速度。所以,在系统运维方面有五个非常重要的要素:可靠性、性能、可扩展性、安全性以及成本节约。许多公司只关注某一个或者最多两个要素,而未能认识到全部五个要素的重要性。尤其是当公司一直把成本节约当成最重要的要素的话,这种做法会损害公司的长远发展。要想在21世纪取得24x7运维和系统成功的话,关键是要能够理解并合理地关注这五大要素。

一个合格的运维工程师都应该知道哪些技巧?

接下来我们就来介绍这五大要素,此外,您还可获知如何改进每个要素及最佳实践做法:

一、可靠性

网站必须一直处于开启状态、拥有良好的访问速度和可靠性。就这么简单。你的客户和用户都是比较忙的,可能会随时访问你的系统,如果你的用户位于不同的地理区域,更是可能在晚上或深夜访问你的网站。所以,取得经济效益如销售产品、塑造高品质的品牌和获得客户信任,不惜一切代价使系统持续处于稳定运行状态是头等大事。

您需要考虑:

完全冗余的硬件和服务器 - 发生故障,硬件故障以及软件故障。真正的高可靠性系统,是一个 全冗余系统,从下面的IDC, 到双重IDC供给,再到防火墙、交换机、物理服务器、虚拟机、负载均衡器、网络服务器、数据库、缓存以及其它一切东西。为保证系统处于持续运行状态,您就得采用双冗余架构。 全天候深度监控 - 即使您已经采用全冗余系统架构,您也得积极地避免某些事件发生,或者至少您必须能够快速侦测并处理此类事件。在事情未发生之前,就对成百上千个数据点进行深度监控,能够帮助您及时发现问题并快速报告严重问题,以便问题能够尽快得到解决,从而维护系统的可靠性。 可靠性设计-对于现今系统而言,必须在设计阶段就考虑到可靠性,从架构到硬件和配置再到运维和流程,都必须把系统的正常运行时间设计到最长、可靠性设计到最佳。虽然您可以选择多种简单的设计解决方案,但是这些方案对于维护系统整体可靠性的帮助非常小,所以,您应当采用复杂的工具如PHP过载探测器、日志分析器、HAProxy以及Keepalived。

二、性能

现代网站必须能够快速访问,因为即使增加一秒种的下载时间,也会丢失用户。即使网站访问速度仅有几秒种的差距,也可能成为业务成败的天壤之别。所以,必须精妙地设计系统,以便在各个层级上取得最佳的性能,从硬件和网络一直到服务、系统、应用程序、页面结构和CDN。

您需要考虑:

精妙的设计 - 系统速度快取决于性能工程,或者采用最佳的设计、工具和流程来构建最佳性能的系统。良好的代码、代码审查、瓶颈分析、现代化的技术、使用有限的功能特点以及常规应用程序性能工程等,在构建快速系统方面都发挥着重大作用。

应用设计 - 必须在各方面都取得平衡,尤其是在满足现代特点和平台的灵活性以及系统稳定运行之间必须取得平衡。如今许多工具和框架都非常灵活,可以灵活地进行更改或再利用,但是当系统扩展后,性能不会很好。采用更多的硬件可以改善这种状况,但是改善的程度也是有限的,所以,寻找合适的方法,以便终端用户能够快速地访问系统就变得至关重要。性能监控 -性能监控是保持良好系统性能的一项关键措施。不仅要在内部系统的服务器和运维层级上实施监控,而且也要从网络和用户的角度,对系统外部进行监控。运维监控包括:常规的CPU、RAM、以及磁盘输入/输出监控,还包括对许多与网络服务器、应用程序和代码、数据库等相关的特定服务问题的监控,重点是对能够提高和/或降低大型系统性能的关键变量进行监控。 系统分析 - 最好的系统会采用像NewRelic的性能工具来对代码进行深度监控和分析,以便发现瓶颈所在以及可以改善的地方。此外,最佳的监控工具能够对系统进行模块化的、整体性的监控和分析,从基本的代码分析到关键事件的外部调用如数据库以及其它服务,比如搜索、社交媒体以及外部依赖关系,所有这些都会对系统整体性能和用户体验产生重大影响。

三、可扩展性

性能是很重要的,但是真正成功的站点必需在成名后能够拥有良好的整体性能。许多站点或系统因为不能够满足不断增长的需求和负荷,不能够符合成功发展的需要而夭折。所以,系统除了必需具备常规性能特点之外,还必须能够在现有的和将来的硬件/云上发展壮大,必须能够使用现代技 术和技能来扩展系统架构。

您需要考虑:

支持横向和纵向扩展的系统架构 - 扩展工程不同于性能工程,因为对于小型简单系统而言,提高系统速度是轻而易举的事情,但是要对子系统或平行运维系统/平台进行扩展却并不容易。对于传统上难以实现系统扩展的区域如数据库性能,实现系统扩展更是一个问题,因为对于数据库性能而言,读扩展和写扩展必须采用不同的动态的系统架构解决方案。其它扩展问题包括:会话管理、数据缓存、静态资产共享。

开展深度的系统性能监控以便发现可以改进的区域 - 基本监控是有益于系统运维的,但是还必需采用更深层次的系统性能监控,以便对系统扩展事宜给与指导。这包括从整体上监控影响操作系统和硬件性能的一切因素,以及广泛的数据库性能监控。

加载测试 - 每个系统都不一样,在高峰加载时表现出来的性能也各不相同。您会在意想不到的地方发现瓶颈所在,如果在测试阶段就能够发现这些瓶颈的话,就能够轻易地进行纠正,避免影响真实用户。虽然,实现合理的加载测试并不是一件容易的事情,但还是要在完美测试以及测试所需要的时间或资源方面取得平衡(尤其是对于生产系统而言)。容量规划流程 -根据加载测试、监控以及扩展性分析,对整体系统能力进行规划,这样有助于界定系统扩展规模、明确瓶颈所在;并确定高峰流量、促销事件以及常规增长时的动态可用空间。

容量规划还可以构建增长模型,以便把业务目标如用户流量连接到流量模型,这样便可以调试系统负荷以及响应情况,以便在系统扩展后,能够使系统负荷和响应情况符合实际需求。

四、安全性

数据是有价值的,也许,对于许多网站和公司而言是最有价值的,所以,每个人的首要任务就是保护数据。虽然,每个人都有义务保证安全性,但是,必须将安全设计到系统中才能实现真正的安全。此外,必须在每个层级上都实现安全保护,因为这就像链条一样,链条的强度取决于最薄弱的环节,所以,系统安全的薄弱环节很可能存在于技术或代码组中。黑客们是探索系统薄弱环节并秘密潜入系统的专家,这就要求系统安全专家能够持续保护系统。

您需要考虑:

安全架构和安全代码 - 安全系统源于安全的思维,只有把安全牢记在心,才能构建出设计良好的系统并编写出安全代码。这些包括采用最佳实践、正确地把事情做好并且一直以受限的权限进行工作,并且假设一切都有可能受到安全威胁。

最佳实践包括开发 - 正确地进行系统开发对于构建安全系统而言显得至关重要,系统开发必须遵循严格的流程和架构,比如采用预备好的SQL以防SQL注入攻击。采用先进的工具如静态代码分析仪,对于保持高质量的代码是非常重要的,采用这些工具之后,甚至无需检测代码。代码审核工具以及第3方工具在系统开发方面也具有极大的作用。

在各个层次上隔离用户 - 用户隔离对于设置不同的用户权限以及对于用户跟踪/审计而言,都具有非常重要的意义,对于查证哪个系统/哪个人在哪里做了什么事也具有非常重要的作用。每个人/程序应当有各自独立的用户名,不得共享用户名,从用户列表和程序列表中应当能够很明确地查看到系统开机时所发生的一切事项。这种做法也能够帮助程序开发员和运维团队成员强行地把安全观牢记在心。 频繁的秘密潜入和公开攻击测试 - 只有当系统运维在公共网络并且能够承受专业的黑客攻击人 员的攻击的时候,该系统才称得上是一个好系统。因此,为了尽可能地确保系统安全,最好采用如下方法进行系统安全测试:黑客秘密潜入测试、扫描测试、审计测试以及频繁的安全审查。用于实时保护的IPS/安全模块 - 不管采用何等精妙的系统设计和测试,也不可能消除一切薄弱环节,部分薄弱环节可能会因为第三方工具、应用程序服务器和各种服务的缺陷仍旧留在系统中。

良好的入侵检测系统通常是系统安全的最后一道防线,该系统可以发现非法访问、非法扫描和非法入侵。虽然这些系统在设置、管理和监控方面都有很大的难度,但是对于关键系统而言,不失为最佳的一线防御系统。

在各个层次上,使用防火墙和工具进行深度防御 - 只有在各方面、各层次上都是安全的系统才是真正的安全系统。所谓“深度防御”,是指虽然系统的某一层或某几层被攻破,但是仍旧能够合理地保护关键资产如数据库。因此,首先要在各个层次上部署防火墙,从面向互联网的公共网络到内部系统网络再到本机iptables。对每个操作系统以及各项服务都采用良好的设计和其它安全防范原 则,有利于最大限度地维持系统安全性。

五、Cost Savings

如果可以使用无限的资源和金钱,那么任何人都可以构建最完美的系统。但事实上,许多公司是无法这样运维的,并且管控总成本已经成为成功的关键(尤其是对于小型公司而言)。所以,必须合理安排各项事宜,采用非常经济的架构以及先进的但不必是最前沿的科技、系统和实践,来实现所有这些关键要素,尽可能以最低的成本,采用上述各种方案,达成所有目标。

您需要考虑:

在各个层次上优化配置 - 在系统构建中,若想省钱是轻而易举的事情,但是若是以关键要素为代价,如可靠性、性能、可扩展性甚至是安全性,那就不值得了。不合理地节约成本可能会迫使你以后花费更高的成本。总的来说,最好的做法是综合考虑最佳实践策略和成本管理以及其它要素,这在几者之间取得平衡。

使用代码分析和调试工具以便消除瓶颈- 节约成本的最好的做法是:提升系统整体效率,从而使用更少的硬件和资源。所以,可以使用一些与性能和扩展相关的工具如New Relic以及深度监控工具,以便在系统扩展时可以减少硬件需求并降低成本。 利用公共云提高灵活性 - 全球的公共云在短短的几年内取得重大进展,这些云不仅非常灵活,可以使您极大地扩展系统,而且还带有许多额外的有用功能。虽然,使用这些云来处理工作负荷并不便宜,但是,这些云可以使您在灵活性、功能性以及总体拥有成本(TCO)方面取得平衡。 利用私有云节约更多的成本 - 对于大型系统而言,他们节约成本的策略通常是选择使用私有云,虽然私有云没有公共云灵活,但是却比公共云要便宜很多。对于大型应用程序而言,由于大型RAM和CPU的特点限制,若使用公共云的话,会需要花费极其高的成本,所以,使用私有云就变得十分重要。私有云有足够的容量大小,可以支持多种架构和解决方案,也包括对使用同种硬件的开发、测试和生产系统提供支持。

如今,互联网系统庞大复杂、功能强大,正如我们所知道的,已经武装了整个世界。要构建好并管理好这些系统,就必须采用最佳的组合策略,综合使用各种工程、工具、流程和观点,这样才能够构建出现代化的系统,并且在上述全部五个要素中取得平衡。要想在21世纪取得运维成功和系统成功的话,关键是要能够理解并合理地关注这五大要素。

以上就是小编今天为大家分享的关于一个合格的运维工程师都应该知道哪些技巧?的文章,希望本篇文章能够对正在从事运维工作的小伙伴们有所帮助。想要了解更多运维相关知识记得关注达内Linux培训官网。最后祝愿小伙伴们工作顺利,成为一名优秀的运维人员。

作者:shaonbean,来源:CSDN

原文:https://blog.csdn.net/wh211212/article/details/53199058

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:一名合格的Linux运维工程师需要具备哪些技能?
下一篇:数学和英语不好的人能学编程吗?

高级运维工程师证书有哪些?

云计算中学习了哪些内容?

云计算的服务模式有哪些?

CCNA培训费用一般多少钱?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省