The video is not an updated version that includes the AI chatbot (used open ai) for interactive response, general Q&A based on the database, and other questions. Due to safety issues, attempt to modify or harm database through AI chatbot is prevented.
- Set up a Kubernetes cluster on AWS using kOps with 1 control-plane and 3 worker nodes.
- Deploy a single MySQL server to handle both master and slave configurations.
- Monolithic version: Use
kubectl apply -f decurb.yamlandkubectl apply -f ingress.yamlto deploy the decurb application. - Access the decurb site using the AWS ELB URL.
- For multi-service architecture, stop the original deployment using
kubectl scale, then applydecurb-multi.yamlandingress-multi.yaml.
- Brian Seo: Kubernetes ingress configuration, JWT-based session architecture, MySQL read-write splitting, cart and order processing, Docker image publishing, cluster debugging, full-stack integration, and final video demo.
- Lucas Kim: Docker setup, static asset routing, test deployment pipeline, pod logging validation.
- Followed Murphy Movies "Docker" branch to build and verify decurb as a Docker image.
- Created two images:
decurb-login: handles user authentication and sessiondecurb-movies: handles browsing, search, cart, checkout
- Docker images pushed to Docker Hub:
bseo97/decurb-login:v3bseo97/decurb-movies:v3
- Created Kubernetes cluster on AWS using
kOps. - Cluster consisted of 1 control-plane and 3 worker nodes.
- Verified cluster status using
kops get allandkubectl get nodes.
- Wrote
decurb.yamlandingress.yamlto deploy decurb application. - Moved MySQL database into the cluster using StatefulSet (MySQL master + slave).
- Verified:
- Functional login
- Movie browsing and search
- Cart and order placement
- Confirmed sales data was inserted into MySQL by querying the database from within a pod.
- Split the decurb app into two services:
/api/login,/api/logout,/api/session-check→decurb-login- All other
/api/...and static files →decurb-movies
- Used Maven multi-profile system to compile separate
.warfiles. - Wrote
decurb-multi.yamlandingress-multi.yaml:- Set Ingress rules to route requests to the appropriate service
- Configured session stickiness using cookies
- Verified:
- JWT cookie is issued and stored on login
- Requests to
/api/loginare handled by login pod - Other endpoints (search, browse, cart, place order) handled by movie pods
- Logs confirm correct routing per service
Dockerfiledecurb.yamlingress.yamlpom.xml
Dockerfiledecurb-multi.yamlingress-multi.yamlpom.xml
- AWS EC2 cluster setup shown (control + worker nodes)
- Docker Hub with both images verified
kops get allandkubectl get allexecuted- Application tested end-to-end:
- User login
- Movie search and add to cart
- Checkout and DB insertion confirmed via
kubectl exec mysql-secondary-0
- JWT verified in browser cookies
- Multi-service routing confirmed by analyzing pod logs
- ELB URL from Ingress remains consistent between single-service and multi-service deployments.
- Cluster and resources were removed after demo to prevent charges.
- HTTPS and reCAPTCHA were considered optional and were not included.