Settings

Theme

Go Micro v2.4.0 – Go microservices development framework

github.com

82 points by chuhnk 6 years ago · 25 comments

Reader

bo0tzz 6 years ago

This post links to a release on github. It might be clearer to link to the project homepage instead: https://go-micro.dev/

chuhnkOP 6 years ago

Hey! Asim here (author). Feel free to ask any questions. Was not expecting this to hit the front page.

  • tech_dreamer 6 years ago

    Is it possible to create a tutorial showing features end-to-end (using CLI / Code generation)? I have seen a couple of high quality tutorial series on web - but they are advocating usage of 1.18 version.

    • chuhnkOP 6 years ago

      Sure, what kind of tutorials are you interested in? Written form or video? We're thinking about doing a video walkthrough series potentially in live form.

      • gtycomb 6 years ago

        Written form please. This saves time in many ways, such as searching for certain chunks of information when trying to form an early opinion on how this product fits one's need. I went through your dev documentation today and the organization is good. I wish you would present the more detailed booking example in the same conversational style as the shorter hello world example at start. When a developer sees the first page with the bullets of interesting features (service discovery, load balancing, etc), they would want to get a broader picture of the architectural approaches combining these features (through coding examples). Interesting work. Thanks for creating it.

cabernal 6 years ago

This is reminiscent of https://github.com/moleculer-go/moleculer. I have not used it personally.

I have worked with moleculer-js, which I've had great time using (https://github.com/moleculerjs/moleculer).

  • chuhnkOP 6 years ago

    Micro started in 2014 and from what I could tell molecular took a lot of ideas from it to creat something in the JS ecosystem.

gigatexal 6 years ago

Built in NATs, RPC, mDNS, this all seems really compelling. Is anyone using this at scale in production? What have been the pain points?

  • mpfundstein 6 years ago

    I think thats not really micro.service anymore. It creates a lock in we dont want. Why not build a monolith then?

    • chuhnkOP 6 years ago

      Micro focuses on providing distributed systems programming as a single framework, so it takes all the patterns you'd normally leverage and puts them in one place for you to easily build services. We do this with a pluggable model so you can pick and choose underlying infrastructure dependencies or a zero dep model if you choose. Its very powerful and our hope is the next generation of services are built using it.

      • gigatexal 6 years ago

        Given that the functionality incorporates a lot of things one would usually create for a service being run on something like Kubernetes does it run well on Kubernetes? Or are there clashes?

        • chuhnkOP 6 years ago

          Most of our users run this on kubernetes. Developers want an abstraction that is not kubernetes or infrastructure. Something simpler entirely focused on the development of services. So it fits well. We run it on kubernetes.

christiansakai 6 years ago

I was just posting this on another forum. But I want to learn more about scalability and availability and microservices. I am quite familiar with fullstack and various databases but I need a hands on experience. Does micro have some sort of tutorials that build microservices from scratch?

andy9775 6 years ago

Would I use micro on top of k8s? Doesn't seem to make sense to mix the two as far as I can tell.

  • chuhnkOP 6 years ago

    Actually Micro is the exact thing you would use ontop of kubernetes. Micro was built to tame the world of cloud-native complexity and focus on developer needs.

    You can think of Micro as an abstraction layer over distribute systems infrastructure, hiding the complexity from the developer and providing a pluggable system which allows it to operate in any environment. This means locally a dev can run with zero deps but in prod someone from the ops team can switch to etcd, cockroach, kubernetes, etc.

    Predominantly the majority of our users are using Micro on top of K8s. Their primary focus is productivity and velocity of development when building microservices.

    • haggy 6 years ago

      Using this framework on top of kubernetes (which is itself another framework used to managed microservices) sounds like an operational nightmare. Kubernetes is already filled with operational pitfalls so adding more layers on top only increases complexity.

      I think Go-Micro looks cool but I wouldn't suggest layering this much more than you already are. Complexity is death for distributed systems so minimizing complexity means maximizing reliability for the systems.

      • chuhnkOP 6 years ago

        I'm sorry you've misunderstood what this is. This is a Go Framework for microservices development. It's what you use to write services. It's like Rails or Spring. Kubernetes is for running applications not writing them. Kubernetes no opinions about how you write software. We encapsulate the underlying infrastructure and provide a framework for the developer to literally write business logic.

        • andy9775 6 years ago

          As mentioned by the other commenter one of the big features is service discovery and load balancing - it seems like micro is stepping on k8s feet here and is a bit more than just a framework.

          I could see using micro on bare metal (with all features) but trying to get the grasp of mixing with k8s (with all of micro's features). I'm assuming no one is using micro's load balancing and service discovery over k8s? I guess the broader question is, is micro highly coupled to all of its features/functions or is picking and pulling parts of it workable?

        • PhilippGille 6 years ago

          The first two features listed on the README are "service discovery" and "load balancing", which is probably where the question is coming from.

          • andy9775 6 years ago

            yup.

            Micro seems like a framework + platform for running micro services (ideally on bare metal). (Not saying there's anything wrong with that though)

shlomi90 6 years ago

We are looking into Dapr now. How do you compare to it? https://github.com/dapr/dapr

  • chuhnkOP 6 years ago

    Dapr is attempting to play in the same space as us. Using a standalone server and grpc generated libraries. We're a Go framework first as we believe development is about the tools you put in the hands of the developer meaning how they write code. We deliver the framework as a set of grpc services also which you can start with the command "micro server" and communicate through https://github.com/micro/micro

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection