High-level Overview
Core Development Tools
Version Control
- Tool
-
Bitbucket (Git)
- Usage
-
-
All code is managed through https://coderepo.mobilehealth.va.gov.
-
We follow the Git Feature Branch Workflow branching strategy. See https://wiki.mobilehealth.va.gov/spaces/CKM/pages/227300892/NGSS+Development+SOP for more info.
-
Code reviews are mandatory before merging into the
mainbranch.
-
Build System
- Tool
-
Maven
- Usage
Dependency and Build Frameworks
-
Standardized common Maven configurations are defined to enable streamlined specification of project build requirements.
-
Standardized Maven Tile definitions configure Maven plugins that facilitate common file initialization, build and testing tasks.
Containerization
- Tool
-
Docker, Jib, Buildpacks
- Usage
-
-
All applications are containerized for consistency across environments.
-
Base images follow VA security and orgnaizational standards.
-
Images are stored in environment-specific private registries.
-
Deployment & Configuration Management
Kubernetes Orchestration
- Tool
-
Kubernetes
- Usage
-
-
Applications are deployed as Kubernetes workloads.
-
Standardized Kustomize-based manifests define resource configurations.
-
Application Standards & Best Practices
Coding Conventions
-
Follow Java coding conventions.
-
Use Mobile Framework-based configurations of various plugins to enforce code quality automatically on each build.
Build and Deployment Frameworks
-
Include dependencies and use parent POMs defined in Mobile Framework when possible.
-
Include NGSS Maven Tiles to manage required configurations and supplemental project files.
-
Use the standard Skaffold + Kustomize framework to define image build and Kubernetes deployment configuration.
-
Include the Skaffold Test Library to write integration tests that more fully test orchestration with other services.
Summary
This document provides an overview of our development architecture, highlighting the tools and conventions we follow. For more detailed information, refer to our internal documentation at https://wiki.mobilehealth.va.gov/spaces/CKM/pages/227300892/NGSS+Development+SOP.