There really should be an abstraction above the OS and “distro” levels. I’m talking about something akin to Open Compute, but not as inaccessible. No, what we need is some open and well thought out guidelines for what your basic tech start-up company infrastructure should look like. My guess is that a project to pull together the many open projects we’ve got into some standard layout will be a popular idea, which can reap many benefits.
Let’s try to answer some basic questions here for the common IT bootstrapper / renovator (after the break):
- What kind of machines should I be buying?
- What are the most secure, reasonable and efficient open source solutions to common problems, such as DNS, virtualization, network security scanning?
- How should I name my hosts?
- What authentication scheme should I use?
- How will I set up my VPN?
- What should my network look like?
- How can I give myself reasonably secure remote access to my consoles and management interfaces (e.g DRAC, IPMI)?
- What should my service desk use to handle tickets?
- The cloud is great, but expensive. How can I best utilize it from day one and moving forward?
- How about a private cloud? That’s cheaper and more secure, right?
- Hybrid cloud, anyone?
I realize there are many differing opinions on how to handle these situations, as well as different use cases and budgets. There are varying degrees of skill and so on. My intent is to clear away the fear surrounding a purely open source infrastructure and draw a line in the sand, beyond which small businesses and Systems Administrators will have an actual starting point for their new networks, instead of just shooting into the dark of their favorite Linux distro or search engine, trying to piece together the perfect one-off infrastructure in the hopes that the turmoil of trying the next search result will recede at some point.
Here are the basic components I imagine this encompassing:
- tiered levels of complexity (small, medium, large)
- network diagrams
- hardware recommendations
- OS and integrated software recommendations
- security guidelines
- configuration management guidelines
- scripts to deploy and integrate or perhaps even a dashboard to pull it all together
- time estimates of each component
- room for alternatives and project forking
- constructive rules to live by (e.g. naming conventions)
- development and stable “releases”
Please leave a comment and let me know what you think. I really believe in this idea, and have been working out some cornerstones to this in the past few years.
Thanks for reading.