Why isn't hosting Meteor as simple as writing Meteor?

There was a magical feeling the first time I deployed a meteor app to *.meteor.com. It was a breeze. One command and I was done.

Now that I want to run a production app, it gets really complicated all of a sudden. Now I have to care about MongoDB (oplog tailing!), load balancing (sticky sessions!), auto scaling, SSL certs, and more.

How does Jane Doe, who walks dogs during the day and has been coding on the weekends for a couple months, put her app online in a way that let’s her prove her new business idea without learning how to administer a server or breaking the bank?

Shouldn’t hosting be as easy as meteor?

9 Likes

Yes! It should! Like anything, there are different options for different skillsets, but there are easy hosting options out there that do not require devops expertise.

If you want to use a PaaS that abstracts a lot of the complexity away, checkout Modulus. If you are competent enough to write code, you are competent enough to use Modulus. Modulus gives you the ability to configure autoscaling in their UI and idiot proof SSL installation instructions as well.

You want oplog tailing? Use Compose.io to host the database. If you use Compose.io with Modulus, there is hardly any command line activity required. You can configure nearly everything from a GUI, and it is well within reach of the weekend warrior without a devops background. A slim deployment with this setup will cost around $30/$35 a month… hardly breaking the bank.

Also, Galaxy developer editions will probably be available to the general public in the next few months.

1 Like

I think you’re taking for granted both how much time it would take a beginner to get setup with two different services for hosting even using point and click interfaces and how much $30/mo is to those who are trying to work their way out of poverty by learning to code. With the knowhow the equivalent hosting would cost what… $7/mo? 60/year if you prepay?

edit: I guess I’m saying that even figuring out what MONGO_URL means, how to set it, etc is a huge under taking for those who learned about git last week and wrote hello world the first time a month ago.

1 Like

Sorry for this wall of text… I must be turning into @faceyspacey :grin:

I don’t think I am taking anything for granted. I am a CPA, not a professional programmer (hence my username), and I was able to figure out the deployment process in a few hours. If I can figure it out, anyone can figure it out. I am literally the type of person you are talking about in your post.

Yes, people will need to figure out what MONGO_URL means. But if someone is programming in (at least) 3 different languages (HTML/CSS/JS), has worked their way through a bunch of JS libraries, studied and understands the meteor docs and fullstack reactive web development concepts, and has built a production-ready app, then I think it is safe to say they are competent enough and intellectually curious enough to figure out how to copy and paste the MONGO_URL from Compose.io’s website into Modulus’s website.

If someone has invested tons of time into their app and is ready to get it online, then they can find a way to scrape together $30 a month. Cut the cable, get a cheaper cell phone, cut the fast food, brew coffee at home, buy store brands, buy second-hand etc… Modifying some habits can save $30 a month very easily. If someone is unwilling to make those sacrifices, well then it is time to keep learning about devops and go with Digital Ocean or Amazon to save the cash. The convenience of Modulus/Galaxy/Compose come at a premium because they require additional investment to develop, maintain, and improve, so they have to charge more or those services would not exist. So, I guess I am confused by the comparison to other services. Are you saying that more advanced PaaS services that have required more engineering cost should cost the same as more bare bones solutions?

Also, if someone is counting on their app to pull them out of poverty, and they can’t afford $30/mo, how are they going to afford all the other costs of operating a business? Marketing, accounting, corporate filings, etc.? If someone really has the skills to put a well engineered app online, but can’t afford even the hosting, then maybe getting a job as a developer first is the smarter choice.

Last thing, if someone just figured out Hello World a month ago, and git last week, then it is too early to think about pushing a serious webapp to production. I don’t care how fast a study someone is, it just isn’t happening. So I think that’s a bit of a strawman. Meteor offers free hosting for someone looking to get their meteor experiments hosted.

I agree that there is a bit of a learning curve to deploying a Meteor app, but when it comes down to it, I think there should be.

Let’s just say, for argument’s sake, that mdg (or whoever) came up with a one-click deployment solution that would work on a $5 digital ocean droplet. Great, problem solved, right?

Not really.

There’s nothing to say that the code behind the app is legit. There’s nothing to say that the user has taken steps to secure the app or their api keys, environment settings, etc. Part of deploying an app is understanding at least the basic concept of what it means to build an app into something that a server can make sense of.

What I believe would inevitably happen is a flood of posts about what to do when running into “one click deployment” issues. There are already a fair number of posts about mup, and the most common response is to check the mup logs and work backwards – not that difficult if you’re already in the meteor ecosystem.

I have to agree with @generalledger – the free meteor hosting is free and about as simple as it gets. For those looking to move their apps to a more professional/serious environment, I just don’t think that the pricetag or learning investment is that steep…

1 Like

All I’m saying is that Meteor is harder to host than wordpress and that’s a crying shame.

Heroku solved a problem by moving the abstraction further up. Meteor raised the bar of ease of use but no one wrapped heroku to make things 1 click?

How many kids don’t eat in school because their parents can’t pay bills? There are a lot of people who start coding in high school, have no revenue, have a shit home siuation and figured out how to build something a few thousand people liked and now it is unavailable unless they can afford $350+/yr for hosting because they exceeded a dyno? That’s just one example of a group the world crapped on. We don’t all have the affordances of a white collar American.

I suppose the 4chan story comes to mind.4chan - Wikipedia - Just building something this great put the creator in a great position to get a job. An app that needs to be available shouldn’t cost 5x the compute time because someone hasn’t learned ops.

I may have quoted an extreme but I have a real case in mind. A person who took a couple classes in college, is flipping burgers, and has started learning to code. This person has gone from barely knowing the difference in HTML and Javascript to a reddit clone that gets substantial traffic within a niche. This person has not the foggiest clue about linux. Not even the knowledge to google “devops” but has built something people like.

1 Like

There are so many differences between WordPress and Meteor that they don’t even warrant describing. But here’s one. WordPress is an app that powers a quarter of all websites. Do you really find it surprising that WordPress is easier to get online than Meteor?

You’re really talking about an extreme edge case. And we’ve gone from the dog walker to the impoverished highshooler/college student who developed an app that thousands of people use but he/she can’t figure out how to raise money for, get sponsorship for, or monetize at all. Not only that, but this whole discussion is premised on the idea that this person would, in theory be able to afford $150 a year or so hosting with a bare bones provider like DO, but $350/yr… Well that is out of the question! Not to mention that some people find Modulus cheaper than DO b/c of the easy autoscaling.

Whether a group has been “crapped on” or not simply doesn’t factor into the costs a company needs to incur then recover when developing an advanced PaaS. Meteor is a startup that is fighting for its existence everyday. They have employees to pay who have families to feed. They have investors. And they have a ton of developers who have bet big time that they will continue to be around. And they won’t continue to be around if they don’t charge appropriately for their services. Modulus is the same way. And you want them to slash their prices for the 3 people on the planet who fit some narrow contrived fact pattern?

Let me ask you this, what should Meteor charge for a developer account? Or how much should Modulus charge for a servo? Or Compose for mongo? Do you know what their operating costs are? Do you know how they plan to invest their profits into new products or innovations. It seems like you’re saying this stuff is too expensive for the low income hobbiest developer. But there is another part of the equation, namely the businesses with bills to pay and investments to make in a brutally unforgiving industry.

Fact is that it has never been cheaper or easier for the weekend warrior or high schooler to develop their million dollar app. And it gets cheaper and easier every passing month!

If the plight of the kid with the successful app but no money to run it is really what this is about, then you’re better off creating a fund to help those kids rather than lowering the cost of services to the point of unprofitability.

Anyway, you can have the last word.

Wordpress is a php app depending on a sql database. Telescope, an example of what I’m suggesting hosting, is a Meteor app depending a nosql database. What are the differences not worth describing?

I’m really sorry that you can’t imagine that there is any reason in the entire world to have a solution that can host “any generic meteor app” given just a tarball of its source.

If anyone would like to discuss the technical virtues of a solution that can do such a thing, I would love to talk it through. It can’t be that hard a problem.

Check out https://github.com/arunoda/meteor-up for super easy deployments to VPS providers(Digitalocean, Linode, Amazon etc)

1 Like

there you go, if it is that easy and inexpensive, you can just go ahead, do it, make a killing :wink: and expect everyone to expect it at zero cost and high quality like yourself. however, it is likely that both you and the hopeful clients will experience the effect.

Dockerize it with meteord. That is by far the easiest solution. Get some free credits from GCE or AWS and put a docker image on it. Just for signing up for AWS I got $100 credit. Then just pay the $18/month for compose or something and you’re good to go. Production deployment in 30 minutes for $18 out of pocket.

3 Likes

Heroku seems to be the easiest way for the type of user you are talking about. Just use this buildpack in combination with the instructions here from Heroku. Then you should be able to run the app for free (18 hours a day) or for around $7 a month I believe.

It’s mostly just copy and pasting the commands into your command line…no MONGO_URL or anything like that. For sticky sessions, you can just paste this in: heroku labs:enable http-session-affinity

Edit: Here is a blog post with step by step instructions: http://justmeteor.com/blog/deploy-to-production-on-heroku/

Like myself? I don’t understand. All I asked was why there isn’t an option that isn’t 5x what other people pay. I thought I was asking this question to stir up hope about the future I didn’t realize I was going to be fighting an uphill battle amongst the Meteor community.

Mup is a great tool and probably deserves a place in the toolset that enables this.

I appreciate the link, but it really highlights my point. I manage the deployment of of hundreds of node and c# apps and after setting up Kubernetes & CoreOS to do much of the heavy lifting I really don’t understand why Meteor can’t have a 1 button deploy that costs competitively with Heroku without needing to follow a blog post. meteor deploy --and --some=custom-flags should be enough

IMHO, for this use case deploying the production app to meteor.com would be best. If you ping the server to keep it from sleeping it will not sleep (although that’s prob against their terms).

Galaxy developer edition should be coming out soon to solve all of that. I think DB management is coming soon after. It is as simple as copy/pasting the URI string from but a compose/mongolab sandbox (free) into an environment variable.

Soon it should be really easy! :smile:

4 Likes

I’ve been struggling with this issue as well since discovering Meteor. I always want to compare meteor hosting to PHP hosting. PHP hosting can be had for 5 bucks a month, and that 5 bucks (or 10 if you want to splurge), will allow you to host unlimited websites and have unlimited mysql databases… so you can put up as many of your “possibly great ideas” as you want… (provided you purchase domain names, and you can do subdomains if you don’t think your idea is worth it’s own domain yet).

Also, as mentioned above, there is the possibility of someone writing a great meteor app and distributing it to the world, and then you have a lot of people looking to install that great app on their cheap hosting service. We can do that all day with all the PHP apps out there… even the cheap hosts will provide you some level of support to get your php zip extracted into your shared account and get it online.

All in all, what I see here is not a problem, but a business opportunity:)

Yeah, I see what you are saying. The free Meteor hosting does that, and the beta version of Galaxy does almost all of that (other than database). Meteor is still relatively new, so it’s just a matter of time before anyone should be able to do it with a simple command. Someone starting Meteor right now should probably have that hosting option for a reasonable cost available by the time they finish the app.

Any details on how you received $100 in aws credit?
Not seeing any current info out there regarding $100 upon creation of a free account.

Oh man, don’t even get me started. WordPress hosting is horrible. Sure, a “normal” WordPress install is easy to deploy, but it’ll crash as soon as you get more than 12 people on the site, and won’t be maintainable except with good old FTP.

In contrast, with Meteor we have Meteor Up which lets you set up and deploy with one command each. By comparison, the best WordPress equivalent I could find, Trellis, is an order of magnitude more complex.

Sorry if this comes across as mean, but honestly I feel like when people say that Meteor is hard to deploy, what they’re actually saying is “I can’t use the crappy, slow, unreliable deployment method I’m used to”.

1 Like