2 ms·
This is so the wrong question. Immutable infrastructure does not require nor warrant restricting the form of access you have to your services. Having everythin
by OriPekelman 11y ago
This is so the wrong question. Immutable infrastructure does not require nor warrant restricting the form of access you have to your services.
Having everything build-oriented (basically building the builder on every deployment, than using it to build the service) is what prevents drift.
Running on a read-only file system is what guarantees immutability and prevents drift.
Not allowing SSH is plugging a single hole which guarantees nothing. Can the app-server write on its own disk? Can it modify configuration files? Maybe even code?
As a developer I want to be able to write applications that are not specific to any one deployment method. I want to be able to change my mind to host this on different kind of infrastructure. These kind of limits force you to create a strong adherence between your application and its tooling and the deployment method.
Of course, the Read/Write domain has to be explicit and limited, but this is good practice anyway. Running on a distributed storage grid based on something like CEPH can allow you to address this domain not only explicitly but also in a fault-tolerant and scalable way.
When you cut off SSH you are cutting off half of the tooling we have and you make everything overly complicated. I want to be able to tail any log on any host. I want to be able to scp for inspection any file to my dev machine.
At platform.sh (a PaaS running on a distributed grid of micro-containers) we run a build oriented immutable infrastructure so there is no, there can be no infrastructure drift.
We proxy SSH so security stays the responsibility of the orchestration layer not any single host or service. This means we can filter by role any connection to any service, but developers can still just use the tools that work.