1

We work on multiple java web projects going on at the same time and those are all being tested on several different QA environments. I'd like to show on our support portal what projects are in what environments without having to manually update it all the time. I was thinking of some way to tag the builds so I could just query tomcat or those linux servers themselves and show the results. The tags would be something like "August Release", "Project 1", "Project 2", etc.. Has anyone done something similar? I'm looking for different options.

1 Answer 1

3

I've done this before, normally in the form of having a /.well-known/info endpoint available on every microservice that then returns a JSON payload with what's in it:

{
    "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"
        }
    ]
}

I then have a cron job and custom dashboard that queries all of the services that it knows about and then walks the dependency tree to add any newly added dependencies.

Considerations

  1. Agree a Standard - The first step is to agree on a standard across services that you want to report on, then get them implemented. It's hard to show the value of this kind of thing when only 1% of your estate implements it.
  2. Start Small - I created a command-line interface that went and queried it at first.
  3. Security - It could be an attack surface from an information security perspective, so test it and possibly add some authentication component to it and turn it off in production.
1
  • Thanks - We already have endpoints to display what packages and versions are installed so that's not an issue. For clarification, it's the same application installed among the various QA environments, so the same package names but with different versions. Different projects going live at different times and all must be merged back at some point but, while they are in testing, they will be in different environment.
    – DaveTX
    Jul 1, 2020 at 21:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.