标签:
随着公司业务的不断迅速增长,使得管理复杂的IT基础设施需求变得更为艰难。解决应对这一复杂变幻的挑战的最佳方法是让开发团队和运维团队紧密协作,实现灵活应对。拥有一个DevOps专家团队可以实现在最少时间服务中断的情况下实现IT基础设施的动态伸缩。
DevOps团队执行各种任务, 如:
如果不使用正确的工具集来执行这些任务将会是一件即费时又费钱的事。某些DevOps工具需要巨大的投资, 而有一些却很容易获取,因为它们是开源。你可以进行一个简单的成本效益分析, 然后选择一组工具, 帮助你解决当前应用场景下遇到的问题。
以下是7个顶级DevOps工具,将彻底改变DevOps的未来。
容器能帮助结合应用程序及其依赖项封装到一个包中,因此开发人员和系统管理员可以放心的将应用程序运行在任何linux系统上,而无需担心系统环境和配置存在差异化。
近几年,一个名叫DOCER的新容器技术获得了业界的青睐,许多DevOps专家和公司都在尝试加快使用这一技术的步伐。许多公司正计划着将他们的应用程序部署方式从虚拟机/物理服务器(VMs/Servers)切换为容器化的部署方式。
使用Docker技术使你能够用容器化的技术创建、部署和运行应用程序。Docker和虚拟机(VM)有些相似,但有所不同,Docker依赖于Linux内核来和主机进行资源隔离。Docker使用命名空间,cgroup,LXC等内核功能实现容器资源和主机资源的隔离,从而提高了应用的性能、减少了应用的大小。
Docker的日益普及归因于这一事实,一些领先的组织在早期采用了这项技术,这里有一些有趣的数据描述了Docker的快速普及情况。
下面是使用Docker的一些利好:
我们所有的应用都有一个基础的docker image,在很短的时间里,我们可以很快地将它们部署到开发/staging/生产环境中,并对这些images进行更新和维护。Docker帮助我们在多个docker容器里对资源进行分配和简单隔离,改善了我们的构建管道,并让我们在构建自身过程中运行完整的合理性测试。
这里有一些有趣的数据描述了Jenkins的使用普及情况。
Jenkins允许我们使用其庞大的插件库进行自定制,所以我们使用它来进行完整的构建和部署。在Jenkins的帮助下,我们实现了自动化加载测试环境。Jenkins从GIT版本中拉取最新的提交版本后,自动加载测试环境并执行加载测试。我们也使用Jenkins来实现一键按需性能测试环境的搭建。
New Relic是一个非常著名的应用程序性能监测工具。它能获取应用程序关键性的性能数据,如应用程序加载时间。使用New Relic你可以监视你的应用程序在世界各地的响应时间以及一些核心的应用组件如关键事务、自定义错误记录、外部服务调用和可伸缩性/负载分析等。
下面是使用New Relic提供的一些监测解决方案:
New Relic是应用性能监控市场的领导者,它能指出你应用程序中真正的痛点。
在过去的十年来,云计算越来越被大幅地采用。云服务不再是一个简单的存储和检索服务,而是一个运行完整的业务关键程序的有用技术。随着云计算的发展,大大增加了基础设施和环境的复杂性,通过手动更新来管理整个应用程序堆栈和基础设施变得不再可行。作为一个自动化(配置管理工具)平台, Ansible允许你持续不断地定义,建立和维护复杂的云基础设施。
下面是使用Ansible的一些利好:
Ansible允许我们集中管理所有的变化。我们也使用Ansible在EC2实例群上安装和更新软件包,如apt-get update,docker, 漏洞检测(shellshock 和 heartbleed)等。
尽管在配置管理领域,Chef和Puppet同样是市场领先者,SaltStack在各大领先的DevOps组织中还是迅速取得了一席之地。SaltStack使用Python开发, 它基于推式方法如推送配置文件到客户端。SaltStack需要通过主服务器和代理部署到目标服务器进行通信和控制,它使用ZeroMQ通讯层, 这使得它相对比其他的配置管理工具更快。
下面是使用SaltStack的一些利好以及应用场景:
我们发现在服务器和云平台上有大量的可用数据。Splunk是一个可以从这些海量数据中获取洞见的数据平台。Splunk让你紧密关注通常被忽略的数据。Splunk提供的洞见帮助企业分析数据提供决策,从而提高生产力和盈利能力。Splunk在一个可搜索的数据中心捕获、索引和关联实时数据,并由此生成图表,报告、警报、可视化信息。
下面是使用SaltStack的一些利好以及应用场景:
Kubernetes是一个开源的docker编排工具,它是一个轻量级、多重云、可扩展和自愈平台。它可帮助你即时扩展你的应用程序、发布推出新的功能、优化硬件使用资源。Kubernetes是Google于2014年启动的一个项目。
下面是使用Kubernetes的一些关键特性:
Kubernetes帮助我们减少QA/Prod环境上的支出,因为它使我们能够更好地利用现有的资源。Kubernetes加速构建和部署次数从每周30增长到55。Kubernetes提供开箱即用的部署特性(如滚动更新),我们可以做零停机生产环境部署。
在过去的几年里,docker被大幅度地使用,下面是一些关键统计数据,显示最近被使用的容器联排工具的基本情况。
随着越来越多的公司组织把他们的开发和运营团队紧密结合,使用上述工具,将能帮你更有效地提高产品的交付管道。基于用例场景以及功能特性等,你可以很容易地选择最适合你的DevOps工具。在Welldum Studio, 我们会根据用户的使用场景和用例选用上述合适的工具。通过这种方式,我们显著地减少花费在日常操作任务的时间。我们曾在一个项目上通过使用Kubernetes在docker部署微服务的架构模式将部署时间从20分钟减少为3分钟;我们也使用New Relic来监测应用程序的瓶颈。
David, CTO of Welldum Studio
David有10多年丰富的互联网开发和架构经验,曾就职于腾讯无线产品部,负责手机网游的开发工作;后赴美加入硅谷某大型互联网门户网站任全栈工程师,负责网站的整体架构、性能优化以及数据挖掘等工作。欢迎添加作者微信进行技术探讨和交流。
Welldum Studio成立于2014年,核心团队来自硅谷、BAT、清华大学和中科院,我们提供全栈式技术开发服务。我们的服务范围包括UX/UI设计、网站开发、App开发、微信开发、游戏开发、大数据挖掘和大规模分布式高负载并发系统的设计开发以及性能优化等。我们的官网是 http://www.wlelldum.com, 欢迎咨询交流。
注:本文是Welldum Studio(http://www.welldum.com)的原创文章,版权所有,转载请注明文章的出处。
标签:
原文地址:http://www.cnblogs.com/welldum/p/5699281.html