I just learned the MEAN stack and I locally developed/tested an app. Now, I want to deploy this application to the internet so the world can use it. I don't know how to do this and am lost.
So far, this is what I think is needed. Please correct me if I'm wrong.
1) Purchase a domain (done using Google domains)
2) Find a host for that domain (using Hostgator)
3) Deploy mean app to a cloud service (like Azure, AWS, Heroku, Digital Ocean)
4) ???
5) Fiddle with some settings so the user can access my web app on mydomain.com
What is a recommended cloud service to use? This is my first time doing this so help appreciated!
There are a lot of articles on the web already(why not google first?)!
Here are some:
Deploy MEAN
Deploy Your MEAN Stack Apps to Heroku
Running Mean.js App on Azure App Services with Continuous Integration and Delivery
Bossable - MEAN Stack Deploy on Azure
John Papa - Deploying Angular on Azure
Deploying a MEAN App to Amazon EC2 (Part 1)
Deploying a MEAN App
Stackify - Why Azure Deployment Slots are Awesome and How to Use Them
[express, angular, mongo, mongoose, deploy, digitalocean, ssh, Heroku, node]
I would suggest you to use AWS for these kind of stacks and in AWS you can use beanstalk and you don't need to care about management.
https://aws.amazon.com
Related
Good day dear community,
i have a smaller project where i need to search for different possibilities to deploy a website under azure portal.
Personally i found 4 different ways how to do it.
App services
App functions Serverless (which i dont understand how to deploy there a website)
Install a VM and then deploy a website
Use docker to deploy your code
Question:
Are there any more ways to deploy a website under azure and can somebody explain the deployment of websites with serverless as i dont understand how to publish a website there. i just managed to get the httptriggers and i am confused with that.
Thanks in advance
sorry for any spelling mistakes.
You can deploy to a website to a VM. But first you will have to setup the VM to be a web server. There are many different pre-configured images with either Linux or Windows OS. This will require you manage the OS of the VM.
An Azure App Service will abstract the OS and VM away from you. The OS will be managed for you and you can configure many settings through the Azure Portal. There are different plans that allow you to use more compute and/or memory. You can also setup Authentication through the portal. You can also elect to deploy you website inside a container to an App Service.
There are also Azure Function Apps which can be used. Azure Function Apps are not intended to serve as the backend to a website, but it can be. These are meant to serve only one purpose, not many like the backend of a whole website ( for example, you might use a different function app to serve content each page of a website instead of just one app service having multiple endpoints serving all pages of a website). With Azure function apps, you can deploy in a container or not in a container.
I am not sure what you mean by number 4, Container over docker. You can deploy a docker container an App Service or a Function App. You can deploy the container to docker hub or azure container registry (to name a couple), but that will not deploy your website so that it is accessible.
I have plenty of spare machines that i could use for computing, what would be the best way to deploy a nodeJS app to the web without going through a middle man (aws, azure, heroku)?
I am new to Azure. I have never used azure. So don't mind if this is some silly question.
I have a client who also doesn't know much about deploying.
I have angular/node apps. He wants to host on Azure WITHOUT using a VM.
I am not sure about azure. So i don't know how to deploy without VM.
I know to deploy with RDP(Remote Desktop).
Can anyone help me with this. Is there a way to deploy angular & node app without VM?
Is there any specific documentation for it? Which services will i need in Azure?
Thanks in advance!
Except Azure VM, there are normally two ways to deploy Node.js app on Azure which include App Service - Web Apps and Web Apps for Containers, please see the links below to know these guides.
For deploying Node.js app on Azure Web Apps.
Create a Node.js web app in Azure
Tutorial: Build a Node.js and MongoDB web app in Azure
To deploy the app with a ZIP file, or via FTP, cloud sync, or deploy continuously, or from local Git, etc. You can see more at the left sidebar of these pages.
For deploying Node.js app on Azure Web App for Containers, it's a simple way to deploy the app on Azure as similiar as on local docker.
Create a Node.js web app in Azure App Service on Linux
Build a Node.js and MongoDB web app in Azure App Service on Linux
To deploy via FTP, cloud sync, or deploy continuously, or from local git, etc. Also, you can see more at the left sidebar of these pages.
Some important tools will help deploying easier.
Deploy via VSCode, you can refer to these offical documents for WebApp(App Services) or Container(Docker Images).
To deploy on WebApp not Container, Kudu is a common tool for debuging and deployment. Meanwhile, for Node.js app, we need to use iisnode to connect IIS as revese proxy for your app, and configure the web.config file via follow the kudu wiki document. The Kudu wiki is very useful and valuable for new to Azure.
There are more details for this topic which can not be listed one by one at here, but the above these are necessary. The offical guide for Javascript developers is helpful for new to Azure.
Jay Gong posted a great answer for hosting on Azure. However, you might want to ask your client if s/he means s/he wants a micro services architecture. For more information on micro services, check out this link.
The other viable option would be an App Service (which is an Azure service that manages deployment and abstracts a lot away, but there's a VM under the hood)? Without a VM for hosting, it would be rather difficult to do anything in the cloud on Azure - the only other option is local hosting, which would be without Azure. I would argue that it ruins the purpose of using cloud services, as it seems your client is confused.
Iam looking to host a nodejs app on ECS. On local dev i use ngrok to expose port 3000 and it seems to work well. Now i would like to host it. Is dockerizing mandatory? What would be the steps to host it on amazon ecs if the app is dockerized?
I would also like to know if hosting on ecs is possible without dockerizing.
I would suggest you if you want to go this way to start an EB Instance.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html
And you can deploy your application using CodeShip or use the traditional way in EB where you upload and deploy the code ( I suggest you use CodeShip ).
Another way to do it, and it might end it up being free is Heroku, it's an amazing and easy cloud service where you can deploy your application and build a continuous integration with GitHub, it takes care of everything to you.
This is the walkthrough for Node.Js apps:
https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction
Dockerizing is not mandatory at all, you can do it if you like, the roadmap to deploy the app won't change.
As I have no experience with website publishing I was wondering with how do you publish a AngularJS (front end) + NodeJS (backend) website on some domain. I have researched into some of companies such as WindowsAzzure , AWS and Softlayer but am still not sure. I have already bought the domain from godaddy but how do I run my server instance on these web services and point it to my domain?
Any help will be highly appreciated?
Thanks
I would recommend heroku as an application host and it does node out the box
https://devcenter.heroku.com/articles/getting-started-with-nodejs
It would be best if you used git, then you can push your site to the heroku remote host
you can also add in your domain https://devcenter.heroku.com/articles/custom-domains
but you also get a free one in at 'name'.herokuapp.com
This is also free so long as you come in under the usage theshhold, Should it become a successful app then you can scale out the resource
I have no association with heroku, other than hosting my own node apps on it