Web ALL THE THINGS
Increasingly, the "web" is essentially the OS.
Consider "Google/ChromeOS"
A "Stack"
So for all the following, a "web stack" is required
(but these days, frequently "backgrounded"
Tiny individual IoT devices on up to AMAZON have this.
Note; the "stack" is frequently abstracted
And so, you don't hear about all the parts;
ESPECIALLY the parts that don't make someone rich.
(e.g. why you do hear about Docker but not Linux)
the basics of a web stack:
- "A computer"
- " An operating system"
- "A webserver"
- "Some real language"
- "A database for storage"
Lets tighten these up a bit:
- "A computer, possibly virtual, probably running Linux"
- "A webserver and a real language (or a language with a built in webserver)"
- "Optional Database"
A computer (possibly virtual)
- A dinky IoT thing
- Raspberry Pi
- Old computer in your closet
- Server on a Rack
- Virtual Hosting (Torch, DigitalOcean, etc)
- AWS
On Virtual
Many different ways to do "Virtual" and "Virtual-like," but roughly:
Pure Virtual
- Virtualbox
- VmWare
- KVM
i.e. literally fake the whole computer. You have to install the OS, etc.
Containers
This is "Docker" et al:
You don't fake the whole computer;
you wrap up and "package" the stuff you need to use;
and try to wall it off from everything else.
eg DOCKER
Container advantages:
Less space, and what Docker is trying to do is to be the central hub for "reproducible builds.."
So that "installing a web server or service" is almost as easy as "installing an app on a phone"
And shockingly, they don't seem to be evil
Evil?
Because they're trying to make a kabillion dollars from it.
I'd be fine with millions, but not kabllions.
Yay Podman!
When you get big, you have to think about this large scale
e.g. KVM
Kubernetes
and other tools for managing A BUNCH OF THESE.
Also, there's the Proton/Wine thing
Which doesn't much apply to web/hosting:
But may be big in the future in terms of Linux killing windows;
given that games are usually the hardest thing to emulate.
A computer (possibly virtual), probably running Linux
Yep. Usually.
Funny, it's not talked about that much. Or enough.
Again, not the part that makes people Rich, or even popular
A webserver and real language:
Old school way (that's still pretty popular)
Webserver (which just serves up pages)
+
Language (e.g. PHP or ASP) — i.e. a web-specific language
"LAMP STACK"
LAMP STACK
A webserver and real language:
New school way
All in one
e.g. Python's Django
or
Node/Node.js
Again, quick review of languages
- CGI-Bin (old school. Honestly, I feel like we've come full circle)
- PHP/ASP (embedded in html)
- Python/Perl/ etc (general purpose language, with web possibilities)
- JAVASCRIPT
Quick note on databases
Why YET ANOTHER LANGUAGE?
It's a good question. Data storage and retrieval is hard.
JAVASCRIPT
The 800lb gorilla.
Once again, why this mediocre language?
Because
- Bandwidth isn't infinite
- People want interactivity
- Ergo, MUCH must be offloaded to the users machine.
But why THIS language?
First to market. That's pretty much it.
Has it gotten better?
Yes, I think. Almost out of necessity.
But just about EVERYTHING has been replicated, rewritten.
Not only can you theoretically do everything in Javascript, a lot of it is literally "there."
But-- LOTS of wheel reinvention. I mean LOTS
So much so, it's hard to keep up with.
Also, lots of transpiling and other languages etc. etc.
The RUNK problem
The error
The ACTUAL CODE
So you want a "server"
Cool: Things to think about
Check out all things "Self-Hosted"
If it's just for the family inside the house:
- raspberry pi
- computer in the closet
- homelab
So you want to do something at home
Check out EVERYTHING "self-hosted"
So you want to do something on the whole internet?
Can be harder, since big telecom decided that we shouldn't do it like this ☺
- Aka, it's all a web, it's all computers, but we're pretending it's only one way.
Exposure options:
- Try opening the router
- Tor
- ngrok
- etc.
...or
Look into hosting
DigitalOcean et al.
Pretty cheap, it can be.
(cheap enough such that I *think* I have 1 or 2 virtual host machines that literally aren't doing anything right now)
There's also Amazon et al
NGL, I know very little about this personally.
I know you can spin up virtual machines very easily, usually for free?
There's also "Specialized" hosting
Usually, most people think of Web / Email hosting
(this is what I do, I actually don't have "root" on jrm4.com,)
Mostly due to inertia and email.
Back to home...
Stuff I use or mess around with
- pigallery2
- paperless
- mpd
- pi-hole
- python homeassistant, node-red
- minecraft
Backlinks: FSU Courses:LIS5362:RawSlides