Labs done for the Implementation and Maintenance of IT Systems course on WUT.
Prepare a bash script for deploying the Spring Petclinic application on Google Cloud Platform virtual machines, with Angular frontend and a mysql database.
Frontend repository: https://github.com/spring-petclinic/spring-petclinic-angular Backend repository: https://github.com/spring-petclinic/spring-petclinic-rest
Key objectives:
- the script should take care of building, setting up and running required applications on "clean" virtual machines
- the script must allow for parametrizing target machine and port number of each service
- particularly it must be possible to deploy all the components on a single VM as well as each component on a separate VM (or any other configuration)
- network traffic may remain unencrypted (HTTPS is not required)
- target machines can be specified using IP addresses or GCP hostnames
- the script should be readable, correctly structured etc.
Optional tasks:
- automatic tests of the application,
- storing credentials in GCP Secret Manager (https://cloud.google.com/secret-manager?hl=en_US)
The script should handle the following configurations:
Prepare an Ansible script for deploying the Spring Petclinic application on Google Cloud Platform virtual machines, with Angular frontend and a mysql database.
Frontend repository: https://github.com/spring-petclinic/spring-petclinic-angular Backend repository: https://github.com/spring-petclinic/spring-petclinic-rest
Key objectives:
- the script should take care of building, setting up and running required applications on "clean" virtual machines
- the script must allow for parametrizing target machine and port number of each service
- particularly it must be possible to deploy all the components on a single VM as well as each component on a separate VM (or any other configuration)
- network traffic may remain unencrypted (HTTPS is not required)
- target machines can be specified using IP addresses or GCP hostnames
- the script should be readable, correctly structured etc.
Optional tasks:
- automatic tests of the application,
- storing credentials in GCP Secret Manager (https://cloud.google.com/secret-manager?hl=en_US)
The script should handle the following configurations:
Install the cloud version of the Sprint Petclinic application using Google Kubernetes Engine.
Spring Petclinic Cloud repository: https://github.com/spring-petclinic/spring-petclinic-cloud
Key objectives:
- GKE should employ at least 2 nodes (not including the control plane).
- Each microservice listed below:
- customers-service
- vets-service
- visits-service should be set up on at least 2 pods. Each pod for a given microservice should reside on another node.
- Databases can be run on pods. Alternatively, you can use MySQL in the form of a managed service (GCP Cloud SQL).
- The load balancer can be implemented as the api-gateway microservice or you can use GKE Ingress for HTTP(S) Load.
- The following microservices can be omitted:
- admin-server
- config-server
- discovery-server
- Wavefront
Optional tasks:
- integration with GCP Cloud Monitoring and Cloud Logging for monitoring the state of microservices and browse logs generated by the application,
- configuring a CI/CD pipeline for building and deploying a new version of the application after each GitHub commit (potential solutions: https://cloud.google.com/docs/ci-cd)