Spring Boot 3 Microservices with Kubernetes and Angular Complete Course in 7 Hours

Поділитися
Вставка
  • Опубліковано 26 гру 2024

КОМЕНТАРІ • 144

  • @tasnimmeem1158
    @tasnimmeem1158 3 місяці тому +11

    Such quality content, that too for free? Unimaginable. I can't thank you enough. Not just techinal part, you cared enough to give us the context - unfathomable. God bless you

  • @vadimen181
    @vadimen181 4 місяці тому +16

    just finished the 1 year old version of this project, with some research that one still works, thanks for the update

    • @thatcoderguy3159
      @thatcoderguy3159 4 місяці тому

      Hey, can you please recommend one over the other? I'm confused about which one to start.

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому +5

      Why there is a confusion ? Start with the updated tutorial, I already mentioned in the comments that the old one is not update anymore.

    • @thatcoderguy3159
      @thatcoderguy3159 4 місяці тому

      @@ProgrammingTechie Thank you, I'll reply back when done :)

    • @medamineelyakhloufi6933
      @medamineelyakhloufi6933 2 місяці тому

      @@thatcoderguy3159 are you done with the project ?

  • @ajinzrathod
    @ajinzrathod 14 днів тому +1

    I am at 4:55:04 of the video and I learned so many things. Circuit Breaker Pattern, Flyway, OpenFeign, Swagger, Kafka and what not !! Lot of love, my friend 💕

    • @syedfawzulazim1657
      @syedfawzulazim1657 День тому

      Are you coding along with the video? I am stuck at 4:47:00 kafka consumer giving error for some reason.

  • @jayaprasadviswanathan4378
    @jayaprasadviswanathan4378 4 місяці тому +12

    There is nothing like this under the sun. great work.

  • @mayankyadav6634
    @mayankyadav6634 Місяць тому +2

    Thank you so much for this tutorial! It’s easy to understand, simple to follow, and covers all the essential topics for free. I have a huge respect for your hard work.

  • @sudeephegde-c2h
    @sudeephegde-c2h День тому +1

    Hi Sai,
    excellent content , you have covered everything which is actually according to industry standard and production grade (logging, containerizing, kubernetes deployment, centralized logging and so on..)
    Just wanted to understand , why do we even need api gateway, we can infact define an ingress and define routing to different services via ingress instead of using api gateway (offcourse we have also implemented circuit breaker within api gateway which is required for production grade application, but api-gateway also increases the complexity from my point of view, this can also be implemented at ingress level by using advanced ingress contrller: NGNIX or Traefic etc...).
    By the way excellent content, :)....

  • @manikannan-w2v
    @manikannan-w2v 4 місяці тому +5

    Thank you so much. You covered everything I expected regarding the use of microservice architecture with different kinds of databases. Thanks a lot.

  • @akhilguptavibrantjava
    @akhilguptavibrantjava 3 місяці тому +4

    A Gem of tutorial. Really appreciate you for your good work

  • @alfredochola5971
    @alfredochola5971 3 місяці тому +2

    wow. u r such a great teacher sir. keep it up. May God bless u

  • @adityaupadhyay3264
    @adityaupadhyay3264 3 місяці тому +2

    Fantastic course! The part where you explained microservice communication and API gateways was incredibly insightful.

  • @azadkaya-e1q
    @azadkaya-e1q 3 місяці тому +3

    Thank you so much for this course.

  • @jelenvonkrmelec6305
    @jelenvonkrmelec6305 3 місяці тому +3

    Thank for the course, it is really helpul. I noticed the code could be improved with these suggestions:
    1) Make quantity non static:
    When placing the Order there is a check to Inventory how many items are available. But the quantity is not updated after placing that order so the Order could be placed indefinitely.
    Solution:
    Update that Inventory.Quantity using already existing kafka event "order-event" in Inventory Service listening for that event.
    2) Make Quantity visible to user in Products UI:
    User does not know if the Product is available or not in the UI and can purchase not available product.
    Sulution:
    Duplicating the quantity to Product directly in the beginning using migration DB scripts (same quentity as in Inventory) and then updating that value by listening for the order-event also.
    What do you think?
    Thanks again for this course!

    • @ProgrammingTechie
      @ProgrammingTechie  3 місяці тому +4

      Thanks for the valid suggestions, I wanted to only develop the application functionality that's bare minimum to explore the topics related to the tutorial.
      Of course there are lots of improvements we can do regarding the functionality.

  • @omerfarukulusoy5098
    @omerfarukulusoy5098 3 місяці тому +1

    What a lesson ! , Thanks for everything 🙏

  • @jpmottin
    @jpmottin 2 години тому

    Incredible ❤🎉

  • @enzokenza7860
    @enzokenza7860 4 місяці тому +1

    Merci pour ce chef d'oeuvre

  • @CookieShreds
    @CookieShreds 3 місяці тому +5

    Really great course which covers a lot of technologies and how they fit into the big picture!
    Of couse if it included more complex business logic it would be just too long, so this is for the best.
    Do you have any plans for the future?
    Dont want to sound rude/ungrateful but here are some ideas:
    -Something leveraging GraphQL or WebSockets would be great for APIs
    -Redis and ElasticSearch regarding data
    -AWS + cloud agnostic tools like Github Actions and Terraform.

    • @letstrysomethingnew4808
      @letstrysomethingnew4808 3 місяці тому

      Yes these are great topics. This would be helpful for us individuals who are starting their careers. Please, waiting for another great project like this.

  • @davidmbaimbai440
    @davidmbaimbai440 4 місяці тому +3

    The course is great

  • @nithishkumarramasamy9985
    @nithishkumarramasamy9985 3 місяці тому +2

    Will this Project is enough for to mention in my resume for 2years of experience in IT industry ? all session are great !!!!!!

  • @user-nh9kr2kg8e
    @user-nh9kr2kg8e 4 місяці тому +2

    I have followed several courses on microservices and I have seen that they define a microservice with the name config-server to centralize the configuration of the other microservices and also define another microservice for eureka server.
    Could you explain me why you didn't make use of them? or in which cases they should be used and when not ?
    Thank you so much, I have learned a lot with this tutorial. Great work! 🥳

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому +11

      Eureka Server and Config Server can be used when you are not using Kubernetes.
      But when you are using Kubernetes both those features are not useful anymore because Kubernetes provides us service discovery out if the box and also it supports centralized configuration through Config Maps.
      So there is no need to do that for our project.

  • @user-xl1zh2os2d
    @user-xl1zh2os2d 22 дні тому

    excellent tutorial thank you very much

  • @ujjawal-m9g
    @ujjawal-m9g 2 місяці тому +2

    Awesome Project !!!

  • @nunoaparicio4426
    @nunoaparicio4426 2 місяці тому

    2 questions:
    1 - API gateway is the entry point for all microservices, so it's dealing with authentication. Should the other microservices also be secured and validate the token against the auth server?
    2 - How to deal with userId's? Should we use keycloaks userId we get from the token and use like a foreign key in other service databases, like usually (eg: user courses/books/whatever)?

    • @ProgrammingTechie
      @ProgrammingTechie  2 місяці тому +2

      1. Ideally yes, but in this setup I choose to not go with that option that would complicate the project a lot.
      2. Yes that's right.

    • @girishanker3796
      @girishanker3796 2 місяці тому

      @@ProgrammingTechie What if we use a service mesh?

  • @othmanedarhoni2833
    @othmanedarhoni2833 3 місяці тому +3

    I have a question about the error you encountered at 28:18. I changed the MongoDB URI in application.properties, but I'm still getting 'Authentication failed'

    • @nuranranawaka1451
      @nuranranawaka1451 2 місяці тому +2

      hi. I faced the same issue. 'docker logs mongodb' command shows access control is not enabled. So, it should work without the authorization credentials.

    • @nileshgautam7708
      @nileshgautam7708 2 місяці тому

      @@nuranranawaka1451 hii, try this 1. docker compose down -v 2. delete the data folder from product-service 3. run docker compose up -d , it worked for me

    • @ASHISHCHOWDHARY-y2k
      @ASHISHCHOWDHARY-y2k 27 днів тому

      I'm facing the same issue. How did u fix the issue?

    • @ArKus9
      @ArKus9 20 днів тому

      If you have MongoDB installed locally, change the following in your docker-compose.yml:ports:- "27018:27017" And update the property in your configuration: spring.data.mongodb.uri=mongodb://root:password@localhost:27018/product-service?authSource=admin

  • @amankumbhalwar
    @amankumbhalwar Місяць тому +1

    This video is very helpful. I am a 2023 graduate and I am depressed because I can't find a job. This video has given me hope that I can learn Spring and Spring Boot and get my first job.

  • @huyvan9242
    @huyvan9242 4 місяці тому +2

    Great course. Can you provide a roadmap for a java developer?😅😛

  • @dses6611
    @dses6611 4 місяці тому

    if anyone had "No migrations found. Are your locations set up correctly? " issue, make sure to uncheck IDEA Tree Appearance -> Compact Middle Packages to differentiate db.migration and db/migration folder, db/migration is the correct folder structure we want

  • @nithishkumarramasamy9985
    @nithishkumarramasamy9985 3 місяці тому

    Sir Please make video for Kafka Separately - you lectures are awesome

  • @KeshavSingh-h6u
    @KeshavSingh-h6u 4 місяці тому

    Hi, can you do one more thing? Can you create a lecture on database replication in a master-slave architecture?

  • @nadetdevfullstack7041
    @nadetdevfullstack7041 Місяць тому

    Excellent

  • @AlauddinTuhin-t7z
    @AlauddinTuhin-t7z 3 місяці тому

    you have skipped lots of time, 5:23:06 how did you get the folder 'prometheus' inside docker folder?

  • @rishiraj2548
    @rishiraj2548 4 місяці тому +1

    Jabar thanks

  • @KeshavSingh-r9d
    @KeshavSingh-r9d 4 місяці тому +1

    can u create one video for database replication like in mysql we have master slave architecture

  • @amirem9744
    @amirem9744 3 місяці тому +1

    thanks for your responses. I cloned the angular project you implemented for front-end but in the header-component.html the @if and @else seem to be not recognised as the isAuthenticated method can not be called. The error is : Unterminated expansion form. If you have unescaped '{', use '{{ "{" }}' to escape it. which I think might be related to angular 17. if you know the issue, please let us know

  • @nothing-ic9fz
    @nothing-ic9fz 3 місяці тому

    thank you sir

  • @VeselinNikolaev-g7z
    @VeselinNikolaev-g7z 20 днів тому

    In the previous tutorial you used eureka discovery server, is it a good practice to use it in this project?

  • @creatorjourney-k6d
    @creatorjourney-k6d 4 місяці тому +2

    i don't see any link to spring data mongodb course link, can someone please share the video link?

  • @kirankumarhm2004
    @kirankumarhm2004 2 місяці тому

    Great video, Can you explain the same example with jeager instead of zipkin. Also I am facing an error with security config with spring parent version 3.3.4

  • @Vivekanand-co9ls
    @Vivekanand-co9ls 13 днів тому

    You had used Eureka for service-discovery in older version of this project. Why it is not used in newer one. Please Explain?

    • @darkjo4335
      @darkjo4335 День тому

      Hello, because the deployment is on kubernetes now, and kubernetes provides a service discovery feature out of the box, and so it will be redundant to have also Eureka. I suggest to read some articles on client side discovery and server side discovery. Eureka is an client side discovery while kubernetes provides server side discovery with Service Object

  • @hieuvanchi2057
    @hieuvanchi2057 4 місяці тому

    In the future, can you do projects with reactjs frontend technology?

  • @QuickCodeClips
    @QuickCodeClips 4 місяці тому

    Hi, Thanks for the making the video. Can we run manually all service on the dedicated port before we can start the testing on the frontend and what is the main use-case of the kind folder configurations?

  • @saranshvats3833
    @saranshvats3833 3 місяці тому

    Hey, I was trying to use modelmapper, but came to know that it requires a no args constructor and record does not provide that, what is the best alternative for this scenario or we have to map them manually all the time? Btw great content, loving it. THANK YOU ❤

  • @sumithhh9379
    @sumithhh9379 3 місяці тому

    Getting this eoor in order service in postman
    500 Internal Server Error
    tables are created in MySQL.

  • @girishanker3796
    @girishanker3796 2 місяці тому +1

    Wow...All this for free🏆🥇💙Thank you

  • @NixonMoreno
    @NixonMoreno 2 місяці тому

    Great course, but I have a question, is it possible to implement the gateway with the discovery server from the previous course ? Thank you very much !

    • @ProgrammingTechie
      @ProgrammingTechie  2 місяці тому +1

      Yes, but it's not needed, service discovery is handled by Kubernetes

  • @unknown-wz7xt
    @unknown-wz7xt 3 місяці тому

    Where is the code related to authentication and authorization ? where is the service and controller for the user ? I need to understand how this works in microservices when each user has access only to their products, orders, etc.

  • @amirem9744
    @amirem9744 3 місяці тому

    could you please explain why in this video you defined route class for implementing API Gateway, but another video implement it via application properties? for which
    purpose each one is used?

    • @ProgrammingTechie
      @ProgrammingTechie  3 місяці тому +1

      I am using Spring Cloud Gateway MVC in this video, there are some configurations missing in the MVC variant that's why I had to use the Java Config in this video.
      The previous tutorial I was using Spring Cloud Gateway that is based on Spring We flux, this project is more mature and provides all configuration through properties config.

  • @kavitapatil9509
    @kavitapatil9509 4 місяці тому +1

    can you please increase your ide font little bit

  • @virginvergil
    @virginvergil 16 днів тому

    i have a problem with the swagger ui, i get a whitelabel after adding springdoc and path to the app properties

  • @jelenvonkrmelec6305
    @jelenvonkrmelec6305 4 місяці тому

    I love your tutorial, however for simplicity I suppose Product Service and Order Service are sharing same mysql databse which should be separated by microservices principles. Am I right? Thank you for our hard work!

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому +1

      Hello,
      They are not sharing the same database, but the same cluster, so this is still fine for our sample application.

    • @jelenvonkrmelec6305
      @jelenvonkrmelec6305 4 місяці тому

      @@ProgrammingTechie Thank you! I figured you can have the same instance of a database but have different database names, which is perfectly fine!

  • @ranaaditya7960
    @ranaaditya7960 Місяць тому

    Thank you so much for this tutorial! It was really helpful.
    I need assistance with my Angular project. I'm encountering a CORS error and a 401 status when calling the add product API within Angular, even though the same request works perfectly in Postman.
    Could anyone help me resolve this? I’m not very familiar with Angular.js.
    Thanks again for this wonderful tutorial !!

  • @kevinmugiira7517
    @kevinmugiira7517 3 місяці тому +1

    Great course however, next time could you please zoom in more and have the code more magnified. Squinting to see the code is quite hard.

  • @godad1806
    @godad1806 4 місяці тому +1

    Next time please zoom the ide, because it is less visible

  • @alagaralagarraj
    @alagaralagarraj 5 днів тому

    why do we add docker-compose file, then add docker file with same info to build docker image, and repeat the info for k8s on manifest folder? It seems repeat of information, any option to avoid it or am I missing something?

    • @ProgrammingTechie
      @ProgrammingTechie  5 днів тому

      You are confusing the responsibilities of docker file, docker compose and kubernetes, docker file contains set of instructions on how to build the image.
      Docker compose and kubernetes are used to run/orchestrate multiple docker containers

  • @mendaxassange4465
    @mendaxassange4465 2 місяці тому

    Wrong info.
    In openfeign when you are creating interface You have to match the signature of the controller where you are going to do the request

  • @AlmustaphaTukurUmar
    @AlmustaphaTukurUmar 3 місяці тому

    Hi, thank you so much for the course-it's been really helpful! 😊 However, I noticed that user details are being sent from the frontend instead of fetching the current user details at the service level. Is there a way to achieve that on the backend?

    • @ProgrammingTechie
      @ProgrammingTechie  3 місяці тому +1

      You can use Id token instead of access tokens and then the user information will be available in the backend.
      You will have to forward the id token to order service and read the token details to accomplish this, that means you have to enable security in the services.

  • @davidmbaimbai440
    @davidmbaimbai440 4 місяці тому

    Would you mind adding card payment on the project

  • @Krishnadevaraya1
    @Krishnadevaraya1 4 місяці тому

    nice

  • @vatsalsrivastava4001
    @vatsalsrivastava4001 3 місяці тому

    Hello just a quick question.
    Do i need to make Interface for every class like service,dto.etc and then make an implementation. I am going to use this project in my resume so kindly reply.

  • @d33bo67
    @d33bo67 18 днів тому

    hello, thank you for the content. any idea why I keep getting this error:
    [ERROR] Resolving expression: '${dockerPassword}': Detected the following recursive expression cycle in 'dockerPassword': [dockerPassword] @

  • @shindeajinkya2506
    @shindeajinkya2506 4 місяці тому

    what changes i need to make if i want to use React Js for front end , can you please suggest
    ?
    Thanks for the amazing course :)

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому

      No Changes needed on the backend side, you need to port all the functionality of angular to Reactjs

  • @Asingh42
    @Asingh42 3 місяці тому

    Hello I am here to learn to dockerize and use kubernates for my microservice project is this course updated?

  • @stranger-zt2ee
    @stranger-zt2ee 2 місяці тому

    This course was really helpful

  • @bruvhellnah
    @bruvhellnah 4 місяці тому

    Hi. What are the prerequisites for this course? I just finished core java, do i need to know the basics of spring boot or would core java suffice? Thank you!

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому

      You need to have good understanding of Spring Boot.
      Learn Spring Boot get some experience working with spring Boot, do some projects and start with the tutorial.
      The prerequisites are mentioned in the 1st 10 seconds of the video.

  • @goodcourseavailable
    @goodcourseavailable 3 місяці тому

    🎉🎉🎉🎉🎉🎉🎉🎉
    Please
    Stripe payment gateway integration in spring boot

  • @JayShah_._._
    @JayShah_._._ 3 місяці тому

    Can we have a video where this is deployed somewhere ?

    • @mineshbhatiya4941
      @mineshbhatiya4941 2 місяці тому

      I am deploying it on Azure VM, close to finishing it. Please check back in 1-2 days, I should be able to provide the guidance.

  • @creatorjourney-k6d
    @creatorjourney-k6d 3 місяці тому

    how does Angular get the token without specifying the client secret from keycloak, where is the secret mentioned in angular app?

    • @ProgrammingTechie
      @ProgrammingTechie  3 місяці тому +1

      It uses Authorization code PKCE to get the token, you can check my Spring Boot Keycloak video to learn more about it

  • @ShantanuSP
    @ShantanuSP 3 місяці тому

    Can we have all 3 services in single repo?

  • @revanthtalluri919
    @revanthtalluri919 3 місяці тому

    Can someone tell me how and where dbs are created while using this docker, idk much about docker things

  • @csepradeepv6895
    @csepradeepv6895 2 місяці тому

    i am getting this error when i try to start docker mysql --> Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
    PS C:\Users\codec\Documents\microservices-app\order-service>

  • @abderrahmenhelaoui6511
    @abderrahmenhelaoui6511 Місяць тому

    i can't connect to mongodb database with root, passwod credantials

  • @audreybetine9708
    @audreybetine9708 3 місяці тому

    hello, is distributed tracing implemented here

  • @marcinmilczek5255
    @marcinmilczek5255 2 місяці тому +2

    Chaos, chaos, chaos...

  • @SurajKumar-l8d8y
    @SurajKumar-l8d8y 4 місяці тому

    Is this one the paid one that was about to be released ?

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому

      No, the paid course will be a completely different course and has more topics covered

    • @SurajKumar-l8d8y
      @SurajKumar-l8d8y 4 місяці тому +1

      @@ProgrammingTechie when its coming out, its been 3 months no update

    • @hieuvanchi2057
      @hieuvanchi2057 4 місяці тому

      @@ProgrammingTechie
      I hope you will do the frontend technology which is reactjs, thank you very much for the course

  • @shreygarg7985
    @shreygarg7985 5 днів тому

    can anybody pls clear one thing for me,i dont understand why we are not using autowire to inject dependencies and just using constructors?sorry i am a little new to spring boot and on other tutorials i have seen them using autowire.

    • @ProgrammingTechie
      @ProgrammingTechie  5 днів тому

      Constructor injection is a preferred way to inject the dependencies.
      It's hard to explain it in the comments now, I would suggest to Google this topic there are many great resources explaining this concept.

  • @shashwatpandey6446
    @shashwatpandey6446 3 місяці тому

    can a person with no or little knowledge on the tech stack see this video and still learn all the process in detail??

  • @sovanbanerjee7079
    @sovanbanerjee7079 4 місяці тому +1

    First Comment 😊

  • @methildac3759
    @methildac3759 3 місяці тому

    Hi,
    i tried creating this project with spring latest version 3.3.3 as of now. and my build failed. any idea?
    PS: it worked with 3.2.9

  • @meet5970
    @meet5970 4 місяці тому

    please help i dont understand how the services are protected with such security as shown in the video as only the gateway will be protected but if we use services port directly then there are not protected

    • @ProgrammingTechie
      @ProgrammingTechie  4 місяці тому

      The services inside Kubernetes cannot be accessed from outside as they are using ClusterIP, so it's fine if we just secure the API gateway which is the entry point of the system.
      Securing each and every service can also be done but that will complicate the project without any additional learnings, that's why I chose to go with this approach

    • @maheshbabusurepalli653
      @maheshbabusurepalli653 4 місяці тому

      @@ProgrammingTechie How to implement RBAC(Role based access control) if we delegate authentication and authorization to gateway?

  • @nithishkumarramasamy9985
    @nithishkumarramasamy9985 4 місяці тому

    @ProgrammingTechie please tell why am i getting error for Product.builder()

    • @dankyt9249
      @dankyt9249 3 місяці тому

      use @Builder annotation in Product model class

  • @ionguzun3952
    @ionguzun3952 4 місяці тому

    Is this a reupload??

  • @nithishkumarramasamy9985
    @nithishkumarramasamy9985 4 місяці тому

    Someone please tell me am getting error while using @Builder and for that builder in service createProduct method
    Product product = Product.builder() error here it is not reconigsing am using Intelliji 2024 version

    • @syedfawzulazim1657
      @syedfawzulazim1657 2 дні тому

      pls go to the settings -> build -> compiler -> annotation processors -> select obtain processors from project classpath || this fixes the issue

  • @defrankline
    @defrankline 4 місяці тому

    am getting CORS issues for some reason. any help good people?

    • @dses6611
      @dses6611 4 місяці тому

      Same here after clicked Add Product in the Add Product Page

    • @kishorekumarmenda7199
      @kishorekumarmenda7199 3 місяці тому

      Same here after registering with a new user? did you find the solution?

    • @r__2__r
      @r__2__r 3 місяці тому

      Same issue. Have you solved?

    • @r__2__r
      @r__2__r 3 місяці тому

      @@kishorekumarmenda7199, ​ @dses6611 i've solved btw. still need a help?

  • @manoharbaisani4189
    @manoharbaisani4189 4 місяці тому

    Completed total 13 video s???

  • @Krishnadevaraya1
    @Krishnadevaraya1 4 місяці тому

    bro teluga nuvvu

  • @xsamuelx3603
    @xsamuelx3603 5 днів тому +1

    : )

  • @samipdave1589
    @samipdave1589 3 місяці тому +1

    Amazing project sir , have not seen such content on youtube with up to end explaination..
    and thank you too for dockerize it and deploy it on k8s.
    Biggggg Salute to you 🙏🙏🙏🙏

  • @aditripathi8385
    @aditripathi8385 Місяць тому

    Thank you sir

  • @KeshavSingh-h6u
    @KeshavSingh-h6u 4 місяці тому

    Hi, can you do one more thing? Can you create a lecture on database replication in a master-slave architecture?

    • @neoflyboy
      @neoflyboy 3 місяці тому +2

      he is not your secretary. You don't even say thanks but you ask for more? You sound ungrateful and unprofessional.