7 ms·
Micro 3.0 is a platform for cloud native development
- friendly_chap 6y agoHi people, I'm one of the people working on this. Thanks for your support! If you want to try the thing in minutes may I advise you to start here: https://m3o.com/start https://m3o.com/start. Pretty much just a couple of commands to get started :)). Cheers
- asim 6y agoHey all, author here! Please provide comments and feedback. Happy to answer questions and discuss this old thing called "microservices" and poke fun at the complexity of cloud and AWS.
- eatthoselemons 6y agoHow is this different from K8's? It just looks like k8 with a little extra boilerplate for microservices (built in key-value store etc)
- asim 6y agoMicro is developer first focused. Meaning the starting point is writing code not deployment. We bake in a Go framework to write backend services. Then micro builds in everything you need. Abstracting away k8s. Everything you need is an importable package. Everything also works out of the box on your local machine using "micro server". No k8s necessary. The majority of the focus for us now is m3o.com. A hosted platform. Otherwise I think k8s is the wrong abstraction for devs. We need access to underlying primitives but also need a workflow thats driven around writing services not operating them.
- eatthoselemons 6y agoDoes that mean that you could run m3o on k8? (sounds like m3o is a microservice framework?)
- gen220 6y agoFrom my perspective (I've taken cursory dives into micro in the past), micro is analogous to the libraries developed by every company's infra team to decorate teams' APIs (opentracing, metrics, logging, etc), making them consistently useful with minimal impact on developer velocity. If this analogy is accurate, it means can deploy these however you want. They're kind of like force multipliers on the effectiveness of distributed computing tools (RPCs, logging, etc). I welcome refinements/corrections of this analogy!
- asim 6y agoM3O does run on k8s. We personally do it for our hosted offering with some customisation, but also include a helm install in the docs for those that want to run on k8s easily. The goal is to target, local as processes, k8s as containers and then look beyond in future to wasm.
- eatthoselemons 6y agoah okay that makes sense, m3o is basically a microservices framework then? Pull the pieces you need (basic authentication, service communication etc) and all you need to add is your business logic?
- friendly_chap 6y agoK8s is closer to an infra tool while Micro is a full flegded development model - it's a bit like Rails/frameworks going to the cloud.
- rfonseca 6y agoThere is a lot of interest on microservices from the research community; there are many open-source frameworks that enable you to write/deploy/operate microservice applications with different levels of abstraction. One thing that is missing in the open is (significant) example applications / benchmarks, across which we can compare the different frameworks in terms of ease of use, convenience, performance, etc. Can you give a description or samples of what people are doing in m3o.com?
- asim 6y agoI think most people are effectively doing some form of CRUD on the backend that's then consumed by web apps or mobile. In our case we've built out a number of example applications in https://github.com/micro/services https://github.com/micro/services.
- oersted 6y agoIs it correct that Micro is only compatible with the Go stack? We would be very interested to apply this to our Node/Typescript/Python family of microservices, we've been having many difficulties with K8S and this looks like a level of abstraction that would be perfect for us right now.
- oersted 6y agoI see now that "go, java, typescript, ruby, python clients" is done in the roadmap, but can't find any documentation about it.
- asim 6y agoWe have multi-language grpc clients code generated in https://github.com/micro/micro/tree/master/client/sdk https://github.com/micro/micro/tree/master/client/sdk but we need to publish to various package managers or at the very least wrap them in a more clean and simple experience first. It's hard to replicate our Go framework experience in clients so I think to start its around consumption. I think grpc-web based typescript client or OpenAPI generated clients might be the next thing but open to ideas.
- wanderer2323 6y agoHave you tried gapic-generators? They aim to create a full client library from the protos (used to create google’s cloud libraries). E.g. https://github.com/googleapis/gapic-generator-ruby https://github.com/googleapis/gapic-generator-ruby
- davedx 6y agoI would love something like this for nodejs, my language of choice for microservices. I will definitely watch how your platform evolves. Good luck!
- drondin 6y agoIs there any way to self-host this? If there is a guide that would be awesome!
- asim 6y agoYes. Micro is open source and has been so since inception. Here is a quick start to install https://micro.mu/getting-started#install https://micro.mu/getting-started#install
- drondin 6y agoSomehow could not find this, thank you very much! This looks so cool
- asim 6y agoNo worries. Come join the slack (https://slack.m3o.com https://slack.m3o.com) if you need help.
- quells 6y agoIs there any documentation on how to run multiple instances of Micro which can communicate and share config/secrets? What is the horizontal scaling story?
- trungdq88 6y agoWhat's the resource limit of the plans? Couldn't find it in the pricing page.
- asim 6y agoIt's here https://docs.m3o.com/faq#fair-usage-policy https://docs.m3o.com/faq#fair-usage-policy. Sorry it's not in a clear place. I'll look to fix that.
- tscherno 6y agoownCloud is currently doing a full rewrite called "ocis" which uses the go-micro stack. It allows us to focus on the business-logic of file-syncing while taking care of all the micro-service plumbing. Disclaimer: I work for ownCloud.
- emptysongglass 6y agoWhy did you guys continue to exist once Nextcloud broke out and took the market? I feel like the insistence of ownCloud and OpenOffice to defy the more open standards their forks (together with nearly all developers) moved toward is... aggravating? Stop trying to tell the river where to turn. It's already done.
- friendly_chap 6y ago> Stop trying to tell the river where to turn. It's already done. After almost a decade of HN I have to say that's one of the most un-HN comments I have ever read.
- emptysongglass 6y agoI think you're confusing daring and innovation with legacy swaddling.
- tscherno 6y agoA rewrite in golang where the intent is to solve a lot of scalability,architectural and operational issues which are present in the old codebase. Additionally we invested a lot in a unparalleled test-suite in this space which runs against the old and new codebase. How could we innovate further?
- choeger 6y agoWhoa, I really hope no one ever comes telling you such an offensive thing. If owncloud has customers and/or investors they can develop whatever they want and I will applaude them for sharing the code.
- cooperadymas 6y agoIt's not entirely clear from a light perusing of the sites or docs. Is Micro a Go framework or does it support building services in any language? A lot of the concepts and features seem really useful to what I'm looking to build, but the project will not be built in Go.
- friendly_chap 6y agoAt the moment Micro is focusing on Go backends consumed by clients in different languages. I would wait until there is more explicit support for different nackend languages, unless you feel adventurous.
- vr46 6y agoI've been using the previous version for a while, and it's been way too complicated and confusing, so I'm happy to see that version 3 is addressing some of those issues. It's very ambitious and promises great things with the client generation, but it's not that straightforward to set up and use. The cloud might be complex, but a lack of really great docunentation makes Micro just as complex. Good luck to them, though.
- asim 6y agoThanks for the feedback. You're right, Micro was trying to do too much, based on prior experiences at other companies that provided the all encompassing platform experience. Once I realised that I started to scale back. With Micro 3.0 we also knew docs was one lagging thing from before and the fragmented projects were causing huge issues. So now we have betters docs https://micro.mu/ https://micro.mu/ and we have a single project https://github.com/micro/micro https://github.com/micro/micro. The product M3O (https://m3o.com https://m3o.com) has its own set of docs, sort of like how Git and GitHub would have different docs. Hopefully we're headed in the right direction.
- etxm 6y agoI really appreciate how simple in aesthetic their blog pages are.
- asim 6y agoThank you, that's really appreciated!
- heldrida 6y agoI've been learning golang for backend dev, and for that reason checked your project. Is this sort of like Netlify for the backend? Are there any examples of how the repository/database layer fits here? What'll happen to the name m3o when Micro reaches 4.0?
- bdcravens 6y ago“M3o” refers to the 3 letters in the middle, not the version number (similar to i18n or k8s)
- asim 6y agoThis is correct
- asim 6y agoYes! We are Netlify for the backend and in fact our next post will be titled "Netlify for your frontend, Micro for the backend". We think there's really a need to do what Netlify did for frontend to the backend and just help people build APIs and services super fast. The M3O Docs have some content about getting started with things quickly https://docs.m3o.com/getting-started https://docs.m3o.com/getting-started but we need to add more. The open source docs are a great reference https://micro.mu/reference https://micro.mu/reference and otherwise we're working on some sample services in https://github.com/micro/services https://github.com/micro/services. Well luckily M3O is M[icr]o so I think we're going to get away with it for the long term :)
- heldrida 6y agoThanks for replying back to me, I've been having a look and it seems that you guys are very talented. I'm going to start a new project and if this can help me save time and not have to deal with aws, etc would be great! Depending on cost of course. Hopefully we can get some info in terms of cost. About the repository/database layer, I found the "store" documentation; just going through things quickly at the moment, but guess that's what store means in the Architecture? I'll check the examples you've provided and read the documentation properly. Thank you and good luck!
- karmakaze 6y agoRegarding these two points: - Key-Value Storage - Event Streaming Is there specific software used for these--what are its characteristics comparable with?
- asim 6y agoWe use cockroachdb for the storage and nats-streaming for events. We know cockroach is a SQL database but the scaling properties are nice, we know the team and we think we'll leverage the SQL layer too so it's a good fit. On events the reason we chose nats-streaming over Kafka is because of the low memory footprint and because we've been using nats for a long time in Micro and know the creator Derek Collison pretty well. We trust these technologies a lot. Over time we'll offload these to managed services and potentially allow people to plug and play based on their needs.
- karmakaze 6y agoCan someone explain the implications of this point of the Polyform license? (It seems perhaps AGPL-like but 'product' could be very broad) Noncompete Any purpose is a permitted purpose, except for providing any product that competes with the software or any product the licensor or any of its affiliates provides using the software.
- asim 6y agoThe only restriction here is selling Micro as a Service e.g AWS can't pick up and sell Micro. This is a common problem in the open source industry and Polyform is trying to create licensing standardisation rather than everyone hand crafting something. For larger orgs in the long term being able to approve a common license rather than 100 bespoke ones.
- karmakaze 6y agoThat may indeed be the intention. IANAL but I wouldn't trust the broadly worded "providing any product that competes with the software or any product the licensor or any of its affiliates provides using the software" to mean that and only that. Here's a list of the PolyForm licences[0] with the 'PolyForm Shield' one being used. I would have expected the 'PolyForm Perimeter' to be more of the open-source type license, based just on those summaries than one that protects the 'provider' from competition. [0] https://polyformproject.org/licenses/ https://polyformproject.org/licenses/
- deleted 6y ago[deleted]