在设计单个服务或为新浪体育新闻编写一行代码之前,重要的是要清楚您要解决的问题以及要解决的最终状态。在Redox,这种最终状态采用了我们在创建新浪体育新闻环境时要遵循的原则列表的形式。
在Redox,我们要解决的主要问题是开发人员的生产力。我们对新浪体育新闻的所有其他好处感到很兴奋,但是老实说,如果不是为了获得我们期望的开发人员生产力所带来的收益,我们可能根本就没有开始过渡。
考虑到这一点,我们着手开发一套新浪体育新闻原则,同时牢记我们开发新浪体育新闻的方式应与我们作为一组小型团队的工作方式相匹配,同时继续满足我们产品的需求。
制定一套原则不一定是您坐下来写出来的东西。在开始对话之前,Redox的人员已完成以下操作:
- 读 构建新浪体育新闻 由萨姆·纽曼(Sam Newman)撰写(顺便读一读)
- 阅读有关的所有文章 新浪体育新闻
- 阅读有关马丁·福勒(Martin Fowler)关于新浪体育新闻的思想的重要内容 他的博客
- 在会议和大学参加了关于新浪体育新闻的多次演讲
- 观看了YouTube会议上的各种视频
- 和更多
没有人做过所有这些事情,但是作为一个团队,我们尽了最大的努力进行了研究。
经过大量的研究,我们开始了记录原则的过程。我第一时间写下了我想要的结果。一旦草拟了一份草案,我就吸引了大约5名工程师组成的小组,跨越了我们所拥有的不同小团队,然后我们讨论,编辑,添加和删除了清单中的内容,直到我们决定以下内容为止。
原则清单并非一成不变。相反,这是我们可以开始前进的方向。随着我们了解更多,我们可以根据需要进行调整。
现在,有了我们的原则,我们有3个主要的后续步骤在进行中。
- 我们正在开发一个脚手架项目,工程师可以使用该项目快速开始对新服务进行编码。
- 我们正在建立一个通信和身份验证框架,希望它可以使服务在保持安全的同时非常容易地进行通信
- 我们正在决定如何为所有服务组织代码。具体来说,我们正在研究是针对每种服务使用单一存储库还是使用单独的存储库。
在我们做出一些决定并进行一些学习之后,我们将在每个博客上发布博客文章。
综上所述,这是Redox当前的五项新浪体育新闻原则。
1.完全所有权
- 每个新浪体育新闻应由一个团队拥有
- 每个新浪体育新闻都应定义并拥有其工作所需的基础架构
2.内聚力强/耦合松散
在一起改变的事物保持在一起;新浪体育新闻应该是自治的。
- 每个新浪体育新闻应可独立部署/更改
- 每个新浪体育新闻应可独立扩展
- 一个新浪体育新闻中的故障不应与其他服务级联
- 每个新浪体育新闻都拥有自己的数据
3. API驱动
新浪体育新闻的内部实现应隐藏在开发人员友好的API之后。
- 通过平台不可知的API公开与新浪体育新闻的任何外部通信
- 每个API均应进行版本控制
- 每个API都应符合一组标准,以最大程度地减少新浪体育新闻之间的差异
4.可观察
由于许多服务一起工作,因此可观察性是关键。必须存在评估/监视系统和给定服务的运行状况的标准方法。
记录中 – 每个新浪体育新闻都应遵循记录数据的标准
- 应该有可能通过它命中的每个新浪体育新闻来跟踪请求
- 所有记录数据应在1个位置可见
监控方式 – 每个新浪体育新闻都应遵循监控标准
- 每个新浪体育新闻都应公开执行健康检查的标准路线
- 应该存在系统的整体视图,包括每个新浪体育新闻的运行状况
警示 – 每个新浪体育新闻应遵循警报标准
- 每个新浪体育新闻应以相同方式生成警报
- 应该有1个可以查看所有警报的位置
5.可发现的
有了很多服务,它’重要的是其他开发人员可以找到所需的服务,并迅速了解如何使用它们。
- 每个新浪体育新闻都应该有一个标准的位置和格式来记录它’s API
- 每个新浪体育新闻都应该有一个名称/描述,以描述其含义以及为什么要使用它
- 每个新浪体育新闻都应具有其他新浪体育新闻在其集群中定位的标准方法
因此,这些是我们的原则’有助于指导我们完成此过程。在接下来的几周内,我们’我们将看到他们如何参与我们的工作方式,如何制定决策,以及我们如何以更快的团队速度完成更出色的工作。
哦,如果您想帮助我们进行新浪体育新闻, 我们正在招聘!