9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

如何应对管理微服务所面临的挑战?

  • 2015-06-29
  • 本文字数:2116 字

    阅读完需:约 7 分钟

在 DevOps Days 阿姆斯特丹 2015 大会的主题演讲中,Adrian Cockcroft 为听众进行了精彩的报告。他表示:通过在组织内实施DevOps 实践、持续交付并且应用容器化的微服务,就能够实现CIO 的关键目标 —— 使IT 与业务保持目标一致、更快地开发产品,以及避免对安全性的违背。但管理微服务又面临着新的挑战,他建议对这些挑战进行模拟演练,以此作为一种解决方案。

对于那些使用一种通用的编程语言,或者将效率和低延迟性视为最重要因素的小团队而言,一体性的应用对他们来说已经足够了。然而,在一个持续交付的上下文中实现的不可变性、容器化以及微服务的部署是对这一思想的彻底颠覆。Cockcroft 认为,随着业务的增长,这种现代技术的优势开始逐渐体现出来,它能够实现大规模化、允许更快的开发速度,并且支持不同种类的平台环境。

随着微服务的出现,软件的原子化趋势也带来了管理方面的挑战。在脑海中绘制出由多达数百个服务所构成的图形、理解产生的故障,以及测试与监控工具的开发是最大的挑战。这些服务在持续地进行部署,并且存在于持续性更短暂的主机中,该如何对这些服务进行处理呢?在几年前比较常见的情形是大量使用裸机,这些裸机需要好几周的时间才能完成设置,随后一用就是好几年。而现如今,只需几秒钟就能够部署好容器,而它的生命周期或许只有几分钟或几小时。 AWS Lambda 计算服务的响应时间是毫秒级的,而它的生命周期只有几秒钟。

Cockcroft 相信,模拟演练必须成为整个解决方案中的一部分,因此他创建了 spigo 、如今称为 simianviz 的这个项目,其全称是 SIMulate Interactive Actor Network VIsualiZation。该项目的主要目标包括:

  • 生成大规模的测试微服务配置以及架构
  • 对监控工具的显示能力进行压力测试

Simianviz 可以在桌面端模拟多种架构,它使用一个 JSON 格式描述对这些架构进行建模:

复制代码
{
"arch": "netflixoss",
"description":"A very simple Netflix service. See http://netflix.github.io/ to decode the package names",
"version": "arch-0.0",
"victim": "homepage",
"services": [
{ "name": "cassSubscriber", "package": "priamCassandra", "count": 6, "regions": 1, "dependencies": ["cassSubscriber", "eureka"]},
{ "name": "evcacheSubscriber","package": "store", "count": 3, "regions": 1, "dependencies": []},
{ "name": "subscriber", "package": "staash", "count": 6, "regions": 1, "dependencies": ["cassSubscriber", "evcacheSubscriber"]},
{ "name": "login", "package": "karyon", "count": 18, "regions": 1, "dependencies": ["subscriber"]},
{ "name": "homepage", "package": "karyon", "count": 24, "regions": 1, "dependencies": ["subscriber"]},
{ "name": "wwwproxy", "package": "zuul", "count": 6, "regions": 1, "dependencies": ["login", "homepage"]},
{ "name": "www-elb", "package": "elb", "count": 0, "regions": 1, "dependencies": ["wwwproxy"]},
{ "name": "www", "package": "denominator", "count": 0, "regions": 0, "dependencies": ["www-elb"]}
]
}

当某个架构的模拟开始运行后,simianviz 能够生成可视化的结果。以下图形显示了一个标准的LAMP 技术栈的架构,其中包括了DNS、负载均衡器、Web 服务器、MySQL 和memcached:

产品管理流程

为了支持CIO 的目标 ——使IT 与业务保持目标一致、更快地开发产品,以及避免对安全性的违背,Cockcroft 也给出了一些产品管理方面的建议。

即使在一个敏捷的环境中,也有很多人认为流程是避免出现问题的方法。Cockcroft 建议人们要提防“scar tissue”式的流程,这种流程倾向于对过去发生的每一个错误加以谴责,而它们出现的目的就是为了防止特殊问题的出现。但如果组织中充斥着各种规章制度,你是无法全部遵守它们的。Netflix 的首要规则就是“去做那些对公司最有益的事”。

为了支持CIO 的目标,Cockcroft 认为最好的一个观点就是完全去除角色的概念,确保“业务”或“产品”以及“IT”都往同一个方向努力。以Netflix 为例,它们甚至没有设立 CIO 的角色,只有一位首席产品官。

Cockcroft 建议以两种类型的团队来组织 IT 部门,“平台”团队提供用于平台 / 基础设施自动化的 API,他们需要系统、网络以及 SAN 管理方面的技能。“产品”团队则使用微服务架构开发产品,该团队所需的技能包括产品管理,以及 UX、开发者、QA 和 DBA 的技能。Cockcroft 特别强调了安全性,他断定“不安全的应用程序即使由防火墙保护,它还是不安全的”。开发者应创建坚固的软件,使用例如 Gauntlt 这样的工具对安全性方面的需求进行测试。

除此之外,Cockcroft 认为应当把随时候命的责任分配给创建产品的人(“你负责创建,就要负责运维”)。但并不是说责任就到此为至了,整个组织结构上的人(包括经理和更高层的人物)都需要作为后备人员,这是确保软件可靠性的一个重要前提条件。

查看英文原文: Adrian Cockcroft on the Challenges of Managing Microservices

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2015-06-29 06:371809
用户头像

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

关注

评论

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

Github访问量过百万!阿里内部至尊级分布式事务手册,实至名归!

Geek_0c76c3

Java 数据库 开源 程序员 开发

小程序该怎么挖掘App流量

Geek_99967b

小程序

非常好用统计接口耗时小工具,Java程序员强烈推荐

一灯架构

Java Java 面试 10月月更

详解MySQL之事务

C++后台开发

MySQL mysql事务 中间件 后端开发 C++开发

这道JS经典面试题不要背,今天带你彻底搞懂它!

茶无味的一天

JavaScript 面试

小程序插件其实很简单

Geek_99967b

小程序 小程序插件

openGauss 社区 2022 年 8 月运作报告

openGauss

实践GoF的设计模式:访问者模式

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

学会一行CSS即可提升页面滚动性能

茶无味的一天

CSS JavaScript chrome 前端 js

上海锡鼎正式加入openGauss社区

openGauss

Dubbo Mesh 总体技术架构方案

阿里巴巴云原生

阿里云 云原生 dubbo

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

威廉META

Mysql开发实践:加载共享库时出错:libaio解决方案

华为云开发者联盟

数据库 后端 企业号十月 PK 榜

2022最强Java面试八股文,大厂offer直通车(跳槽天花板就是你)

程序知音

java面试 后端技术 Java面试八股文 Java后端开发 后端架构开发

书单推荐|不惧复工,工作轻松

图灵教育

书单 复工

《软件开发的201个原则》思考:8.与客户/用户沟通

非晓为骁

个人成长 软件工程 软件开发201原则

5 分钟完成 ZooKeeper 数据迁移

阿里巴巴云原生

阿里云 微服务 云原生 MSE

OpenStack第26版Zed已发布

Geek_2d6073

开拓“流程智能蓝海”丨九科信息董事&产品VP傅恺受邀分享流程挖掘实践案例

九科Ninetech

AI RPA 数字化转型 企业服务 流程挖掘

Flowable 流程实例的挂起(暂停)与激活

江南一点雨

Java springboot workflow flowable

Java面试官:你能写个LRU缓存吗?

一灯架构

Java java面试 10月月更

Plan Stitch:一种使用缝合物理计划解决查询计划性能退化问题的方法

KaiwuDB

数据库 缝合物理计划 计划回退

浪潮信息成为龙蜥理事单位,共建开放计算生态和行业方案

OpenAnolis小助手

开源 操作系统 产业链 龙蜥社区 浪潮信息

对比传统数据仓库,实时数仓的四大优势

雨果

数据仓库 实时数仓

Spark数据倾斜解决

五分钟学大数据

大数据 spark 10月月更

书单推荐|不惧复工,工作轻松

图灵社区

书单 复工

Java8已经发布7年了,不会还有人没用过CompletableFuture吧

一灯架构

Java java面试 10月月更

读书笔记|妙趣横生的图灵奖获得者漫画

宇宙之一粟

读书笔记 漫画 10月月更 图灵

初学开发必看:何为Git,何为SVN

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

DeepRec 大规模稀疏模型训练推理引擎

阿里云大数据AI技术

深度学习 推理 稀疏模型 企业号十月 PK 榜

即将开营|报名获取跨平台与热更新技术操作秘籍!

字节跳动终端技术

flutter 移动开发 插件化 动态化 SDK热更新

  • 扫码添加小助手
    领取最新资料包
如何应对管理微服务所面临的挑战?_DevOps & 平台工程_João Miranda_InfoQ精选文章