เราควรจะโฮสต์รหัสออนไลน์หรือไม่


22

เรากำลังมองหาวิธีการควบคุมแหล่งที่ดีและโซลูชันการจัดการโครงการในที่ทำงานของฉันและฉันได้แนะนำให้สร้างองค์กรและที่เก็บส่วนตัว GitHub ฉันรัก GitHub สำหรับหลายเหตุผล แต่นี้ไม่เกี่ยวกับ GitHub (ในความเป็นจริงเพื่อนร่วมงานจะไปจุดที่อยู่ในความโปรดปรานของแพลตฟอร์มการแข่งขัน) - มันเป็นเรื่องของการจัดเก็บรหัสส่วนตัวของเราทางออนไลน์

ฉันพยายามที่จะเข้าใจว่านี่เป็นความคิดที่ดีหรือไม่ ดูเหมือนว่าจะมีประโยชน์แน่นอนเพราะไม่จำเป็นต้องเสียค่าใช้จ่ายเซิร์ฟเวอร์ (อย่างน้อยโดยตรง) และทำให้ง่ายต่อการค้นหารหัส (ทุกอย่างออนไลน์)

อย่างไรก็ตามทีมงานของเราไม่แน่ใจและนำฉันไปสู่คำถามของฉันเราควรพิจารณาอะไรเพื่อตัดสินใจ


13
โปรดทราบว่าคุณไม่จำเป็นต้องเก็บรหัสไว้ในคลาวด์เพื่อใช้ GitHub พวกเขาขายผลิตภัณฑ์ระดับองค์กร
Gort the Robot

1
@StevenBurnap ใช่ ... นาน 10 เท่าของราคาแพ็คเกจองค์กร =)
Mathieu Guindon

12
นอกจากนี้โปรดทราบว่าคุณไม่จำเป็นต้องใช้ Github เพื่อใช้คอมไพล์
Harrison Paine

6
โปรดจำไว้ว่ามันไม่ได้เป็นเพียงเกี่ยวกับรหัส เป็นเรื่องปกติสำหรับนักพัฒนาในการมอบหมายสิ่งต่าง ๆ เช่นรหัสผ่านและคีย์ SSL
Nate CK

5
ฉันประหลาดใจตรงไปตรงมาว่าไม่มีใครได้กล่าวถึงGitLab ของชุมชนฉบับซึ่งแตกต่างจาก GitHubเป็นจริงของตัวเองมาเปิด คุณไม่จำเป็นต้องเก็บรหัสไว้ในคลาวด์หรือรับซอฟต์แวร์ลิขสิทธิ์เพื่อใช้ GitLab (@StevenBurnap)
Wildcard

คำตอบ:


24

ในฐานะมืออาชีพ

หากสำนักงานของ บริษัท คุณเบิร์นรหัสยังคงอยู่ในเซิร์ฟเวอร์

หากสำนักงานของ บริษัท ของคุณไม่ได้เผาไหม้ แต่เซิร์ฟเวอร์ซึ่งเป็นที่เก็บ git ของคุณตั้งอยู่ DOES คุณก็ยังมีสำเนาในตัวเครื่องอยู่

หากคุณโฮสต์ที่เก็บข้อมูลของคุณบนเซิร์ฟเวอร์ของคุณในอาคารสำนักงานของ บริษัท (เช่นเดียวกับที่คุณใช้กับไดรฟ์เครือข่ายที่ใช้ร่วมกัน ... ?) ถ้าสำนักงานของ บริษัท ถูกไฟไหม้คุณจะสูญเสียทั้งสองอย่าง

แน่นอนคุณยังต้องสำรองข้อมูลตามปกติ ...

อย่าลังเลที่จะแทนที่ "แผลไหม้" ด้วย "ได้รับการติดเชื้อ ransomware"

โดยทั่วไปความพร้อมใช้งานจะเพิ่มขึ้น

ในฐานะที่เป็นนักโทษ

คุณจะต้องแชร์ไฟล์ของคุณกับบุคคลที่สามที่จะโฮสต์รหัสของคุณ หากคุณมีความลับของ บริษัท ใหญ่จริง ๆ สิ่งนี้อาจไม่ได้รับอนุญาต ตัวอย่างเช่นหากคุณมีฐานข้อมูลที่มีข้อมูลส่วนบุคคลจากพลเมืองยุโรปคุณอาจไม่ได้รับอนุญาตให้โฮสต์รหัสของคุณในบุคคลที่สามจากสหรัฐอเมริกา - เนื่องจากพวกเขาจะต้องอยู่ภายใต้กฎหมายของสหรัฐอเมริกาและไม่สามารถเชื่อถือได้ รักษากฎหมายความเป็นส่วนตัวของสหภาพยุโรป แม้ว่าจะไม่ใช่ปัญหาด้านกฎหมาย แต่คุณควรระวังว่าบุคคลที่สามอาจถูกติดสินบนให้ส่งไฟล์ส่วนตัวของคุณออกไป นี่อาจเป็นสิ่งที่ไม่ดีจริงๆสำหรับบุคคลที่สาม (การลงโทษชื่อเสียงมาก) แต่อาจเกิดขึ้นได้

โดยทั่วไปการรักษาความลับจะลดลง


หากคุณโอเคกับการรักษาความลับการซื้อขายสำหรับความพร้อมใช้งานการโฮสต์รหัสส่วนตัวของคุณออนไลน์กับบุคคลที่สามเป็นความคิดที่ดี มิฉะนั้นอย่า คุณสามารถอธิบายการแลกเปลี่ยนเพื่อให้เจ้านายของคุณตัดสินใจอย่างชาญฉลาด - แต่คุณอาจได้ยิน "ไม่" นั่นคือสิ่งที่สามารถเกิดขึ้นได้หากคุณตัดสินใจ ถ้าเจ้านายของคุณบอกว่าไม่ใช่นั่นก็คือ ฉันไม่คิดว่าการโน้มน้าวใจเจ้านายของคุณเป็นความคิดที่ดีมาก


เนื่องจากนี่เป็นคำถามในรายการจึงมีข้อโต้แย้งอีกข้อที่จะเพิ่มในรายการของคุณ: ถ้าองค์กรโฮสติ้งเป็นไปตามแนวทางของ Google Code ล่ะ?
David Hammen

@DavidHammen หากเซิร์ฟเวอร์เกิดไฟไหม้คุณมีสำเนาในเครื่อง ... แต่ ... ฉันเดาว่ามีปัญหากับการบำรุงรักษาที่ไม่ได้วางแผน ... ? ฉันคิดว่าจุดนี้ใช้ได้ทั้งสองด้าน หากคุณโฮสต์เซิร์ฟเวอร์ของคุณเองเซิร์ฟเวอร์จะไม่ทำงานอีกต่อไปหากมีบุคคลอื่นโฮสต์เซิร์ฟเวอร์อาจหยุดทำงานเมื่อไม่สะดวก ในกรณีนี้ GitHub สามารถไปโง่ แต่เซิร์ฟเวอร์ของคุณสามารถ ฉันคิดว่ามันมีโอกาสน้อยที่บุคคลที่สามจะหายไปในกรณีนี้
Pimgd

9
โปรดทราบว่าถ้าคุณใช้ git นักพัฒนาทุกคนจะมีสำเนาของที่เก็บ (ลบสาขาส่วนตัว)
Gort the Robot

3
@DavidHammen ดังนั้นเช่นเดียวกับเซิร์ฟเวอร์ของบริการที่ถูกเผาไหม้คุณยังคงมีสำเนาในเครื่อง จากนั้นคุณสามารถเลือกที่จะเปลี่ยนเป็นบริการทางเลือกหรือนำมาใช้ทั้งหมดในบ้าน
8bittree

3
@ njzk2 เนื่องจากเครือข่ายเวลาแฝงต่ำ หรือเพราะคุณเป็น บริษัท เล็ก ๆ บางทีอินเทอร์เน็ตของคุณเป็นอึทั้งหมดและคุณต้องการให้มีการเข้าถึงอย่างรวดเร็วไปยังไฟล์ของคุณ ...
Pimgd

11

เห็นได้ชัดว่ามันเป็นคำถามของความไว้วางใจในผู้ให้บริการและคุณเห็นคุณค่าของซอร์สโค้ดมากแค่ไหน

อย่างไรก็ตามฉันคิดว่ามันชัดเจนว่าอย่างน้อยในอดีตผู้คนก็เห็นคุณค่าของซอร์สโค้ดของพวกเขา

  • สำหรับผลิตภัณฑ์ 'กระบวนการทางธุรกิจอัตโนมัติ' ที่ซึ่งทีมงานในบ้านสร้างเว็บไซต์และซอฟต์แวร์อื่น ๆ โดยเฉพาะเพื่อตอบสนองความต้องการของธุรกิจ มูลค่าของซอฟต์แวร์นั้นต่อผู้อื่นนั้นต่ำมาก

  • สำหรับซอฟต์แวร์ที่ขายได้ เป็นไบนารีที่คุณกำลังขายและสามารถคัดลอกและแฮ็กโดยไม่ต้องเข้าถึงซอร์สโค้ด

ประการที่สอง: คุณควรพิจารณาด้วยว่าการจัดเก็บรหัสของคุณกับบุคคลที่สามนั้นจะเพิ่มการเปิดเผยของคุณให้สูงกว่าระดับปัจจุบันหรือไม่ ในหลายกรณีมันจะไม่

  • ตัวอย่างเช่น; หากผลิตภัณฑ์ของคุณเป็นเว็บไซต์ที่ไม่มีรหัสส่วนหลังรหัสของคุณจะเป็นแบบสาธารณะ
  • หากรหัสที่คอมไพล์ของคุณมีการแจกจ่ายสามารถถอดรหัสได้
  • หากรหัสของคุณเป็นเว็บไซต์หรือบริการและคุณกำลังโฮสต์กับบุคคลที่สาม จากนั้นบุคคลที่สามสามารถถอดรหัสรหัสของคุณได้
  • หากคุณจัดเก็บข้อมูลสำรองของคุณกับบุคคลที่สามพวกเขาจะสามารถเข้าถึงรหัสของคุณได้

กล่าวโดยย่อธุรกิจสมัยใหม่ส่วนใหญ่จะเชื่อใจบุคคลที่สามที่หลากหลายด้วยการทำธุรกิจแบบวันต่อวัน แม้กระทั่งสิ่งที่มีความสำคัญและไม่เหมือนใครสำหรับพวกเขา


3

ส่วนหนึ่งของกระบวนการตัดสินใจอาจเป็นการทดสอบทดลองและข้อผิดพลาดเล็กน้อย ทำโปรเจคเล็กและให้สมาชิกสองสามคนลองใช้ไซต์ที่ต่างกัน สิ่งนี้ควรครอบคลุมการใช้งานโดยทีมงาน แต่มีข้อควรพิจารณาอื่น ๆ

  1. โครงสร้างพื้นฐานปัจจุบัน - บาง บริษัท มีเซิร์ฟเวอร์การเชื่อมต่ออินเทอร์เน็ต VPN และบุคลากรที่มีทักษะในการโฮสต์เซิร์ฟเวอร์อยู่แล้วดังนั้นค่าใช้จ่ายและข้อกังวลบางอย่างสามารถถูกดูดซึมได้ง่ายขึ้น การเริ่มต้นอาจมีแนวโน้มที่จะใช้บางอย่างเช่น Github มากขึ้นเพราะพวกเขาไม่จำเป็นต้องลงทุนประเภทนี้และสามารถเริ่มต้นใช้งานได้เร็วขึ้น
  2. งบประมาณ - หลายแง่มุมของอันดับ 1 จะตกอยู่ที่นี่ แต่อาจมีโซลูชันอื่น ๆ ที่มีป้ายราคาหนัก บาง บริษัท สามารถปรับต้นทุนได้ เห็นได้ชัดว่าด้วยงบประมาณที่ต่ำตัวเลือกมากมายจะถูกตัดออก
  3. การกระจายทีม - เมื่อทุกคนทำงานนอกสำนักงานเดียวกันในช่วงเวลาเดียวกันคุณอาจไม่จำเป็นต้องมี GitHub หากไฟล์เซิร์ฟเวอร์ของคุณไม่ได้รับภาระมากเกินไปเพียงแค่ใส่ Git
  4. ความปลอดภัย - คุณอาจพบไซต์จำนวนมากที่ปลอดภัย แต่การรับรู้ด้านความปลอดภัยสำหรับลูกค้าบางรายนั้นสำคัญกว่า การมีเครือข่าย ironclad ของคุณเองอาจเป็นสิ่งที่ถูกต้องในการเพิ่มความมั่นใจ ป้ายความปลอดภัยเครื่องสแกนจอประสาทตาและเครื่องอาวุธติดอาวุธเพียงแค่ส่งเสียงเตือนความปลอดภัยให้กับลูกค้าบางราย
  5. การฝึกอบรม - มีมากกว่านั้นเพียงแค่วิธีใช้แอพมีกฎและขั้นตอนที่ บริษัท / ทีมของคุณต้องการวางไว้ การมีแนวคิดว่าคุณต้องการทำสิ่งใดสามารถขับเคลื่อนเครื่องมือที่จะใช้ การดึงดูดสมาชิกในทีมเพิ่มเติมจะง่ายขึ้นเล็กน้อยหากพวกเขาชอบวิธีที่คุณทำ

เริ่มทำงานผ่านกระบวนการเข้ารหัสและการส่งมอบทั้งหมด ยิ่งคนที่เกี่ยวข้องในกระบวนการนี้ยิ่งดี คุณไม่ต้องการที่จะนำมาใช้เป็นแพลตฟอร์มการควบคุมแหล่งที่มาตามเกณฑ์ที่แน่นอนเท่านั้นที่จะมีใครบางคนในการจัดการการเปลี่ยนแปลงทุกอย่าง "สิ่งเปรียวแบบกระจายนี้ใช้งานไม่ได้ดังนั้นเราต้องให้ทุกคนเริ่มทำงานจากสำนักงานที่ 8-7 ตั้งแต่วันจันทร์ที่แล้ว"


2

ฉันไม่จำเป็นต้องบอกว่าคุณไม่ควรโฮสต์ที่เก็บข้อมูล บริษัท ของคุณบนคลาวด์ แต่ส่วนตัวแล้วฉันเคยประสบกับข้อเสียและความเจ็บปวดกับคลาวด์โฮสติ้ง

การเชื่อมต่ออินเทอร์เน็ตของคุณรวดเร็วและเชื่อถือได้แค่ไหน?

สำหรับฉันนั่นคือการพิจารณาที่ใหญ่ที่สุดเดียว ตัวอย่างเช่น บริษัท ของฉันตั้งอยู่ในพื้นที่ชนบทที่สวยงาม ในขณะที่ความเร็วภายในเครือข่ายของเรานั้นเร็วอย่างเห็นได้ชัด แต่ความเร็วอินเตอร์เน็ตของเรานั้นช้ามากที่สุด

ความเจ็บปวดบางอย่างสามารถบรรเทาลงได้ทั้งนี้ขึ้นอยู่กับ VCS ที่คุณใช้ กระจายระบบการควบคุมรุ่นเช่น Git จะไม่ได้ดังนั้นไม่ดีเพราะคุณยังคงสามารถทำงานในประเทศ คุณสามารถเริ่มต้น repo ใหม่บนไดรฟ์เครือข่ายได้หากคุณต้องการแบ่งปันรหัสบางอย่างกับเพื่อนร่วมงาน ในการเปรียบเทียบคุณไม่สามารถทำสิ่งเหล่านี้กับ Team Foundation ได้ (แม้ว่าจะเป็นพื้นที่ทำงานในพื้นที่ทั้งหมด)

แต่นั่นเป็นเพียงรหัส มีพื้นที่เก็บข้อมูลที่โฮสต์บนคลาวด์ของคุณมากกว่าโค้ด สิ่งที่เกี่ยวกับรายการงานของคุณ (คุณสมบัติ / รายการข้อผิดพลาด)? เอกสารของคุณเกี่ยวกับอะไร (วิกิ) สิ่งที่เกี่ยวกับการสร้างบูรณาการอย่างต่อเนื่องของคุณ? สิ่งเหล่านี้น่าจะถูกโฮสต์ในคลาวด์พร้อมกับรหัสของคุณ หากการเชื่อมต่ออินเทอร์เน็ตของคุณล่มคุณจะทำงานโดยไม่มีสิ่งเหล่านี้ได้อย่างไร

Gitlab ให้ฟรีในรุ่นก่อนหน้าซึ่งจะให้มากกว่าความต้องการของทีม ฉันขอแนะนำให้ติดตั้งบนสถานที่ตั้ง มันจะลดความเสี่ยงลงอย่างมาก


1
มันวิเศษมากที่ความคิดเห็นของฉันเกี่ยวกับการเปลี่ยนแปลงนี้ตอนนี้ฉันทำงานในเมืองด้วยการเชื่อมต่ออินเทอร์เน็ตที่เชื่อถือได้ หากอินเทอร์เน็ตของคุณเชื่อถือได้ไม่มีเหตุผลที่จะต้องจ่ายค่าใช้จ่ายในการดูแลรักษาเซิร์ฟเวอร์เหล่านั้น
RubberDuck

1

เราควรพิจารณาอะไรในการตัดสินใจครั้งนี้

คุณควรพิจารณาข้อเสีย ฉัน (รวมถึงคนอื่น ๆ ) ประสบความสำเร็จในการสนับสนุนให้นายจ้างปัจจุบันของฉันหยุดการเป็นเจ้าของทรัพย์สินทางปัญญามงกุฎของ บริษัท ใน repo GitHub ส่วนตัว อย่าพาฉันไปผิด GitHub นั้นยอดเยี่ยมสำหรับซอฟต์แวร์โอเพนซอร์ซ

ในกรณีของซอฟต์แวร์โอเพ่นซอร์สคุณเคยมี github.com (หรือทางเลือกอื่น) ลงนามในข้อตกลงการไม่เปิดเผยข้อมูล (NDA) เพื่อไม่ให้เผยแพร่ซอร์สโค้ดของคุณไปทั่วโลกหรือไม่? ขอให้โชคดี!

ในความคิดของฉันมันบ้าเกินกว่าที่จะเปิดเผยคนที่สวมมงกุฎอัญมณีทรัพย์สินทางปัญญาให้กับหน่วยงานอื่น ๆ จนกระทั่งนิติบุคคลอื่น ๆ ได้ลงนามใน NDA กับคุณ คุณกำลังวางแผนที่จะใช้บริการเช่น GitHub ที่ไม่ได้ลงนาม NDA กับลูกค้าของพวกเขา พวกเขาเสนอสัญญาที่คลุมเครือในรูปแบบของ EULA ที่ยาวมาก (ข้อตกลงผู้ใช้ปลายทาง)

GitHub เองก็ตระหนักว่านี่อาจเป็นปัญหาที่สำคัญและเป็นผลให้ Github Enterprise เป็นกลไกสำหรับการโฮสต์ซอร์สโค้ด (และสิ่งอื่น ๆ ส่วนตัว) บนเซิร์ฟเวอร์ของตัวเอง


4
ดังนั้น ... สำหรับเว็บไซต์ของผู้ผลิตที่เรียบง่ายมันควรจะดีใช่ไหม "ทรัพย์สินทางปัญญาแบบมีมงกุฎ" ของ บริษัท นั้นเกี่ยวกับสิ่งที่เรากำลังผลิตมากกว่ารหัสที่เราใช้เพื่อส่งเสริม
Mathieu Guindon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.