E5BD GitHub - anwerESS/udemy-microservices: Microservices With Spring, Docker, Kubernetes - Code Examples · GitHub
[go: up one dir, main page]

Skip to content

anwerESS/udemy-microservices

 
 

Repository files navigation

Master Microservices with Spring Boot, Docker, Kubernetes

Image

Learn how to create enterprise and production ready Microservices with Spring, Spring Cloud, Docker and Kubernetes.

Topics covered in the course

  • Section 1 - Introduction to Microservices Architecture
  • Section 2- Building microservices using Spring Boot
  • Section 3 - How do we right size our microservices & identify boundaries
  • Section 4 - Handle deployment, portability & scalability of microservices using Docker
  • Section 5 - Deep Dive on Cloud Native Apps & 15-Factor methodology
  • Section 6 - Configurations Management in Microservices
  • Section 7 - Using MySQL DBs inside microservices
  • Section 8 - Service Discovery & Service Registration in microservices
  • Section 9 - Gateway, Routing & Cross cutting concerns in Microservices
  • Section 10 - Making Microservices Resilient
  • Section 11 - Observability and monitoring of microservices
  • Section 12 - Microservices Security
  • Section 13 - Event Driven microservices using RabbitMQ,Spring Cloud Functions & Stream
  • Section 14 - Event Driven microservices using Kafka,Spring Cloud Functions & Stream
  • Section 15 - Container Orchestration using Kubernetes
  • Section 16 - Deep dive on Helm
  • Section 17 - Server-side service discovery and load balancing using Kubernetes
  • Section 18 - Deploying microservices into cloud K8s cluster
  • Section 19 - Introduction to K8s Ingress, Service Mesh (Istio) & mTLS
  • Section 20 - Congratulations & Thank You

Pre-requisite for the course

  • Good understanding on Java and Spring concepts
  • Basic understanding on SpringBoot & REST services is a bonus but not mandatory
  • Interest to learn and explore about Microservices

Important Links

Maven Commands Used in the Course

Maven Command Description
mvn clean install -Dmaven.test.skip=true To generate a JAR file inside the target folder, skipping tests.
mvn spring-boot:run To start a Spring Boot Maven project.
mvn spring-boot:build-image To generate a Docker image using Buildpacks (no Dockerfile needed).
mvn compile jib:dockerBuild To generate a Docker image using Google Jib (no Dockerfile needed).

Docker Commands Used in the Course

Docker Command Description
docker build . -t eazybytes/accounts:s4 To generate a Docker image based on a Dockerfile.
docker run -p 8080:8080 eazybytes/accounts:s4 To start a Docker container based on a given image.
docker images To list all the Docker images present in the Docker server.
docker image inspect image-id To display detailed image information for a given image ID.
docker image rm image-id To remove one or more images for given image IDs.
docker image push docker.io/eazybytes/accounts:s4 To push an image or a repository to a registry.
docker image pull docker.io/eazybytes/accounts:s4 To pull an image or a repository from a registry.
docker ps To show all running containers.
docker ps -a To show all containers, including running and stopped.
docker container start container-id To start one or more stopped containers.
docker container pause container-id To pause all processes within one or more containers.
docker container unpause container-id To unpause all processes within one or more containers.
docker container stop container-id To stop one or more running containers.
docker container kill container-id To kill one or more running containers instantly.
docker container restart container-id To restart one or more containers.
docker container inspect container-id To inspect all the details for a given container ID.
docker container logs container-id To fetch the logs of a given container ID.
docker container logs -f container-id To follow log output of a given container ID.
docker container rm container-id To remove one or more containers based on container IDs.
docker container prune To remove all stopped containers.
docker compose up To create and start containers based on a given Docker Compose file.
docker compose down To stop and remove containers.
docker compose start To start containers based on a given Docker Compose file.
docker compose down To stop the running containers.
docker run -p 3306:3306 --name accountsdb -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=accountsdb -d mysql To create a MySQL DB container.
docker run -p 6379:6379 --name eazyredis -d redis To create a Redis container.
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:22.0.3 start-dev To create a Keycloak container.

Apache Benchmark Command Used in the Course

Apache Benchmark Command Description
ab -n 10 -c 2 -v 3 http://localhost:8072/eazybank/cards/api/contact-info To perform load testing on an API by sending 10 requests.

Kubernetes Commands Used in the Course

Kubernetes Command Description
kubectl apply -f filename To create a deployment/service/configmap based on a given YAML file.
kubectl get all To get all the components inside your cluster.
kubectl get pods To get all the pod details inside your cluster.
kubectl get pod pod-id To get the details of a given pod ID.
kubectl describe pod pod-id To get more details of a given pod ID.
kubectl delete pod pod-id To delete a given pod from the cluster.
kubectl get services To get all the service details inside your cluster.
kubectl get service service-id To get the details of a given service ID.
kubectl describe service service-id To get more details of a given service ID.
kubectl get nodes To get all the node details inside your cluster.
kubectl get node node-id To get the details of a given node.
kubectl get replicasets To get all the replica set details inside your cluster.
kubectl get replicaset replicaset-id To get the details of a given replica set.
kubectl get deployments To get all the deployment details inside your cluster.
kubectl get deployment deployment-id To get the details of a given deployment.
kubectl get configmaps To get all the configmap details inside your cluster.
kubectl get configmap configmap-id To get the details of a given configmap.
kubectl get events --sort-by=.metadata.creationTimestamp To get all the events that occurred inside your cluster.
kubectl scale deployment accounts-deployment --replicas=1 To set the number of replicas for a deployment inside your cluster.
kubectl set image deployment gatewayserver-deployment gatewayserver=eazybytes/gatewayserver:s11 --record To set a new image for a deployment inside your cluster.
kubectl rollout history deployment gatewayserver-deployment To know the rollout history for a deployment inside your cluster.
kubectl rollout undo deployment gatewayserver-deployment --to-revision=1 To roll back to a given revision for a deployment inside your cluster.
kubectl get pvc To list the PVCs inside your cluster.
kubectl delete pvc data-happy-panda-mariadb-0 To delete a PVC inside your cluster.

Helm Commands Used in the Course

Helm Command Description
helm create [NAME] Create a default chart with the given name.
helm dependencies build To recompile the given Helm chart.
helm install [NAME] [CHART] Install the given Helm chart into a Kubernetes cluster.
helm upgrade [NAME] [CHART] Upgrade a specified release to a new version of a chart.
helm history [NAME] Display historical revisions for a given release.
helm rollback [NAME] [REVISION] Roll back a release to a previous revision.
helm uninstall [NAME] Uninstall all of the resources associated with a given release.
helm template [NAME] [CHART] Render chart templates locally along with the values.
helm list List all of the Helm releases inside a Kubernetes cluster.

About

Microservices With Spring, Docker, Kubernetes - Code Examples

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 81.3%
  • Smarty 18.7%
0