Chúng ta có nên lưu trữ mã trực tuyến?


22

Chúng tôi đang tìm kiếm một giải pháp quản lý dự án và kiểm soát nguồn tốt tại nơi làm việc của tôi và tôi đã đề nghị tạo ra một tổ chức GitHub và các kho riêng. Tôi yêu GitHub vì nhiều lý do, nhưng đây không phải là về GitHub (thực tế các đồng nghiệp của tôi sẽ trình bày các điểm có lợi cho các nền tảng cạnh tranh) - đó là về việc lưu trữ mã riêng của chúng tôi trực tuyến .

Tôi đang cố gắng để hiểu liệu đây có phải là một ý tưởng tốt hay không. Nó chắc chắn có vẻ thuận lợi vì nó loại bỏ nhu cầu về chi phí máy chủ (ít nhất là trực tiếp) và cũng giúp tìm kiếm mã dễ dàng hơn (mọi thứ đều trực tuyến).

Tuy nhiên, nhóm của chúng tôi chưa quyết định và đưa tôi đến câu hỏi của mình, chúng ta nên xem xét điều gì để đưa ra quyết định này?


13
Lưu ý rằng bạn không cần lưu trữ mã của mình trên đám mây để sử dụng github. Họ bán một sản phẩm doanh nghiệp
Gort the Robot

1
@StevenBurnap yeah ... với giá gấp 10 lần gói Tổ chức . =)
Mathieu Guindon

12
Cũng lưu ý, bạn không cần Github để sử dụng git
Harrison Paine

6
Hãy nhớ rằng nó không chỉ là về mã. Các nhà phát triển thường vô tình cam kết những thứ như mật khẩu và khóa SSL.
Nate CK

5
Tôi thực sự ngạc nhiên rằng không ai đã đề cập đến GitLab Community Edition , không giống như GitHub , thực sự là nguồn mở . Bạn không cần lưu trữ mã trên đám mây hoặc nhận phần mềm độc quyền để sử dụng GitLab. (@StevenBurnap)
tự đại diện

Câu trả lời:


24

Là một chuyên gia,

Nếu văn phòng công ty của bạn bị hỏng, mã vẫn còn trên máy chủ.

Nếu văn phòng công ty của bạn không bị hỏng, nhưng máy chủ chứa kho git của bạn được đặt DOES, thì bạn vẫn có một bản sao cục bộ.

Nếu bạn lưu trữ kho lưu trữ của mình trên máy chủ trong tòa nhà văn phòng của công ty bạn (giống như bạn sử dụng ổ đĩa chia sẻ Mạng ...?), Thì nếu văn phòng của công ty bị cháy, bạn sẽ mất cả hai.

Tất nhiên, bạn vẫn cần sao lưu như bình thường ...

Hãy thoải mái thay thế "đốt cháy" bằng "bị nhiễm ransomware".

Về cơ bản, sẵn có là lên.

Như một kẻ lừa đảo,

Bạn sẽ phải chia sẻ tệp của mình với bên thứ 3 sẽ lưu trữ mã của bạn. Nếu bạn có những bí mật thực sự lớn của công ty, điều này có thể không được phép. Ví dụ: nếu bạn có cơ sở dữ liệu chứa thông tin cá nhân của công dân châu Âu, bạn có thể không được phép lưu trữ mã của mình cho bên thứ ba từ Hoa Kỳ - vì họ phải tuân theo luật pháp Hoa Kỳ và do đó không thể dựa vào duy trì luật riêng tư của EU. Ngay cả khi đó không phải là vấn đề pháp lý, bạn nên lưu ý rằng bên thứ ba có thể bị mua chuộc để đưa các tệp riêng tư của bạn đi. Điều này có thể sẽ thực sự tồi tệ cho bên thứ ba (hình phạt danh tiếng lớn), nhưng nó có thể xảy ra.

Về cơ bản, bảo mật là xuống.


Nếu bạn ổn với bảo mật giao dịch về tính khả dụng, thì lưu trữ mã riêng của bạn trực tuyến với bên thứ ba là một ý tưởng tốt. Nếu không, đừng. Bạn có thể giải thích sự đánh đổi để cho phép sếp của bạn đưa ra quyết định thông minh - nhưng bạn có thể nghe thấy "không". Đó là điều có thể xảy ra nếu bạn đưa ra quyết định cho ai đó. Nếu ông chủ của bạn nói không, thì đó là điều đó. Tôi không nghĩ rằng thuyết phục cưỡng bức ông chủ của bạn là một ý tưởng rất tốt.


Vì đây là một câu hỏi về danh sách, một con lừa khác để thêm vào danh sách của bạn: nếu tổ chức lưu trữ đi theo cách của Google Code thì sao?
David Hammen

@DavidHammen Nếu máy chủ bị cháy, bạn có một bản sao cục bộ ... nhưng ... tôi đoán có vấn đề với việc bảo trì ngoài kế hoạch ...? Tôi nghĩ rằng điểm này có sẵn ở cả hai bên; nếu bạn lưu trữ máy chủ của riêng mình thì nó sẽ bị hỏng nhiều hơn, nếu người khác lưu trữ máy chủ thì nó có thể bị sập khi bất tiện. Trong trường hợp này, github có thể gặp sự cố, nhưng máy chủ của bạn cũng vậy. Tôi nghĩ rằng ít có khả năng bên thứ 3 biến mất, trong trường hợp này.
Pimgd

9
Lưu ý rằng nếu bạn đang sử dụng git, mọi nhà phát triển sẽ có một bản sao của kho lưu trữ. (Trừ chi nhánh tư nhân.)
Gort the Robot

3
@DavidHammen Vì vậy, giống như nếu các máy chủ của dịch vụ bị cháy, bạn vẫn có một bản sao cục bộ. Và sau đó bạn có thể chọn chuyển sang một dịch vụ thay thế hoặc mang tất cả trong nhà.
8bittree

3
@ njzk2 vì mạng có độ trễ thấp? Hay bởi vì bạn là một công ty nhỏ? Có thể internet của bạn hoàn toàn tào lao và bạn muốn truy cập nhanh vào các tệp của mình ...
Pimgd

11

Rõ ràng đó là một câu hỏi về niềm tin vào nhà cung cấp và bạn đánh giá cao mã nguồn của mình đến mức nào.

Tuy nhiên, tôi nghĩ rõ ràng rằng, ít nhất trong quá khứ, mọi người đã đánh giá cao mã nguồn của họ.

  • Đối với các sản phẩm 'tự động hóa quy trình kinh doanh'; nơi một nhóm nội bộ tạo ra các trang web và phần mềm khác dành riêng cho nhu cầu của doanh nghiệp. Giá trị của phần mềm đó cho người khác nói chung là rất thấp.

  • Đối với phần mềm có thể bán được; đó là nhị phân bạn đang bán và có thể bị sao chép và hack mà không cần truy cập vào mã nguồn.

Thứ hai: Bạn cũng nên xem xét việc lưu trữ. Mã của bạn với bên thứ ba có thực sự làm tăng mức độ hiển thị của bạn trên mức hiện tại hay không. Trong nhiều trường hợp, nó sẽ không

  • Ví dụ; nếu sản phẩm của bạn là một trang web không có mã phụ trợ, mã của bạn đã được công khai.
  • Nếu mã biên dịch của bạn được phân phối, nó có thể được dịch ngược.
  • Nếu mã của bạn là một trang web hoặc dịch vụ và bạn đang lưu trữ nó với bên thứ ba. Sau đó, bên thứ ba có thể dịch ngược mã của bạn.
  • Nếu bạn lưu trữ bản sao lưu của mình với bên thứ ba, họ có quyền truy cập vào mã của bạn.

Nói tóm lại, hầu hết các doanh nghiệp hiện đại sẽ tin tưởng một loạt các bên thứ ba với hoạt động kinh doanh hàng ngày của họ; ngay cả những thứ quan trọng và duy nhất cho họ.


3

Một phần của quá trình quyết định này có thể là một chút thử nghiệm, thử nghiệm và lỗi. Tham gia một dự án nhỏ và có một vài thành viên thử một số trang web khác nhau. Điều này sẽ bao gồm khả năng sử dụng của nhóm, nhưng có những cân nhắc khác.

  1. Cơ sở hạ tầng hiện tại - Một số công ty đã có máy chủ, kết nối internet, VPN và nhân viên có kỹ năng lưu trữ máy chủ, vì vậy một số chi phí và mối quan tâm có thể được hấp thụ dễ dàng hơn nhiều. Một công ty khởi nghiệp có thể có xu hướng sử dụng một cái gì đó như Github vì họ không phải thực hiện các loại đầu tư này và có thể bắt đầu và chạy sớm hơn.
  2. Ngân sách - Nhiều khía cạnh của # 1 sẽ nằm ở đây, nhưng có thể có các giải pháp khác với một mức giá đắt đỏ. Một số công ty có thể biện minh cho các chi phí. Rõ ràng với ngân sách thấp, nhiều lựa chọn bị loại bỏ.
  3. Phân phối nhóm - Khi mọi người làm việc ở cùng một văn phòng trong cùng một giờ, bạn có thể không cần github. Nếu máy chủ tệp của bạn không quá nặng nề, chỉ cần đặt Git lên nó.
  4. Bảo mật - Bạn có thể có thể tìm thấy nhiều trang web an toàn, nhưng nhận thức về bảo mật cho một số khách hàng là quan trọng hơn. Có mạng lưới sắt của riêng bạn có thể là điều đúng đắn để có được sự tự tin của họ. Phù hiệu an ninh, máy quét võng mạc và bảo vệ vũ trang chỉ la hét an ninh cho một số khách hàng.
  5. Đào tạo - Có nhiều thứ hơn là cách sử dụng ứng dụng, có các quy tắc và quy trình mà công ty / nhóm của bạn muốn áp dụng. Có một ý tưởng về cách bạn muốn làm mọi thứ có thể điều khiển các công cụ để sử dụng. Thu hút các thành viên nhóm bổ sung sẽ dễ dàng hơn một chút nếu họ thích cách bạn làm.

Bắt đầu làm việc thông qua toàn bộ quá trình mã hóa và phân phối. Càng nhiều người tham gia vào quá trình này thì càng tốt. Bạn không muốn áp dụng một nền tảng kiểm soát nguồn dựa trên các tiêu chí nhất định chỉ để ai đó trong quản lý thay đổi mọi thứ. "Thứ nhanh nhẹn phân tán này không hoạt động, vì vậy chúng tôi sẽ cần mọi người bắt đầu làm việc từ văn phòng vào 8-7 bắt đầu từ thứ Hai, được rồi."


2

Tôi không nhất thiết phải nói rằng bạn không nên lưu trữ kho lưu trữ của công ty trên đám mây, nhưng cá nhân tôi đã gặp một số bất lợi và đau đớn với lưu trữ đám mây.

Làm thế nào nhanh chóng và đáng tin cậy là kết nối internet của bạn?

Đối với tôi, đó là sự cân nhắc lớn nhất. Ví dụ, công ty của tôi nằm ở một vùng nông thôn xinh đẹp. Trong khi tốc độ mạng nội bộ của chúng tôi rất nhanh, thì tốc độ liên mạng của chúng tôi lại chậm nhất, tồi tệ nhất là tồi tệ nhất.

Tùy thuộc vào loại VCS nào bạn đang sử dụng, một số cơn đau có thể được giảm nhẹ. Phân phối các hệ thống kiểm soát phiên bản, như Git, không quá xấu vì bạn vẫn có thể làm việc tại địa phương. Bạn thậm chí có thể khởi tạo một repo mới trên ổ đĩa mạng nếu bạn thực sự cần chia sẻ một số mã với đồng nghiệp. Để so sánh, bạn thực sự không thể làm một trong những điều đó với Team Foundation (mặc dù toàn bộ không gian làm việc cục bộ).

Nhưng đó chỉ là mã. Có rất nhiều thứ cho kho lưu trữ đám mây của bạn hơn là mã. Còn các mục công việc của bạn (tính năng / danh sách lỗi) thì sao? Tài liệu của bạn (wiki) thì sao? Điều gì về xây dựng tích hợp liên tục của bạn? Tất cả những điều này có thể cũng sẽ được lưu trữ trên đám mây cùng với mã của bạn. Nếu kết nối internet của bạn bị hỏng, bạn sẽ làm việc như thế nào nếu không có những thứ này?

Gitlab cung cấp một phiên bản tiền đề miễn phí có khả năng sẽ cung cấp nhiều hơn nhu cầu của nhóm bạn. Tôi rất khuyên bạn nên cài đặt tiền đề. Nó sẽ giảm rủi ro đáng kể.


1
Thật đáng ngạc nhiên khi ý kiến ​​của tôi về điều này thay đổi khi tôi đang làm việc trong thành phố với kết nối internet đáng tin cậy. Nếu internet của bạn đáng tin cậy, không có lý do gì để trả chi phí duy trì những thứ đó trên các máy chủ cũ.
RubberDuck

1

Những gì chúng ta nên xem xét để đưa ra quyết định này?

Bạn nên xem xét các nhược điểm. Tôi (cùng với những người khác) đã khuyến khích thành công chủ nhân hiện tại của mình ngừng lưu trữ trang sức sở hữu trí tuệ của công ty trên một repo github tư nhân. Đừng hiểu lầm tôi; github là tuyệt vời cho phần mềm nguồn mở.

Trong trường hợp phần mềm nguồn đóng, bạn đã có github.com (hoặc một số thay thế) ký thỏa thuận không tiết lộ thông tin (NDA) để không phát hành mã nguồn của bạn ra thế giới chưa? Chúc may mắn với điều đó!

Theo tôi, thật điên rồ khi tiết lộ những viên ngọc quý sở hữu trí tuệ cho một số thực thể khác cho đến khi thực thể khác đã ký một NDA với bạn. Bạn đang lên kế hoạch sử dụng một dịch vụ như github không ký NDA với khách hàng của họ. Thay vào đó, họ đưa ra một lời hứa mơ hồ dưới dạng EULA (thỏa thuận cấp phép người dùng cuối) rất dài.

Bản thân Github nhận ra rằng đây có thể là một vấn đề quan trọng và kết quả là họ cung cấp Github Enterprise như một cơ chế lưu trữ mã nguồn (và các nội dung riêng tư khác) trên máy chủ của chính họ.


4
Vì vậy, ... đối với trang web của một nhà sản xuất đơn giản, nó sẽ ổn thôi, phải không? "Tài sản trí tuệ đỉnh cao" của công ty liên quan đến những gì chúng tôi sản xuất hơn là về mã chúng tôi sử dụng để quảng bá nó.
Mathieu Guindon
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.