- Java 11
- Maven
- Quarkus framework
- Docker
- Kubernetes
- Jib
- HTML/CSS/JS
- Weave Scope visualisation & monitoring tool
- PostgreSQL
- Flyway
- Start
minikube
with the following addons:
minikube start --addons registry, ingress
- Forward the image registry port:
kubectl port-forward --namespace kube-system registry-<id> 5000:5000
- Run the deployment script:
./minikube-deploy.sh
- Get
ngnix
IP fromADDRESS
column using:
kubectl get ingress -n custom
-
Map
customer.domain
to the IP provided by step above toetc/hosts
-
Access the application on
http://customer.domain
Beside master
branch you have 3 additional branches that represent 3 backward compatible database versions.
You need to split name column into two separate columns, first name and last name and to maintain backward compatibility with the previous version.
Migration version | Branch | State | What happens to the database? |
---|---|---|---|
V1.0 | demo/v1_starting_state | Starting | Create a customer table that contains an ID and a name |
V2.0 | demo/v2_expand_state | Expand | Append first_name and last_name column. Bidirectional synchronization using triggers between name and (first_name, last_name) |
V3.0 | demo/v3_contract_state | Contract | After all clients migrated to V2.0, in this state you can remove the old column name and also the synchronization triggers. |