Midwest PHP 2018 Notes: VM, Serverless, or Containers by Terry Ryan
Terry gave an overview of Virtual Machines (VM), Serverless options, and Containers. He also did some demos to show them off.
Main Take Aways
I think all three of these are good options but I’m still not sure when it makes sense to use containers.
Things I’m Going to Do
Try containers.
My Raw Notes
- When picking solutions need to worry about Devs, Sysadmins and Financial people
- What’s the problem?
- Options are confusing and expensive
- Where there is money there is FUD
- Three options
- VMs, Containers -> think their local machine but arn’t, serverless
- VMs everyone’s first step
- VMs
- Split off CPU and memory into a box
- Separates hardware from software
- Pros:
- Eliminate direct hardware costs
- No changes for devs
- Reduces toil for system admins
- Cons:
- Can lead to billing surprises
- Change might cause bugs
- System Admins lose control, problems can be created you can’t control
- Iceburg pricing
- Cloud pricing is more expensive when you compare hardware cost
- Doesn’t account for maintenance, cooling, space, etc.
- Radio Show pricing
- When people started making TV show it was basically radio shows on TV - doing it live
- Over buy physical server based on future growth - not completely utilized
- Easier to buy to much VM costs
- VM PRicing Mitigation
- discount in pricing - move risk from cloud provider to cloud provider
- Unstable VM - dramatically reduces prices but resources aren’t guaranteed
- Custom VMs - Constrain resouces to your processing need
- Serverless
- Marketing term
- “There’s no serverless it’s just someone else’s container”
- Was originally PaaS
- Pay per use
- Code is the deliverable
- Hardware is abstracted
- Ways it’s handled
- Application
- Microservices
- Mobile Backends
- Event
- File writes
- Queue messages
- Storage
- Database
- Data Warehouse
- File storage
- Application
- Pros
- Pay only for exact use - no waste
- Easier to create micro services
- Easier to isolate services
- No System Admin work
- Cons
- Burst pricing can surprise you
- Sustained usage will tend to be more expensive
- More serverless systems require proprietary interface
- Existing apps require work to migrate
- Constraints on operations you can do
- Containers
- VMs are slow to spin up
- Containers think they’re running like a VM but they spin up much faster
- Create frontend container and backend container
- If you need more you can easily spin up more frontend containers
- Kubernetes lets you tell what containers you need and it manages them
- Allows you to fill up all capacity easily and when you need new physical server just add it and rebalances
- Pros:
- Allows better resource usage
- Easier to create microservices
- Easiy to isolate services
- Less constraints from serverless
- Encourages devs to wite easily logged, monitored, and diagnose applications
- Cons:
- Still requires sunk minimum costs
- Microservices are great until they aren’t and then they hurt
- More complexity
- Create an additional layer of management
- Mitigation
- Providers have services for managed container hosting
- Managed Kubernetes as well
- Conculsion
- Workload
- VMs
- Good for consistent load
- Licensed executables
- Custom Hardware
- Containers
- Middle step
- Variable load
- Microservices
- Diminishing Legacy Apps
- Serverless
- Greenfield
- Microservices
- Unknown load
- VMs
- Staffing
- Devel heavy - Serverless, containers
- Systems heavy - VMs, Containers
- Some other - VMs
-
“Personally, I love serverless but use containers”
- Lock in
- VM
- Every cloud provider
- Containers
- Every cloud provider
- Servers
- Cloud Proprietary
- No winners yet
- VM
- “Containers, wherever you run them are a safe bet”
- “Ultimately I think serverless will win out”
Scott Keck-Warren
Scott is the Director of Technology at WeCare Connect where he strives to provide solutions for his customers needs. He's the father of two and can be found most weekends working on projects around the house with his loving partner.
RSS
Top Posts
- Working With Soft Deletes in Laravel (By Example)
- Fixing CMake was unable to find a build program corresponding to "Unix Makefiles"
- Upgrading to Laravel 8.x
- Get The Count of the Number of Users in an AD Group
- Multiple Vagrant VMs in One Vagrantfile
- Fixing the "this is larger than GitHub's recommended maximum file size of 50.00 MB" error
- Changing the Directory Vagrant Stores the VMs In
- Accepting Android SDK Licenses From The OSX Command Line
- Fixing the 'Target class [config] does not exist' Error
- Using Rectangle to Manage MacOS Windows