Today’s web servers run a myriad of software from numerous vendors, and everything must work together in unison for a secure and reliable hosting solution.
Most servers are set up the old-fashioned way – “manually provisioned”: a systems administrator will install an operating system, install a bunch of software, and configure it all to work together. This approach is fundamentally flawed for critical business infrastructure like e-commerce hosting. In short, the hidden overhead in supporting manually provisioned servers could cost your business more in the long run, and you may want to consider “containerization” as a potential cost saving alternative for your eCommerce website hosting requirements.
Avoid the common headache called “configuration drift”.
Think about what you’d have to do if you bought a new computer – you’d have to set everything up again, and unless you have extensive documentation on exactly how you had everything, the odds are slim you’ll get it exactly how your old one was set up. Manually provisioned servers commonly experience this so-called “configuration drift” between production and test environments.
Configuration drift causes bugs to be missed in test environments.
Many bugs only show up when run on specific versions of software, or when using specific settings. If a test environment doesn’t accurately simulate a production environment, bugs that could have been caught slip through to production and cause expensive issues. On manually provisioned servers, the only way to try and prevent configuration drift is to precisely hand-perform every single change on every production, test, and development server. To err is human, and over time small inconsistencies add up until the environments barely resemble each other.
Manually provisioned servers increase operational overhead.
Changing anything, while trying to prevent configuration drift, on a manually provisioned server costs valuable time. Applying the same change to multiple servers to keep environments in sync multiples the amount of work involved. If something goes wrong, there is no “undo button”. A botched software update to a manually provisioned server can be difficult to recover from, and cause expensive downtime.
“Containerization” is the future of software.
Just like how the standardization of the intermodal shipping container revolutionized global trade, containerization is revolutionizing software by standardizing how software is distributed, configured, and deployed.
Reliability, reproducibility, and consistency for e-commerce sites.
Instead of manually provisioning servers and crossing our fingers that all the environments are identical, we can define our software and configuration requirements as code and have confidence they will be identical. We can deploy software changes to production with confidence that what is going live is exactly what we were running on the development server, and vetted by the QA team on the test server. Rolling back bad deployments is simple, and new software can be added with minimal chances of interfering with existing software. This is the beauty of containers and configuration as code.
Improves security with component isolation.
An important part of hardening a server is segregating the individual components, to prevent a single compromised component from resulting in “lateral movement” – an attacker leveraging their access to compromise the rest of the application. With containers, this segregation is built-in. Another important task when hardening a server is to run as little software as possible, open as few ports as possible, and grant as few permissions as possible to only the programs that need them. Containers are an easy way to accomplish these goals.
In summary, leveraging containerization and configuration as code comes with a higher upfront cost but pays dividends in developer time saved and downtime minimized. These technologies are ideal for providing scalable, quality eCommerce website hosting.