Microservices in Go • Matt Heath • GOTO 2016

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ม.ค. 2025

ความคิดเห็น • 25

  • @RiwenX
    @RiwenX 3 ปีที่แล้ว +7

    Almost 5 years later, this still holds up. Great talk!

  • @rnkl0707
    @rnkl0707 2 ปีที่แล้ว +1

    Great talk. Nice explanation. Go is such a powerful language.

  • @adrianplavka2834
    @adrianplavka2834 7 ปีที่แล้ว +8

    Great presentation, could listen to this guy for hours.

  • @VitalyZdanevich
    @VitalyZdanevich 3 ปีที่แล้ว +2

    Thank you for dark background of the slides.

  • @ornous
    @ornous 8 ปีที่แล้ว +5

    very nice talk! I'm going through some of these things myself and it's nice to see what people who are further along have done.

  • @erikdunteman5081
    @erikdunteman5081 4 ปีที่แล้ว +2

    As a fellow r/hydrohomie, I respect this man.

  • @vectorhacker-r2
    @vectorhacker-r2 7 ปีที่แล้ว +16

    I personally would love to know how they structure their repositories for microservices, wether it's one repo per service or a large monorepo, how they structure the codebase for each, etc.

    • @Fingiorstyle
      @Fingiorstyle 6 ปีที่แล้ว +5

      Share the repositories is not a good practice. Imagine a company with 15 developers, the amount of commits is big every hour, so everytime a dev needs to push something, it needs to do a git pull. That's one of the problems that microservices solves gracefully. Each microservice having it's own repo, turns easy to track progress and scale each one.

    • @vectorhacker-r2
      @vectorhacker-r2 6 ปีที่แล้ว +11

      I DMd to Matt over twitter and he told me that they're using a monorepo.

    • @MrJord137
      @MrJord137 6 ปีที่แล้ว +8

      @@vectorhacker-r2 awkward lmao

    • @trentmurray2467
      @trentmurray2467 3 ปีที่แล้ว +2

      @@Fingiorstyle Google uses a monorepo across their entire code base.

    • @jorisjansen2892
      @jorisjansen2892 2 ปีที่แล้ว

      @@trentmurray2467 You can do both, but if you develop microservices in a mono-repo, it will take much more effort by your devops teams to manage everything seperatly. Since a PR against UserMicroService does not mean that the TransactionMicroService needs run all the tests cases (just an example).

  • @jeremyduff4444
    @jeremyduff4444 8 ปีที่แล้ว +6

    great to see go being used in a finance sector app

  • @SoGoodToKnow
    @SoGoodToKnow 7 ปีที่แล้ว +1

    Thank you. Perfect Talk.

  • @farahali9636
    @farahali9636 8 ปีที่แล้ว +1

    great presentation.

  • @OyelajaOyekan
    @OyelajaOyekan 3 ปีที่แล้ว

    I'd never have thought to use a bool flag for card status, smart and simple. I'd probably have over engineered it.

  • @pilkers745
    @pilkers745 8 ปีที่แล้ว

    doesn't linkerd use zipkin and do tracing for u?

  • @chuganator
    @chuganator 4 ปีที่แล้ว +2

    Is Go really performant with microservices? I'm seeing online that it's less performant than building microservices with Java.

    • @TheSurvivor1963
      @TheSurvivor1963 4 ปีที่แล้ว +3

      In my experience I would say Go is faster than Java, in addition as Matt Heath said, Go has additional features which makes Go easier to learn, implement, compile and deploy, and a complete toolchain for development which is much, much easier to use than ant, maven, gradle, etc... Especially the builtin features in the language itself for concurrency are very easy to use. He mentioned that versioning of libraries was troublesome, but that is fixed now. I have programmed Java for at least 10+ years, but after I started using Go I don't want to go back. And funny you should mention performance, because I just recently implemented a microservice in Go for a costumer,- the feedback from the costumer was: The service is blazingly fast!

    • @brtk7
      @brtk7 4 ปีที่แล้ว

      TheSurvivor1963 Hi, Could you share your stack of open source packages do you use in your go projects in 2020?

    • @TheSurvivor1963
      @TheSurvivor1963 4 ปีที่แล้ว +4

      ​@@brtk7 You really do not need much, because if you install the Go-package most of the toolchain is included. What you may want to install in addition are golint and gosec,- to check your code for compliance and possible questionable constructs.
      Dependencies to 3. party libraries and their versioning are from Go v. 1.11 handled by the Go-modules which is included in the Go-toolchain. I my opinion, the Go-community have found a pretty good and convenient solution.
      To compile on my local machine I use simple Makefiles, with targets for compile, clean, format, lint and gosec.
      At work we use Docker-containers for deployment, so I also prepare a Dockerfile with stage-building inside the project. The Dockerfile is used by the CI-server to solve dependencies, compile and also make a minimal Docker-image to be deployed.
      To do the actual programming I like to use GoLand from JetBrains since I do programming for a living, and I do not like to spend time hassling with an editor. But, there are many choices ranging from vim, VSCode, Atom and probably many more. All editors should have a plugin that integrates with the Go-toolchain. It's actually up to you which one you like best and gives you less hassle. Does this answer your question, more or less?

  • @eddwinpaz
    @eddwinpaz 4 ปีที่แล้ว +1

    I made my MS services without frameworks. Go kind wants you to use their modern language.

  • @betterculture
    @betterculture 7 ปีที่แล้ว +6

    Nice presentation. However, I'm guessing there's someone in the audience thinking *I wish this guy would just drop the bottle for at least 15 minutes, so that I can focus on the presentation.*

  • @TheWvirus
    @TheWvirus 6 ปีที่แล้ว +4

    this guy has a serious bottle problem :)