-
Notifications
You must be signed in to change notification settings - Fork 1
Milestone 2
- Containerized all microservices with Docker
- Hosted Jenkins on Jetstream instance and setup CI/CD pipelines for Weather application
- Setup Kubernetes CLuster with 1 master node and 3 worker nodes in Jetstream cloud
- Hosted database on separate VM to make data persistent
- Used JMeter to perform load testing
We containerized all the microservices (UI, API-Gateway, User-Management, Session-Management, Model-Executor, Data-Post_process, Data-Retrieval). In addition to that, we created a Docker image for all the dependent components like zookeeper, Kafka and Databases. Using Jenkins and docker-compose, we created docker image files for all the application components and pushed it on the Docker hub.
DockerHub username: thertion12
DockerHub password: 123456789
Whenever there is a push in the development branch, Jenkins builds the docker images of the corresponding microservice branch and uploads the docker image file to Docker Hub.
For continuous integration and deployment tasks, we have used an open-source tool, Jenkins. Jenkins server is hosted on a Jetstream instance, so it is always available. Jenkins server is connected with the Github repository for source code. We have created pipelines that get trigger automatically after code commit in the GitHub repository. These pipelines are responsible for building the docker image, pushing it to the docker hub and deploying the Docker image on the Kubernetes cluster. You can check build status on the Jenkins server using following details.
Jenkins URL: http://149.165.168.216:8080/
Jenkins UserName: Blitzkrieg
Jenkins Password: Blitzkrieg
We used Kubernetes to deploy our application on the Kubernetes cluster. We created a cluster on the Jetstream cloud with 1 master and 3 worker nodes. we used kubectl magnum to create clusters and setup instances on the cloud. First, we created a cluster template and with the cluster template, we created the Kubernetes cluster. By using Kubernetes-deployment.yml For now, We have deployed 3 replicas for each microservice.
Note: We didn't find time to set up the Kubernetes dashboard on Jetstream instance, so please follow the below alternative.
To see Kubernetes dashboard, please refer below link to install kubectl on your local machine: https://kubernetes.io/docs/tasks/tools/install-kubectl/
Download the kubectl_secret folder from the GitHub repository. and update the absolute path of all dependent files in the config file.
Please run below command:
- export KUBECONFIG=<absolute path of the config file>
- kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
- kubectl proxy
Please hit the following URL in the browser and add a given token by selecting the token radio button.
URL: localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRhc2hib2FyZC1hZG1pbi1zYS10b2tlbi16Y2JkeCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tc2EiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJmODAxOTJlYy02YWZkLTExZWEtOTVkMC1mYTE2M2U4Njg3ZTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkYXNoYm9hcmQtYWRtaW4tc2EifQ.bukkXjG1VFztqN95ZcDLM48tIKe85WX73N3zm-ZBG5rW4-6aBARnPQLTDrcxEMqbY7z-ylcK9MSF2kffNf-WqyDb5LeXF4N0SuwHWLB9Ml2q_7vGm1QH6Kjv1lZpiFzdshcpqBqbDm310clA7HL8tbKw21GKfflCMR3GlrJY3CKOSIgnIeJy6mPH_eej0TndY-VZ1fhYfspIZPdgNqt8AWh8pA813v5q_r8ob6O0bbbaoVq0uJwb4eANoOH5yjCoz2NKZkFDrckCh_Yq9wHViAwoU0t8nVU3ymw9oMgE60Htz9i0zdDq5jvPwJi9iM94GzDklDKNLtGL6I2KwqZs5A
Using the Kubernetes dashboard, please check the fault-tolerance of the application by deleting one of the pods.
Please hit below URL to run the application: http://149.165.170.68:30007/