OpenSUSE Build Service Hyödyntäminen & käyttö 2015-10-01
Kuka olen? Mika Reunanen, 40v Toimin ohjelmistoarkkitehtina Solteqissa Tarkemmin Profix-myymäläjärjestelmän parissa vuodesta 1998 lähtien Linuxia käyttänyt 1990-luvun puolesta välistä 2
Sisällys: Esittelyt Profix-tuotteen esittely/yleiskuvaus OpenSUSE Buil Service Miten? Miksi? Pros & Cons Omat ja kollegoiden kokemukset Keskustelu 3
& Riittävän pieni välittämään, riittävän suuri kantamaan. ERITTÄIN KYVYKÄS TOTEUTTAMAAN UUDEN AJAN KAUPANKÄYNNIN DIGITAALISET PALVELUT
SOLTEQ DESCOM TYÖNTEKIJÄT 300 230 530 LIIKEVAIHTO 2014 40,9 27,4 68,3 PAIKKAKUNNAT Helsinki, Jyväskylä, Lahti, Stockholm, Tampere, Wroclaw
MIKSI YHDISTYIMME STRATEGINEN YHTEENSOPIVUUS Kansainvälistymismahdollisuudet Poikkeuksellisen suuri synergiaetu Kyvykkyyttä hoitaa vaativampia projekteja
ASIAKKAAMME Asiakkaillemme digitaalinen kaupankäynti on menestystekijä. He toimivat: teollisuudessa, vähittäiskaupassa, tukkukaupassa ja logistiikassa.
DIGITAALISEN LIIKETOIMINNAN ASIAKKAITAMME
MYYMÄLÄTOIMINTO-OHJAUKSEN ASIAKKAITAMME
TOIMINNANOHJAUKSEN ASIAKKAITAMME pharmadata
PALVELUTOIMINTOJEN OHJAUKSEN ASIAKKAITAMME
Profix-myymäläjärjestelmän yleiskuvaus Profix Solteq:n oma Myymälä ERP vuodesta 1986 Moduliperustainen Kassa Liki kaikille asiakkaille räätälöity tarpeen mukaan johtuen toimialakirjosta: optiikka, päivittäistavaraja erikoistavarakauppa, pesula, videovuokraamo Myynti- ja ostotilaukset Reskontra Perusrekistereiden hallinta, pankkiyhteydet jne 12
Profix-myymäläjärjestelmän yleiskuvaus - teknologia Toteutettu ANSI-C:llä (C91) Linux-versio 2003 Käyttöliittymä tekstipohjainen (ncurses-kirjasto) Myös selaimella käytettäviä komponentteja/moduleita Tietovarasto: PostgreSQL tai D-ISAM Erä- sekä yöajot toteutettu cronin kautta shell-skripteillä Liittymät ulkoisiin järjestelmiin: Web services, ftp/sftp, http(s), 13
14
15
OpenSUSE Build Service 16
OpenSUSE Build Service: Miten päädyttiin? Hyvä kysymys Taisi olla muutaman vuoden takainen SUSEn tilaisuus, jossa esiteltiin ko. tuotetta Ja siitä herännyt uteliaisuus ;) Sekä luonnollisesti kohde/tarve, jossa todellinen hyöty ROI Miksi 17
OpenSUSE Build Service: Miksi päädyttiin? Automaatio versus manuaaliduuni Yksi palvelin (build service itse) vs. dedikoidut paketointipalvelimet Eri distribuutiot (SLES 11 GA, SP1-SP3, ) Rauta-arkkitehtuurit (i586, x86-64) Nostaa kustannuksia turhaan (kun voi käyttää yhtä OBS-palvelinta) Kompleksinen softa laajoine riippuvuuksineen Osa riippuvuuksista vain build aikaisia mutta osa riippuvuuksista tietenkin lopullisessa paketissa mukana Esim. Profixin Payment Adapter käyttää Boost-kirjastoa SEPA-pankkiyhteydet käytännössä web servicejä 18
OpenSUSE Build Service: Pilvestä vaiko privaatti? Käyttääkö julkista Vai sittenkin privaatti-obs palvelin? Ei ole yhtä oikeata vastausta! 19
OpenSUSE Build Service: Pilvestä vaiko privaatti? Pilvipohjainen: Up-to-date koko ajan Käyttöönoton nopeus Palvelunsaatuvuus voi joskus olla ei-taattua Privaatti: Asennus Ylläpito (ml. varmistukset)/päivittäminen Täysin omissa käsissä Mutta oikeasti kyse on siitä mitä buildataan: Immateriaalioikeudet Sopimukset Käytännössä: tietoturva (buildin tekijän, asiakkaan/loppukäyttäjän ) 20
OpenSUSE Build Service: Pros & cons Pros: RPM-teknologia taustalla Spec-määrittelytiedosto Todella killeri ominaisuus on, että voi kääntää eri slesseille ja/tai arkkitehtuureille ilman, että pitää olla vastaavat oikeat sles-koneet asennettuina Uuden version check-in:in jälkeen build prosessi käynnistyy automaattisesti mitään monimutkaista käyttäjähallintaa ei olla tarvittu eikä sitä ilmeisesti olekaan dependencyt: sepaws:ssä on varmaan 50+ pakettia joista suurin osa on build dependencyjä. kun tekee muutoksen yhteen pakettiin niin obs osaa automaattisesti kääntää vain paketit joihin se muutos vaikuttaa. aika kosminen kokemus kun sen ekan kerran näkee. 21
OpenSUSE Build Service: Pros & cons Pros: kaikista buildeista jää lokit ja vanhoista versiot saa käännettyä uudelleen. Pieni asia mutta siitä on ollut paljon apua. Sopii myös konfiguraatioiden hallintaan Tehokas komentorivityökalu 22
OpenSUSE Build Service: Pros & cons Voi käskyttää vaikkapa ssh:n yli Kuten itse teen make-työkalun kautta: 23
OpenSUSE Build Service: Pros & cons 24
OpenSUSE Build Service: Pros & cons Pros: Jos vain kohdeympäristön konfiguraatio on kunnossa, niin: $ scp pkg.rpm target:/tmp/ && ssh root@target zypper install /tmp/pkg.rpm Hoitaa myös riippuvuudet kuntoon Tätä ei pidä aliarvioida, jos esimerkiksi minimiasennettuun palvelimeen asennetaan LAPP/LAMP-riippuvainen paketti 25
OpenSUSE Build Service: Pros & cons Cons: RPM-teknologia taustalla Spec-määrittelytiedosto Todennäköisesti sama spec-tiedosto ei toimi eri distroilla (ei edes vertikaalisesti samalla distrolla ts. esim. SLES11 SP2 vs SP3 - horisontaalisesti toimii ts. arkkitehtuurit) Spec-tiedoston luonti OBS-spec file vaatii enempi kuin käsin tehtävään paketointiin (rpmbuild) luotu Tar.gz -riippuvuus 26
OpenSUSE Build Service: Pros & cons Cons: suurin osa dokumentaatiosta koskee build.opensuse.org:ia, oman instanssin asentamiseen/pyörittämiseen ohjeita on aika nihkeästi ja virheilmoituksia googlettamalla ei juuri löydä vastauksia. onneksi on sorsat mistä katsoa... web-käyttöliittymästä puuttuu paljon toiminnallisuutta joka on komentorivityökalussa. toistaalta web-käyttöliittymästä esim. käännösten monitorointi on paljon helpompaa joten molempia pitää käyttää Kompleksinen arkkitehtuuri: paljon komponentteja Continuous Integration haastellinen 27
OpenSUSE Build Service: Pros & cons Johtopäätös: Puutteistaan huolimatta, niin omat kokemukset puoltavat OBS:n käyttöä 28
Kysymyksiä tai kommentteja? Eli sana vapaa 29
Kiitos!