6 ms·
I can, and I will. It's not just security that's affected, it's availability, reliability, and maintainability as well, and it fosters a culture which doesn't v
by ddevault 7y ago
I can, and I will. It's not just security that's affected, it's availability, reliability, and maintainability as well, and it fosters a culture which doesn't value any of those things nearly enough, leading to a bunch of hulking monoliths lumbering over to the pile of VC money for dinner. I have no confidence in any of these systems.
- geerlingguy 7y agoA system like Ansible, in particular, doesn't install anything resident on the servers it manages, nor manages state which could be exploited on a management machine. And in one sense, it's like writing a shell script and running it on the server via SSH. Manual provisioning scales well enough for a single server but is much less secure when you scale past one server, or need to be able to rebuild that server in a hurry, like when your cloud provider inevitably deletes it.
- ddevault 7y agoAnsible will faithfully deploy any security vulnerabilities you tell it to across your whole fleet, in just seconds! Don't make the mistake of thinking it's immune to errors. https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ansible https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ansible Your servers ought to be simple, too. Once you're simple enough, the problems shrink and shrink until they're barely there. Or, you can go as complex as possible and just hide them in mountains of garbage. "There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies."
- ghshephard 7y agoOkay - I'm intrigued. How do you recommend managing infrastructure which consists of thousands of servers? With k8s - you just delete the pod and it gets recreated with a clean image within a few seconds. What's your proposal?
- ddevault 7y agoI recommend not having thousands of servers. Who has thousands of servers? Maybe 10 companies, worldwide, have an actual demonstrable need for that. The rest of the companies are just engaging in devops masturbation.
- akerl_ 7y agoWhat about the plethora of companies that provide B2B IT services? If your company’s business is “deploy $insert_products on-premise for each customer”, and you’re doing good business, you’re going to quickly approach thousands of servers.
- AmericanChopper 7y agoI was doing some work for a bank last month. It’s a reasonably small bank, and you likely haven’t heard of it. They have thousands of servers. They had over 100 logstash instances alone. All their desktops were virtualized, and that was a couple thousand servers at least.
- ddevault 7y agoThey have thousands of servers, but should they? I'm sure they must, banks are, after all, world-famous for their technical accumen. It's good to know that my money is as safe as I always suspected it was.
- AmericanChopper 7y agoI did suggest to them, for the sake of reliability, that they should move their entire infrastructure to one incredibly large server. Because a single point of failure is easier to maintain (less points that can fail). But sadly, they didn’t listen. Seriously though, payment infrastructure actually is known for its reliability and fault tolerance. Banking systems don’t go offline terribly often.
- ddevault 7y ago
- tptacek 7y agoYou will also faithfully deploy any security vulnerabilities you decide to, during your manual deployment process. I’m not sure how it is that you think you’ve dunked on Ansible here.
- ddevault 7y agoLess complicated software -> less complicated deployments -> less complicated systems -> fewer vulnerabilities. It's a mathematical fact.
- tptacek 7y agoDeploying your less-complicated design consistently through automation reduces complexity; it doesn’t increase it. I don’t think we are operating from similar definitions of “mathematical fact”.
- ddevault 7y agoSome automation is good, but no one reaches for these tools because they need "some" automation. They do it because they have already obscenely over-complex applications which require these levels of complexity just to stand them up. Or worse, they don't have that level of complexity, but they use these tools anyway, which means that they account for more than half of the software's complexity in the first place.