Dev Server vs Phát triển địa phương


9

Trong 2 dự án trước đây tôi đã làm, các nhóm thích môi trường phát triển cục bộ hơn máy chủ phát triển.

Một người dẫn đầu dự án tuyên bố rằng địa phương tốt hơn vì nó không yêu cầu kết nối internet. Nhưng, điều này dường như được giả định khi phát triển.

Cái nào thường tốt hơn?


4
Khó có thể nói cái nào tốt hơn, cả hai đều có ưu và nhược điểm. Nó sẽ thực sự phụ thuộc vào tình hình.
DFord

Câu trả lời ở đây là sự cổ điển mà nó phụ thuộc - cuối cùng đó là vấn đề thuận tiện. Đối với các kiến ​​trúc phức tạp, sự kết hợp giữa các dịch vụ cục bộ và tài nguyên dùng chung không phải là hiếm để phát triển (ví dụ: mọi thứ cục bộ nhưng lưu trữ dữ liệu chủ yếu chỉ đọc, cũng có thể chỉ đến máy chủ dev cho điều đó). Điều quan trọng là bạn cảm thấy thoải mái khi phát triển trong môi trường đại diện và bạn có các bài kiểm tra tốt chạy trong môi trường tích hợp đầy đủ.
Ant P

Câu trả lời:


13

Lợi ích của việc chạy cục bộ là bạn có thể làm việc mà không ảnh hưởng / cản trở người khác. Lợi ích của máy chủ dev trung tâm là bạn có thể kiểm tra mức độ thay đổi của mình ảnh hưởng và tương tác với những thay đổi mà người khác đang thực hiện khi chúng được thực hiện.
Lý tưởng nhất là bạn muốn có cả hai. Phát triển và chạy thử nghiệm đơn vị của bạn cục bộ để bạn có thể cô lập các thay đổi của mình cho đến khi bạn cảm thấy thoải mái với chúng, sau đó tích hợp chúng vào máy chủ nhóm để bạn có thể kiểm tra tích hợp các thay đổi trước khi mọi thứ đi đến hệ thống kiểm tra.

Một lợi ích khác của máy chủ cục bộ trên máy tính xách tay của bạn là bạn có thể làm việc từ xa nơi bạn không có quyền truy cập vào mạng công ty và do đó không thể truy cập máy chủ dev.


9

Trên thực tế có 3 lựa chọn:

Phát triển địa phương

  • ưu điểm:
    • dễ dàng làm việc với hầu hết các công cụ phát triển
    • không cần kết nối internet
    • không ảnh hưởng đến các nhà phát triển khác
  • nhược điểm:
    • phụ thuộc vào hệ điều hành cơ bản
    • có thể cần chạy tất cả các loại dịch vụ máy chủ trên máy cục bộ của bạn
    • môi trường có thể khác với sản xuất

Máy ảo cục bộ

  • ưu điểm:
    • Khá dễ dàng để làm việc với hầu hết các công cụ phát triển, miễn là bạn thiết lập chia sẻ thư mục đúng cách
    • không cần kết nối internet
    • không ảnh hưởng đến các nhà phát triển khác
    • môi trường có thể giống hệt như sản xuất
    • dịch vụ máy chủ bắt đầu / dừng trong máy ảo
  • nhược điểm:
    • cần thêm một chút tài nguyên (chủ yếu là dung lượng RAM, CPU không phải là vấn đề với hỗ trợ ảo hóa phần cứng hiện đại).
    • Một số công cụ gỡ lỗi cục bộ sẽ gắn trực tiếp vào máy chủ sẽ không hoạt động

Máy chủ phát triển dùng chung

  • ưu điểm:
    • môi trường có thể giống hệt như sản xuất
    • dịch vụ máy chủ trên máy chủ
  • nhược điểm:
    • Truy cập từ xa
    • thay đổi ảnh hưởng đến các nhà phát triển khác
    • gỡ lỗi khó hơn nhiều (bằng cách sử dụng các công cụ từ xa hoặc nhật ký)

Giải pháp tối ưu

Sử dụng một trong hai tùy chọn phát triển cục bộ và đẩy đến máy chủ phát triển được chia sẻ sau khi bạn đã hoàn thành một phần của tính năng và bạn đã xác minh rằng mã của bạn không bị hỏng hoàn toàn.


3

Môi trường phát triển của bạn thực sự phụ thuộc vào cách Bộ phận / Công ty CNTT của bạn được tổ chức và điều hành. Nói chung mặc dù môi trường phát triển khép kín của bạn phù hợp với môi trường sản xuất của bạn thì tốt hơn.

Ví dụ, nếu bạn đang phát triển các ứng dụng máy tính để bàn độc lập không cần truy cập internet thì tất nhiên môi trường phát triển cục bộ có thể được chấp nhận.

Mặt khác, nếu bạn đang phát triển một ứng dụng máy tính để bàn yêu cầu giao tiếp với máy chủ / cơ sở dữ liệu từ xa, v.v. và bạn không có kết nối mạng để mô phỏng điều này trong công việc, bạn có thể tìm thấy các lỗi bổ sung trong sản xuất do độ trễ mạng, vấn đề bảo mật.

Nếu bạn đang phát triển ứng dụng Internet / Đám mây thì trong khi bạn có thể cần internet để phát triển ứng dụng, bạn sẽ cần truy cập để kiểm tra và xác minh.

Btw bạn không cần kết nối Internet để có máy chủ phát triển chỉ là kết nối mạng cục bộ.


2

Làm tất cả,

Phát triển địa phương cho đến khi bất cứ điều gì bạn làm việc được thực hiện và tất cả được thử nghiệm.

Đẩy đến Máy chủ được chia sẻ vào cuối ngày và chạy thử nghiệm tích hợp để đảm bảo bạn không phá vỡ bất cứ điều gì.

Tại sao?

  • Nó nhanh hơn để mã địa phương. Ít bước giữa các bài kiểm tra, ít lo lắng tích hợp.

  • Cách ly lỗi dễ dàng hơn khi một cái gì đó bị hỏng chỉ sau khi bạn đẩy nó đến máy chủ được chia sẻ. Bạn biết nó hoạt động tốt tại địa phương, vì vậy nó phải là một cái gì đó để làm với cách nó tích hợp với máy chủ được chia sẻ. Nếu bạn làm việc trực tiếp trên máy chủ dùng chung, thì việc thu hẹp lỗi sẽ rất khó khăn.

Tôi sẽ làm nó một cái gì đó như thế này:

Sau khi mỗi người thúc đẩy thay đổi vào cuối ngày, tất cả các bài kiểm tra tích hợp sẽ được chạy và nếu có lỗi, thì bạn biết chính xác mã của ai đã phá vỡ dự án. Phục hồi các thay đổi, khắc phục sự cố cục bộ, sau đó thử đẩy lại, lặp lại cho đến khi tất cả các thử nghiệm vượt qua, sau đó đến người tiếp theo.


1

Rất nhiều phụ thuộc vào cách bạn cung cấp các dự án của bạn. Một số đối số để có một môi trường dev trung tâm có thể là:

Kiểm soát chất lượng: bạn muốn đi thử nghiệm bao xa? Môi trường dev địa phương có những hạn chế về khả năng thử nghiệm. Môi trường kiểm thử ảo phù hợp hơn cho kiểm tra tải và kiểm tra hệ thống tự động.

Cơ sở hạ tầng trung tâm có thể giúp rút ngắn chu kỳ phân phối thử nghiệm của bạn. Do đó thực hiện một giao hàng liên tục.

Lợi ích bổ sung từ máy chủ phát triển trung tâm có thể là kiểm soát nguồn, quản lý tác vụ, xây dựng trung tâm, ..

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.