【编者按】本文作者为 Kevin Goldberg,主要介绍了在开发、运营应用的完整生命周期当中,可能用到的 DevOps 工具大集合。文章系 OneAPM 工程师编译整理。

DevOps工具包中合适的工具可以帮助你在企业内成功实施DevOps,增强敏捷发布过程和团队协作。笔者想先声明,DevOps不仅涉及工具,如果背后没有合适的人员与文化,即使拥有最好的工具,也不能成功实施DevOps。不幸的是,没有“文化”工具可供你使用,让你能够立刻在团队之间培养协作和反馈。

合适的工具可以提供框架,帮助公司成功实施DevOps。你选择的工具,应该鼓励反馈,并防止进一步形成孤立。工具还应该帮助统一和协调团队。确定采用的DevOps工具包,是实现DevOps目标和量化成功的关键第一步。虽然工具的特性集和解决方案是很重要的,也要确保重视工具组合起来的效果。无法整合的工具可能会需要过多的维护,成本,或产生冲突的信息。

在一个非常简化的应用生命周期视图中,笔者将过程划分为四个主要步骤:规划,设计,部署和维护。在每一个步骤中,都有可以增强这一环节的工具。同样重要的是,这个过程不是一次性的,这是一个持续的循环。这种持续的反馈周期,是DevOps成功的必要基础。

与其通过一系列的产品列表来选择DevOps工具,你应该考虑自己的应用生命周期,根据特定的目标来做出选择。

基础

虽然有多款工具可以支持你的DevOps规划,但几乎每一种规划都依靠相同的基础:借助应用智能在云中进行构建。如果没有云,自动化和敏捷性几乎是不可能的——让我们在云的假设下继续。

使用虚拟化支持,在云中构建,你可以根据需求,适当调整,实现动态扩展的灵活性。云的好处是成本与需求成线性比例,所以你只需支付自己使用的部分。

要有效管理DevOps环境,你需要联合高管、开发人员与运维,并监测应用程序和终端用户的性能。不同团队和个人在一个控制台相互协作,并获得相关应用智能的访问权限,从而优化软件战略,对实现DevOps是至关重要的。

云/基础设施

  • Azure

  • AWS

  • Rackspace

  • Joyent

  • Cloud Foundry

虚拟化工具

  • VMware

  • Xen

  • VirtualBox

应用智能

规划

开发一个新的应用,或更新现有的应用,都应该从规划开始。让开发人员了解应用的商业目标可以鼓励他们带有目的地进行思考,同时开启反馈循环。

同样,重要的是,无论你最终选择哪个工具,都应该能建立于你的应用基础之上,或与之相整合。

数据库

搜索

  • Solr

  • ElasticSearch

Web服务器

设计与架构

企业和开发人员经常犯的一个错误,就是在真空或孤立筒仓中设计应用程序。若没有任何反馈机制,你只是在构建自己认为有用的功能。

其实,有各种各样的工具和方法都可以优化这一阶段的DevOps开发。现有应用的实时用户监测和分析,可以有效判断客户的真正需求。它可能是一个没有必要的功能或特性,或者只是因为太复杂而没有被使用,或者有性能问题,无法正常工作。你可以监测哪些特性和功能使用得最为频繁,哪些根本不使用。最重要的是,通过分析使用量和性能,你可以识别潜在的问题。

扩展

部署

配置管理工具,容器和自动化测试真正改变了开发格局。DevOps的流动性和快节奏是其基础和优势之一,但它也是一个挑战,需要维持稳定的网络访问。 配置管理工具, 比如Puppet,Chef,和Ansible让企业可以管理IT配置,通过模块组件和自动化实施,从而确保持续、可靠、稳定的环境。它们使你能将基础设施作为代码。

容器

持续集成

配置管理

  • Puppet

  • Chef

  • Ansible

维护

你的应用上线了,部署完成了,并不意味着你的工作就结束了。性能问题,停机时间,崩溃仍有可能困扰你的应用,进而影响业务。作为一个新的DevOps团队,你需要做好运营工作。当有问题时,收到告警,进而找到问题的根源是至关重要的,可以确保积极、无缝的用户体验

告警

  • OneAlert

  • PagerDuty

  • ServiceNow

  • VictorOps

  • BigPanda

日志记录

  • Splunk

  • SumoLogic

  • Loggly

  • Logentries

DevOps是持续的,没有明确的生命周期起点或终点。这一切都始于接受DevOps文化,建立云和虚拟化的坚实基础。除此之外,规划、设计、架构、实施,部署,维护和运行应用的生命周期是一个循环往复的过程。

DevOps环境太复杂和多变,很难通过人工流程管理;使用最传统的方法监测,是无法跟上步伐的。为了有效地循环和往复,企业需要专为DevOps设计一个监测解决方案。

想进一步了解?请阅读电子书——《终极 DevOps 工具包与拥抱 DevOps 生命周期》

本文系 OneAPM工程师编译整理。OneAPM Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

原文地址:
https://blog.appdynamics.com/devops/the-ultimate-devops-toolkit-for-the-application-lifecycle/

应用生命周期终极 DevOps 工具包的更多相关文章

  1. [转载]DevOps建立全生命周期管理

    全生命周期管理(ALM)领域作为企业DevOps实践的总体支撑,应该说是DevOps领域中最为重要的实践领域,也是所有其他实践的基础设施.现在很多企业都非常重视CI/CD自动化工具的引入和推广,但是对 ...

  2. Spring Bean 生命周期之destroy——终极信仰

    上一篇文章 Spring Bean 生命周期之我从哪里来 说明了我是谁? 和 我从哪里来? 的两大哲学问题,今天我们要讨论一下终极哲学我要到哪里去? 初始化 Spring Bean 有三种方式: @P ...

  3. DevOps - 生命周期

    章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...

  4. DevOps生命周期,你想知道的全都在这里了!

    在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时. 为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期. 那么,DevOps在软件应用程序开 ...

  5. 从大厂DevOps工具链部署,看现代产品的生命周期管理

    目录 1. 认识DevOps 1.1. DevOps工具链 1.2. CI 持续集成(Continuous Integration) 1.3. CD(持续交付 & 持续部署) 1.4. Agi ...

  6. 构件工具Maven----坐标、依赖、仓库、生命周期的简单学习

    这篇文章对Maven中几个比较重要的概念坐标.依赖.仓库.生命周期做一个简单的介绍. 1.关于Maven坐标 用来区别Maven世界中任何一个构件,Maven坐标的元素包括groupId.artifa ...

  7. UI1_应用的程序的生命周期

    // // AppDelegate.m // UI1_应用的程序的生命周期 // // Created by zhangxueming on 15/6/29. // Copyright (c) 201 ...

  8. angular4 组件通讯、生命周期

    主要通讯形式 父组件通过属性绑定到子组件,子组件通过事件传递参数到父组件 父组件通过局部变量获取子组件的引用 父组件使用@ViewChild获取子组件的引用 两个不相关联的组件使用中间人模式交互 终极 ...

  9. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)

    一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...

随机推荐

  1. 关于 Spring Security OAuth2 中 Feign 调用 Token 问题

    微服务体系中,避免不了服务之间链式调用,一般使用 Feign ,由于使用 Spring Security OAuth2 全局做了安全认证,简单的一种实现方式就是在服务提供方获得 Token 再次通过 ...

  2. 技术简历这样写,才能得到BAT面试官的青睐

    公众号[程序员江湖] 作者陆小凤,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程序员干货和学习经验,同时热衷于分享作为程 ...

  3. 【EF6学习笔记】(二)操练 CRUD 增删改查

    本篇原文链接: Implementing Basic CRUD Functionality 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根 ...

  4. logstash快速入门实战指南-Logstash简介

    作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 Kibana从入门到精通 Logstash是一个具有实时流水线功能的开源数据收集引擎.Logstash可以动态统一来自不同来源的 ...

  5. NiftyNet项目介绍

    NiftyNet项目介绍  简述  NiftyNet是一款开源的卷积神经网络平台,旨在通过实现医学图像分析的深度学习方法和模块,支持快速原型和再现性,由WEISS (Wellcome EPSRC Ce ...

  6. SpringMVC学习(四)———— 数据回显与自定义异常处理器

    一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...

  7. Linux下获取java堆栈文件并进行分析

    当服务器内存飙升或者cpu负载飙升的时候,可以使用如下步骤排查问题: 1.终端输入top命令,键盘大写的情况下按P(cpu负载率从高到低排序)或者M(内存使用率从高到低排序),可以查看导致cpu或者内 ...

  8. Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken

    项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>.关于git,gitliab,ansible在我 ...

  9. 南大算法设计与分析课程OJ答案代码(3)

    问题 A: 动态中位数问题 时间限制: 1 Sec  内存限制: 8 MB提交: 866  解决: 102提交 状态 算法问答 题目描述 输入一组整数a1, a2, …, an ,每输入一个整数,输出 ...

  10. JQuery ajax的使用

    JQuery 真的是好东西       $.ajax({         type: "post",         url: "/DataCheck",   ...