AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

为什么说微服务的运维不可缺少 DevOps?

  • 2015-03-29
  • 本文字数:1349 字

    阅读完需:约 4 分钟

在最近一次 QCon 伦敦大会上,来自于英国政府电子服务(GDS)的技术架构师 Michael Brunton-Spall 表达了他对于 DevOps 模式对于成功的微服务运维的重要性的看法。Brunton-Spall 指出了识别一个微服务的关键因素,介绍了如何创建第一个微服务的过程,以及管理微服务生态系统所必不可少的工具和实践。

微服务必定是一个小型服务,并且能够自己管理数据,而不与任何类型的数据库进行集成。所有数据必须通过公开接口的方式进行共享,遵循“哑管道与智能端点”(dumb pipes / smart endpoints)的方式。每个微服务必须有一个拥有者,也只能有一个,那就是拥有这个服务全部代码与运行时的团队。Brunton-Spall 对于 Jeff Sussna 的以下观点表示同意:

微服务不仅表现出一种新型的架构模型,同样也表现出一种新型的组织模型。

这种新型的组织模型也意味着开发人员和运维的角色发生了变化,开发者将承担起微服务整个生命周期的责任,而运维则越来越多地表现出一种顾问式的角色。

Brunton-Spall 建议刚刚启动微服务的团队可以先将规模控制在较小的范围内。一个组织应当先从一个微服务开始,确保它应用了正确的支持工具与实践。这些建议使用的工具和实践也是 DevOps 社区中所讨论过的相同内容:易于使用与集成的自动化基础设施、自动部署、日志聚合和监控工具,以及良好的警报实践。

从一个微服务升级到多个微服务,将要面对一组新的挑战,它们主要是与不断增加的错误诊断的复杂度相关的。正如 Brunton-Spall 所说:

与相同规模的整体性架构相比,微服务的失败会显得更加触目惊心。

要理解在微服务之间产生的复杂交互,需要优秀的诊断与监控工具。在 QCon 伦敦大会上每一场有关于微服务的演讲中几乎都强调了监控的重要性。Brunton-Spall 特意区分了浅度监控:“我的服务运行正常吗?”,与深度监控:“我的服务与它的依赖都运行正常吗?”。虽然后者的考虑更全面,但它也可能会引起一种层叠式的警报,而使得问题的真正根源变得模糊不清。如果某个微服务被许多其它微服务引用,当它产生故障时就有可能造成以上问题。

还有两点也是在许多场合中经常强调的,一是在设计微服务时要考虑到故障的情况,二是要提供一个统一的管理界面。比方说,应该有一种通用的方式,可以触发某个微服务产生断路 TwitterServer 就为这种方式提供了一个示例。

如果你的组织中已有着完善的部署审计流程,那么就应该为开发者分配传呼机与部署机房的钥匙。传呼机能够让开发者感受到因他们自己的错误所带来的痛苦,确保了对重复性问题的快速修复。但这些对于一个成熟的支持流程来说还不够。比方说,Brunton-Spall 问道,如果开发者感到“厌倦”并选择离开,该怎么办?又或者团队解散了又该怎么办?第一线的支持与检验依然是必不可少的。需要一种成熟的支持模型对这种移交的规则进行定义,例如:“系统在 M 个星期内的错误必须小于 N,并且在移交时必须提交运行手册”。

简单的解决方案能够促成优秀的微服务运维实践。Brunton-Spall 提到了他在 The Guardian 工作时的案例,这是他在 GDS 之前所任职的公司。最初的服务器上线流程中只包含了一个基础的 Ubuntu 镜像。在上线脚本中包含了几行 bash 脚本代码,用于通过“apt-get”命令获取包。此外还有一个 wget 命令,用于下载某个 JAR 文件并开始执行。

查看英文原文 DevOps Needed for Operating Microservices

2015-03-29 06:293831
用户头像

发布了 428 篇内容, 共 185.7 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

论文解读丨无监督视觉表征学习的动量对比

华为云开发者联盟

视觉 无监督学习 无监督视觉 表征学习 动量对比

Python 中的反转字符串:reversed()、切片等

华为云开发者联盟

Python 切片 反转字符串 reversed 反转

博文推荐|Pulsar 存储空间不释放的问题分析与解决方法

Apache Pulsar

架构 云原生 Apache Pulsar 技术干货 BookKeeper 存储空间

Black Hat Europe 2021议题解读:Wi-Fi Mesh中的安全攻击面

百度安全

Black Hat Wi-Fi Mesh

Go iota 原理和源码剖析

编程宝库

ETL和数据建模

大数据技术指南

11月日更

虚拟机与容器的混合管理实践

安第斯智能云

Kubernetes 后端 云化底层的那些事

云小课 | 网站接入WAF失败怎么办?看这里就够了

华为云开发者联盟

华为云 Web应用防火墙 接入WAF失败 故障排查

多变的智能降噪

睿象云

运维 告警 智能运维 告警管理

视野 | OpenSearch,云厂商的新选择?

RadonDB

数据库 搜索引擎; Elastic Search

亿磐获评《新闻周刊》2021年度最受雇员喜爱工作场所

InfoQ_434670063458

亿磐 EPAM 新闻周刊

译文|选择 Apache Pulsar 而非 Kafka 的 10 个理由

Apache Pulsar

kafka 架构 云原生 中间件 Apache Pulsar

技术分享| 如何做一款容纳百人的视频会议?

anyRTC开发者

音视频 WebRTC 视频会议 实时通信 视频通话

巅峰对话在线研讨 Q&A:Oracle Database 21c vs openGauss 2.0新特性解读和架构演进

墨天轮

数据库 oracle opengauss

构建 Snowpack + React + Typescript + Electron的Desktop App

吴脑的键客

typescript Electron React webpack

博文推荐 | 一文带你看懂 Pulsar 的消息保留和过期策略

Apache Pulsar

架构 云原生 中间件 干货 Apache Pulsar

这可能是,Flutter 中最“强悍”的内存泄漏检测方案......

阿里巴巴终端技术

flutter ios android 内存泄漏

【堡垒机小知识】堡垒机是硬件还是软件?

行云管家

网络安全 信息安全 数据安全 堡垒机

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」小白专区之领略一下RocketMQ基础之最!

码界西柚

RocketMQ 消息队列 Alibaba技术 11月日更

拒绝编译等待 - 动态研发模式 ARK

字节跳动终端技术

ios 字节跳动 移动开发

Kafka中的数据不丢失机制及CAP理论详解

五分钟学大数据

11月日更

一图看懂 Apache ShardingSphere 5.0.0

SphereEx

数据库 开源 ShardingSphere

APP上运行小程序的混合移动研发模式

Speedoooo

容器 ios开发 APP开发

频繁更新主机,导致pod ip不够解决方法

ilinux

AI运动:阿里体育端智能最佳实践

阿里巴巴终端技术

最佳实践 端智能

一个站点不够学?那就在用Python增加一个采集目标,一派话题广场+某金融论坛话题广场爬虫

梦想橡皮擦

11月日更

北省廊坊市本地有等保测评机构吗?在哪里?

行云管家

网络安全 等保 等级保护 等保测评 廊坊

阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化

JackJiang

架构设计 即时通讯 IM

She Builds Summit|邀您一同感受她的科技力量!

SphereEx

开源 AWS SphereEx 潘娟

TDengine助力曲靖卷烟厂有效提升时序数据存取效率

TDengine

数据库 tdengine 后端

潜藏在手机中的新威胁:免安装应用安全指北

安第斯智能云

安全 移动端

为什么说微服务的运维不可缺少DevOps?_DevOps & 平台工程_João Miranda_InfoQ精选文章