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...
Almost 5 years later, this still holds up. Great talk!
Great presentation, could listen to this guy for hours.
Great talk. Nice explanation. Go is such a powerful language.
As a fellow r/hydrohomie, I respect this man.
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.
great to see go being used in a finance sector app
Thank you for dark background of the slides.
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.
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.
I DMd to Matt over twitter and he told me that they're using a monorepo.
@@vectorhacker-r2 awkward lmao
@@Fingiorstyle Google uses a monorepo across their entire code base.
@@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).
Thank you. Perfect Talk.
great presentation.
I'd never have thought to use a bool flag for card status, smart and simple. I'd probably have over engineered it.
doesn't linkerd use zipkin and do tracing for u?
Yes, you can add that afaik.
I made my MS services without frameworks. Go kind wants you to use their modern language.
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.*
Is Go really performant with microservices? I'm seeing online that it's less performant than building microservices with Java.
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!
TheSurvivor1963 Hi, Could you share your stack of open source packages do you use in your go projects in 2020?
@@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?
this guy has a serious bottle problem :)