Các nhà phát triển không nên có gốc rễ trong sản xuất; tất cả mọi người ngoại trừ các nhà phát triển đồng ý về điều này. Nhưng các nhà phát triển có thể sắp xếp bánh của họ và ăn nó. Tôi hơi ngạc nhiên khi không ai đề cập rõ ràng về điều này:
Một trong những khách hàng doanh nghiệp nhỏ rất lâu của tôi có một trang web với cài đặt Drupal, một số trang web WordPress, diễn đàn SMF và một vài ứng dụng web nhỏ ngẫu nhiên khác. Tôi là sysadmin hợp đồng (và vì lý do lịch sử cũng cập nhật / hack WordPress và SMF khi cần) và khách hàng của tôi có hợp đồng phát triển Drupal của riêng mình. Môi trường là một số máy ảo VMware trên một nhà cung cấp đám mây công cộng.
Các nhà phát triển thực sự muốn có quyền truy cập root và loại nhu cầu đó. Chẳng hạn, họ có trách nhiệm viết các quy tắc viết lại nginx để làm cho tất cả các công cụ Drupal tùy chỉnh của họ hoạt động. Nhưng tôi không thể cho họ quyền truy cập root trên máy chủ sản xuất và khách hàng của tôi đồng ý với tôi về điều đó.
Vì vậy, chúng tôi đã thỏa hiệp: Họ có quyền truy cập root trên máy chủ web thử nghiệm (thường giống hệt với sản xuất ngoại trừ địa chỉ IP của nó và trên cùng một đám mây). Mà, giống như sản xuất, có vvkeeper để tôi có thể thấy bất kỳ thay đổi nào họ cần thực hiện và bất kỳ gói nào họ đã cài đặt. Sau đó tôi có thể kéo các thay đổi vào sản xuất hoặc nói với họ những gì sai với bất cứ điều gì họ muốn làm. Và nếu họ thực sự thất vọng (họ chưa làm được, cảm ơn gawd) tôi có thể dễ dàng hoàn nguyên các thay đổi của họ.
Họ không có quyền truy cập nào vào máy chủ cơ sở dữ liệu sản xuất; họ thậm chí không có thông tin đăng nhập người dùng. Chỉ có khách hàng của tôi và tôi làm.
(Bản thân ứng dụng web, họ triển khai trực tiếp bằng git và nếu họ phá vỡ nó, họ sẽ sửa nó và giải thích cho khách hàng của tôi lý do tại sao họ nên tiếp tục là nhà phát triển của anh ấy. cười nhạo họ hoặc facepalm.)