1. There are 13 ways to launch an app to the internet including using a local machine with port forwarding, a local machine in an office with ngrok or localtunnel, a dedicated server with SFTP or SSH, cloud storage services, git-based static hosting, serverless technologies like AWS Lambda, and container/cluster-based options like Docker swarm, AWS EBS, and Kubernetes.
2. Each option has varying degrees of ease of setup, ease of deployment, scalability, and suitability for frontend versus backend apps. Local development options are easiest to setup but not production ready, while container/cluster options are more complex but very scalable and production ready.
3. The document provides a
"13 ways to run web applications on the Internet" Andrii Shumada
1. 13 ways how to
launch app to the
Internet
Andrii Shumada
WalkMe/Ciklum
2. Why not just
call DevOps?
Responsibility Spread Do you need System
Administrator nowadays?
Who is guilty, when something
whent wrong? Is it infrastructure
problem or bug in the code?
To be honest, you donât
3. General requirements to get online
in the Internet
We want to type
www.ourwebsite.com in our browser
to see the site
DNS name
nice DNS name can point to IP
address like 104.133.31.432 or
technical DNS name like
myAWSemoapp.eu-west-1.elb.amazo
naws.com
Static IP address or static
default DNS name
Node.js app, static server (Nginx,
Apache, custom solution)
Server, that can handle HTTP
requests
5. My home laptop/PC is connected to the
Internet, can I use it to get website online?
6. npm start (Node.js or React or whatever)
or npm run build && npx http-server . (Frontend app)
1. Start your app locally
What I need to do?
By default your laptop is not visible to
Internet, if itâs connected via router
2. Do port forwarding on your router
Find IP in the router or visit myip.com
3. Find public IP of your router
and create DNS for it
2.1 How To Find your Local IP*
*Better to switch to static IP
12. Some hosters can provide you it out of box,
IDEâs like Webstorm can sync via SFTP
1. Setup SFTP access, upload project
ïŹles, or ïŹnd hoster with SFTP/SSH
What I need to do?
For static ïŹle you can use apache/nginx,
hoster can provide you it
Also you can start server by you own via
SSH
2. Start server
For Nginx you donât need to do
anything
For node - consider using nodemon
3. Ensure your service will
use new ïŹles, as soon you
upload them
14. 1. Setup:
- ssh into server
- install and conïŹgure git
- Pull and start the project
What I need to do?
2. Update the code
- ssh into server
- pull changes
- Restart the app, consider using pm2
52. FIRST TITLE
$720
$12
Local +
Port
Forward
Local +
localtunnel
Bare +
sftp
bare +
SSH
bare + pm2
deploy
s3
Github
Pages
Lambda
Elastic
Beanstalk
Heroku
Elastic
Container
Service
Docker
Swarm
Kubernet
es
Suitable for
frontend
â â â â â â â â* â* â* â* â*
Suitable for
backend
â â â* â â â â â â â â
Production
ready
â â â â â â â â â â â
Easy to
setup
2/10 10/10 4/10 4/10 7/10 8/10 9/10 7/10 7/10 10/10 2/10 4/10 7/10
Easy to
deploy
10/10 10/10 9/10 6/10 9/10 7/10 10/10 8/10 8/10 10/10 3/10 8/10 8/10
Scalable â* â â* â â â* â â â
Comment
Long
live on
Home
PC
Quick
demo, dev
server for
Mobile
App
Easy to
deploy
for non
devs
Flexible
deploy
ment on
bare
metal
Possible to
scale on bare
metal
Super
scalabl
e/fast
for
fronte
nd
Best for
personal
page
Best for
spikey
load
Extensive
UI for
super
ïŹexible
Setup
PR envs,
easy to
setup
and use
Quite
complex
way to host
Containers
Not
complex
for
containe
rs on
bare
servers
Cloud
agnostic,
highly
ïŹexible
container
ized
solution