文档章节

数人云|从0到1,打造DevOps易用工具链(精挑细选27种)

数人云
 数人云
发布于 2017/07/28 11:29
字数 2324
阅读 11
收藏 0

数人云:DevOps是一种文化,但创立或改变文化技术和工具必不可少,今天小数就和大家分享下覆盖整个生命周期的易用工具链。

DevOps操作上越来越成熟不是一蹴而就的,而是使用了一些新的工具,在团队内不仅改变了文化,同时也打破了沟通上的壁垒,进而开发出更好的应用,虽然仅靠工具还不够,但通过应用自动化,在提高了交付效率和质量的同时也促进了成员之间的协作。

对于如何构建DevOps工具链,没有标准的答案,而是要取决于团队规模和具体需求,这里从Netflix、Etsy,Dropbox等公司汲取了相关经验,分享一些在应用交付生命周期的每个阶段,一些受欢迎的工具。

Markdown

构建工具

〓 项目管理

瀑布式开发要规划出所有的工作和每个版本的依赖关系,这与DevOps理念背道而驰,而敏捷开发,可以通过构建、测试应用收集用户反馈来降低风险提高可见性,这也是许多团队在Sprint(敏捷开发的四种会议)提出构建到发布用2—4周的时间。

当团队在每个Sprint时分享想法和计划时,要考虑之前Sprint的回顾反馈,不断优化方案。此后将这些构思上传到一些工具当中,可以跟踪项目的整体和每日进度。推荐的工具有:

  • Active Collab:基于Web、开源的协作开发与项目管理工具,可以利用它轻松地搭建一个包括团队和项目客户能够 在同一个项目上实现相互协作的环境

  • VersionOne:支持SaaS模式和本地安装模式,web客户端,支持Scrum, Extreme Programming, DSDM and Agile UP等多种敏捷开发方法。 Jira:被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

  • Trello:由著名的软件工程师 Joel Spolsky 开发工作围绕“木板(board)”进行,同一小组的用户可以在这里创建待办事项列表(to do list)、创建任务,并分配给同事。

〓 代码&SCM系统

所有的构建都可以用代码来表示,在上线之前,需要测试和复查,并将其合并到一个版本控制库中的主分支当中,并在可以进行任何本地测试,推荐工具有:

  • GitHub:GitHub是一个基于web的Git或版本控制库。

  • Gitlab:提供了Git仓库管理、代码审查、问题跟踪、活动反馈和wiki。

  • Bitbucket:源代码托管网站,采用Mercurial和Git作为分布式版本控制系统。

〓 CI平台

持续集成(CI)是现代软件开发的最佳实践,通过建立有效的持续集成环境可以减少集成问题、提高代码质量、改善团队成员之间的沟通和协作、快速迭代等,推荐的工具和平台有:

  • Jenkins:基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

  • CodeShip:部署快,易损耗、成本低。易用性比肩Travis,而更胜一筹的是集成了相当数量的选项,可以根据自身的工作流程和开发工具定制化CI/CD工作流。

  • Bamboo:具有开箱即用的特性,可在硬件上运营。Bamboo是一个聚焦企业级的解决方案,并且包含具有极强竞争力的特性、定价和技术支持等。可以部署在大规模生产环境中。

  • CodeFresh:虽然CodeFresh不是典型的CI/CD平台,但它提供了一种有趣的应用场景,在容器上使用CI/CD从而促进Docker,Kubernetes和云原生的发展前景。

〓 测试

为了实现DevOps所需的业务目标,为确保将代码推向生产是安全的,需要进行大量测试:单元测试、集成测试、验收测试等,测试完成后,还有大量开源和付费工具可以做一些其他事情,推荐的工具有:

  • JUnit:一个用于编写可重复测试的简单框架。

  • Mocha:简单、灵活有趣的JavaScript测试框架。

  • CircleCi:Web应用程序开发测试平台。

发布工具

〓 自动化部署

发布自动化工具应具备例如自动回滚等功能,在开始部署之前将模块复制到主机,如果企业规模较大,可以轻松地安装代理并将防火墙配置到服务器实例中。

许多团队还使用基于聊天的部署工作流,让机器人部署简单的命令。推荐的工具有:

  • Bamboo:采用自动化管理的构建代理模式,运行在各种专用服务器或云服务器上的代理实现了构建能力的即时动态扩展。通过与Jira集成可以实现完整的发布流程

  • Puppet:一个开源的软件自动化配置和部署工具,基于C/S架构的。服务器端保存着所有对客户端服务器的配置代码,在Puppet里面叫Manifest,客户端下载Manifest之后,可以根据Manifest对服务器进行配置,例如软件包管理,用户管理和文件管理等等。

  • Superviso:一个客户/服务器系统,允许用户监控和控制类似Unix的操作系统上的许多进程。

  • Forever:简单的CLI工具,用于确保给定的脚本连续运行。

监控工具

〓 部署监控

部署监控让高级别的发布进入和需求状态可视化,是理解服务健康与否的关键,确保CI服务器上发生的关键事件并及时告警。推荐的工具有:

  • Datadog:专门针对 DevOps 团队,从APP或者其他各种工具获取数据并提供数据可视化功能。将从基础设备和应用采集的数据统一处理并存储。

  • ElasticStack:一系列开源产品的合集,包括 Elasticsearch、Kibana、Logstash以及 Beats 等等,提供了很多数据分析领域的功能,如 Pipeline Aggregation。

〓 服务器监控

服务器监控提供了一个基础结构级别的视图,许多团队还使用日志聚合来深入研究特定问题,可以聚合及度量如:内存、CPU、负载均衡等,使工程师能在问题发生时迅速做出响应。推荐的工具有:

  • PagerDuty:能够在服务器出问题时发送提醒的软件。在发生问题时,提醒的方式包括屏幕显示、电话呼叫、短信通知、电邮通知等,而且在无人应答时还会自动将提醒级别提高。

  • Nagios:是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员

  • Solarwinds:主要提供企业的网络管理和监控,可以帮助网管进行配置,监控和管理日趋复杂的系统和构建网络基础构架的流程。

〓 应用性能监控

应用性能监控为应用和业务服务的性能及可用性提供了代码级的可见性,让快速理解性能指标和满足服务SLA更加轻松。推荐的工具有:

  • DynaTrace:在整个生命周期过程中会对Web和非Web业务关键应用程序的监控、管理和优化方式进行转换。可快速解析性能问题并将问题范围隔离定位到确切的代码行。

  • AppDynamics:能提供端到端的、可视化驱动管理的的平台。核心理念是SEE可视化、ACT快速解决还有KNOW实时分析。

终极工具

〓 云

云计算目前的主要厂商是亚马逊的AWS、微软的Azure、Google的(GCP)。在PaaS层,可以访问和创建如数据库和分析之类的应用服务且不用考虑如操作系统、防火墙配置或存储之类的基础设施。

〓 Docker

Docker是一个开放的平台,将开发、传输和运行在容器这种隔离的环境中。容器封装了专用的文件系统、存储、CPU、RAM和其他需求的应用,保证这些应用在不虚拟化硬件的情况下持续运行且保持一致。Docker是可移植的、轻量级的,很容易进行安装。

〓 Swan

数人云Swan是基于Mesos实现的开源应用调度框架,帮助用户轻松发布应用,实现应用的滚动更新,并根据用户指定的策略做应用的健康检测和故障转移。

Swan Github地址 欢迎Star&Fork

© 著作权归作者所有

共有 人打赏支持
数人云
粉丝 16
博文 101
码字总数 328110
作品 0
朝阳
架构师
Meetup北京报名开启|一起吹响Container+集结号

Meetup北京报名开启|一起吹响Container+集结号 数人云博客2017-08-0112 阅读 container开启 Container技术在国内的落地实践, 已进阶Container+ 8月阅兵仪式,一睹超强装备的风采, 技术圈也...

数人云博客
2017/08/01
0
0
微服务架构企业级增强产品,数人云推出统一配置中心Hawk

微服务架构企业级增强产品,数人云推出统一配置中心Hawk 数人云博客2017-11-221 阅读 架构服务产品配置 11月16日,数人云在PaaS Innovation大会上,正式发布企业应用架构管理体系EAMS,这是数...

数人云博客
2017/11/22
0
0
如期而至的 Swarm 新工具 Crane 开源解读

中秋节前,数人云技术团队推出了一款新的基于SwarmKit技术栈的工具。大家可能都了解到数人云的容器技术栈是用Mesos驱动的,为什么在Docker刚发布最新的1.12版之后,我们要做出这个工具呢?在...

达尔文
2016/10/17
2.8K
2
当容器与CI/CD相遇,7个建议送给你

当容器与CI/CD相遇,7个建议送给你 数人云博客2017-09-193 阅读 ci 数人云: Docker是CI/CD的早期采用者,通过利用如GIT等源代码控制机制的正确集成,Jenkins可以在开发者每次提交代码时启动...

数人云博客
2017/09/19
0
0
数人云容器管理工具 Crane v1.0.5 发布,优化相关功能

数人云容器管理工具 Crane v1.0.5 发布了。Crane 是数人云推出的容器管理工具,它根据 Docker 的原生编排功能,采用轻量化架构,帮助开发者快速搭建 DevOps 环境,体验 Docker 的各种最新功能...

凝小紫
2016/10/01
1K
9

没有更多内容

加载失败,请刷新页面

加载更多

同样是工作3年程序员,为什么别人每月25K你却只有15K?

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月26K你却只有15K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

Java填坑之路
26分钟前
3
0
跨域问题:解决跨域的三种方案

当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考: 方式一:使用ajax的jsonp 前端代码 服务器代码 使用该方...

rechardchensir
27分钟前
4
0
linux学习-1012

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 简易审计系统: http://www.68idc.cn/help/server/...

wxy丶
28分钟前
1
0
springboot dubbo 在程序初始化完成前 使用回声测试对服务依赖检测

<dubbo:consumer timeout="10000" check="false" /><dubbo:service delay="-1" /> @Component@Order(2)public class PrkServiceInit implements ApplicationListener {private Logge......

林伟琨
29分钟前
3
0
“网红架构师”解决你的Ceph 运维难题

Q1. 环境预准备 绝大多数MON创建的失败都是由于防火墙没有关导致的,亦或是SeLinux没关闭导致的。一定一定一定要关闭每个每个每个节点的防火墙(执行一次就好,没安装报错就忽视): CentOS s...

编程SHA
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部