Tanskalaisten insinöörien John Blemin ja Henrik Friborg Jacobsenin vuonna 1998 perustama Milestone Systems on johtava avoimen alustan videonhallintaohjelmistojen (VMS) toimittaja. Yrityksen pääkonttori sijaitsee Brøndbyssä Tanskassa, ja Milestone Systems toimii maailmanlaajuisesti yli 30 toimistonsa kautta. Se on erikoistunut dataohjattuihin videoteknologiaratkaisuihin, jotka auttavat eri toimialojen organisaatioita, kuten julkishallintoa, kaupunkivalvontaa, vähittäiskauppaa, liikennettä, rahoitusalaa, pelialaa ja koulutussektoria.
Pähkinänkuoressa
Yhtenäinen build-ratkaisu
Loimme yhden yhtenäisen CI/CD-ratkaisun kaikkien ydintuotteen komponenttien buildaamiseen, mikä varmistaa yhdenmukaisuuden ja vaatimustenmukaisuuden.
Migroimme CI/CD-putket TeamCitystä GitHub Actionsiin, mikä paransi integraatio- ja automaatiokykyä.
Yritys
Milestone Systems on globaali ohjelmistoyritys, joka on erikoistunut dataohjattuihin videoteknologiaratkaisuihin. Ne auttavat organisaatioita eri toimialoilla, kuten julkishallinnossa, kaupunkivalvonnassa, vähittäiskaupassa, liikenteessä, rahoituksessa, pelialalla ja koulutuksessa.
Haaste
Milestone Systemsin tarve noudattaa Yhdysvaltain kyberturvallisuutta koskevaa toimeenpanomääräystä 14028 loi tarpeen modernisoida työkaluketjua sekä varmistaa jäljitettävyys ja tietoturva. Yritys tarvitsi ketterämmän, skaalautuvamman ja nykyaikaisemman arkkitehtuurin sekä kehitystiimien ja käytettävien tietoturvatyökalujen yhdenmukaistamista. Tiimien toimintatavat vaihtelivat, eikä yhteisiä tietoturvatyökaluja ollut. Tämä koski myös CI/CD-putkia ja työkaluketjuja.
Ratkaisu
Tuotantotasoisen työkaluketjun asennus ja konfigurointi.
Lähdekoodin ja binäärien skannauksen käyttöönotto sekä riippuvuuksien hallintatyökalujen lisääminen putkiin.
Gitin ja modernin feature branching -mallin käyttöönotto.
Allekirjoitusten lisääminen varmennetuille paketeille.
Salaisuuksien siirtäminen Azure KeyVaultiin.
Modulaaristen buildien mahdollistavien ratkaisujen lisääminen.
Alustatiimin kouluttaminen ja toimintaedellytysten parantaminen.
Hyödyt
Yhdysvaltain toimeenpanomääräyksen 14028 vaatimusten täyttäminen parantamalla jäljitettävyyttä, datan sijaintiin liittyvää hallintaa ja ohjelmistotoimitusketjun tietoturvaa.
Valmius nopeampiin toimitussykleihin poistamalla CI/CD-putkien tehottomuuksia ja riippuvuuksia.
Tiimien yhteistyön ja itsenäisyyden parantuminen Gitin ja feature branching -mallin käyttöönoton myötä, mikä mahdollistaa tehokkaamman rinnakkaisen kehityksen.
Tietoturvaloukkausten riskin pienentyminen keskittämällä salaisuuksien hallinta Azure Key Vaultiin.
Järjestelmän skaalautuvuuden ja ylläpidettävyyden parantuminen modulaaristen buildien avulla sekä tukemalla siirtymää ketterämpään, löyhemmin kytkettyyn arkkitehtuuriin.
Haaste: Ohjelmistokehityksen uudistaminen tietoturvasta ja vaatimustenmukaisuudesta tinkimättä
Milestone kääntyi Eficoden puoleen modernin ja kunnianhimoisen teknologiastrategiansa kanssa. Haaste oli monitahoinen ja ulottui ohjelmistokehitykseen, tietoturvaan ja vaatimustenmukaisuuteen. Oli olennaista varmistaa, että sen ohjelmistot täyttävät maailmanlaajuisesti asiakkaiden käytössä korkeimmat tietoturvastandardit. Tämä edellytti haavoittuvuuksien välttämistä, erityisesti kolmansien osapuolten ja avoimen lähdekoodin komponenteista aiheutuvien haavoittuvuuksien osalta, sekä tehokasta binääriskannausta ja riippuvuuksien hallintaa. Tavoiteltuun muutokseen kuului siirtyminen ketterämpään ja skaalautuvampaan arkkitehtuuriin, monoliittisen infrastruktuurin purkaminen sekä löyhästi kytketyn arkkitehtuurin käyttöönotto.
Muutoksen ytimessä oli siirtyminen GitHub Enterpriseen. Se edellytti TeamCity- ja TFS-järjestelmistä luopumista, putkien rakentamista sekä laajan ja monimutkaisen koodikannan ja räätälöityjen konfiguraatioiden haasteiden ratkaisemista. Yhdysvaltain kyberturvallisuutta koskevan Executive Order 14028 -asetuksen noudattaminen – erityisesti jäljitettävyyden, datasijainnin ja ohjelmistotoimitusketjun osalta – oli Milestonen tavoitteiden keskiössä, jotta se voisi avata uusia mahdollisuuksia Yhdysvaltain markkinoilla ja kasvattaa liikevaihtoaan.
Eficoden tehtävänä oli rakentaa uusi, vaatimustenmukainen työkaluketju tukemaan Milestonen kunnianhimoista kasvua, siirtää nykyinen infrastruktuuri pilveen ja uudistaa laajoja koodikantoja. Eficoden tuli varmistaa, että tuotteet täyttävät tiukat sääntelyvaatimukset. Tämä edellytti kehitys-, Platform Engineering- ja infrastruktuuritiimien yhdenmukaistamista, jotta ne voisivat työskennellä saumattomasti yhteisen tavoitteen eteen. Migraatiostrategian tavoitteena oli edistää Continuous Integration- ja Continuous Delivery -kulttuuria sekä helpottaa teknisen velan vähentämistä ja refaktorointia. Tavoitteena oli ottaa käyttöön konttipohjaisia, mikropalveluihin perustuvia ja trunk-based development -käytäntöjä Agilen toimintatavan ja reagointikyvyn parantamiseksi.
Yhtenäisen ja tehokkaan ekosysteemin luominen
Eficoden ehdotuksen tavoitteena oli modernisoida versionhallinta- ja CI/CD-prosessit, jotta arkkitehtuurista tulisi ketterämpi ja skaalautuvampi. Keskeinen osa tätä DevOps-muutosta oli yhtenäisen ratkaisun luominen kaikkien komponenttien buildaamiseen trunk-based development -mallilla. Tämä lähestymistapa yksinkertaisti haarautumista ja mahdollisti kehityksen ja ominaisuushaarojen itsepalvelun.
Eficode vastasi Milestonen infrastruktuuri- ja SCM-tarpeisiin varmistaakseen, että sen on-premise-ympäristöt, pilvipalvelut ja hallinnoidut palvelut ovat luotettavia ja vaatimustenmukaisia. Kyse ei ollut vain tämän päivän tarpeista, vaan tulevaisuudesta, jossa Milestonen tuotteet ja prosessit ovat markkinavalmiita, tietoturvallisia ja skaalautuvia sekä linjassa sen ydinarvojen ja pitkän aikavälin vision kanssa.
Projektissa kohdattiin useita haasteita, kun ohjelmistokehitystä modernisoitiin siten, että tietoturva ja vaatimustenmukaisuus sisältyivät siihen valmiiksi. Lähtötilanteessa käytössä oli iäkäs ja monimutkainen TFS-versionhallinta- ja build-järjestelmä, joka aiheutti merkittäviä haasteita koko kehitysorganisaatiossa. Tiimeillä oli vaikeuksia haarautumisstrategioiden itsepalvelussa ja TeamCityn tehottoman CI/CD-prosessin hallinnassa.
Koska järjestelmää tuki yksi build-tiimi, pullonkauloja syntyi usein. Testiautomaatio oli monoliittinen, mikä loi merkittävän riippuvuuden sen tulevasta tehokkuudesta ja kestävyydestä. Valtaosa testiautomaatiosta oli päästä päähän -testausta, ja käyttöliittymäriippuvuus johti pitkiin suoritusaikoihin sekä pidensi palautesykliä takaisin kehitykseen. Lisäksi vaatimustenmukaisuuden varmistaminen, erityisesti Yhdysvaltain markkinoita varten, oli ratkaisevan tärkeää uusien liiketoimintamahdollisuuksien avaamiseksi, mutta nykyisellä työkaluketjulla sitä oli vaikea saavuttaa. Milestonella oli yhteensä yli 400 kehittäjää.
Ratkaisu: Versionhallinta, CI/CD ja tehostetut testausprosessit
Tukeakseen Yhdysvaltain Executive Order 14028 -asetuksen vaatimustenmukaisuutta ja edistääkseen arkkitehtuurin modernisointia Eficode teki yhteistyötä Milestone Systemsin kanssa turvallisen, skaalautuvan ja tulevaisuudenkestävän kehitysympäristön toteuttamiseksi. Kahdeksan kuukauden aikana toteutettu kattava työkaluketjumigraatio sujuvoitti yhteistyötä, paransi ohjelmistotoimitusketjun tietoturvaa ja antoi Milestonen tiimeille modernit CI/CD-ominaisuudet sekä kestävät kehityskäytännöt.
Versionhallinnassa Eficode keskittyi trunk-based development -malliin, siirtymiseen GitHub Enterprise Platformiin ja itsepalvelun mahdollistamiseen:
Trunk-based development
Otimme käyttöön trunk-based development -strategian kehitysprosessin sujuvoittamiseksi.
Yksinkertaistimme haarautumisstrategioita, jotta tiimien olisi helpompi hallita koodiaan ja tehdä tehokasta yhteistyötä.
Siirtyminen GitHub Enterprise Platformiin
Siirryimme TFS:stä GitHub Enterprise Platformiin hyödyntääksemme edistyneitä versionhallintaominaisuuksia.
Jaotimme monorepon loogisiin komponentteihin, joista jokainen sijaitsee omassa repositoriossaan.
Itsepalvelun mahdollistaminen
Annoimme tiimeille mahdollisuuden hallita haarojaan, mikä lisäsi niiden itsenäisyyttä ja vähensi riippuvuutta keskitetystä hallinnasta. Otimme käyttöön ominaisuushaarautumisen tukemaan rinnakkaista kehitystä ja nopeuttamaan uusien ominaisuuksien julkaisemista.
CI/CD:ssä keskityimme yhtenäisen ratkaisun ja asiakkaan kyvykkyyksien rakentamiseen sekä tukevaan tiimirooliin ja tehostettuihin testausprosesseihin:
Yhtenäinen build-ratkaisu
Loimme yhtenäisen CI/CD-ratkaisun ydinratkaisun kaikkien komponenttien buildaamiseen, mikä varmisti johdonmukaisuuden ja vaatimustenmukaisuuden.
Siirsimme CI/CD-putket TeamCitystä GitHub Actionsiin, mikä paransi integraatio- ja automaatiovalmiuksia.
Tukeva build-tiimin rooli
Build-tiimin rooli muuttui työkaluketjun suorista hallinnoijista ja ylläpitäjistä Platform Engineering -rooliksi.
Build-tiimi tarjoaa nyt ohjeistusta ja valmiita resursseja sekä toimii mahdollistavana tukikeskuksena, joka sujuvoittaa kehitysprosesseja.
Lisäksi Eficode kehitti testausprosesseja painottamalla integroitua testiautomaatiota, joka toimii nyt uusien CI/CD-putkien laatukriteerinä ja varmistaa jatkuvan testauksen sekä laadunvarmistuksen. Riippuvuutta käyttöliittymäpohjaisista testeistä vähennettiin, mikä lyhensi suoritus- ja palautesyklejä sekä paransi kokonaistehokkuutta.
Ratkaisu toteutettiin Milestonen ja Eficoden tiiviissä yhteistyössä. Tämä mahdollisti sen, että Eficode pystyi reagoimaan haasteisiin nopeasti ja rakentamaan yhdessä Milestonen osaamispohjaa.
Yhteistyö Eficoden kanssa on ollut Milestonelle arvokasta ja edistänyt merkittävästi kehitystä. Heidän asiantuntemuksensa ja kykynsä tehdä selkeitä päätöksiä tiimimme näkemyksiin pohjautuen varmistivat, että valitsimme oikeat työkalut ja otimme käyttöön parhaat mahdolliset prosessit.
Yhteenvetona toteutus sisälsi:
Siirtyminen GitHub Enterprise Platformiin
Nykyinen versionhallintaratkaisu arvioitiin ja siirtymä suunniteltiin.
Migraatio toteutettiin Agile-periaatteiden mukaisesti, mukaan lukien monorepon koostaminen ja uusien repositorioiden perustaminen.
Varmistettiin EO:n kyberturvallisuusvaatimusten noudattaminen.
CI/CD-transformaatio
CI/CD-putket siirrettiin TeamCitystä GitHub Actionsiin.
Kehitimme asiakkaan kyvykkyyksiä tukemalla tiimejä GitHub Actionsin käytössä, luomalla golden pipelineja ja kontitetut runnerit sekä tekemällä kehittäjien kanssa yhteistyötä uusien self-service-ympäristöjen rakentamiseksi.
Build-tiimin rooli määriteltiin uudelleen tukemaan ja mahdollistamaan kehitystiimien työtä.
Tehostetut testausprosessit
Testiautomaatio integroitiin uusiin CI/CD-putkiin.
Riippuvuutta käyttöliittymäpohjaisista testeistä vähennettiin suoritus- ja palautesyklien lyhentämiseksi.
Lähdekoodin ja binäärien skannauksen käyttöönotto
Koodin laatua ja skannausta vahvistettiin ottamalla SonarQube käyttöön.
Artifactoryn hallinta ja avoimen lähdekoodin hallintamalli Sonatype Nexuksen, Firewallin ja Lifecyclen avulla
Tietoturvan vahvistaminen salaisuuksien hallinnalla
Azure Key Vaultin ja Cosignin käyttöönotto.
Tuloksena merkittäviä parannuksia tehokkuuteen, ketteryyteen, vaatimustenmukaisuuteen ja tietoturvaan
Transformaatio toi mukanaan useita merkittäviä parannuksia:
Tehokkuus ja ketteryys
Kehitystiimit saivat enemmän itsenäisyyttä itsepalveluna toimivien haarautumisten ja CI/CD-putkien avulla. Nopeammat palautesyklit ja vähäisemmät pullonkaulat paransivat tuottavuutta kokonaisuudessaan.
Vaatimustenmukaisuus ja tietoturva
Yhdysvaltojen kyberturvallisuusvaatimusten mukaisuus saavutettiin, mikä avasi uusia markkinamahdollisuuksia.
Skaalautuvuus
Uusi arkkitehtuuri ja prosessit tukivat tulevaa kasvua ja skaalautuvuutta.
Eficoden ja Milestone Systemsin yhteistyö korosti koulutuksen merkitystä: Tiimien osaamisen kehittäminen varhaisessa vaiheessa varmistaa sujuvammat siirtymät ja uusien työkalujen paremman käyttöönoton. Tiimien ja sidosryhmien välinen jatkuva viestintä on ratkaisevan tärkeää onnistuneen migraation ja transformaation kannalta. Lisäksi tukeva infrastruktuuri, joka siirtää build-tiimin tukevampaan rooliin, auttaa pitämään fokuksen innovoinnissa ja jatkuvassa parantamisessa.
- DevOps
- Platform engineering
Get in touch
Related client stories