1. Open Source erfaringer i Norwegian
Håvard Haug Hanssen
Sjefsarkitekt, Kommersielle og Operative systemer i Norwegian
2. Hvem snakker...
• Håvard Haug Hanssen
– Sjefsarkitekt, Kommersielle og Operative systemer
– Ansvarlig for Norwegians internettportaler
– Forretningsutvikling og Interaksjonsdesign
– Prosjektleder med 40 leveranser i Norwegian
– Siden 2003, startet ny E-handel plattform
• Bakgrunn generelt
– 20 år med IT og internettutvikling
– 15 år innen reiseliv og luftfart
– Løsninger innen E-handel, Luftfart, Nettbank, Telekom,
Dokumenthåndtering, Utdanning
3. Spørreundersøkelse...
?
• Hvem har reist med Norwegian?
• Hvem har brukt Lavpriskalenderen?
• Hvem vil ha internett ombord når de flyr?
5. Norwegian tall og fakta 1/4
• 4. største lavprisselskap i Europa
• 1600 ansatte og 47 fly
• 150 ruter til 82 destinasjoner
• Over 10 millioner passasjerer i 2009
• Gjentatt høy % vekst i omsetning og trafikk
% vekst i forhold til 2003
1800
1600
1400
1200
1000
800
600
400
200
0
2003 2004 2005 2006 2007 2008 2009 2010 2011
6. Norwegian tall og fakta 2/4
• Internettrafikk
– 90% av salget på internett
– opptil 4,5 millioner besøk per dag
– opptil 3 millioner prissøk per dag
7. Norwegian tall og fakta 3/4
• IT Systemavdeling
– 40 personer, 5 faste ansatte + innleide konsulenter
– Kun Senior/Sjef nivå, flere konsulenthus, ulike miljøer
– Organisert i team på ca 5 personer
• 2 team bruker .NET
• 2 team bruker J2EE
• Resten tilpasser ferdige løsninger
8. Norwegian tall og fakta 4/4
• Løsningene
– Standard hyllevare og egenutviklede systemer
– Forretningsbasert, kommersielt styrt
– Iterativ utvikling, ”Scrum but...”
– Tjenesteorientert arkitektur
– Fleksibel arkitektur, raske leveranser
– Kunder er Kommersiell, Operativ og Teknisk avdeling
9. Arkitekturen
Privat Bedrift Agent/Reisebyrå Flyplass/Stasjon Privat/Mobil Eksterne partnere
Internettportal Bedriftsportal Agentportal Stasjonsportal Mobilportal B2B API
.NET .NET .NET .NET .NET Web services
J2EE/JBoss
Buss Transaksjoner Buss Kø
Web services BizTalk, SQL Server
J2EE/JBoss IBM Websphere MQ
Sentraltjenester Sentraltjenester
Web services Web services
.NET J2EE/JBoss
10. Teamerfaringer
Portalene
• Vurderinger • Eksempler
– Bruker ikke Open Source – Publisering plugins
– .NET dekker behovet • EPIServer EPICode
– .NET er etablert hos – Logging
driftsleverandør og • log4net
utviklingsressurser er lett –
tilgjengelig Patterns
• MVC
• Localisation
• Erfaringer • Cache Manager
– Raskt å utvikle, krever rutiner for • ...
å vedlikeholde kode over tid – Bygging
– Server Controller og eventer kan • Nant/CruiseControl
være vanskelige å debugge
– Grafisk presentasjon i Server
Controller kan unntaksvis være
vanskelig å overstyre
• Bidrag/Forum
– Søker kjente feil
– Poster få spørsmål
• Livet er godt
11. Teamerfaringer
Integrasjon
• Vurderinger • Eksempler
– Billig i oppstarten – Dependency Injection
– Friheten til velge/bytte verktøy • Guice
– Ingen lisensbinding på servere – Caching
etc • OSCache
– Enkle å jobbe med – Validering
– Oppgradere når man vil • OVal
– Debug muligheter (brukes – Logging
unntaksvis) • log4j
• finne feilkilde i egen kode – Web Service
eller rammeverk
– • Apache CXF
Åpenhet rundt feil
• søke på nett – AppServer
• JBoss
– Bygging
• Bidrag/Forum • Maven
– Søker kjente feil – Testing
– Poster lite spørsmål • TestNG, Mockito,
– Poster ikke feilrettinger Cucumber, SoapUI
– Scripting, Admin
• Ruby
• Erfaringer – Utviklingsverktøy
– Byttet WS rammeverk • Eclipse
• Raskere, enklere kode, – Versjonskontroll
billigere(minne) • SubVersion, Git
– Brukte umoden versjon av – Operativsystem
rammeverk • Linux
• Medførte begrensninger
– Har ikke hatt behov for å inngå
supportavtaler
• Livet er godt
12. Teamerfaringer
Sentraltjenester 1/2
• Vurderinger (J2EE) • Eksempler
– Slipper lisenser – Rammeverk
• Rask oppgradering • Spring
• Billig i oppstarten – JMS (Java Messaging Service)
– Bruker standarder • ActiveMQ
• God dokumentasjon – WebApp
– Lett å finne bugs • Struts 2
• Kan debugge kildekoden – Logging
selv • log4j
– Aktivt miljø – SQL Mapping
• Finne kjente feil • Hibernate
• Åpent roadmap – SQL Driver
• JTDS
– Web Service rammeverk
• Erfaringer
• Apache CXF
– Droppet MySQL
– Appserver
• Hadde SQLServer/ønsket
å standardisere • JBoss
– Bygging
• Maven
• Bidrag/Forum – Utviklingsverktøy
– Søker kjente feil • Eclipse
– Poster lite spørsmål • Idea
– Poster ikke feilrettinger – Operativsystem
• Linux
• Livet er godt
13. Teamerfaringer
Sentraltjenester 2/2
• Vurderinger (.NET) • Eksempler
– Bruker ikke Open Source – Web Service rammeverk
– .NET 3.5 dekker behovet • Web Service Factory
– Utviklingen går riktig vei – Logging
• log4net
• Erfaringer – Bygging
– Tidligere brukte vi flere • Nant/CruiseControl
rammeverk, erstattet av senere – Mocking
versjoner av .NET • Rhino
• Bidrag/Forum
– Søker ofte feil
– Poster lite spørsmål
• Livet er godt
14. Teamerfaringer
Støttesystemer
• Vurderinger • Eksempler
– Billig og bra nok – Informasjon/Planlegning
– Mantis tungt å tilpasse • Confluence
– Confluence lisensiert – Bugtracker/Oppgave
• Mantis
• Erfaringer
– Kildekode har vært styrt av
teamene
• ønsker samordning
15. Oppsummering
• Våre systemer er forretningskritiske og leverer bra mht ytelse
og stabilitet
• Både lukkede rammeverk (.NET) og Open Source
rammeverk (J2EE) fungerer
• Teamene har vært selvstendige
– fått lov til å styre intern teknisk arkitektur
• Etterhvert ser vi behov for koordinering/samkjøring
– valg av løsninger
– valg av rammeverk
– kildekodestyring, integrert i både .NET og J2EE team
– integrert oppgavesystem
16. Forretningsstrategi og Åpenhet
• Flytransport er ekstremt konkurranseutsatt
$
– IT er strategisk viktig for Norwegian
– Forretningshemmeligheter må skjermes
• IT-utviklingen er kommersielt drevet
– Vi må være kosteffektiv og kan bare kjøre lønnsomme
prosjekter
– Lite/ingen penger til å bidra til Open Source prosjekter
• Konsekvens
– Vi er nok mest brukere, ikke bidragsytere
– Vi bruker standard rammeverk og lager få generelle løsninger
som andre kan bruke
– Egenutviklet kildekode beskriver forretning og kan ikke
distribueres
– Feks Lavpriskalenderen er patentert
– Feks B2B API leveres kun kompilert, men har eget forum
17. Totalkostnader
• I en famlende oppstart var det billig og fleksibelt å prøve seg
$
fram med Open Source rammeverk
• Som etablert selskap er ikke kostnadsbildet like tydelig
– Både lukkede rammeverk og Open Source modeller leverer
– Men sparte Open Source lisenskostnader er forsvinnende små i
$
forhold til kostnader knyttet til utviklingstimer, maskinvare, drift-
og supportavtaler
• Levetid
– Både systemer basert på lukkede rammeverk og Open Source
$
er justert eller reimplementert flere ganger
– Skyldes ikke rammeverk, men nye forretningskrav og nye
løsningsvalg
18. Noen suksessfaktorer...
• Forretningssiden er med på utviklingen
!
• Tynn spec og mange iterasjoner
• Arkitekturvalg viser vei
• Leverer løsninger som er ”bra nok”
• Krav til forretning, fleksibilitet og leveranseevne viktigere enn
tekniske diskusjoner
• Lære opp utviklerne til å tenke kommersielt
– Mulighetene og begrensningene sitter i hodene, ikke i
rammeverkene...