Microservices in Go • Matt Heath • GOTO 2016

Поделиться
HTML-код
  • Опубликовано: 6 фев 2025
  • This presentation was recorded at GOTO Copenhagen 2016. #gotocon #gotocph
    gotocph.com
    Matt Heath - Specializes in Back-end Architecture, Distributed Systems & Cloud Infrastructure
    RESOURCES
    mattheath.com
    x.com/mattheath
    github.com/mat...
    / mattheath
    ABSTRACT
    Moving to a microservice architecture and embracing a cloud native approach is a complex challenge, which often requires re-evaluating our approach to technology. Having previously helped transition Hailo to a a new microservice platform, built almost entirely in Go, Matt leverages modern technologies and a microservice based approach to build reliable platforms which can scale to millions of users. This talk will cover how to develop and migrate to a microservice based architecture using Go, common pitfalls to avoid, and lessons learnt when developing high volume, low latency, distributed applications. [...]
    Download slides and read the full abstract here:
    gotocon.com/cp...
    RECOMMENDED BOOKS
    Sam Newman • Monolith to Microservices • amzn.to/2Nml96E
    Sam Newman • Building Microservices • amzn.to/3dMPbOs
    Ronnie Mitra & Irakli Nadareishvili • Microservices: Up and Running• amzn.to/3c4HmmL Mitra, Nadareishvili, McLarty & Amundsen • Microservice Architecture • amzn.to/3fVNAb0
    Chris Richardson • Microservices Patterns • amzn.to/2SOnQ7h
    Adam Bellemare • Building Event-Driven Microservices • amzn.to/3yoa7TZ
    Dave Farley • Continuous Delivery Pipelines • amzn.to/3hjiE51
    bsky.app/profi...
    / gotocon
    / goto-
    / goto_con
    / gotoconferences
    #GoLang #Go #Microservices #MattHeath
    CHANNEL MEMBERSHIP BONUS
    Join this channel to get early access to videos & other perks:
    / @goto-
    Looking for a unique learning experience?
    Attend the next GOTO conference near you! Get your ticket at gotopia.tech
    Sign up for updates and specials at gotopia.tech/n...
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    www.youtube.co...

Комментарии • 25

  • @RiwenX
    @RiwenX 3 года назад +7

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

  • @adrianplavka2834
    @adrianplavka2834 7 лет назад +8

    Great presentation, could listen to this guy for hours.

  • @rnkl0707
    @rnkl0707 2 года назад +1

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

  • @erikdunteman5081
    @erikdunteman5081 4 года назад +2

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

  • @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.

  • @jeremyduff4444
    @jeremyduff4444 8 лет назад +6

    great to see go being used in a finance sector app

  • @VitalyZdanevich
    @VitalyZdanevich 3 года назад +2

    Thank you for dark background of the slides.

  • @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).

  • @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?

  • @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.*

  • @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?

  • @TheWvirus
    @TheWvirus 6 лет назад +4

    this guy has a serious bottle problem :)