6 ms·
Netlify for the frontend, Micro for the backend
- simoneau 6y agoMake sure you're cool with micro's license: https://polyformproject.org/licenses/shield/1.0.0/ https://polyformproject.org/licenses/shield/1.0.0/ The noncompete clause is problematic.
- asim 6y agoHappy to talk more about the benefits of Polyform and why we chose that. If you've seen what's happening with open source and AWS you'll understand that this is one of the few ways to protect against cannibalisation of our ecosystem and ability to build a real business. AWS gives nothing back to the creators, and we believe cloud will have its music industry moment. Polyform is a fairly liberal and standardised set of licenses co-drafted by Heather Meeker is well known for her work on open source and enterprise licensing. We believe licensing evolution is required beyond Apache 2.0 and MIT in this new world of cloud and AWS. By choosing licensing standards over custom drafting we think it will make it simpler for companies to adopt and get approval of those in larger orgs. Again happy to speak more on the topic.
- clarle 6y agoI like the idea conceptually behind the license, but without an explicit definition of what competition is, it feels tough to use. For instance, Micro provides a persistent form of key-value storage. If my product focuses on a very specific audience (say medicine), but also exposes a way for doctors to store arbitrary key-value pairs, could that be argued in court to be competition? The definition of competition in the Polyform Shield license is never explicitly stated, and in fact, it specifically calls out that "Applications can compete with services". Whereas the MIT and Apache license are pretty explicitly clear in what the terms of use are, Polyform seems to be fairly vague there, which is potentially something you wouldn't want for a legal license.
- simoneau 6y agoThese all sound like good motivations to me. But it seems for an organization to use this software, you need to convince yourselves that you understand who the licensor is and what their business is, and that your business doesn't compete as defined in the Compete section. This is a significant task if you just want to respect the request of the authors, and is bigger if you want to make sure you don't end up in court.
- gav 6y agoI understand where you're coming from, but the license itself is terribly general and broad: > 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. You're not just unable to compete with Polyform, you're unable to compete with Polyform's affiliates.
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]
- brabel 6y agoI've been looking for exactly that: a backend thing that's as easy to setup as Netlify is for the frontend. Micro seems to be a Go framework evolved to automatically deploy code to the "cloud", but it seems it'll remain limited to Go backends... I can write Go without problems, but I wanted something that supports other languages as well, specially Java... I think RedHat seems to offer that with OpenShift and Quarkus[1], but their material is so ridden with marketing buzzwords I am not sure it's suitable for what I'm looking for (basically, a small server that can store a small amount of documents or key-value information on whatever database the platform supports without fuss). Heroku seems to be the most close to this I could find, but it's pretty expensive from what I saw if you need a DB. Does anyone have suggestions for alternatives? [1] https://developers.redhat.com/blog/2020/05/28/quarkus-a-kubernetes-native-java-runtime-now-fully-supported-by-red-hat/ https://developers.redhat.com/blog/2020/05/28/quarkus-a-kube...
- whalesalad 6y agoHeroku for sure. It’s all running on AWS so you can leverage AWS services without as much of a performance penalty for routing as say another provider. I don’t understand how this Micro framework is valuable unless your entire team writes Go. Even then, this is not just ‘micro services’ it’s a monolith on a proprietary framework that happens to have network hops between function calls. It is the kitchen sink!
- asim 6y agoAll your services are written independently as microservices. In fact Micro is itself a microservices architecture and each feature is an independent service backed by highly available managed infrastructure. Yes we expect you to write everything in Go. I don't think that should be surprising since all of frontend is JavaScript, iOS is objective C and Android is Java. We think cloud is as complex Architecture as any of those and that requires a single language and framework for it.
- kbutler 6y ago> We think cloud is as complex Architecture as any of those and that requires a single language and framework for it. Your conclusion does not follow from your premise.
- hans0l074 6y agoWhen I read about such abstractions and "simplifications" (which usually end up with a 10 box diagram simplified to a 2-3 box diagram), I often hesitate to start building something new, always wondering "Am I doing this in the most "<tech_forum> upvoted" way of implementing such a thing? Some of this tech feels like if you switch on, and stare at your monitor long enough, a "Hello World" API will be deployed on the cloud for you, voilà!
- friendly_chap 6y agoMaybe microservices might seem buzzwordy on the surface, and this might be an anecdote, but I have seen it working first hand at Hailo (Uber competitor back in 2013). Relatively inexperienced people not knowing anything about Go or deeper architectural issues deploying Go services in no time, without even asking for permission. I don't think that would have been doable with a monolith. It enabled innovation I have never seen before. My 2c
- hans0l074 6y agoAbsolutely. I wasn't criticizing the architecture at all, just musing out loud. I had meetings this week at Big Co (read: cash cow) where external vendors were pushing microservices as manna from heaven for problems that are yet to be discovered. I am sure the technology described in the article is very clever and has strong merits.
- mindfulmark 6y agoI think it's a good point and something I find myself worrying about as well. The hype around GraphQL and Apollo, for example, made me feel that I was losing serious time developing a REST APIs until I finally committed and decided to use it on a project. Obviously there ended up being a lot of trade-offs but in the end it was hard to tell if I saved any time at all. More generally, after falling for this a couple times of I realized that often you're just pushing problems around to different parts of the stack, or hiding complexity in places you'll eventually need to uncover. My experience says that the time consuming parts of building a product are rarely solved by adding flashy new services and libraries, and so I try to worry about these things less. On the other hand, trying out new stuff even just for an hour or two can give you a lot of insight into how much time it's actually going to save you - so worse case you just take it for a test run and see what it's actually all about.
- rishav_sharan 6y agoWhat about the database? All these Jamstack articles always seem to skip past a db in their examples and I have never seen an "app" without an associated database. Or is the KV store supposed to act like an app database?
- asim 6y agoFounder of Micro here. Yes the key-value store is basically like a crud database. We're working on some modelling on top of that and something we'll present more like a document database. Watch this space.
- rishav_sharan 6y agoWill it be possible for you folks to add a Realworld example for Micro? https://github.com/gothinkster/realworld https://github.com/gothinkster/realworld it will help someone like me, sitting on the fence about this whole idea, a better starting point for using Mirco for my use cases.
- asim 6y agoHi, thanks for asking. This is the first time I've seen the project realworld so please excuse my ignorance, I'm not in the JS community. We will have a look and try to get around to this. Right now you can look at https://github.com/micro/services https://github.com/micro/services for any of our backend examples.
- siscia 6y agoI worked a bit on this space, mostly for https://simplesql.redbeardlab.com/ https://simplesql.redbeardlab.com/ (not running at the moment, but if folks would like to test it, please leave your email or contact me) and https://redisql.com https://redisql.com KV is the simplest thing you can provide, but in general it is hard to build applications on top of it, especially with changing requirements. KV means basically that all your query and way to interact with the storage must be well-known in advance. While with SQL, all your data is there and it is fast to add an index. The problem with the solution above are the wrapper for libraries, nobody want to write a django or rails app, and integrate with an HTTP service for the database. But maybe people are willing to do so for micro...
- asim 6y agoHi HN! Asim here. Founder CEO of Micro. We've been working on M3O for some time now and excited to not only share it with the world but help understand our positioning amongst other technology such as Netlify and the frontend. Happy to answer any questions.
- XzAeRosho 6y agoJust minor feedback. Was looking for the pricing, and the description for the paid tier is kind of vague when mentioning "2x Increased resource limits". 2x increase compared to what? Otherwise, looks really nice and will give it a spin this weekend.
- asim 6y agoThanks. It's in the docs but I'll link to it below pricing for clarity. It's 1 core, 1gb mem by default for the whole namespace.
- Xevi 6y agoI was also a bit confused by this. The front page says that the pricing structure is simple, but they tell you nothing about what you're paying for... I had to go to the docs to find an answer. https://docs.m3o.com/faq#dev https://docs.m3o.com/faq#dev
- clafferty 6y agoBravo m3o, this looks awesome! Netlifys approach to static sites seemed like a no brainer since HTML is easy to host. They added lots of sugar around that to make it effortless and easy. So M3o seems like a great idea. Micro on the other hand will need some buy in but I'll definitely consider it since we use Go already. One concern is your pricing seems too reasonable (free)!
- asim 6y agoThanks for the feedback. And yes we're learning and iterating on pricing. I think the key will be fair usage policy and resource limits that allow people to scale with their usage. We'll also work on additional pricing tiers for larger teams which I think will be more appropriate. Theres a lot we can't do on $35/user/month. But it's a start!
- cxr 6y ago> One concern is your pricing seems too reasonable (free)! Is that reasonable? Building anything on top of obvious loss leaders is risky. And the costs here for a year of service are either $0 on the free plan or $420 for the cheapest paid plan. There's a chasm of difference there. I can't understand people offering platforms and services with a pitch that tries to describe what sets $THING apart from others, but when it comes to pricing, they settle for looking around at what everyone else is doing and copying that—which usually results in offering a free tier and paid plans usually starting at $5–9+ per month. Chances are, what you're selling probably isn't as unique as you think it is (this post mentions Netlify several times, for example, but Netlify doesn't only do static hosting―you can run microservices with Netlify, too, and Netlify's paid plan is cheaper). More businesses could and should differentiate themselves in their pricing model, because the door is wide open and pretty much nobody else is showing interest in taking advantage of the opportunity.
- friendly_chap 6y ago> Is that reasonable? Building anything on top of obvious loss leaders is risky. And the costs here for a year of service are either $0 on the free plan or $420 for the cheapest paid plan. There's a chasm of difference there. The dev tier is free, which is a capped environment with much laxer SLAs than the production tear. Prod tier is paid.
- claydavisss 6y ago"Fixing" what already worked just fine. You've topped out as a developer if you are spending time swapping out your architecture for "jamstack". What have you changed? Nothing but the plumbing. Up your game and spend your time on real progress.
- jfengel 6y agoYour page doesn't show any of the backend code being deployed. I don't even know what language it's in. So it's a little hard for me to compare it to Netlify, which does have backend support in the form of lambdas, and a database in the form of FaunaDB. That's fairly limited, but it's also very easy. Clicking through to the github page, it looks like the examples are in Go... though I also see a Dockerfile. For me, I'd be more interested in having your blurb page focus more on how one writes the back end, since that's what you're really selling.
- asim 6y agoThanks for the feedback. I'm assuming you mean the website. We have info and tutorial in docs but agree we could provide more clarity on the website. There is a redesign coming in the next few weeks. There are tutorials in the docs and many code examples in https://github.com/micro/services https://github.com/micro/services. The blog post also links to this code. But again I agree we could do more to showcase it. This post was more to demonstrate positioning of us in the market and fill the gap for those building stuff with Netlify.
- turtlebits 6y agoI think correlating this with Netlify is a stretch. You're offering is tied to Golang with a specific framework. I'd rather see a comparison with other no-infra solutions like AWS chalice or even Serverless framework.
- LogicX 6y agoBiggest thing for me is netlify’s distributed nature. I don’t see anything about m3o being in multiple data centers the way fly.io is. For me, that better aligns with an appropriate backend for Netlify. (Or cloudflare workers)
- asim 6y agoBig things have small beginnings. In fact, last year this time, we were a global multi-cloud, multi-region play. Because we've done it before it was fairly simple to do again but being so early in our journey it was actually more effort than it was worth. In our case now we will expand geographically as there's a demand for it and we'll put some of that control in the hands of users. If your own user base in the US or EU or Asia, you may not want your backend to be global, you may not want that cost, and you may not want to incur the issues related to distributed storage, synchronization, eventual consistency, etc and the complexity that comes with it. So I think this is something that will evolve over time. Micro builds in the concept of "Environments" and this will be the form of expansion to different regions and cloud providers. The key thing to note, we are not an edge network, Netlify wants to distribute your assets everywhere, but I think APis are for the most part centralised in the cloud with some form of geo load balancing to different regions. All of that will play out over time, so again watch this space.
- BenGosub 6y agoMicroservices have to be written in Go Nitro framework, this is not framework/language agnostic?
- asim 6y agoGo Nitro is not a thing. "Go Micro" was a framework that launched this company into existence, it's now been consolidated into a single project called "Micro". The "Go Micro" project has been renamed to "Nitro" to reduce confusion around the two. Your services must be written using the Micro framework, as you would use something defined by iOS and Android for those platforms.
- BenGosub 6y agoOK thanks for the info
- wetpaws 6y agoYow dawg, you fleed to netlify to avoid insane over-engineered technology stacks, so we brought you insane over-engineered technology stack with protobuffs and gRPC
- pwdisswordfish4 6y ago> fleed to netlify to avoid insane over-engineered technology stacks Take a sober, 1000-foot look at Netlify today. They're so caught up in their GitHub-integrated value-add that if you try to follow the docs to do a straightforward "deploy" from a directory with a simple "hello world" index.html, there are multiple failure conditions. The dumbest one being that if it's a Git repo and it encounters a remote that it doesn't recognize, it will shit the bed. I'm not talking about error output; the CLI itself will straight up fail, throw an exception, and terminate. That's before we even mention the experience of successful use of the CLI. The cacophony of color and the volume of output makes for a sensory overload that's akin to watching a Safdie brothers film.
- sebringj 6y agoNetlify also has lambdas and coupled with firebase or faunadb, its pretty good.
- agambrahma 6y agoInteresting but perplexing: is this sort of an alternative to Darklang?
- afterwalk 6y agoThe value proposition was clear and well written, until I got to this part: "you want to do it without having to standup layers of infrastructure on AWS or be beholden to the legacy players like Heroku or other providers who don’t get that you want the same Netlify like experience on the backend." So exactly how is Heroku "legacy"? From past experiences pushing a simple backend service onto Heroku was pretty smooth and "Netlify-esq". It would be nice to explain or show the shortcomings of using Heroku as the backend for your Netlify app.
- asim 6y agoFor anyone else who finds this and wants to know more about the internals of Micro itself. Here's the announcement post for Micro 3.0 aka M3O. https://micro.mu/blog/2020/11/05/micro-v3-aka-m3o.html https://micro.mu/blog/2020/11/05/micro-v3-aka-m3o.html