Haruskah kita menjadi hosting kode online?

22

Kami sedang mencari sumber kontrol yang baik dan solusi manajemen proyek di tempat kerja saya dan saya telah menyarankan untuk membuat organisasi GitHub dan repositori pribadi. Saya suka GitHub karena banyak alasan, tetapi ini bukan tentang GitHub (bahkan rekan-rekan saya akan memberikan poin yang mendukung platform yang bersaing) - ini tentang menyimpan kode pribadi kami secara online .

Saya mencoba memahami apakah ini ide yang bagus atau tidak. Ini jelas tampak menguntungkan karena menghilangkan kebutuhan untuk biaya server (setidaknya secara langsung) dan juga membuatnya lebih mudah untuk mencari kode (semuanya online).

Namun tim kami belum memutuskan dan mengarahkan saya ke pertanyaan saya, apa yang harus kita pertimbangkan untuk membuat keputusan ini?

Mathieu Guindon
sumber
13
Perhatikan bahwa Anda tidak perlu menyimpan kode Anda di cloud untuk menggunakan github. Mereka menjual produk perusahaan
Gort the Robot
1
@ SevenBurnap ya ... 10 kali lipat dari harga paket Organisasi . =)
Mathieu Guindon
12
Perhatikan juga, Anda tidak perlu Github untuk menggunakan git
Harrison Paine
6
Perlu diingat bahwa ini bukan hanya tentang kode. Sudah umum bagi pengembang untuk secara tidak sengaja melakukan hal-hal seperti kata sandi dan kunci SSL.
Nate CK
5
Saya terus terang heran bahwa tidak ada yang menyebutkan Edisi Komunitas GitLab yang, tidak seperti GitHub , sebenarnya itu sendiri open source . Anda tidak perlu menyimpan kode di cloud atau mendapatkan perangkat lunak berpemilik untuk menggunakan GitLab. (@StevenBurnap)
Wildcard

Jawaban:

24

Sebagai seorang profesional,

Jika kantor perusahaan Anda terbakar, kode itu masih ada di server.

Jika kantor perusahaan Anda tidak terbakar, tetapi server tempat repositori git Anda TIDAK, maka Anda masih memiliki salinan lokal.

Jika Anda meng-host repositori di server di gedung kantor perusahaan Anda (seperti yang Anda lakukan dengan drive yang dibagikan dengan Jaringan ...?), Maka jika kantor perusahaan terbakar, Anda kehilangan keduanya.

Tentu saja, Anda masih membutuhkan cadangan seperti biasa ...

Jangan ragu untuk mengganti "burns" dengan "terinfeksi ransomware".

Pada dasarnya, ketersediaan sudah habis.

Sebagai penipu,

Anda harus membagikan file Anda dengan pihak ke-3 yang akan meng-host kode Anda. Jika Anda memiliki rahasia perusahaan yang sangat besar, ini mungkin tidak diizinkan. Misalnya, jika Anda memiliki database yang berisi informasi pribadi dari warga negara Eropa, Anda mungkin tidak diizinkan untuk meng-host kode Anda pada pihak ketiga dari Amerika Serikat - karena mereka akan tunduk pada hukum AS dan dengan demikian tidak dapat diandalkan untuk menegakkan hukum privasi UE. Bahkan jika itu bukan masalah hukum, Anda harus sadar bahwa pihak ketiga dapat disuap agar memberikan file pribadi Anda. Ini mungkin akan sangat buruk bagi pihak ketiga (penalti reputasi besar), tetapi itu bisa terjadi.

Pada dasarnya, kerahasiaan turun.


Jika Anda setuju dengan kerahasiaan perdagangan untuk ketersediaan, maka hosting kode pribadi Anda secara online dengan pihak ketiga adalah ide yang bagus. Kalau tidak, jangan. Anda bisa menjelaskan pertukaran untuk memungkinkan bos Anda membuat keputusan yang cerdas - tetapi Anda mungkin mendengar "tidak". Itulah yang bisa terjadi jika Anda memberi seseorang keputusan. Jika bos Anda mengatakan tidak, maka itu saja. Saya tidak berpikir meyakinkan bos Anda secara paksa adalah ide yang sangat bagus.

Pimgd
sumber
Karena ini adalah pertanyaan daftar, con lain untuk ditambahkan ke daftar Anda: bagaimana jika organisasi hosting mengikuti Google Code?
David Hammen
@ Davidvidam Jika server terbakar, Anda memiliki salinan lokal ... tapi ... Saya kira ada masalah dengan pemeliharaan tidak terencana ...? Saya pikir titik ini tersedia di kedua sisi; jika Anda meng-host server Anda sendiri itu akan turun lebih banyak, jika orang lain meng-host server itu mungkin turun ketika tidak nyaman. Dalam hal ini, github bisa jadi tidak berguna, tetapi demikian juga server Anda. Saya pikir kemungkinan pihak ketiga lebih kecil untuk menghilang, dalam hal ini.
Pimgd
9
Perhatikan bahwa jika Anda menggunakan git, setiap pengembang akan memiliki salinan repositori. (Minus cabang pribadi.)
Gort the Robot
3
@ Davidvidam Jadi, sama seperti jika server layanan telah terbakar, Anda masih memiliki salinan lokal. Dan kemudian Anda dapat memilih untuk beralih ke layanan alternatif atau membawa semuanya di rumah.
8bittree
3
@ njzk2 karena jaringan latensi rendah? Atau karena Anda adalah perusahaan kecil? Mungkin internet Anda benar-benar omong kosong dan Anda ingin memiliki akses cepat ke file Anda ...
Pimgd
11

Jelas itu masalah kepercayaan pada penyedia dan seberapa besar Anda menghargai kode sumber Anda.

Namun, saya pikir itu jelas bahwa, setidaknya di masa lalu, orang lebih menghargai kode sumber mereka.

  • Untuk produk 'otomatisasi proses bisnis'; di mana tim in-house membuat situs web dan perangkat lunak lain yang khusus untuk kebutuhan bisnis. Nilai perangkat lunak itu untuk orang lain pada umumnya sangat rendah.

  • Untuk perangkat lunak yang dapat dijual; itu biner yang Anda jual, dan itu bisa disalin dan diretas tanpa akses ke kode sumber.

Kedua: Anda juga harus mempertimbangkan apakah kode storing.your dengan pihak ketiga benar-benar meningkatkan eksposur Anda di atas level saat ini. Dalam banyak kasus tidak akan demikian

  • Sebagai contoh; jika produk Anda adalah situs web tanpa kode backend, kode Anda sudah publik.
  • Jika kode kompilasi Anda didistribusikan, kode itu dapat didekompilasi.
  • Jika kode Anda adalah situs web atau layanan dan Anda menghostingnya dengan pihak ketiga. Kemudian pihak ketiga dapat mendekompilasi kode Anda.
  • Jika Anda menyimpan cadangan Anda dengan pihak ketiga, mereka memiliki akses ke kode Anda.

Singkatnya, sebagian besar bisnis modern akan mempercayai berbagai pihak ketiga dengan bisnis mereka sehari-hari; bahkan hal-hal yang vital dan unik bagi mereka.

Ewan
sumber
3

Bagian dari proses keputusan ini bisa berupa sedikit pengujian, coba-coba. Ambil proyek kecil dan minta beberapa anggota mencoba beberapa situs yang berbeda. Ini harus mencakup kegunaan oleh tim, tetapi ada pertimbangan lain.

  1. Infrastruktur Saat Ini - Beberapa perusahaan sudah memiliki server, koneksi internet, VPN, dan staf yang memiliki keterampilan untuk meng-host server, sehingga sebagian biaya dan masalah dapat diserap dengan lebih mudah. Startup mungkin lebih cenderung menggunakan sesuatu seperti Github karena mereka tidak harus melakukan investasi jenis ini dan dapat bangun dan berjalan lebih cepat.
  2. Anggaran - Banyak aspek # 1 akan jatuh di bawah sini, tetapi mungkin ada solusi lain dengan label harga yang lumayan. Beberapa perusahaan dapat membenarkan biaya. Tentunya dengan anggaran yang rendah, banyak opsi dihilangkan.
  3. Distribusi Tim - Ketika semua orang bekerja di kantor yang sama pada jam yang sama, Anda mungkin tidak perlu github. Jika server file Anda tidak terlalu terbebani, cukup masukkan Git.
  4. Keamanan - Anda mungkin dapat menemukan banyak situs yang aman, tetapi persepsi keamanan untuk beberapa klien lebih penting. Memiliki jaringan ketat Anda sendiri mungkin merupakan hal yang tepat untuk mendapatkan kepercayaan diri mereka. Lencana keamanan, pemindai retina, dan penjaga bersenjata hanya menjerit keamanan pada beberapa klien.
  5. Pelatihan - Ada lebih dari itu bagaimana menggunakan aplikasi, ada aturan dan prosedur yang ingin diterapkan oleh perusahaan / tim Anda. Memiliki gagasan tentang bagaimana Anda ingin melakukan sesuatu dapat mendorong alat apa yang digunakan. Menarik anggota tim tambahan menjadi sedikit lebih mudah jika mereka menyukai cara Anda melakukan sesuatu.

Mulai bekerja melalui seluruh proses pengkodean dan pengiriman. Semakin banyak orang yang terlibat dalam proses ini semakin baik. Anda tidak ingin mengadopsi platform kontrol sumber berdasarkan kriteria tertentu hanya untuk meminta seseorang dalam manajemen mengubah segalanya. "Benda lincah yang didistribusikan ini tidak berfungsi, jadi kita akan membutuhkan semua orang untuk mulai bekerja dari kantor pada 8-7 mulai Senin, Oke."

JeffO
sumber
2

Saya tidak selalu mengatakan Anda tidak boleh meng-host repositori perusahaan Anda di cloud, tetapi saya secara pribadi mengalami beberapa kerugian dan kesulitan dengan hosting awan.

Seberapa cepat dan dapat diandalkan koneksi internet Anda?

Bagi saya, itu adalah pertimbangan tunggal terbesar. Sebagai contoh, perusahaan saya terletak di daerah pedesaan yang cantik. Sementara kecepatan intra- jaringan kami sangat cepat, kecepatan antar- jaringan kami lambat pada tingkat terbaik, sangat buruk pada kondisi terburuk.

Tergantung pada VCS mana yang Anda gunakan, sebagian dari rasa sakit tersebut dapat dikurangi. Sistem kontrol versi terdistribusi, seperti Git, tidak terlalu buruk karena Anda masih dapat bekerja secara lokal. Anda bahkan dapat init repo baru pada drive jaringan jika Anda benar-benar perlu berbagi beberapa kode dengan rekan kerja. Sebagai perbandingan, Anda tidak dapat benar-benar melakukan hal-hal tersebut dengan Team Foundation (terlepas dari seluruh ruang kerja lokal).

Tapi itu hanya kodenya. Ada jauh lebih banyak ke repositori yang dihosting cloud Anda dari sekedar kode. Bagaimana dengan item pekerjaan Anda (fitur / daftar bug)? Bagaimana dengan dokumentasi Anda (wiki)? Bagaimana dengan pembangunan integrasi berkelanjutan Anda? Semua hal ini kemungkinan juga akan di-host di cloud di samping kode Anda. Jika koneksi internet Anda turun, bagaimana Anda akan bekerja tanpa hal-hal ini?

Gitlab menyediakan versi gratis di lokasi yang kemungkinan akan menyediakan lebih dari kebutuhan tim Anda. Saya sangat merekomendasikan instalasi di tempat. Ini akan mengurangi risiko jauh.

Bebek karet
sumber
1
Sungguh menakjubkan bagaimana pendapat saya tentang perubahan ini sekarang karena saya bekerja di kota dengan koneksi internet yang andal. Jika internet Anda dapat diandalkan, tidak ada alasan untuk membayar biaya pemeliharaan yang ada di server prem.
RubberDuck
1

Apa yang harus kita pertimbangkan untuk membuat keputusan ini?

Anda harus mempertimbangkan kelemahannya. Saya (bersama orang lain) berhasil mendorong majikan saya saat ini untuk berhenti menjadi tuan rumah perhiasan kekayaan intelektual mahkota perusahaan pada repo github pribadi. Jangan salah sangka; github sangat bagus untuk perangkat lunak open source.

Dalam hal perangkat lunak sumber tertutup, apakah Anda memiliki github.com (atau beberapa alternatif) menandatangani perjanjian nondisclosure (NDA) untuk tidak merilis kode sumber Anda ke dunia? Semoga beruntung dengan itu!

Menurut pendapat saya, ini sangat gila untuk mengungkapkan perhiasan mahkota kekayaan intelektual kepada beberapa entitas lain sampai entitas lain telah menandatangani NDA dengan Anda. Anda berencana menggunakan layanan seperti github yang tidak menandatangani NDA dengan klien mereka. Mereka malah menawarkan janji yang tidak jelas dalam bentuk EULA yang sangat panjang (perjanjian lisensi pengguna akhir).

Github sendiri menyadari bahwa ini bisa menjadi masalah yang signifikan, dan sebagai hasilnya mereka menawarkan Github Enterprise sebagai mekanisme untuk hosting kode sumber (dan barang pribadi lainnya) di server sendiri.

David Hammen
sumber
4
Jadi ... untuk situs web pabrikan sederhana, maka itu tidak masalah, bukan? "Mahkota kekayaan intelektual" perusahaan lebih tentang apa yang kami produksi daripada tentang kode yang kami gunakan untuk mempromosikannya.
Mathieu Guindon