Skip to content

feature: legacy modernization demo fixture (infra, AWS footprint, discovery, CI, runbook) - #95

Open
devin-ai-integration[bot] wants to merge 6 commits into
masterfrom
devin/1790322206-modernization-demo-fixture
Open

devin-ai-integration[bot] wants to merge 6 commits into
masterfrom
devin/1790322206-modernization-demo-fixture

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Summary

Turns this repo into the legacy side of a Java 8/11 + Spring Boot 2.7 → Java 21 + Spring Boot 3 modernization demo. The code transform lives in the stacked plugin/migration PR; this PR is everything Devin verifies against.

App (legacy, kept on Boot 2.7.18 / javax / Java 11 runtime) — Topic becomes a JPA entity on Postgres (TopicRepository, TopicService with topicReport() → SELECT * FROM topic_report()), actuator on /manage with Prometheus, Hikari pool 20, ddl-auto=validate. 9 unit tests (./mvnw test green). Dockerfile pins ARG BASE_IMAGE=eclipse-temurin:11-jre.

infra/ (local / CI path) — compose stack on 172.28.0.0/24: CoreDNS (*.topics.internal), Postgres (schema + seed + topic_summary_v view + topic_report() function), reporting cron consumer of the view/function, nginx LB (/health → /manage/health/readiness, /manage/ denied, allowlist), firewall rules (8080 only), Prometheus + Grafana (provisioned 12-panel dashboard), secrets/ vault-stub (dev-only), terraform/ pinning the runtime image. Makefile: up/down/reset/smoke/baseline/loadtest/compare/verify. load/topics.js (k6) writes p50/p95/p99/rps/error-rate JSON; infra/scripts/compare_nfr.py gates against demo/BASELINE.json.

infra/aws/ (real-infra path) — Terraform: VPC + 2 public subnets, ALB → TG (hc=/manage/health/readiness :8080) → EC2 t3.small running the ECR image, ALB/app/db SGs (app admits only 8080 from ALB), private Route53 zone demo.internal, Secrets Manager secret with legacy key DB_PASSWORD, RDS Postgres 16 db.t4g.micro. Everything tagged Project=modernization-demo, Track=java, Owner=devin-demo. make aws-up / aws-baseline / aws-discover / aws-down (down verifies clean: 0 tagged resources remain). ≈ $0.08/h.

tools/discover/ — discover.py (boto3, read-only, by tag) walks ELBv2/TG/EC2/SG/Route53/Secrets Manager/RDS/ECR and emits demo/dependency-graph.{json,md,dot,png} with edges routes_to, health_checks, allows_ingress, resolves_to, reads_secret, connects_to_db, runs_image. diff.py compares the graph to what the checked-out code declares (JDK/base image, health path/port, secret key, DB contract, SG/DNS, pool/logging) and prints the impact matrix (exit 1 on drift).

demo/ — RUNBOOK.md (4 acts, Wiz-style Assess beat + Wiz GraphQL sidebar, cost), PLAYBOOK.md (Modernization Verify [v1], phased), VERIFY-REPORT-TEMPLATE.md, RESET.md, and real artifacts: BASELINE.json (local k6, p95 1.70 ms @ 2139 rps), BASELINE-aws.json (ALB, p95 78 ms @ 262 rps), dependency-graph.* discovered from the live AWS footprint. PLANTED-GAPS.md arrives with the stacked PR.

CI — .github/workflows/ci.yml: build+test (Java 21 toolchain), terraform validate, then compose up → health via nginx → smoke → make verify (k6 threshold gate). actionlint clean.

Devin-Org: engineering

Link to Devin session: https://app.devin.ai/sessions/352726bfd41244cca160f073ac24632e
Open in Devin Desktop: https://app.devin.ai/desktop/session/352726bfd41244cca160f073ac24632e?variant=devin


Devin Review

Status Commit
⚪ Not started —

Run Devin Review

Devin Review (Staging)

…/discover, CI, demo runbook

Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
@devin-ai-integration

Copy link
Copy Markdown
Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

devin-ai-integration Bot and others added 4 commits September 25, 2026 08:21
Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
…get up

Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
…mpact matrix

Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
…inated/deleted EC2 resources

Co-Authored-By: Ian Moritz <ian.moritz@cognition.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants