以及为什么Docker是革命性的,大客户专线的高效

2019-09-11 16:04栏目:公司领导
TAG:

自动化运维经验谈,以及为什么Docker是革命性的

随着开发效率的提高,运维的自动化已经成为很多技术团队越来越重视的问题,否则部署的速度容易成为业务创新的瓶颈。在这个背景下,定位于给互联网公司做运维服务的云络科技公司接触了越来越多的客户,对国内互联网公司的运维水平有相当多的了解。他们看到的现状是怎样的?技术团队要实现运维自动化应该从哪里开始?像Docker这样的技术如何影响开发者与运维工程师?在本次采访中,云络科技CEO Steve Mushero谈论了这些话题。

图片 1

嘉宾简介

Steve Mushero从硅谷来到中国,在全球范围内的广泛行业及从业企业中拥有超过25年的技术管理经验,其中包括IT运营、软件开发、物流、制造以及机械等领域。他曾在土豆网(中国)、Intermind、New Vine Logistics以及Advanced Management Systems等企业担任过CTO,拥有首席架构师工作经验,并以顾问身份为世界卫生组织、格莱珉银行基金会以及多家全球财富五百强企业的全球化项目提供指导。

自动化从构建和测试开始

运维自动化的关键在于标准化。当你有一个成熟的团队,有标准化的流程,那么运维自动化就水到渠成了。而如果你什么都没有,那就需要先设定优先级。

我们的目标当然是将所有的流程标准化,而哪些要放在前面做?做起来比较简单的,和比较重要的。我认为构建和测试的流程是最基本的第一步。这对于交付产品的公司来说容易一些,对互联网公司来说更复杂一些,而测试比构建也要复杂一些,但这是基础。构建和测试的流程标准化做好了,就可以准备做自动化的工作了。

不过我见过的很多公司连Git都还没有,仍然在用最原始的FTP push来更新代码。我的观点是,如果你还没有用上Git这样的工具,那根本就不用考虑什么自动化的问题,因为条件完全不成熟。

所以,我们假设你的团队能够很好的使用Git,然后你建立了构建和测试的标准化流程,然后你就可以用工具来实现自动化。这可能是Jenkins这样的工具,不过Jenkins比较复杂,如果你只是一个很简单的网站,那么自己写一些脚本来实现自动化是更合适的。

到此为止,我们说的还不是自动化运维,而是自动化工具链。工具链就是开发工具链,从IDE,到代码提交,代码审查,构建,到测试,仍然属于开发的范畴。在这之后才是运维的范畴,就是往生产环节部署。

部署

运维自动化最关键的部分是运行环境的定义。我们的目标是让各个阶段的代码完全一样,即开发者在自己笔记本上写的代码,到集成阶段的代码,到线上环境的代码,都是一致的。为什么Docker这么火,就是因为它帮助开发者很简单的就让自己的开发环境跟生产环境一致。环境的标准化,意味着目录、路径、配置文件、储存用户名密码的方式、访问权限、域名等种种细节的一致和差异处理的标准化。这涉及到很多方面,也是自动化运维最困难的一部分。

这里要注意的是,像Puppet这样的工具并不是魔法。你需要自己为你的环境定义一套描述的方式,工具是无法为你完成这项工作的。无论是Puppet还是Jenkins,都是根据你的定义来管理你的环境。你决定用户名和密码如何储存,你决定配置文件的路径。开发者很喜欢把各种配置和url之类的参数硬编码到代码里,这很快;他们还喜欢东搞西搞的用一些乱七八糟的手段让软件通过测试,但是如果要构建一个真正的系统,这些小把戏根本没用。你必须强迫他们采用标准的方式写代码,比如强制他们把用户名和密码写在固定的地方,然后你才能跟Puppet说,配置文件在这里,测试环境用这个配置,生产环节用那个配置。到这里就很简单了。

线上环境问题排查

对于线上环境的问题发现与解决,大部分基础的问题都能用工具来自动发现并提醒,比如磁盘空间不够,比如MySQL崩溃,比如访问网站的时候出现错误页面等等,有很多现成的工具可以抓到它们错误的信息。

比较困难的是排查网站为什么变慢这样的性能问题。我们经常看到客户的开发团队提交新代码后引入问题。在测试做得不好的时候这很常见,事实上很多东西是很难测试的,尤其是性能;而互联网公司又尤其没有测试的文化,互联网开发人员大多关注特性的实现,而不像传统企业级开发那样有很多测试的工具和流程。

理想的情况下,每个人提交代码前都应该测试。但既然反正也没人这样做,那么用工具来帮忙还是很有用的。比如New Relic这样的工具就很强大,它可以发现代码层面的问题。我们有时候也用我们的工具帮客户做测试,包括负载测试。性能测试是挺困难的一件事,既不容易用起来,也不容易让别人用起来,一般来说你需要一个专门的团队才能做性能测试,但互联网公司基本没有(除了Google、Facebook这样的),就算想有也找不到人。所以要善用工具。

Docker的意义

Docker很有意思,很火,很新,当然也很多问题。它目前没多少大型部署案例,所以人们不断的发现问题也是很正常的事情。

总体来说,Docker是一个对开发者非常友好的东西:简单的实现不同机器上的环境标准化,可以轻松拿来拿去,而且在不同的云平台上都支持。而把Docker用起来对运维而言则是很大的挑战,我们帮一个客户做一个规模较大的Docker部署,一个有经验的DevOps团队也花费了几个月的时间。为什么?

Docker容器就跟VM差不多,从运维的角度,会希望像管理VM那样管理Docker容器,但是Docker容器很难troubleshooting,因为默认来说它没有SSH,你要怎么登陆到一个容器里去查看里面发生了什么问题?Troubleshooting,这是一个最大的问题。

默认来说,Docker容器也无法运行cron任务或者batch任务,意味着你没法儿让它自动做备份之类的工作,而这是最基本的运维任务,这是另一个必须解决的问题,否则你根本无法构建一个自动化管理的云环境,而要解决这个问题,你需要搞一些手段,比如改造它的架构,但是你一折腾,又引入了很多新的问题要解决。

Docker有很好的网络机制,但是也很复杂,所以我们bypass了所有的Docker网络,而这也引入了一些问题。Docker容器也没有好的重启方法,因为你很难看到哪个是哪个,需要做一些好的命名映射的管理系统。总之,要在大型部署中把Docker玩好,你需要各个方面的专家,还需要时间。

我并不怀疑Docker是趋势,它的概念非常好,会极大的改善开发者的世界。如果你的系统比较简单,不是很大,那么用Docker是完全没问题的。而且它的文档很好,这也是很赞的地方。我相信它会引领未来。它只是还需要时间来完善。而这也不奇怪:想想KVM,其实KVM做的事情很简单,就关注系统层和CPU、内存、存储、网络的交互,并不难理解,但即使是目标如此简单的项目也多年处于问题层出不穷的状态,人们不断的围绕它开发工具,改进它,才到了今天的可用状态。Docker则复杂的多,有很多层:它是一个环境管理系统,它是个打包系统,它是个文件系统,它包含一套网络机制,它是一个repo系统,它是个代码系统,等等。基本上,Docker想要把所有的东西都扔到一个小盒子里,五脏俱全。当你用Docker提交代码时,你做的事情跟以前是完全不同的。在以前我们只是把代码提交上去,而在Docker中我们把整台计算机(虚拟机)提交上去。想象一下,这就好像是交换电脑一样,开发者把整台电脑交给运维,电脑里面的环境和代码都有了,是不变的;而运维需要把所有的电源网线什么的都插回去,需要处理很多变化的东西,比如变更的IP、用户名、文件系统等等。这是全新的方式。


图片 2


随着开发效率的提高,运维的自动化已经成为很多技术团队越来越重视的问题,否则部署的...

大客户专线的高效运维之道

随着各运营商在网络资源的投入和相似业务解决方案的推出,针对大/中/小型企业、政府、行业、教育等大客户的市场争夺日趋激烈。而对专线业务的高效管理维护是运营商提升客户满意度的重要手段,是运营商在大客户专线市场的核心竞争力,这就给作为管理维护工具的网管在大客户专线的运维上提出了更高的要求,面对大客户专线,网管如何应对,本文将结合大客户专线和网管的现状进行分析。

传统的设备网管以无差别的设备管理为基础,从设备的角度进行拓扑浏览、告警查看、配置下发、性能部署等日常运维工作,在大客户专线高速开展的今天,传统的厂家网管已经不能很好的适应专线业务带来的以下变化:

网管由仅供运维人员使用变为运维部门、业务部门甚至客户都来关注和使用

客户关注业务开通质量,业务部门更是需要以高质量的业务开通和维护来说服客户,需要以大客户专线相关资源使用情况、客户和业务统计等数据为市场开拓提供依据,尽可能的为客户提供差异化和定制化服务。而传统网管只是以设备管理为中心,缺乏与客户和业务的关联,使用对象仅定位为专业的运维人员,只能从专业的运维人员角度提供专业数据和信息,而客户和业务部门关心的客户、业务情况等核心问题却无法体现。

由设备管理为核心变为设备、业务、客户三核心

传统网管上需要呈现的中心仅仅是设备信息,提供的是一个扁平的全网设备拓扑视图。但在大客户专线的运维过程中,所有的配置下发、故障查看、性能监控等日常维护都需要基于关联的业务和客户信息来进行。在传统的网管上运维过程中,如果接到专线客户报障,仍然需要先从海量的设备和告警中找到相关设备然后再进行定位,不能直接以业务、客户作为主线去进行相关查找和操作,更无法针对性的对某一客户和业务进行性能分析,所以传统的网管无论在进行业务开通、客户故障定位还是客户业务分析上,都无法为重要的大客户业务提供支撑和保障。

由全面维护变为差异化维护

网管的运维过程中工作量巨大,海量的告警和设备信息无差别的在网管上呈现,导致重要客户的告警和设备信息同其它普通业务混杂到一起,得到同样的处理机会和优先级。一方面,客户和业务都有重要性等级差别,重要的业务必须得到重要的保障,得到更好的管理和维护,而运维人员在传统网管上无法区分业务级别,导致无法集中精力优先处理最重要的工作;另一方面,越来越多的接入设备需要安装在客户的机房环境中,相对于稳定可靠的运营商机房环境,这些设备的管理和维护有其自身特点,这也需要运维人员在网管的使用过程中能够与运营商局端设备区别对待。总之,在大客户专线要求高质量服务的今天,传统网管的这种不分主次、全网统一对待的管理方式无法达到快速响应大客户专线的要求,只有将运维工作进行层次划分,才能使重要的客户重要的业务得到优先的保障,对不同级别的业务、设备进行差异化管理,为不同级别客户提供差异化服务。

综上所述,传统的设备网管已经无法满足高速发展的专线业务发展需求,针对上述问题,瑞斯康达的NVIEW网管系统中就融入了客户、业务管理,提供了客户、业务、设备相融合的多视角管理方式,尤其是新增的大客户专线管理系列功能,从专线业务的视角将所有专线业务相关功能进行融合,给出了一套完整的专线业务运维解决方案。

图片 3

其中关键点包括:

业务开通能力

业务开通质量和效率直接影响了客户使用的第一印象,而业务开通的及时率更是对业务的重要考核指标,NVIEW通过对开通过程中各个环节的改进来迅速提升客户满意度,提高业务开通效率:

1. 设备即插即用:不在需要人工介入来在网管上添加或者手工配置设备,只需将设备简单连接后即可进行网管。

2. 业务快速配置:通过提供业务的端到端配置和开通模板等方式,减少业务开通工作量,提高业务质量。

3. 业务开通测试:在业务配置完成的第一时间一键进行开通测试,提高开通效率和质量

业务维护能力

NVIEW已经具备了适用于大客户专线业务的维护能力:

  1. 专线业务管理视图

提供客户业务视图,对所有的大客户专线业务进行分级别呈现,从而可以清晰的看到业务、客户情况,并且提供丰富的操作操作入口,可直接对业务进行调整、告警查看、性能分析和业务质量统计、报表。

  1. 故障定位和处理能力

将告警与客户、业务进行关联,并且提供基于客户和业务的告警视图,使运维人员可以第一时间发现业务故障,方便故障定位和处理。运维人员在简洁的客户业务管理界面即可直观的看到客户、业务及其告警情况。

  1. 业务监控能力

通过对业务的性能分析和监控,可以及时了解业务和网络情况,既可以提前发现业务问题又可以为业务扩容和分析报表提供数据依据

  1. 多视图展现能力

通过客户和业务的级别来对客户和业务进行层次化呈现和管理,并且让运维人员可以方便的在客户、业务、设备视图之间进行关联查找和切换。

业务综合分析能力

专线用户对于自身的服务质量非常关注,十分希望能了解自己的业务和设备情况,而业务部门也需要业务分析数据来为其市场策略提供依据,为专线用户提供差异化服务。NVIEW管理了全网的设备、资源、配置、业务、客户、性能等数据信息,通过对这些数据的分析和整理,NVIEW可以给出各种报表:

1. 业务运行质量报表,包括业务的中断次数、流量信息等业务质量参数,针对不同级别的业务来提供不同粒度的报表,使专线用户切实体验到运营商提供的专线业务服务质量,为重要客户提供相应的增值服务。

2. 业务使用和资源分析报表,业务部门不仅可以通过业务的使用情况对客户给出扩容、业务套餐更改等建议,更可以通过这些数据来分析市场现状、预测业务走向、制定销售策略。

综上所述,对大客户专线业务管理的支持已经是网管发展的必然方向,也使网管成为设备竞争力的一大要素,只有具备了大客户专线管理能力,切实在实际使用中减少运维投入、提升业务维护质量和客户满意度,才能够给运营商的专线业务发展带来实实在在的价值。

随着各运营商在网络资源的投入和相似业务解决方案的推出,针对大/中/小型企业、政府、行业、教育等大客户...

正如大家所知道的,ITSM是ITIL的核心内容,那么接下来的另一个问题就是IT运维管理与ITSM到底有什么关系?下面将从四方面进行阐述。

管理概念

IT运维管理的概念是从网络管理的概念延伸而来,现阶段广义上的IT运维管理实际上是对底层IT基础设施、应用服务和业务服务的综合管理。IT运维管理就是通过对IT资源的有效管理,确保IT服务的健康性和稳定性。

而ITSM则是ITIL框架的核心内容,ITSM又包含:服务支持和服务提供,外加一个服务台。其中服务提供由服务等级管理、IT服务财务管理、IT服务持续性管理、可用性管理和能力管理 5 个服务管理流程组成;服务支持由事故管理、问题管理、配置管理、变更管理和发布管理5个流程及服务台职能组成。

ITSM以流程为基础,指导IT服务企业和组织实现从服务战略、服务设计、服务导入、服务运营到服务改进的服务全生命周期管理。在ITSM框架指导下,IT服务企业和组织也可根据实际需要进行裁减,针对自身某个或某些问题选取相应流程和指导方法予以解决或改进。

从概念得知,IT运维管理是ITSM的前提。IT运维管理可以充分保证IT服务的健康性和稳定性,而在这个前提下,ITSM将这些IT服务进行了明确划分,通过流程化的管理方式,让IT资源为企业的业务提供高效的IT服务并创造价值。

管理层次

就像上一篇文章所说,IT运维管理是ITIL的底层基础,它的更多工作是处在底层的数据获取上。IT运维管理通过各种方式和协议,从IT基础设施、应用服务和业务系统当中获取相关数据,关注数据获取的实时性、关联性和差异性,进而反映IT资源的运行情况。

版权声明:本文由ag真人发布于公司领导,转载请注明出处:以及为什么Docker是革命性的,大客户专线的高效