Verified Commit adc1102a authored by MrMan's avatar MrMan

More writing

parent 979047e6
......@@ -10,11 +10,12 @@
- Java & Servlets
- Reverse Proxies
- Present
- Present (AKA, the "recent past")
- VMs
- PaaS
- Containers
- Container Orchestration
- Future
- Future (AKA, now and after now)
- ???
# Disclaimer #
......@@ -254,7 +255,7 @@ We've developed technology that makes it easier to do this in a safer and less e
# Present #
## How do we solve this problem today? ##
## How did we solve this problem in the very-recent past? ##
# The Present - VMs #
......@@ -268,26 +269,111 @@ With separate processes running in VMs, one crashed (or malicious) process can n
# The Present - VMs (continued) #
Wouldn't it be really hard to make a completely virtual "machine" that mimics your computer? Yes -- but over the years it's gotten better:
Wouldn't it be really hard to make a completely virtual "machine" that mimics a whole computer? Yes -- but over the years it's gotten better:
- CPUs have gotten VX instructions (which allows a VM to pass through certain OPCODEs straight to the HOST)
- Linux released Kernel-based Virtual Machine ("KVM") support in 2007 which can take advantage of hardware support, runs much faster than userland code
- CPU extend CPUs with new Virtual Machine Extensions ("VMX") instructions (Intel's VT-x and AMD's AMD-V)
- Linux gets Kernel-based Virtual Machine ("KVM") support in 2007
# The End
# What did we gain? #
Now we can relatively performantly run isolated processes as "backends". If we put it all together:
- A process in a language of our choice that started in a VM
- An "outer" web server like Apache or NGINX receives a request
- The outer web server processes and passes some request to the VM
- The process (which may succeed or crash) inside the VM processes the request
# The Present - PaaS #
Here's an idea, if we have well known "stacks" like LAMP and Ruby on Rails, well known databases like MySQL, and VMs as a reasonable way to isolate them, why not automate the experience of deploying software?
Heroku burst onto the scene in 2007 offering exactly this premise -- you provide the code, they provide the infrastructure, and they provide the scale.
# The Present - Containers #
What if there was an easier way to isolate processes running on a machine *without* spinning up a complete VM.
# The Present - Container Orchestration #
Now that we have containers everywhere, how can we treat a group of machines as just a blob of resources for running containers?
# The Present - Container Orchestration (continued) #
## Kubernetes ##
# The Future #
## So where are backends going now/next? ##
# The Future - Less server-side rendering #
- Smaller, simpler backends
- Specialization of *types* of backends (ones that serve data, others that serve webpages)
- More efficient use of available resources on client devices
- Faster iteration for separate teams
# The Future - Functions as a Service #
Thanks for listening to my ~~TED~~ talk!
- Intense focus on business logic
- Near-optimal potential iteration speed
# The Future - Service Oriented Architecture (SOA) & Microservices #
- Simpler, more scalable systems
The only discernable difference between SOA and microservices is a relience on a central message bus
# The Future - Continuous Deployment #
- Automation is important
- Systems that are deployed more frequently spend less time being broken*
\*assuming errors go *down* over time
# The Future - ??? #
No one knows what the future will actually hold, but most of it is here, it's just unevenly disributed*.
# The End #
Thanks for listening
# whoami
If you've got any corrections, complaints, or comments, feel free to reach me using the information below:
Victor Adossi ([email protected])
GPG: ED874DE957CFB552
I run a couple small consultancies to support businesses in Japan and the USA.
I run a couple very small consultancies to support businesses in Japan and the USA:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment