Types of Code Repository Software
Ohjelmistokehitysprosessissa, kun ohjelmasi lähtee järjestelmästäsi tai koneestasi, on yleensä neljä avainkomponenttia, joita tarvitset luomuksesi menestyksekkäämpään kehitykseen: hyvin optimoitu verkkosivusto, täysin aktiivinen sähköpostilista, hyvä ongelmanseurantajärjestelmä ja suojattu koodivarasto.
Vaikka suurin osa ohjelmistokehitysprojektin tarvitsemasta infrastruktuurista saattaa olla jo saatavilla yrityksen sisäisissä järjestelmissä, on olemassa laaja valikoima työkaluja ja palveluita, jotka voivat helpottaa kehitystiimien pyrkimyksiä ylläpitää ja julkaista hyvin rakennettua ja menestyksekästä ohjelmistoa.
Koodivarastoratkaisuja on saatavana muutamia erilaisia. On yksi, jota kutsutaan isännöidyksi palveluksi – hyvämaineisen palveluntarjoajan isännöimät lähdekooditilat, joita kutsutaan institutionaaliseksi arkistoksi -, joita organisaatio tyypillisesti ylläpitää ja hallinnoi omilla versionhallintapalveluillaan. Muuten on olemassa myös sellainen koodivarasto, jossa on yrityksen itsensä suunnittelema ja hallinnoima infrastruktuuri.
Hosted Services
Hosted Services ovat yleinen ratkaisu ohjelmistokehittäjille, jotka työskentelevät yhteistyökumppaneiden ja sitoutujien kanssa monimutkaisten projektien parissa, erityisesti silloin, kun nämä yhteistyökumppanit ovat hajaantuneet useisiin eri laitoksiin.
Jotkut näistä julkisista isännöidyistä palveluista ja koodivarastoista ovat itse asiassa varsin suosittuja alalla, johon kuuluvat GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah ja Assembla. Kaikki nämä ratkaisut eivät kuitenkaan tarjoa täsmälleen samoja palveluja. GitHub tarjoaa vahvan ympäristön ohjelmistokehittäjille kehittäjäkeskeisenä palveluna. BitBucket on palveluntarjoaja Atlassianin isännöimä palvelu, joka tunnetaan yhteistyöratkaisuistaan, joihin kuuluvat Confluence ja JIRA.
GitLab puolestaan on verkkopohjainen Git-tietovarastojenhallinta, jossa on wiki- ja ongelmienseurantatoiminnot. Palvelu tarjoaa myös paikallisen arkiston, joka voidaan asentaa laitoksen tai organisaation infrastruktuuriin.
SourceForge on yksi vanhimmista ja vakiintuneimmista isännöidyistä alustoista ohjelmistokehitysprojekteille ja lähdekoodivarastoille. Palveluntarjoaja tarjoaa suurimman osan ominaisuuksista ja valmiuksista, joita arkistolta voi odottaa.
Launchpadia isännöi Canonical ja se palvelee useita tunnettuja käyttäjiä, kuten Ubuntua ja MySQL:ää. Palvelussa on ominaisuuksien ja määritysten seuranta sekä Soyuz-julkaisunhallinta.
Assembla on suosittu isännöityjen palveluiden tarjoaja pienempien tiimien ja organisaatioiden keskuudessa. Se tarjoaa laajat projektinhallintamahdollisuudet sekä ohjelmistokehityspalvelut. Savannah palvelee suurinta osaa GNU-ohjelmistoista ja muutamia GNU:n ulkopuolisia ratkaisuja. Alusta keskittyy vapaiden ohjelmistokehitysprojektien isännöintiin.
Institutionaaliset koodivarastot
Lukuisten isännöityjen palveluiden ja verkkopohjaisten koodivarastojen saatavuudesta huolimatta on edelleen useita yrityksiä ja organisaatioita, jotka ylläpitävät omia versionhallintapalvelujaan, postituslistojen hallitsijoita ja palvelujaan.
Useimmiten tämäntyyppiset koodivarastot tai ohjelmistokehityspalvelut ovat paljon tehokkaampia, jos projektiin määrätyt kehittäjät ja sitoutujat sijaitsevat palvelua isännöivässä organisaatiossa. Institutionaaliset arkistot pystyvät kuitenkin käsittelemään myös kourallisen ulkopuolisia yhteistyökumppaneita.
Oman infrastruktuurin hallinta ja ylläpito
On siis olemassa isännöity palvelu, institutionaalinen arkisto ja sitten on itse ylläpidettävä versionhallintajärjestelmä, kuten SVN, CVS tai Git. Tarjolla on myös ratkaisuja, joiden avulla organisaatiot voivat pyörittää omaa ohjelmistotietovarastoaan käyttäen sellaisia paketteja kuin Trac, GitLab, Savane (joka pyörittää sekä SourceForgea että Savannahia), LibreSource, GForge ja Codendi.
Tämäntyyppiset koodivarastoratkaisut vaativat vakavaa panostusta, aikaa ja vaivannäköä työnkulun ja kehittämisprosessin perustamiseen ja ylläpitoon. Sen hyöty on kuitenkin se, että se antaa kehitystiimeille ja yrityksille suurimman kontrollin projekteihinsa ja arkistoonsa, erityisesti kun on kyse räätälöinnistä.