TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Should Developers have Access to Production?

62 pointsby niyazpkalmost 15 years ago

13 comments

pedohalmost 15 years ago
I think tearing down walls between SysOps and Developers is important. I don't like the "this is mine, stay out" attitude. That being said, I'm all in favor of dependable and repeatable environments, and when you give people carte blanche to do what they want on the boxes, that can be a recipe for disaster.<p>"Oh, I just upgraded this package, yeah, can you put that in our master image?" <i>sigh</i><p>Do it right, and you can get the developers all the info they need without having access to the box itself. Not only that, but you make it easy to spool up new dev environments for new employees.<p>If access does need to be granted today, then thought should be put in to see if that can be avoided tomorrow. Need a tcpdump today? Great. Access granted. Tomorrow, I'll have a script for you that takes a tcpdump and puts the file where you can access it. Access revoked.
评论 #1575492 未加载
theBobMcCormickalmost 15 years ago
If developers want access to production, <i>they</i> should respond to the call from the helpdesk when production goes down in the middle of the night because of the "simple little tweak" the developer decided to make on the server before leaving for the day.
评论 #1576592 未加载
评论 #1577507 未加载
ratsbanealmost 15 years ago
At several bigcorps where I've worked (&#62;1000 in IT, billions of dollars, lots of regulation) this has been a very big deal and cause of never-ending friction.<p>1) If the admins don't do at least minimal code reviews then it's meaningless. Developers will find ways to circumvent the inefficiencies in the system.<p>2) Admins don't do even minimal code reviews.<p>3) If developers don't have read access to production (code and logs) then admins become the weak link. (Obviously ssl keys and such not included.)<p>4) If a system is so locked-down as to completely eliminate the possibility of anything going wrong it will also be so locked-down that nothing can be fixed or improved.
bradgessleralmost 15 years ago
This is silly. The answer here us, "it depends". For example, if you have sensitive data in a production environment, maybe you don't want developers to have access to the environment regardless of the size of the organization. For smaller, less mature apps, having a full blown IT managed server might be overkill and get in the way. In my previous life as a consultant at Kaiser, we had both situations which was entirely appropriate.
评论 #1576827 未加载
nhashemalmost 15 years ago
I've worked for several "mid-sized" web companies (between 75-200 employees) and this has always been an issue. Here's why:<p>1) The development team interacts directly with a single business unit but the administrators serve the whole company. So say you're a developer that works in the SEM team. All the technical products and processes that manage the company's SEM campaigns, that's what you work on. You directly communicate with the product team and project management. If there's any bottleneck or issue on your projects as you work on them, the entire team is easily made aware of it. You tell your project manager, "Dan in analytics was supposed to get me the data and if I don't get it tomorrow then I'll be late," and your project manager talks to Dan or Dan's boss and you get your data... or you don't, but it's on Dan anyway.<p>However the administrators serve the whole company and they have entirely different sets of priorities and responsibilities that you have no visibility into. So you're ready to go to production and you submit your ticket with your release notes, which is pretty much just, "push these files from SVN and run this SQL on this DB." And it just sits there. A day passes. Then another day. Dan asks why your project's not available yet given that it's "done." You ask your project manager to ask what's going on, he says he's trying to find out but the sys admin manager hasn't been around. You try dropping by the admins yourself (usually sequestered in some remote location in your building, if they're even on site at all!) and ask about your project and they snarl and say, "load on the consumer site has been up 12% all week, we have bigger problems" and mumble a bunch of other things about permissions and server racks and subnets and all you know is that whatever to-do list they're working off of, you're all the way at the bottom.<p>And then...<p>2) The production and development environment just aren't in synch and this never gets addressed. The sys admins finally get to your ticket a week later. Finally, you think, this will go live. Then two hours later you get an e-mail from an admin named Stan that says, "Release failed, please fix the permissions on the directories your application creates and re-submit the ticket." And your ticket's closed. What the hell? Your application didn't even create any directories.<p>If you're lucky Stan included a copy-paste of his shell with the commands he used to export your code and whatever barfing error he got. If not you have to hunt Stan down, ask him to see what exactly the error he got was. Stan sighs, because they're just sooo swamped and sooo busy and the site load has been up for 12% since last week, but he grudgingly does what you say. Oh, yes, your application uses a directory which is owned by 'application1' in dev, but is owned by root in production. So you tell him to just chown the directory to application1, and he says submit a ticket. You blow up and say, "You're right there! Just type in the freaking chown command!" and he says he can't, you have to submit a ticket, and then submit another ticket for the release again. Then one of the other admins says, "Stan, foosball?" and Stan gets up to play some goddamn fucking foosball, while your project is now going on its second week of being late.<p>The next time you meet with your boss and mention how much things easier would be if you could have access to production, and your boss sighs and says it's just not happening. So then you talk to him about how you need better integration with the sys admin team, and it's critical to ensure dev and production environments are identical, and your boss agrees to talk to Stan's boss, and ultimately nothing gets done and you just resent the lack of control over your own projects.
评论 #1575612 未加载
评论 #1576143 未加载
评论 #1575604 未加载
评论 #1577639 未加载
评论 #1575704 未加载
评论 #1576032 未加载
protomythalmost 15 years ago
There might be federal or state regulations that govern the access to production data. Health and Financial systems are particularly touchy.
评论 #1576594 未加载
bmjalmost 15 years ago
According to the regulations that govern my employer's domain, developers cannot have access to production. We have a sysOp representative who knows the software (but isn't a dev) who does have access to troubleshoot issues. In cases of serious bugs, we will work directly with the system administrator to troubleshoot.<p>The point regarding good relationships between engineering and systems is critical. I have a great relationship with our admin, and therefore, when problems arise, we can quickly work together to sort things out.
smitjelalmost 15 years ago
If your company is obligated to follow regulations like those set forth in something like PCI standards, then devs will certainly not have access to production.<p>Otherwise, good practice could be to have everything automated in the production env...whatever you're doing on production, make it as scripted/automated as possible. That way, you're forced to examine your processes ahead of time.
wccrawfordalmost 15 years ago
I've been at this startup long enough that it's no longer a startup. Originally, the 'developers' were expected to handle everything IT-wise. I had minimal skills in some areas, but it was enough to get the job done and keep the company working.<p>Now that we're bigger, I keep wishing that we'd divide responsibilities and have SysAdmins that are responsible for servers and their maintenance, and programmers that are responsible for creating code. I've seen so many projects get off-track because programmers are asked to do sysadmin work and end up being late on their official work. And of course, everyone gets pressured for being late then.<p>Startups need to be nimble and just get things done. That means that many jobs need to get done with only a few people. But once you're no longer a startup, you need to start treating everything like a big company.<p>I love working for a startup, but working for a company that tries to act like a startup is painful.
sstrudeaualmost 15 years ago
I'm surprised this thread has gone on this long without reference to the DevOps movement that is looking to address this process problem. One good link: <a href="http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/" rel="nofollow">http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing...</a>
funkdobiestalmost 15 years ago
Read Access should be allowed, but that is it. Good communication and installation docs are a must.
peterwwillisalmost 15 years ago
Yes. With a deployment tool that provides an audit trail, an easily searchable log with description of changes, locking, change reversion (not revision), and optional change management and code review. They should get read-only access to the webserver configuration and logs, but no actual write access in production. Just enough access that they can fuck up code in production, but enough checks and balances to make un-fucking the code easy for Operations. Obvious practices such as 'never deploy code Friday afternoon' and 'financial code requires change management approval' also help. Limited restarting of services allowed with big fat e-mail warnings to Operations and dev groups, with audit trail.
olegkalmost 15 years ago
NO