2010-01-02 46 views
6

Tôi đang làm việc trên một ứng dụng web chạy trên ngăn xếp LAMP (Linux Apache Mysql PHP) và muốn các đề xuất về cải thiện quy trình làm việc của tôi.Làm cách nào để cải thiện chiến lược phát triển và triển khai của tôi?

Tôi có 3 môi trường:

  1. máy tính cục bộ của tôi AKA phát triển tôi môi trường
  2. Một dàn dựng tài khoản trên máy chủ chuyên dụng của tôi để tôi có thể kiểm tra các ứng dụng web
  3. Một sản tài khoản trên máy chủ chuyên dụng của tôi

Tôi thực hiện tất cả sự phát triển trên máy tính cục bộ của mình và sử dụng máy chủ lật đổ nằm trên máy chủ chuyên dụng của tôi. Tôi thiết lập một kịch bản móc để bất cứ khi nào tôi cam kết, tài khoản "dàn dựng" của tôi được cập nhật bằng mã mới.

Thỉnh thoảng tôi đảm bảo rằng mọi thứ hoạt động tốt trên tài khoản dàn dựng và đẩy các thay đổi vào tài khoản sản xuất của tôi qua một tập lệnh nhỏ.

này hoạt động tốt đủ cho hầu hết các phần, nhưng có một vài kích ứng:

  • tên miền của tôi là mã hóa cứng trong một vài nơi, làm cho nó tốn nhiều thời gian để chuyển đổi giữa các môi trường . Tôi có thể sửa đổi tập tin host của tôi bằng tay nhưng nó không chính xác nhanh và nó không hoạt động cho 2 tài khoản (prod/staging) trên cùng một máy chủ.

  • Tôi không có cách nào giữ cơ sở dữ liệu cập nhật trên cả ba môi trường. Tôi có thể sử dụng cùng một cơ sở dữ liệu cho tất cả các môi trường nhưng tôi sẽ phải chịu rủi ro phá vỡ môi trường sản xuất.

Vì vậy, câu hỏi của tôi là: tôi có thể làm gì để giảm thiểu những vấn đề này?

CẬP NHẬT: Sự cố miền mã hóa cứng được giới thiệu bởi phần mềm của bên thứ ba và do đó, "không mã hóa cứng" không phải là tùy chọn tại thời điểm này.

+0

Olivier: Tôi đã chỉnh sửa câu hỏi của bạn trong một nỗ lực để làm cho nó cụ thể hơn. SO không phải là một diễn đàn, và có xu hướng làm việc kém cho "bất kỳ ý kiến ​​về điều này?" câu hỏi; Tôi nghĩ rằng bạn đã làm tốt công việc xác định các vấn đề cụ thể trong đoạn cuối của bạn, và vì vậy đã cố gắng nhấn mạnh những điều đó (cũng làm thay đổi tiêu điểm của tiêu đề tránh xa sự xúi giục những giai thoại) – Shog9

+0

bất cứ ai có thể nói cho tôi biết quy ước chung và ý nghĩa liên kết với dev, stg và prod. Có vẻ như tôi đang nhầm lẫn về ý nghĩa của họ (hoặc có vẻ như tôi đã sử dụng quy ước/ngữ nghĩa mà không đồng bộ với những gì người khác đang sử dụng). Cảm ơn –

+0

Tôi tin rằng đây là quy ước thông thường: Dev: môi trường dành cho nhà phát triển Dàn dựng: môi trường để đảm bảo chất lượng (trước khi đẩy thay đổi cho sản phẩm) Sản xuất: môi trường công cộng –

Trả lời

1

Lý tưởng nhất bạn muốn dàn dựng là bản sao sản xuất chính xác. Bằng cách đó, những gì bạn thấy trong dàn dựng, bạn có thể tự tin hợp lý rằng bạn sẽ thấy trong sản xuất. Tự động đẩy để dàn dựng khi bạn cam kết sẽ không làm điều này vì bất kỳ lỗi nào bạn giới thiệu với cam kết sẽ được gửi ngay lập tức.

Điều bạn có thể muốn là thiết lập một môi trường khác và gọi nó là thử nghiệm. Đây sẽ là nơi bạn tự động đẩy vào cam kết. Sử dụng môi trường đó để làm QA và từ đó bạn có thể đóng gói mã và đẩy đẩy để dàn dựng để thử nghiệm cuối cùng. Nếu tất cả diễn ra tốt đẹp trên dàn dựng thì hãy đẩy gói sản xuất.

Đối với vấn đề tên miền, tôi khuyên bạn không nên mã hóa chúng nếu bạn có thể thoát khỏi nó. Hoặc ít nhất sử dụng các tên miền phụ cho các môi trường khác nhau để dễ dàng xác định xem bạn đang ở trong môi trường nào theo cách lập trình.

Để giữ cho cơ sở dữ liệu của bạn được cập nhật trên các môi trường mà bạn có thể muốn xem xét. cập nhật các môi trường dàn dựng, thử nghiệm và dev của bạn với bãi chứa đó. Mỗi ngày một lần sẽ hiệu quả.Bằng cách đó, bạn đang phát triển và thử nghiệm dựa trên những gì người dùng của bạn đang thấy trong sản xuất.

+0

Cảm ơn lời đề nghị Darell. Tôi hiểu nhu cầu về môi trường là bản sao sản xuất chính xác nhưng ngay bây giờ, vì tôi là nhà phát triển/người thử nghiệm duy nhất của ứng dụng của tôi. Tôi không có khả năng phạm lỗi trong khi thử nghiệm. Đối với vấn đề tên miền, tôi không có sức mạnh thực sự vì tôi sử dụng phần mềm của bên thứ ba chịu trách nhiệm về điều đó: /. Tôi sẽ xem liệu các tên miền phụ có hoạt động tốt hay không. –

1

Về vài điểm cuối cùng của bạn, giải pháp hiển nhiên dường như là (1) không mã hóa miền ở bất kỳ đâu hoặc nếu bạn phải tách ít nhất thành một tệp "cài đặt cục bộ" không được cập nhật qua SVN; (2) viết một kịch bản để đồng bộ hóa cơ sở dữ liệu (tức là sao chép dữ liệu sản xuất để dàn dựng và/hoặc môi trường địa phương của bạn, chắc chắn không phải là cách khác) và thỉnh thoảng chạy nó.

Các vấn đề liên quan