如何在支持门户上显示不同环境中的项目

66次阅读
没有评论

问题描述

在多个同时进行的Java Web项目上工作,并在多个不同的QA环境中进行测试。用户希望在支持门户上显示哪个项目在哪个环境中,而不必一直手动更新。用户考虑通过对构建进行标记的方式,可以查询Tomcat或Linux服务器本身,并显示结果。标记可能是”August Release”、”Project 1″、”Project 2″等。用户想知道是否有人做过类似的事情,并寻求不同的选项。

解决方案

方案1

一种常见的做法是在每个微服务上提供一个/.well-known/info端点,然后返回一个包含相关信息的JSON负载。以下是一个示例JSON负载:

{
    "service_name": "token_exchange",
    "server_id": "RD1717628373",
    "commit_hash": "f72a28",
    "branch": "feature/content-security-policy",
    "version": "v2.8.12-f72a28-prerelease1",
    "dependencies": [
        {
            "id": "db",
            "type": "database",
            "endpoint": "db.mysite.com"
        },
        {
            "id": "service",
            "type": "microservice",
            "endpoint": "RD661872834"
        }
    ]
}

然后,可以使用定时任务和自定义仪表板查询所有已知的服务,并遍历依赖关系树以添加任何新添加的依赖项。

需要注意以下几点:
1. 制定标准:首先,需要在要报告的服务之间达成一致的标准,然后开始实施。当只有1%的服务实施了这种标准时,很难展示这种方法的价值。
2. 从小处开始:可以先创建一个命令行界面来查询服务。
3. 安全性:从信息安全的角度来看,这可能是一个攻击面,因此需要进行测试,并可能添加一些身份验证组件,并在生产环境中关闭它。

方案2

请注意以下操作注意版本差异及修改前做好备份。
另一种方法是使用脚本或工具来控制环境中的项目。可以编写一个脚本,通过查询Tomcat或Linux服务器来获取项目的信息,并将其显示在支持门户上。以下是一个简单的bash脚本示例:

#!/bin/bash
# 查询QA环境中的项目
echo "QA环境中的项目:"
ssh user@qa-server1 "cat /path/to/project/version/file"
ssh user@qa-server2 "cat /path/to/project/version/file"
ssh user@qa-server3 "cat /path/to/project/version/file"

在这个示例中,我们使用ssh命令连接到QA服务器,并通过cat命令读取项目版本文件的内容。然后,将结果显示在支持门户上。

需要注意以下几点:
1. 权限和安全性:确保脚本具有足够的权限来连接到QA服务器,并考虑安全性问题。
2. 脚本的灵活性:根据实际情况,可以根据需要修改脚本,以适应不同的环境和项目配置。

以上是两种常见的方法,可以根据实际需求选择适合的解决方案。

正文完