Readit News logoReadit News
jfengel · 5 years ago
Your 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 · 5 years ago
Thanks 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. 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 · 5 years ago
I 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.

brabel · 5 years ago
I'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-kube...

barnabask · 5 years ago
Here's a few besides Heroku I'm keeping an eye on:

* https://render.com/

* https://www.digitalocean.com/products/app-platform/

* https://www.koyeb.com/ (announced today)

* https://vercel.com/

whalesalad · 5 years ago
Heroku 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 · 5 years ago
All 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.

chris_st · 5 years ago
Check out NHost [1], which isn't an exact match, but worth a look. What it gives you (currently) is Postgres via Hasura, which gives you (AMAZINGLY) easy GraphQL database access, along with a very nice auth service. And their entry level is cheap.

I've written Hasura actions for the service, which allow painless redirection of arbitrary GraphQL to (e.g.) an AWS Lambda function. Direction function support is on NHost's roadmap.

1: https://nhost.io

benbristow · 5 years ago
It's in preview but Azure Static Web Apps

https://azure.microsoft.com/en-us/services/app-service/stati...

Deploy JavaScript/TypeScript/Python/C# backend function apps with a modern frontend in one go, sets it all up for you on GitHub and handles the build process and SSL certificates for custom domains too.

Matthias1 · 5 years ago
Dark (https://darklang.com) is a very cool platform for building serverless backend APIs.

The Dark language itself is not what you’re looking for, and I don’t know if I would trust it in production (it’s still in beta). But the platform makes it extremely quick to get a POC backend working.

curryhoward · 5 years ago
Google Cloud Run / AWS Fargate. You upload a Docker image and you instantly have a service with auto-scaling, load balancing, HTTPS, etc. It works with any programming language thanks to Docker.
turtlebits · 5 years ago
(Python) AWS chalice (https://github.com/aws/chalice). Nice wrapper for lambda that lets you write "Flask" like routes.
brabel · 5 years ago
I'll answer my own question (after doing some research).

Besides the other answers, I found Cloudfare Workers[1] seem to nearly fit the bill (the only problem is that workers are written in JS - though you can also write them in Rust, C or C++, with the caveat that they compile to WASM, then are executed via the JS API).

Pricing start free! With $5/month you get access to KV (Key-Value Storage) and a generous amount of requests (10 million/month) which seems appropriate for my needs... and it's still in beta, but they also have consistent storage now with Durable Objects[2].

[1] https://developers.cloudflare.com/workers/tutorials

[2] https://developers.cloudflare.com/workers/learning/using-dur...

hans0l074 · 5 years ago
When 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à!
mindfulmark · 5 years ago
I 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.
DJHenk · 5 years ago
I like to call this the: Law of Conservation of Complexity.

It does not matter how slice and dice things, the real world is a complex environment and as a result your application will be complex in some way too. You just can't sweep complexity under the carpet and pretend it's not there. It will always come back and bite you, in some way or the other.

davedx · 5 years ago
Exactly the same experience with GraphQL - indeed I think in the end it cost more time than REST. The thing is, GraphQL is a tool that really shines when you have... graph data (like Facebook). The problem is every company under the sun is now rushing to use it as if it's some kind of silver bullet because of all the hype.
friendly_chap · 5 years ago
Maybe 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 · 5 years ago
Absolutely. 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.
airza · 5 years ago
Netifly at least was as painless as a deploy process as I've ever had; I had a local jekyll instance i was using to build my blog, and all i had to do was setup Netifly so it was pointing at the remote Github repo for that instance, then simply push to master and everything deployed instantly. There certainly are some tools in the area that feel very over-engineered but so far this one has been quite the opposite (other than weird SSL woes, but that was still more or less painless) Can't speak to the backend product being sold here, but the frontend really was painless and performant.
simoneau · 5 years ago
Make sure you're cool with micro's license: https://polyformproject.org/licenses/shield/1.0.0/ The noncompete clause is problematic.
asim · 5 years ago
Happy 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 · 5 years ago
I 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 · 5 years ago
These 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 · 5 years ago
I 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 Comment

Deleted Comment

clafferty · 5 years ago
Bravo 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)!

cxr · 5 years 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 · 5 years 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.

asim · 5 years ago
Thanks 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!
rishav_sharan · 5 years ago
What 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?

siscia · 5 years ago
I worked a bit on this space, mostly for 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

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

harrisreynolds · 5 years ago
This is a great point and one reason I am left scratching my head when considering building applications on the JAM stack.

We are working on a solution to this with WeBase [1] and I'd love to see us do an integration with Netlify here where you build with WeBase and host on Netlify (and get automatic API integration with your data models).

[1] https://www.webase.com

swyx · 5 years ago
you can achieve that with netlify build plugins but it is still a fairly basic stage right now - get in touch with their DX team!

(disclaimer, i worked there)

lucasverra · 5 years ago
what's the pitch vs an airtable wich i already use ?
friendly_chap · 5 years ago
Yeah there is a KV store which is more lower level and an ORM like library on top, check this: https://github.com/micro/dev/tree/master/model
asim · 5 years ago
Founder 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 · 5 years ago
Will it be possible for you folks to add a Realworld example for Micro? 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.

wetpaws · 5 years ago
Yow 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 · 5 years 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.

asim · 5 years ago
Hi 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 · 5 years ago
Just 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 · 5 years ago
Thanks. 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 · 5 years ago
I 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