10 ms·
Now: realtime Node.js deployments
- dimgl 10y agoThis looks cool. It's like http://surge.sh http://surge.sh but for the backend.
- Rauchg 10y agoCEO of https://zeit.co https://zeit.co here! Happy to answer any questions throughout the day :)
- supster 10y agoReally cool website! I'm confused though exactly what is going on. Is this kind of like Heroku? What are the pros and cons of this service? For context, I'm currently running a production node/express/mongo service on Digital Ocean.
- Rauchg 10y agoCompared to other providers, there's absolutely no setup involved. No Procfiles, ports, containers, dynos, processes, instances… Just type `now` where you have a `package.json`.
- rockyj 10y agoCool. But what about persistence / choice of database and how can I scale up / down?
- supster 10y agoThis is very cool. I'm excited to use this in my next project. I like the zero setup, no fuss, secure by default features. I guess 4 more questions: 1) Does "Dynamic Realtime Scaling" mean you spin up more clusters and do load balancing automatically? 2) Can your $15/month cost cover this? Or is that what the 50GB bandwidth cap is for? 3) The nature of this service means we need to use a DB service like mLab (mongoLab) or run our own DB server right? 4) What about production logs?
- Touche 10y agoHow is there no port? I have to run my server on some port, are you saying I can choose whatever my port I want and your service detects that somehow? I don't need to use process.env.PORT ?
- mvdb 10y agoWhat's the difference with dokku?
- mvdb 10y agoWhat's the difference with dokku?
- mvdb 10y agoWhat's the difference with dokku?
- benatkin 10y agoCurious about performance of npm install, seems like it's one thing that could make it not so snappy. For compiled modules, does it have a decent amount of memory/CPU on the instances? How about connectivity? Does it use a mirror for NPM? Might it in the future?
- Rauchg 10y agoOur biggest focus is `npm install` performance. We have multiple caches to make it the best possible experience for you. Every time you run `now` it's as if you had installed from scratch (including semver invalidations like ^ or ~). The focus is on reproducibility.
- sonnyp 10y agoSo the deploys do not depends on npm infrastructure at all?
- alanh 10y ago> Every time you run `now` it's as if you had installed from scratch (including semver invalidations like ^ or ~). The focus is on reproducibility. This is very confusing to me as these seem to be contradictory statements. Installing "from scratch" (I take this to mean, as if node_modules is an empty folder) is not a reproducible action, as all it takes is one sub-dependency releasing a new version to change your installation. Can you clarify what you mean and resolve this seeming paradox?
- Rauchg 10y agoIn order for you and your team to never rely on transient local state (either in the cloud or your own computer), we "start from scratch". However, our process of starting from scratch is actually faster than running `npm install` on your own computer in many cases. As an example, I've found myself getting into the habit of using `now` instead of `localhost`.
- ludamad 10y ago
- deleted 10y ago[deleted]
- diegorbaquero 10y agoA more techy question, how can you let anyone use any port, how will your proxy know where to redirect?
- z3t4 10y agosudo netstat -plnt
- tschellenbach 10y agoHow do you plan to appeal to the enterprise/larger apps market?
- reustle 10y agoExcuse my ignorance, but could this work with Meteor?
- jonahx 10y agoI'm curious about the differences between hosting a node app on zeit vs heroku.
- disbelief 10y agoA couple questions: (1) I notice that your pricing chart mentions storage. I'm wondering what that typically would consist of? Only thing I can think of are static assets as I imagine a codebase — even with a million npm module dependencies — wouldn't come close to 1GB let alone 100. (2) Is it possible to back your apps with a database/datastore? Say I want to use MongoDB with my app. Would I need to purchase a third party service and set the MONGO_URL in the env? Are there any plans to offer database services as add-ons?
- codecurve 10y agoAny chance of some clarification around the limits of the free tier? > 20 FREE deploys per month So I can only run the `now` command 20 times each month? What are you using to track how many times I've run it already? IP? NPM username? Package name? >1MB size limit per file Is this at deployment time or is this also enforced at runtime? If I deploy a 900kb sqlite file, then add 200kb of records to it at runtime, what's going to happen? > Perfect for open-source demos, classrooms, tutorials & testing. Are 20 deploys per month really enough to use in a teaching context? I'd love to use this tool in the web tech module I teach at my university, but I think most students would burn through 20 deploys in a week, let alone a month. Is there any chance this limit could be re-thought for teaching purposes? I wouldn't mind if some of the other restrictions were changed, but free tiers that halt development til the start of next month don't sound great for learning to me.
- phelm 10y agoNot received my confirmation email yet, it has been > 10 minutes
- js4all 10y agoSame here. There seem to be problems with the current spike.
- js4all 10y agoI got mine now. It took nearly an hour. Despite that, my early tests ran solid. The apps got hosted on AWS us-west-1.
- Rauchg 10y agoFixed! Sorry about that. We exceeded all quotas. All emails should be going out smoothly :)
- js4all 10y agoNice, is it meant for permanent hosting or just for prototyping and how does it compare to Cloudnode (https://cloudno.de https://cloudno.de)
- Touche 10y agoCan this be used with a CI service very easily?
- alanh 10y agoSomething that’s bothering me is: Is there any way to deploy via `now` with secrets? You know: API keys or the like? `_src` is always public in the free plan and I don’t see any documentation around providing environment variables.
- paradite 10y agomy guess is that for free tier, it's targeted at demo/tutorial so environment variables wouldn't be necessary. If you are serious about privacy then you have to upgrade to paid tier. But heroku does offer environment variables to free tier and it is handy for database keys and 3rd part API keys, so I guess they will add that at some point through some user-facing web interface or just cli options.
- alanh 10y ago> so env variables would not be necessary My initial thought as well — but it’s simply not true. Let's say you want to demo something that is using Firebase on the back end. You can't just give away your credentials or your demo may get very broken very quickly… and you’ll foot the bill
- ptasci67 10y agoYou don't really mention this in the pricing section but I assume for the paid plan, it gives you the option to hide the /_src feature based on something (IP, etc.)?
- Rauchg 10y agoAll `/_src` links will link to a secure portion of the site with login + 2FA. Security is top of our mind.
- wesbos 10y agoVery cool! I was just saying how hard it is to get someone to deploy a quick node app. Trying it with a React + Express app right now. Taking a while to deploy but I assume you are getting hammered.
- troncheadle 10y agoOnce you've done it once it is very quick imo. Deploy 1 to Digital Ocean with Node/Express/Mongo took me a work-night and deploy 2 and 3 took me < 15 minutes.
- 8note 10y agoit's easy on heroku. I haven't done it with native modules though
- seibelj 10y agoRed Hat Openshift has a solid free tier, free SSL, git push deployments, node / ruby / python / java / php / etc., mysql / postgres, redis. Why would I use this over that? https://www.openshift.com/ https://www.openshift.com/
- Rauchg 10y agoOur focus is on empowering the realtime JavaScript cloud with its rich module ecosystem. With the advent of microservices, code will become more succinct. Your backends will be aggregations of small functions with clear inputs and outputs. The syntactic differences between languages will matter less. Our bet is that JS has the largest and most prolific community!
- bufo 10y agoHow are you thinking about latency in an environment where there's a waterfall of Now function calls? Will Now functions calling over Now functions naturally get cached on the same server?
- Rauchg 10y agoThere's no explicit concept of "now functions". You simply deploy HTTP/2 services to the cloud. HTTP/2 significantly improves performance by introducing multiplexing and header compression. There's no need to introduce new concepts or APIs. REST away!
- q3k 10y ago> Our focus is on empowering the realtime JavaScript cloud with its rich module ecosystem. I'm sorry, but that's just meaningless buzzword bingo.
- 8note 10y agotranslation: they use websockets on AWS with insane numbers NPM modules.
- 10y ago
- yefim 10y agoAre these zero downtime deployments?
- alanh 10y agoThey seem to be one-time deployments that never go away. Since there is no updating and no "down" at all, I think the answer to your question is "N/A." But I may have it wrong. It’s a unique-seeming service, which can make the nuances hard to understand
- axelfontaine 10y agoNo. For zero downtime deployments on AWS with blue/green deployments behind EIPs & ELBs, we at Boxfuse (https://boxfuse.com https://boxfuse.com) offer a very easy solution for both Node.js and JVM apps based on immutable infrastructure.
- Rauchg 10y agoYes. There's no downtime whatsoever because you don't overwrite or take down anything. Your architecture is immutable. You manage "upgrades" by changing pointers (aliases and DNS). We'll be exploring this in upcoming posts.
- yefim 10y agoIt'd be so nice to have it automatically swap the DNS records over. Please consider that as you keep building.
- peterhadlaw 10y agoOff topic: Right when I saw the terminal, I instinctively typed "ls". Not sure now if that's what triggered the animation or not but regardless it was a neat occurrence (I also just want to leave it at that ;) ) Yayy muscle memory!
- lucaspiller 10y ago> NOTE: npm start has to listen on a port. It can be any port! Does this mean you forward port 80/443 to whatever port the app is listening on, or I can have my app listen on random external ports?
- Rauchg 10y agoYes. Just do `app.listen()` or pick `3000` or `8080` or `80` or…
- alanh 10y agoIs there really no way to delete a deployment?
- alanh 10y agoThis was an actual question, not a rhetorical question, if anyone from the company is still here.
- zuck9 10y agoThis has a great landing page.
- alanh 10y agoNo, it doesn’t. Elements of it are great. The design screams “We’re programmers too,” which is great. But as the comments on this page attest, this landing page does a simply horrible job of introducing what `now` actually does.
- andrewvijay 10y agoFantastic intro write up to read in a mobile browser. Wish many products get to what matters like these in their descriptions. Interesting enough to try immediately!
- ludamad 10y ago20 free deploys a month? Is every update a deploy?
- alanh 10y agoI think so, because I don’t think "updates" are a thing: https://news.ycombinator.com/item?id=11440659 https://news.ycombinator.com/item?id=11440659 But I wish they would clarify this, either way.
- deleted 10y ago[deleted]
- rubiquity 10y agoWhat makes the deployment "realtime"? Is it just that you get terminal output of the deploy happening? That's been around for a while now. Or am I missing something?
- travjones 10y agoThis looks very promising for the node community. I was wondering which cloud infrastructure service they went with to power this. According to the FAQ, they don't rely on just one. Very cool, and if implemented correctly, more resilient. Multi-cloud. We don't depend on a single specific cloud provider, but abstract them instead. P.S. Is the markdown parsing broken on the FAQ? Or is that part of the look they're going for?
- wolframhempel 10y agoDoes now only support HTTP/2 or could I also use TCP or WebSockets?
- scriby 10y agoI used to use a project called now on npm that was abandoned a few years ago (https://github.com/Flotype/now https://github.com/Flotype/now). I was curious how this new project was using the same name on npm as the previous now that I had used. Looking at the npm release history, versions <= 0.8.1 are the old project, and the new project picked up at 0.9.0 (should have been 1.0.0 I guess). This is consistent with npm's statements about package name transfers during the leftpad debacle, but there's just something weird about reusing package names for totally different projects...
- cphoover 10y ago> but there's just something weird about reusing package names for totally different projects... Not only is it weird but it is inherently insecure. Even NPM's solution: > "If a package with known dependents is completely unpublished, we’ll replace that package with a placeholder package that prevents immediate adoption of that name. It will still be possible to get the name of an abandoned package by contacting npm support." seems susceptible to social engineering. All it takes is for one heavily depended upon package to become compromised by a malicious actor, and the entire dependency graph is poisoned. I'm not sure of a great solution, but it really makes you question the soundness of the NPM ecosystem.
- viperscape 10y agoI really see no good reason not to employ namespacing with immutable packages. If a package is dropped, all is well still. If readoption is needed, people can use the new package, similarly named. It obviously also allows for similar but different named packages to exist, which I don't see as a problem. I can usually find the top repo on github for instance, even with multiple forks. I worry about Rust since they have decided against namespacing, even though some suggested otherwise, early on..
- m1sta_ 10y agoNeeds more hashes
- brian_c 10y ago
- mmaunder 10y agoHad to read three pages and still haven't quite confirmed that this is node.js hosting. But based on the pricing page, I guess it is. Can you please just say that? Just say "It's node hosting and the deployment system is fast." You literally just stole some of my life.
- gkoberger 10y agoJust to piggyback for people confused: It's zero-configuration Node hosting, for permanent lightweight microservices or temporary Node projects that need to be accessible online. In other words, it's as close to uploading PHP files to a server that you'll get with Node. For people wondering, the creator is Guillermo Rauch, who is behind Socket.io and LearnBoost (the company that brought us Express, Mongoose, Stylus, Jade, etc... basically the entire Node stack)
- mmaunder 10y agoWhy not just upload node files to a server?
- l0gicpath 10y agoI suppose you could do that, but I reckon their main selling point is convenience. Same argument can be made for any cloud hosting service. Why not just buy a VPS and set it up yourself, it's just more convenient for some people.
- gkoberger 10y agoFor PHP, you upload index.php, go to yoursite.com/index.php, and it works. Node isn't like that at all. For example, here's the "Hello World" guide for getting Node started: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04 https://www.digitalocean.com/community/tutorials/how-to-set-... This is basically the problem `now` is solving... "what if Node was as easy as PHP?"
- 10y ago
- rmanalan 10y agoLooks neat for demo apps. I did try it out on one of my simpler express based apps and it failed during the npm install. Looks like this is possibly using ied?
- koolba 10y agoDoes this support native modules and is it running on Linux 64? If so it'd be an interesting "hack" to have it run arbitrary code. You could have the default "npm run" script download a python/ruby/golang/foobar runtime and kick start an app on the expected port.
- z3t4 10y agoCan you have database dependencies? Like a full-fledged SQL database?
- gmmeyer 10y agoIs the now cli not open sourced?
- williamcotton 10y agoHey man, keep up the good work. I'm sorry this forum is so filled with trolls these days.
- q3k 10y agoI'm sorry that you treat anyone with different viewpoints from yours as a troll. Don't worry, I'm not taking this personally.
- williamcotton 10y agoThat you can't see how much of a dick you're being when you accuse someone of playing "buzzword bingo" is proof to me that you can't be anything but a god damned troll. This isn't about having different viewpoints. This is about you objectively being an asshole. Edit: Sorry, TRIGGER WARNING: Real things are being said.
- andrewingram 10y agoIf I were accused of buzzword bingo, i'd try to take it as good-natured criticism that what I said was perhaps a little too filled with lingo to have a solid meaning. It's certainly possible to read this example as a trollish remark, there's also a perfectly valid reading which interprets it as an attempt to provide useful feedback. Since I assume neither of us knows q3k, we're not in a position to know which is true, except for q3k telling us.
- egeozcan 10y agoIt becomes pretty clear that it's not a troll when one puts his/her best-effort to interpret "realtime JavaScript cloud". It's a critic with a very obvious point.
- williamcotton 10y agoOh yeah Einstein, what's the point he's trying to make then? God, this forum is just like 100% assholes these days. You can't even fucking see it either, can you? When was the last time you interacted with normal people in society? Did you just start out with bitter criticism and attacking their vocabulary?
- bikamonki 10y agoThe pricing structure is missing a couple of middle tiers and overall the service lacks useful features. For instance: I could buy a $5/mo droplet in Digital Ocean, one click install node, even use my own domain and manage deployments/restarts almost as easy. For that money I get 1TB transfer and 20GB ssd and many more features (b/c I basically get a VPS where I can do whatever). It takes me 10 min to setup the server and zero minutes to deploy each new version (I use deploybot so every git push is really a deployment). Some things are not clear: "Dynamic realtime scaling" Forever? Unlimited? Say 1MM concurrent API calls for $15/mo? URLs change after each deployment? Do I need to update endpoints on all clients?
- dj_doh 10y agoLike these quick deployment solutions zeit.co/now and surge.sh Sacalbility and security is something that needs to be attested.
- ruffrey 10y agoSeems cool. After many years on node, and even writing a deployment service once (paastor) - just plain VPS, nar to make an executable, then scp onto an Ubuntu server, and scp a logrotate and upstart conf - that's all you need man.
- ajsharp 10y ago> You can think of 𝚫 now as a CDN for dynamic code (microservices and backends). Mmmmmmmmmmmmmm not a CDN.
- rajahafify 10y agoWhat happened if you did a recursive now build?