SlideShare a Scribd company logo
1 of 25
Deploy Meteor in production 
miro.radenovic@dev4side.com 
.
Who is Miro? 
• Dev4Side srl - Milano (12 emp) 
• 10years of .NET (asp.net) 
• 8months with server-side JS
Why meteor 
• Fullstack JS 
• $11.2 million in funding 
• Mongodb 
• Reactive
So, you wanna see your meteor 
project online? 
• Deploy 
– meteor deploy (core) 
– meteor build (core) 
– Demeteorizer (from modulus) 
– MUP (arunoda) 
• Host 
– on meteor.com 
– on Modulus 
– Own infrastructure 
• Solutions, tuning and tips
meteor deploy
Meteor deploy 
$ meteor deploy myapp.meteor.com 
• Part of the core 
• Running on Meteor's infrastructure 
• The easiest way to deploy your application is to use meteor 
• Your application is now available at myapp.meteor.com 
Client 
[Meteor] 
Server 
meteor.com
Meteor deploy 
• Galaxy (from trello) 
This is MDG's commercial product -- a managed 
cloud platform for deploying Meteor apps. You 
have control of the underlying hardware (you 
own the servers or the EC2 instances, and 
Galaxy manages them for you). 
General Availability for Galaxy will be sometime 
after 1.0, since we want to focus on Meteor 1.0 
and get it out as quickly as possible.
meteor build 
(meteor bundle)
Meteor build 
$ meteor build my_directory 
• Part of the meteor core 
• Running on your own infrastructure 
• Generates a fully-contained Node.js application in the form of a tarball 
Client 
[Meteor] 
Server 
[Node.js 
+ deps] 
(bundle). 
• Used also for generating mobile versions (android/ios) 
• Starts the app with: node main.js 
• Still not documented in docs.meteor.com
Meteor build – still some deps are 
missing... 
• But if you’ve used a binary npm module, you 
need to re-install it manually. Just like you are 
doing it with fibers. 
• Actually things are changing from version 
>0.9 
But If you are using demeteorizer, then there is 
no problem.
demeteorizer
demeteorizer 
• Installs via NPM 
• Demeteorizer's output is similar to meteor 
build except that it generates a package.json 
containing all required dependencies. This 
allows you to easily run npm install on the 
destination server, which is especially 
important for compiled modules. 
• Adds package.json 
• Installs with npm install -g demeteorizer
demeteorizer 
$ meteor build my_directory 
• Running on your own infrastructure 
• Generates a fully-contained Node.js application in the form of a tarball 
Client 
[Meteor] 
Server 
[Node.js] 
(bundle) 
• Starts the app with: node main.js
Demeteorizer – modulus 
• Opensourced by Modulus 
• Modulus is a PaaS that officially support 
Meteor 
• Intregrated into CLI moduls deploy
Modulus – how it works 
B 
A 
L 
A 
N 
C 
E 
R 
servo 
1 
servo 
2 
servo 
3 
http req
MUP 
Production Quality Meteor 
Deployments
MUP 
• Installs via NPM 
• Developed by Arunoda 
• Single command server setup 
• Single command deployment 
• Autostarts app (upstart and forever) 
• Access, logs from the terminal (supports log tailing) 
• Support for multiple meteor deployments 
Client 
[Meteor] 
Server 
[ubuntu/debian 
opensolaris]
Mup – why is cool 
• Deploys on AWS EC2 
• Rebuilds platform dependent NPM modules 
• Uses JSON for muliple deployment paths (can 
manipulate them via gruntjs) 
• Supports meteor.settings 
• Env vars are in json
How I launched my project on line 
• problem 
– We want to serve many users, from everyware 
– We want to scale easy 
– Backgrounds and heavy loads are moved outside 
meteor. 
• solution 
– Platform: AWS + compose.io 
– Deployment: gruntjs + mup
AWS + Compose configuration 
Static assets S3 
HA PROXY 
EC2 
ubuntu 
EC2 
ubuntu 
EC2 
ubuntu 
CLOUDFRONT 
CDN 
Meteor calls 
mongoDb 
OpLog 
Enabled
tips 
• Use MongoDb with OpLog 
– Compose is a good start 
• Don’t serve static content via nodejs 
• Use balancer that supports 
– Sticky session when websockets not work. 
– Leastconn algorithm 
– Client timeouts > 30 sec
Haproxy.conf 
defaults 
mode http 
timeout connect 60s 
timeout server 60s 
timeout client 60s 
timeout check 5s 
frontend public 
#binding port 80 
bind *:80 
default_backend apps 
backend apps 
#load balancing algorithm 
balance leastconn 
#using JSESSIONID as the cookie 
cookie JSESSIONID insert nocache 
#adding server 
server host1 host1.example.com cookie host1 
server host2 host2.example.com cookie host2 
server host3 host3.example.com cookie host3 
#Link: https://meteorhacks.com/how-to-scale-meteor.html
deployment 
• Use Gruntjs for your deployment steps 
– Create a .deploy folder in your meteor proj 
– Run tests, before deployment 
– Compile Scss to css 
– Upload statics to CDN (S3) 
– Add private local npm modules 
– Edit MUP json conf files before deploying 
• And finally, use mup for the upload
deployment 
..and make sure your deployments to Test and 
Production enviroments requires minimum 
manual operations...
Grazie 
miro.radenovic@dev4side.com

More Related Content

What's hot

On MongoDB backup
On MongoDB backupOn MongoDB backup
On MongoDB backupWilliam Yeh
 
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...OpenNebula Project
 
Glass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldGlass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldPayara
 
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David LutterkortOpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David LutterkortNETWAYS
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonJulia Mateo
 
Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftJakub Krajcovic
 
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...Kasun Gajasinghe
 
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...OpenNebula Project
 
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices  Framework fo...WSO2Con EU 2016: Creating Microservices with WSO2 Microservices  Framework fo...
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...WSO2
 
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...NETWAYS
 
Enhancing OpenStack FWaaS for real world application
Enhancing OpenStack FWaaS for real world applicationEnhancing OpenStack FWaaS for real world application
Enhancing OpenStack FWaaS for real world applicationopenstackindia
 
Remote security with Red Hat Enterprise Linux
Remote security with Red Hat Enterprise LinuxRemote security with Red Hat Enterprise Linux
Remote security with Red Hat Enterprise LinuxGiuseppe Paterno'
 
Openstack study-nova-02
Openstack study-nova-02Openstack study-nova-02
Openstack study-nova-02Jinho Shin
 
Introduction to node.js GDD
Introduction to node.js GDDIntroduction to node.js GDD
Introduction to node.js GDDSudar Muthu
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices ArchitectureIdan Fridman
 
Building Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASBuilding Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASKasun Gajasinghe
 
Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)roland.huss
 

What's hot (20)

On MongoDB backup
On MongoDB backupOn MongoDB backup
On MongoDB backup
 
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...
OpenNebulaConf2017EU: Alternative Context for Windows by Paul Batchelor, Blac...
 
Node.js on Azure
Node.js on AzureNode.js on Azure
Node.js on Azure
 
Glass fish performance tuning tips from the field
Glass fish performance tuning tips from the fieldGlass fish performance tuning tips from the field
Glass fish performance tuning tips from the field
 
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David LutterkortOpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and Marathon
 
Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and Swift
 
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
 
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...
OpenNebulaConf2017EU: One (Windows) Image to Rule them All by Paul Batchelor,...
 
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices  Framework fo...WSO2Con EU 2016: Creating Microservices with WSO2 Microservices  Framework fo...
WSO2Con EU 2016: Creating Microservices with WSO2 Microservices Framework fo...
 
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...
OpenNebula Conf 2014 | Lightning talk: Proactive Autonomic Management Feature...
 
Cloudinit
CloudinitCloudinit
Cloudinit
 
Enhancing OpenStack FWaaS for real world application
Enhancing OpenStack FWaaS for real world applicationEnhancing OpenStack FWaaS for real world application
Enhancing OpenStack FWaaS for real world application
 
Remote security with Red Hat Enterprise Linux
Remote security with Red Hat Enterprise LinuxRemote security with Red Hat Enterprise Linux
Remote security with Red Hat Enterprise Linux
 
Openstack study-nova-02
Openstack study-nova-02Openstack study-nova-02
Openstack study-nova-02
 
OpenStack Glance
OpenStack GlanceOpenStack Glance
OpenStack Glance
 
Introduction to node.js GDD
Introduction to node.js GDDIntroduction to node.js GDD
Introduction to node.js GDD
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices Architecture
 
Building Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 ASBuilding Services with WSO2 Microservices framework for Java and WSO2 AS
Building Services with WSO2 Microservices framework for Java and WSO2 AS
 
Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)
 

Viewers also liked

2RS digital content
2RS digital content  2RS digital content
2RS digital content karlaarnall
 
Отчетно выборное собрание
Отчетно выборное собраниеОтчетно выборное собрание
Отчетно выборное собраниеRusl Ismag
 
Mark Cohen - Top 5 Places to Visit in NYC
Mark Cohen -  Top 5 Places to Visit in NYCMark Cohen -  Top 5 Places to Visit in NYC
Mark Cohen - Top 5 Places to Visit in NYCMark Cohen
 
Peddie Roofing Corporate Show Produced by Unimark Creative
Peddie Roofing Corporate Show Produced by Unimark CreativePeddie Roofing Corporate Show Produced by Unimark Creative
Peddie Roofing Corporate Show Produced by Unimark CreativeRotary
 
Marketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingMarketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingBharat .
 
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015Life Care
 
Relaciones laborales. mandala
Relaciones laborales. mandalaRelaciones laborales. mandala
Relaciones laborales. mandalaVeronica Morales
 
Men's Fashion Spring 2015
Men's Fashion Spring 2015Men's Fashion Spring 2015
Men's Fashion Spring 2015Mark Cohen
 
Marketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingMarketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingBharat .
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentationudo sucre
 
Entorno de Trabajo de Photoshop
Entorno de Trabajo de PhotoshopEntorno de Trabajo de Photoshop
Entorno de Trabajo de Photoshopstephanyzambrano
 

Viewers also liked (19)

2RS digital content
2RS digital content  2RS digital content
2RS digital content
 
Lavavajillas Siemens SR25M884EU
Lavavajillas Siemens SR25M884EULavavajillas Siemens SR25M884EU
Lavavajillas Siemens SR25M884EU
 
Mai dimenticare Hatem
Mai dimenticare HatemMai dimenticare Hatem
Mai dimenticare Hatem
 
UNICEF.
UNICEF.UNICEF.
UNICEF.
 
Отчетно выборное собрание
Отчетно выборное собраниеОтчетно выборное собрание
Отчетно выборное собрание
 
Mark Cohen - Top 5 Places to Visit in NYC
Mark Cohen -  Top 5 Places to Visit in NYCMark Cohen -  Top 5 Places to Visit in NYC
Mark Cohen - Top 5 Places to Visit in NYC
 
Congelador Balay 3GUB3252
Congelador Balay 3GUB3252Congelador Balay 3GUB3252
Congelador Balay 3GUB3252
 
Bb
BbBb
Bb
 
Peddie Roofing Corporate Show Produced by Unimark Creative
Peddie Roofing Corporate Show Produced by Unimark CreativePeddie Roofing Corporate Show Produced by Unimark Creative
Peddie Roofing Corporate Show Produced by Unimark Creative
 
Marketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingMarketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for Reading
 
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015
CATALOGUL LIFE CARE VALABIL 01 SEPTEMBRIE 2014 - 28 FEBRUARIE 2015
 
Doc3
Doc3Doc3
Doc3
 
Relaciones laborales. mandala
Relaciones laborales. mandalaRelaciones laborales. mandala
Relaciones laborales. mandala
 
Men's Fashion Spring 2015
Men's Fashion Spring 2015Men's Fashion Spring 2015
Men's Fashion Spring 2015
 
Celovito razmišljanje za celovito poročanje: kako lahko komunikatorji prispev...
Celovito razmišljanje za celovito poročanje: kako lahko komunikatorji prispev...Celovito razmišljanje za celovito poročanje: kako lahko komunikatorji prispev...
Celovito razmišljanje za celovito poročanje: kako lahko komunikatorji prispev...
 
Marketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for ReadingMarketing Plan for Moblibo - An App for Reading
Marketing Plan for Moblibo - An App for Reading
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Forcast2
Forcast2Forcast2
Forcast2
 
Entorno de Trabajo de Photoshop
Entorno de Trabajo de PhotoshopEntorno de Trabajo de Photoshop
Entorno de Trabajo de Photoshop
 

Similar to Deploy meteor in production

Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...Uri Cohen
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksDejan Glozic
 
From monolith to microservice with containers.
From monolith to microservice with containers.From monolith to microservice with containers.
From monolith to microservice with containers.Marcel Dempers
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)Chris Cowan
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...Nati Shalom
 
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Cloud Native Day Tel Aviv
 
An Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureAn Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureTroy Miles
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allMarc Dutoo
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныTimur Safin
 
Node Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsNode Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsChetan Desai
 

Similar to Deploy meteor in production (20)

Meteor
MeteorMeteor
Meteor
 
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
From monolith to microservice with containers.
From monolith to microservice with containers.From monolith to microservice with containers.
From monolith to microservice with containers.
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)
 
Let me introduce you: DOTS
Let me introduce you: DOTSLet me introduce you: DOTS
Let me introduce you: DOTS
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
 
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
 
Node.js
Node.jsNode.js
Node.js
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
Mini-Training: Node.js
Mini-Training: Node.jsMini-Training: Node.js
Mini-Training: Node.js
 
An Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows AzureAn Introduction to Node.js Development with Windows Azure
An Introduction to Node.js Development with Windows Azure
 
Getting Started with MEAN Stack
Getting Started with MEAN StackGetting Started with MEAN Stack
Getting Started with MEAN Stack
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
Meteor Introduction
Meteor IntroductionMeteor Introduction
Meteor Introduction
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоны
 
Node Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.jsNode Summit 2016: Building your DevOps for Node.js
Node Summit 2016: Building your DevOps for Node.js
 

Recently uploaded

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 

Deploy meteor in production

  • 1. Deploy Meteor in production miro.radenovic@dev4side.com .
  • 2. Who is Miro? • Dev4Side srl - Milano (12 emp) • 10years of .NET (asp.net) • 8months with server-side JS
  • 3. Why meteor • Fullstack JS • $11.2 million in funding • Mongodb • Reactive
  • 4. So, you wanna see your meteor project online? • Deploy – meteor deploy (core) – meteor build (core) – Demeteorizer (from modulus) – MUP (arunoda) • Host – on meteor.com – on Modulus – Own infrastructure • Solutions, tuning and tips
  • 6. Meteor deploy $ meteor deploy myapp.meteor.com • Part of the core • Running on Meteor's infrastructure • The easiest way to deploy your application is to use meteor • Your application is now available at myapp.meteor.com Client [Meteor] Server meteor.com
  • 7. Meteor deploy • Galaxy (from trello) This is MDG's commercial product -- a managed cloud platform for deploying Meteor apps. You have control of the underlying hardware (you own the servers or the EC2 instances, and Galaxy manages them for you). General Availability for Galaxy will be sometime after 1.0, since we want to focus on Meteor 1.0 and get it out as quickly as possible.
  • 9. Meteor build $ meteor build my_directory • Part of the meteor core • Running on your own infrastructure • Generates a fully-contained Node.js application in the form of a tarball Client [Meteor] Server [Node.js + deps] (bundle). • Used also for generating mobile versions (android/ios) • Starts the app with: node main.js • Still not documented in docs.meteor.com
  • 10. Meteor build – still some deps are missing... • But if you’ve used a binary npm module, you need to re-install it manually. Just like you are doing it with fibers. • Actually things are changing from version >0.9 But If you are using demeteorizer, then there is no problem.
  • 12. demeteorizer • Installs via NPM • Demeteorizer's output is similar to meteor build except that it generates a package.json containing all required dependencies. This allows you to easily run npm install on the destination server, which is especially important for compiled modules. • Adds package.json • Installs with npm install -g demeteorizer
  • 13. demeteorizer $ meteor build my_directory • Running on your own infrastructure • Generates a fully-contained Node.js application in the form of a tarball Client [Meteor] Server [Node.js] (bundle) • Starts the app with: node main.js
  • 14. Demeteorizer – modulus • Opensourced by Modulus • Modulus is a PaaS that officially support Meteor • Intregrated into CLI moduls deploy
  • 15. Modulus – how it works B A L A N C E R servo 1 servo 2 servo 3 http req
  • 16. MUP Production Quality Meteor Deployments
  • 17. MUP • Installs via NPM • Developed by Arunoda • Single command server setup • Single command deployment • Autostarts app (upstart and forever) • Access, logs from the terminal (supports log tailing) • Support for multiple meteor deployments Client [Meteor] Server [ubuntu/debian opensolaris]
  • 18. Mup – why is cool • Deploys on AWS EC2 • Rebuilds platform dependent NPM modules • Uses JSON for muliple deployment paths (can manipulate them via gruntjs) • Supports meteor.settings • Env vars are in json
  • 19. How I launched my project on line • problem – We want to serve many users, from everyware – We want to scale easy – Backgrounds and heavy loads are moved outside meteor. • solution – Platform: AWS + compose.io – Deployment: gruntjs + mup
  • 20. AWS + Compose configuration Static assets S3 HA PROXY EC2 ubuntu EC2 ubuntu EC2 ubuntu CLOUDFRONT CDN Meteor calls mongoDb OpLog Enabled
  • 21. tips • Use MongoDb with OpLog – Compose is a good start • Don’t serve static content via nodejs • Use balancer that supports – Sticky session when websockets not work. – Leastconn algorithm – Client timeouts > 30 sec
  • 22. Haproxy.conf defaults mode http timeout connect 60s timeout server 60s timeout client 60s timeout check 5s frontend public #binding port 80 bind *:80 default_backend apps backend apps #load balancing algorithm balance leastconn #using JSESSIONID as the cookie cookie JSESSIONID insert nocache #adding server server host1 host1.example.com cookie host1 server host2 host2.example.com cookie host2 server host3 host3.example.com cookie host3 #Link: https://meteorhacks.com/how-to-scale-meteor.html
  • 23. deployment • Use Gruntjs for your deployment steps – Create a .deploy folder in your meteor proj – Run tests, before deployment – Compile Scss to css – Upload statics to CDN (S3) – Add private local npm modules – Edit MUP json conf files before deploying • And finally, use mup for the upload
  • 24. deployment ..and make sure your deployments to Test and Production enviroments requires minimum manual operations...

Editor's Notes

  1. Its been here for long to time to help you deploy meteor on node PaaS