审校 | 孙淑娟
什么是微服务目录?
微服务目录是放置企业构建和部署的所有不同服务的管理平台。这一单一的管理平台让企业可以查看有哪些应用程序、这些应用程序的源代码在哪里以及它们如何部署。该目录还可能含有其他许多类型的数据,可以集中起来呈现整体视图。
企业可以调整目录,以适应多项服务需要的任何类型的关键数据。目录还可以帮助其他开发人员发现已发布的内容。比如说,假设贵企业部署了身份验证系统。为了让其他开发人员发现该服务,并使用它公开的任何API,要有一个地方可供他们搜索,找到该服务及开发者文档那就好了。如果目录含有示例及其他有用信息,让开发人员可以使用该服务快速入手,那就更好了。目的是确保开发人员或其他任何人都可以在此处搜索、查找和使用贵企业构建的所有内容。
本企业需要微服务目录吗?
哪些迹象表明贵企业需要微服务目录?一个明确的迹象是,开发人员是否经常索要信息。他们不知道去哪里查找数据或流程,只好问其他开发人员要找的内容在哪里。这个信号表明要有所有开发人员都可以用来搜索答案的目录,而不是因为目录可以解答的问题而打扰其他人。
另一个清晰的信号是,贵企业正快速发展,团队数量也迅速增加,沟通渠道随之急剧增多。这不是一种可持续的状态,因为沟通会变得越来越困难。相反,为员工提供一种工具来帮助简化部分沟通渠道将大有助益。
微服务目录可以帮助企业处理其中一些沟通问题,那是由于它含有对每项服务都有用的文档。它还可以是自助式的,那样人们可以浏览并找到所需的答案,无需有劳其他同事。它使人们能够在需要时找到所需的信息。
另一个清晰的信号是,企业最终拥有足够多的服务,一名员工无法合理地跟踪所有服务。这是较模糊的指标,取决于贵企业在做什么。如果贵企业有多条产品线,需要不止一个人来解释发生了什么,是时候开始创建微服务目录以跟踪所有内容了。
在微服务目录中放些什么?
不妨概述一下微服务目录的几个用例:
- 可以为部署的那种服务或应用程序显示信息的单一网站。
- 指向源代码和开发者文档的链接。
- API用例的链接和端点链接。
- 示例用法的链接。
- 生产系统方面的信息和链接。
- 生产系统性能方面的统计数据。
- 将那些服务或应用程序推送到生产环境的构建系统的链接。
- 团队中任何人可能觉得对使用贵公司的服务有帮助的任何其他内容。
这种产品有诸多好的用例。它让人们可以回答自己的问题。该产品可能一开始很小,但公司可以提供快速添加信息的功能。而且,公司还允许使用其他信息源来扩展。这个工具很快会对贵公司变得非常宝贵。
最终目标是在微服务目录获得尽可能多的有用信息。这将需要时间和信息甄选。企业会发现一些数据比其他数据更有价值。最后,企业可以精准地了解人们实际需要什么数据。
有哪些有效的做法可以遵循?
这种目录的一个重要特点是,使它们具有权威性和可扩展性。应确保这是系统任何部分的真实信息来源。除此之外,还应确保人们可以添加、更新甚至删除部分。
对于新企业而言,尽早开始使用微服务目录比较容易。一旦微服务目录成为已知的信息来源,随后会日益庞大。
大企业将不得不慢慢融入功能,直到获得大规模采用和使用,这并非易事。但重要的是从小处着手,让系统不断庞大。为开发人员部署到生产环境的所有内容列一份简单列表是个好的开始,然后将信息添加到人们经常寻找的每个可部署目录中。
将面临哪些挑战?
当贵企业已经决定使用微服务目录,有哪些阻碍因素呢?
这取决于贵企业在开发实践方面的成熟度。将任何新内容放入到那种环境中总是要费点工夫。由于是新内容,总会有采用的问题。首先,贵企业尝试在服务中找到通用数据。然后,尽量将信息放入到一个易于使用的地方。
下一个问题将是努力确保内容最新。在各种信息系统中,防止内容过时始终是一项重要的任务。确保成功需要规范和组织。有必要让内容易于更新或更改,让内容可以自动更新就更好了。如果系统中的大部分数据都是自动化的,那么没人需要照看它。但是系统的某些部分需要时不时手动管理。这需要规范,以确保信息准确无误。随着系统不断完善,但愿可以尽量减少手动工作。
What Is a Microservice Catalog and Why Do You Need One?,作者:Erik Lindblom