6 • Different types of Scaling • Configuration Drift/Management • Different types of Servers • Build Process for your Web/Application Server Some Topics to Cover #SymfonyCon @_dcsg
Horizontal Scaling 27 Load balancer Cluster Database Cron Jobs Queues Cache Application Server 1 Database Cron Jobs Queues Cache Application Server 2 Database Cron Jobs Queues Cache Application Server 3 Database Cron Jobs Queues Cache Application Server 4 #SymfonyCon @_dcsg
Horizontal Scaling 28 Load balancer Cluster Database Cron Jobs Queues Cache Application Server 1 Database Cron Jobs Queues Cache Application Server 2 Database Cron Jobs Queues Cache Application Server 3 Database Cron Jobs Queues Cache Application Server 4 Will this work? #SymfonyCon @_dcsg
Horizontal Scaling 29 Load balancer Cluster Database Cron Jobs Queues Cache Application Server 1 Database Cron Jobs Queues Cache Application Server 2 Database Cron Jobs Queues Cache Application Server 3 Database Cron Jobs Queues Cache Application Server 4 Will this work? NO #SymfonyCon @_dcsg
Configuration Drift • Manual ad-hoc changes and updates to servers that are not recorded • Servers in your infrastructure became more and more different from each others 40 #SymfonyCon @_dcsg
Configuration Management The process of systematically handling changes to a system in a way that it maintains integrity over time. 49 #SymfonyCon @_dcsg
Configuration Management Spin up Base Image Run Config Management Server in desired state Changes Edit config file Upgrade/install package … Running Server 50 #SymfonyCon @_dcsg
Built Process Spin up Base Image Run Config Management Server in desire state Install packages Create folders Create user Upload app etc Run Config Management 63 #SymfonyCon @_dcsg
Built Process Spin up Base Image Run Config Management Server in desire state Install packages Create folders Create user Upload app etc Run Config Management Repositories unavailable 63 #SymfonyCon @_dcsg
Built Process Spin up Base Image Run Config Management Server in desire state Install packages Create folders Create user Upload app etc Run Config Management Repositories unavailable 63 #SymfonyCon @_dcsg
"An Immutable Server is a server, that once deployed, is never modified, merely replaced with a new updated instance." - Kief Morris in ImmutableServer 66 #SymfonyCon @_dcsg
Immutable Server Build Process Server in desire state configure application environment Spin up Base Image Run Config Management (puppet, chef, ansible) 82 #SymfonyCon @_dcsg
Immutable Server Build Process Bake In the App Server in desire state configure application environment Spin up Base Image Run Config Management (puppet, chef, ansible) 82 #SymfonyCon @_dcsg
Immutable Server Build Process Bake In the App App Final Image Server in desire state configure application environment Spin up Base Image Run Config Management (puppet, chef, ansible) 82 #SymfonyCon @_dcsg
Build Image Stages Flow Example Base Image OS Hardening Common tools (vim, htop, etc) etc Application Base Image Install necessary software to run the App Create user/folders 83
Build Image Stages Flow Example Base Image OS Hardening Common tools (vim, htop, etc) etc Application Base Image Install necessary software to run the App Create user/folders Application Final Image Upload App Script to run App at boot Composer Install Clear Cache 83
Build Image Stages Flow Example Base Image OS Hardening Common tools (vim, htop, etc) etc Application Base Image Install necessary software to run the App Create user/folders Application Final Image Upload App Script to run App at boot Composer Install Clear Cache System upgrades & Security updates 83
Build Image Stages Flow Example Base Image OS Hardening Common tools (vim, htop, etc) etc Application Base Image Install necessary software to run the App Create user/folders Application Final Image Upload App Script to run App at boot Composer Install Clear Cache System upgrades & Security updates Application security, package, configuration updates 83