2010-03-08 24 views
5

Tôi đang ở giữa việc thiết lập môi trường phát triển (PHP/MySQL) để khởi động. Chúng tôi sử dụng ba bộ máy chủ:Thiết lập quy trình phát triển hiệu quả và hiệu quả

WEBCAM - các máy chủ cung cấp các ứng dụng thực tế TEST - cung cấp một phiên bản thử nghiệm trước khi nó thực sự được giải phóng DEV - các máy chủ phát triển

Các máy chủ phát triển chạy SVN với mỗi nhà phát triển kiểm tra bản sao cục bộ của họ. Vào cuối mỗi ngày hoàn thành sửa chữa được kiểm tra trong và sau đó chúng tôi sử dụng Hudson để tự động hóa quá trình xây dựng của chúng tôi và sau đó chuyển nó qua để kiểm tra. Sau đó chúng tôi kiểm tra các ứng dụng vẫn hoạt động chính xác bằng cách sử dụng một thử nghiệm và sau đó nếu tất cả mọi thứ là tốt di chuyển nó đến LIVE. Tôi hài lòng với quá trình này nhưng tôi có hai câu hỏi:

  • Làm thế nào bạn muốn giới thiệu chúng tôi làm thử nghiệm địa phương - như mỗi nhà phát triển thêm các trang mới hoặc thay đổi chức năng tôi muốn họ có thể kiểm tra những gì họ đang làm . Bạn chỉ cần cài đặt Apache cục bộ và một cơ sở dữ liệu cục bộ và yêu cầu chúng thử nghiệm cục bộ trên máy của riêng mình?

  • Bạn khuyên bạn nên xử lý các thay đổi của lớp dữ liệu như thế nào?

  • Có điều gì khác bạn muốn giới thiệu để thực sự làm cho quá trình phát triển của chúng tôi dễ dàng và hiệu quả nhất có thể không?

Cảm ơn trước

Trả lời

3

1 đến mỗi nhà phát triển chạy thiết lập của riêng mình, hoàn thành với Apache và cơ sở dữ liệu.

Giữ giản đồ cơ sở dữ liệu trong điều khiển phiên bản.

Có thể bạn có thể giữ (có thể trong một kho lưu trữ riêng biệt) một bộ dữ liệu nhỏ nhưng đại diện, trong cơ sở dữ liệu thử nghiệm. Mỗi buổi sáng bạn kiểm tra bản sao mới nhất của cơ sở dữ liệu thử nghiệm này và bắt đầu hack. Khi bạn thay đổi lược đồ, hãy cập nhật kho dữ liệu thử nghiệm của bạn cho phù hợp.

+0

Làm cách nào để giữ lược đồ cơ sở dữ liệu trong kiểm soát phiên bản? Âm thanh như một ý tưởng thực sự hay - tôi chưa từng thấy nó trước đây. – christophmccann

+0

tôi đã viết một bài viết về nó: http://www.gsdesign.ro/blog/mysql-database-versioning-strategy/ và bạn có thể đọc thêm tại đây: http://stackoverflow.com/questions/1607/mechanisms- thay đổi theo dõi-db-schema-thay đổi –

0

Bất kỳ ai đang phát triển NÊN đều có môi trường địa phương của riêng họ. Tôi sử dụng Mac vì vậy tôi chạy MAMP để tôi có thể có môi trường LAMP của riêng mình cục bộ và độc lập với bất kỳ môi trường nào khác. Điều này cũng sẽ cho phép tôi biết rằng không ai khác đang thay đổi/làm việc trên cùng một thành phần tôi và loại bỏ bất kỳ sự nhầm lẫn nào có thể xảy ra. Nếu bạn là người dùng windows, cũng có thể dễ dàng cài đặt các phiên bản LAMP của địa phương như XAMP, vv Nếu bạn đang chạy Linux làm máy tính để bàn, có thể bạn sẽ biết cách cài đặt LAMP cho hương vị của Linux đang chạy.

Phiên bản lược đồ cơ sở dữ liệu là một ý tưởng tuyệt vời. Đó là những gì chúng tôi sử dụng là tốt. Ngoài lược đồ dưới sự kiểm soát phiên bản, chúng tôi thêm một bảng phiên bản lược đồ vào lược đồ và giữ cho nó được cập nhật để chúng tôi có thể nhanh chóng biết phiên bản nào đang được sản xuất/qa/dev khi chúng ta cần so sánh.

Đối với các thay đổi lớp dữ liệu có hai điều tôi muốn giới thiệu.

  1. Luôn tạo đường dẫn di chuyển, tiến và lùi. Điều này có nghĩa là khi bạn có lược đồ mà bạn muốn đưa vào sản xuất để nâng cấp một lược đồ hiện có, bạn nên luôn luôn làm cho nó trở thành một phần của bản phát hành. Một quy trình ngắn gọn rõ ràng cho ALTERing các bảng. Với cùng một mã thông báo, bạn cần có phiên bản ROLLBACK đang hoạt động và được kiểm tra cũng như trong trường hợp có sự cố.

  2. Điều tôi thấy hữu ích là sử dụng bản sao lưu sản xuất để tải trên cục bộ (hoặc QA/DEV) để tôi có dữ liệu/lược đồ cập nhật nhất để phát mà không ảnh hưởng đến quá trình sản xuất. Nếu bạn không thực hiện sao lưu thường xuyên của sản xuất, có lẽ bây giờ là thời điểm tốt để thực hiện một chính sách. Sau đó, bạn sẽ giết hai con chim với một viên đá. Bạn sẽ có bản sao lưu cho bất kỳ sự cố ngừng hoạt động nào và một giản đồ trực tuyến hữu ích với dữ liệu bạn có thể tải để thử nghiệm trên một máy khác. Điều này cũng sẽ cho vay chính nó để nâng cao bất kỳ vấn đề có thể có với thay đổi lược đồ vì dữ liệu sẽ phù hợp với sản xuất. Vì vậy, nếu nó hoạt động cục bộ (và trên DEV/QA), nó làm giảm nguy cơ xảy ra lỗi trong sản xuất.