Upload
friprogsenteret
View
1.234
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
Open Source erfaringer i Norwegian
Håvard Haug HanssenSjefsarkitekt, Kommersielle og Operative systemer i Norwegian
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
Spørreundersøkelse...
• Hvem har reist med Norwegian?
• Hvem har brukt Lavpriskalenderen?
• Hvem vil ha internett ombord når de flyr??
Mer enn 200 ruter til 90 destinasjoner
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
0
200
400
600
800
1000
1200
1400
1600
1800
2003 2004 2005 2006 2007 2008 2009 2010 2011
% vekst i forhold til 2003
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
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
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
Arkitekturen
Internettportal.NET
Bedriftsportal.NET
Agentportal.NET
Stasjonsportal.NET
B2B APIWeb servicesJ2EE/JBoss
Buss Transaksjoner Web servicesJ2EE/JBoss
SentraltjenesterWeb servicesJ2EE/JBoss
SentraltjenesterWeb services
.NET
Mobilportal.NET
Buss KøBizTalk, SQL ServerIBM Websphere MQ
Privat Bedrift Agent/Reisebyrå Flyplass/Stasjon Privat/Mobil Eksterne partnere
TeamerfaringerPortalene
• Vurderinger– Bruker ikke Open Source– .NET dekker behovet– .NET er etablert hos
driftsleverandør og utviklingsressurser er lett tilgjengelig
• Erfaringer– Raskt å utvikle, krever rutiner for
å vedlikeholde kode over tid– Server Controller og eventer kan
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
• Eksempler– Publisering plugins
• EPIServer EPICode– Logging
• log4net– Patterns
• MVC• Localisation• Cache Manager• ...
– Bygging• Nant/CruiseControl
TeamerfaringerIntegrasjon
• Vurderinger– Billig i oppstarten– Friheten til velge/bytte verktøy– Ingen lisensbinding på servere
etc– Enkle å jobbe med– Oppgradere når man vil– Debug muligheter (brukes
unntaksvis)• finne feilkilde i egen kode
eller rammeverk– Åpenhet rundt feil
• søke på nett
• Bidrag/Forum– Søker kjente feil– Poster lite spørsmål– Poster ikke feilrettinger
• Erfaringer– Byttet WS rammeverk
• Raskere, enklere kode, billigere(minne)
– Brukte umoden versjon av rammeverk
• Medførte begrensninger– Har ikke hatt behov for å inngå
supportavtaler
• Livet er godt
• Eksempler– Dependency Injection
• Guice– Caching
• OSCache– Validering
• OVal– Logging
• log4j– Web Service
• Apache CXF– AppServer
• JBoss– Bygging
• Maven– Testing
• TestNG, Mockito, Cucumber, SoapUI
– Scripting, Admin• Ruby
– Utviklingsverktøy• Eclipse
– Versjonskontroll• SubVersion, Git
– Operativsystem• Linux
TeamerfaringerSentraltjenester 1/2
• Vurderinger (J2EE)– Slipper lisenser
• Rask oppgradering• Billig i oppstarten
– Bruker standarder• God dokumentasjon
– Lett å finne bugs• Kan debugge kildekoden
selv– Aktivt miljø
• Finne kjente feil• Åpent roadmap
• Erfaringer– Droppet MySQL
• Hadde SQLServer/ønsket å standardisere
• Bidrag/Forum– Søker kjente feil– Poster lite spørsmål– Poster ikke feilrettinger
• Livet er godt
• Eksempler– Rammeverk
• Spring– JMS (Java Messaging Service)
• ActiveMQ– WebApp
• Struts 2– Logging
• log4j– SQL Mapping
• Hibernate– SQL Driver
• JTDS– Web Service rammeverk
• Apache CXF– Appserver
• JBoss– Bygging
• Maven– Utviklingsverktøy
• Eclipse• Idea
– Operativsystem• Linux
TeamerfaringerSentraltjenester 2/2
• Vurderinger (.NET)– Bruker ikke Open Source– .NET 3.5 dekker behovet– Utviklingen går riktig vei
• Erfaringer– Tidligere brukte vi flere
rammeverk, erstattet av senere versjoner av .NET
• Bidrag/Forum– Søker ofte feil– Poster lite spørsmål
• Livet er godt
• Eksempler– Web Service rammeverk
• Web Service Factory– Logging
• log4net– Bygging
• Nant/CruiseControl– Mocking
• Rhino
TeamerfaringerStøttesystemer
• Vurderinger– Billig og bra nok– Mantis tungt å tilpasse– Confluence lisensiert
• Erfaringer– Kildekode har vært styrt av
teamene• ønsker samordning
• Eksempler– Informasjon/Planlegning
• Confluence– Bugtracker/Oppgave
• Mantis
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
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
$
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
$$$
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...
!
Takk for oppmerksomheten!