3 ms·
Did you weigh these costs against the value of the developers not stepping on eachother's toes using the same instance?Separate users with sudo privileges provi
by thruhiker 8y ago
Did you weigh these costs against the value of the developers not stepping on eachother's toes using the same instance?Separate users with sudo privileges provides zero isolation.
I'm unsure what use case was, but if it was a testing or staging environment dedicated to each developer, having a separate right-sized instance for each is quite sane and reasonable.
EC2 instances such as the T2/T3 series are cheap enough that there's normally not a need to be so miserly in my experience.
- CharlesColeman 8y ago>> I am certain the whole system could run on one dedicated blade. There was just this culture (made easy with docker containers) of "spin up another box" for every silly little tool. > Did you weigh these costs against the value of the developers not stepping on each other's toes using the same instance? Separate users with sudo privileges provides zero isolation. Each developer's machine is a separate instance. If the whole system could run on "one dedicated blade," then the developers could easily run a local instance on their own machines (either directly or in a VM) without stepping on anyone's toes. Using AWS for local development seems wasteful and over-complicated to me. The only good reason I can see for doing it is if you're really vendor-locked into AWS-proprietary services, and it's impractical to run your code anywhere except on AWS (but that's arguably a mistake in itself).
- deathanatos 8y ago> Each developer's machine is a separate instance. If the whole system could run on "one dedicated blade," then the developers could easily run a local instance on their own machines (either directly or in a VM) without stepping on anyone's toes. What the parent you're responding to likely meant was that, by running everything on one system ("one dedicated blade") you are causing all of the things on that system to share certain things. The set of system-installed packages; if nginx needs to be installed and running, is its configuration now shared between all of the services on that machine; and even the very OS itself (e.g., if it needs to go down for updates, or it needs to do, say a dist-upgrade, which means that all of the associates services on that instance need to dist-upgrade together, and one laggard can thus hold everyone back.) Even in the case of developers using an instance on AWS, the same applies, really: a dev, legitimately developing some component, could have cross-talk to others, in all of the same ways listed above. I do agree that giving devs dedicated instances might not be appropriate in many instances, and it perhaps wasn't appropriate in yours. But there's two points here: whether the devs needed those instances, or could develop on local laptops, and whether putting all instances or users on a single instance works well. Even for development, given that most corps seem to love giving devs that code primarily for Linux servers OS X laptops, there might be advantages to allowing them to develop on the actual target hardware. > There was just this culture (made easy with docker containers) of "spin up another box" for every silly little tool. Docker here should make it rather trivial to combine everything onto a single instance, since that's what isolation gets you: a well defined unit that doesn't have endless unknown dependencies on the host system.
- h1d 8y agoSounds cheaper to just give them VMware fusion and a dev OS image which is mostly identical to the target architecture. I really don't see why many run their environment on macOS through Homebrew etc which is surely going to require modifications here and there when deploying to Linux servers.
- h1d 8y agoCan you not run a docker container for each dev who would log into it, so they're isolated to begin with? Of course ports can't be shared for each app servers but you can get around that anyhow.
- thruhiker 8y agoIf the development environment is comprised of multiple container images that would likely justify dedicated small EC2 instances.
- miranda_rights 8y agoAn old job had that setup, with about 15 devs per instance. It worked surprisingly well, where each developer had sudo access but was asked to 'use it with care'. It helped that there was a mix in the type of work, so not everyone was doing resource-intensive work, etc.