• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Meteor in Action: Deployment?

 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One of the things that make adoption of something like Meteor scary for some people is the switch to NodeJS as a backend platform. For example, I have one client who is still very much in the Tomcat world for deployment as most of his web apps use a Java backend (RESTful and otherwise).

What are the barriers to entry for introducing applications based on Meteor and NodeJS? What is the path of least resistance for such clients to deploy new applications that could be written using Meteor?

Needless to say, I'd have to have a pretty good story to convince such clients to invest in changing or adding new deployment scenarios.
 
author
Posts: 18
7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Originally I come from a SysAdmin/DevOps background, so this is my favorite topic to talk about

I believe that deployment is hard with any stack - regardless whether you place a war file in an application server or copy files manually from A to B. As you said, it's important to have tools in place that ease the deployment while at the same time keeping security and integrity intact.

With Node.js applications you typically need some complicated build chain, usually involving npm, grunt, gulp, or some other Maven/Ant like build runner. Meteor comes with the meteor command line tool that greatly simplifies this build process. Upon issuing meteor build you get the equivalent of a war file that can be deployed. The path of least resistance in the Meteor-verse is to use meteor-up or simply: mup. This will do all the heavy lifting for you, including setting up the proper Node.js and MongoDB instances and even performs the build.

That said, most developers go the mup router and have a single-command-deployment today. All you need is admin access (root or sudo) to a Linux or Solaris box. mup works with Ubuntu/Debian, but perhaps someone has forked it for the RedHat family already (I'm a fan of toy story, so I did most of my work on Debian, left Red Hat way before Meteor saw the light of day...).

In the future, the creators of Meteor plan to provide a hosting platform called Galaxy, which can be glimpsed on already by using the meteor deploy command. This lets you host your app on the meteor.com infrastructure for free, but also without any guarantees or SLAs. Eventually Galaxy will be an easy place to host applications.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for the detailed information.

If I were to try and tell my client's IT person who to set up a machine to get ready to deploy a new application implemented using Meteor, what would I tell him? It's without question that he's never heard of NodeJS and is familiar only with Apache and Tomcat.

What a deployment procedure be like?
 
Stephan Hochhaus
author
Posts: 18
7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Basically you tell them to put Ubuntu on the web and be done with it. The meteor up tools will take care of deploying MongoDB and NodeJS for you. But personally, I like to have more control, so I'd suggest to tell them to set up a Linux machine (can be either from the Debian or Red Hat family) with MongoDB 2.6 or newer. Node.js is needed in version 0.10.36. Node.js itself needs a wrapper like forever that restarts it when it goes down.

In order to use SSL you'd need to also put an SSL offloader in front of Node.js. Deployments via mup do this using stud, but personally I prefer either nginx (which is great also for serving static content) or haproxy.

Deployment itself is either a single command (with mup) or you can do a pull from version control. There is no single archive file but a bunch of files and folders that need to be copied to the server for Node.js to start serving.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Is deployment in this fashion something covered in the book?
 
Stephan Hochhaus
author
Posts: 18
7
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bear Bibeault wrote:Is deployment in this fashion something covered in the book?


Yes it is. Chapter 12 covers how to deploy your Meteor application into production environments.
 
And tomorrow is the circus! We can go to the circus! I love the circus! We can take this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic