Rise of the Machine Images
Immut able Infrastructure
@axelfontaine
Immut able Infrastructure Rise of the Machine Images About Axel - - PowerPoint PPT Presentation
@axelfontaine Immut able Infrastructure Rise of the Machine Images About Axel Fontaine Founder and CEO of Boxfuse Over 15 years industry experience Continuous Delivery expert Regular speaker at tech conferences JavaOne
Rise of the Machine Images
@axelfontaine
@axelfontaine
flywaydb.org
boxfuse.com
http://en.wikipedia.org/wiki/File:Tdkc60cassette.jpg
Power Network Cooling Phys. Security Phys. Space OS Install OS Patching App Install App Updates Procurement Vendor Mgmt Capacity Plan. Financing
Power Network Cooling Phys. Security Phys. Space OS Install OS Patching App Install App Updates Procurement Vendor Mgmt Capacity Plan. Financing
Power Network Cooling Phys. Security Phys. Space OS Install OS Patching App Install App Updates Procurement Vendor Mgmt Capacity Plan. Financing Months Hours Days or Weeks
Power Network Cooling Phys. Security Phys. Space OS Install OS Patching App Install App Updates Procurement Vendor Mgmt Capacity Plan. Financing Months Hours Days or Weeks
OS Install OS Patching App Install App Updates Procurement Vendor Mgmt Capacity Plan. Financing Hours Days or Weeks
OS Install OS Patching App Install App Updates
Build Unit Tests Continuous Integration Acceptance Tests Continuous Deployment (Code) Continuous Deployment (Code + DB + Configuration) Infrastructure
Build Test
Build Test
Classic Mis istake: Build per Environment
OS Kernel Libraries Language App Server App
OS Kernel Libraries Language App Server App
OS Kernel Libraries Language App Server App
Build Test
OS Kernel Libraries Language App Server App
Build Test
App
OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App
OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App
Updates Updates Updates
Sysadmin
Henry Ford
OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App
Updates Updates Updates
Sysadmin
OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App
Updates Updates Updates
Automated Sysadmin
"Advanced Test Reactor" by Argonne National Laboratory -
Idaho National LaboratoryUploaded using F2ComButton. Licensed under CC BY-SA 2.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Advanced_Test_Reac tor.jpg#mediaviewer/File:Advanced_Test_Reactor.jpg "RIAN archive 341194 Kursk Nuclear Power Plant" by RIA Novosti archive, image #341194 / Sergey Pyatakov / CC-BY-SA 3.0. Licensed under CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:RIAN_archive_341194_ Kursk_Nuclear_Power_Plant.jpg#mediaviewer/File:RIAN_archi ve_341194_Kursk_Nuclear_Power_Plant.jpg
App OS Kernel Libraries Language App Server
Build Test
App OS Kernel Libraries Language App Server
Build Test
Undifferentiated Heavy lifting
App OS Kernel Libraries Language App Server
Build Test
App
Machine Image
OS Kernel Libraries Language App Server
Build Test
Machine Image
OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App OS Kernel Libraries Language App Server App
Machine Image Machine Image Machine Image
Machine Image Machine Image Machine Image
Updates
Network Cable
Network Cable
A Wise Man
Network Cable
Editors Daemons OS Kernel Libraries Utilities Drivers App App Server Package Mgr Compilers SSH Firewall Compatibility Man Pages Language Log Files Users Shells
Network Cable
OS Kernel Libraries App App Server Language Bootable App
15 MB
15 MB
Network Cable
Bootable App
OS Kernel Libraries Language App Server App
12-factor app
The longer an instance is up, the harder it becomes to recreate exactly (and it will fail eventually!)
Use a stable entry point with an internal registry
Elastic Load Balancer
Instance Instance Instance
When was the last time your toaster got hacked?
Complexity is the Enemy of Security
uptime and transient nature of instances
because essential tooling is missing
Bootable App
possible for all environments directly in the Bootable App
and auto-configuration
Bootable App
Key Value JDBC_URL jdbc:… ENV prod
possible for all environments directly in the Bootable App
and auto-configuration
at startup and expose it as environment variables
Instance
including the database
available like Amazon RDS or Google Cloud SQL
schema on application startup
LOG file LOG file LOG file
ssh me@myserver1 tail -f server.log ssh me@myserver2 tail -f server.log ssh me@myserver3 tail -f server.log
LOG file LOG file LOG file
where logs can be
Keep session in an encrypted and signed cookie
Instance
Availability Zone 2
Load Balancer
Logs
Availability Zone 1 App V1 App V1
Load Balancer
Logs
Availability Zone 1 App V1 App V1 Availability Zone 2
Load Balancer
Logs
Availability Zone 1 App V1 App V1 App V2 App V2 Availability Zone 2
Load Balancer
Logs
Availability Zone 1 Availability Zone 2 App V1 App V1 App V2 App V2
(as in OS-level virtualization)
Both Intel and AMD have hardware support for virtualization
Image Hardware Hypervisor Image Hardware OS+Container Runtime
Container VM
Image Hardware Hypervisor Image Hardware OS+Container Runtime
Container VM
Hypervisor
instance scheduling machine images instances instance volumes instance networking container scheduling container images containers container volumes container networking
instance scheduling machine images instances instance volumes instance networking container scheduling container images containers container volumes container networking
Only makes sense if you cannot afford 0.5 .5p/hour granularity
Classic Mis istake: Build per Environment
Bootable App
Classic Mis istake: Build per Environment
boxfuse.com
AXEL FONTAINE @axelfontaine
boxfuse.com