SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Hjelp, vi må prodsette!

             Jørgen Wahlberg
                utviklingsleder,
      A-pressen Digitale Medier
A-pressen Digitale Medier

• 65 nettaviser
   bl.a. RB.no, BA.no, Nordlys.no, AN.no
   selve nettavisene, fotball-live, skattelistene, rubrikkannonser, etc.
• Norges femte største nettaktør
   ca. 350 000 unike brukere pr dag
   ca. 1,2 millioner lesere i uken
• Zett.no, Derdubor.no, Mediehuset Digital,
  Nettsamfunnet Origo
• A-pressen eier også
   halve Nettavisen
   halve TV2
Om oss

•   Ca. 15 utviklere
•   Ca. 60 linux-servere
•   Drift satt ut til Linpro
•   Stort sett Java
•   Noe PHP
•   Varnish
•   MySQL
•   PostgreSQL
•   Escenic
•   FAST ESP
Produksjonssetting

• Endring medfører risiko for at noe går galt
• Endring er nødvendig og det vi går på jobb for
• Endring er like viktig som stabilitet

• Må balanseres mot hverandre
Hva har vi gjort for å redusere
risikoen for feil ved utrullinger?
•   Automatisering
•   Kommunikasjon
•   Utviklingsfilosofi
•   Samarbeid utvikling/drift
Munin og Nagios

• Nagios viser status på
  systemene
   og varsler når noe er galt


• Munin grafer utvikling
  for forskjellige
  parametre over tid
   slik at vi kan se om endringer
   førte til uventet oppførsel
Dedikerte driftere

• Drift av tjenestene håndteres av Redpill Linpro
• En person jobber fast med vår rigg
• Slipper å forholde oss til nye ansikter for hver
  henvendelse
Tett kommunikasjon mellom drift og
utvikling
•   Ticketsystem
•   Mail
•   Møter
•   Videokonferanse
•   IRC
Ikke bare menneskene
kommuniserer på IRC
• På kanalen er det en
  bruker som heter “bot”
• Bot er et program, ikke
  et menneske
• Bot forteller hva som
  skjer med serverne:
   oppdateringer
   feilmeldinger




                            http://www.flickr.com/photos/frogdna/3605073173/
Versjonskontroll

• Vi bruker Subversion som versjonskontrollsystem
• For kildekode og konfigurasjon
• Brukes av både utvikling og drift

• Alle vet hvor de skal se
Gjøre utviklings- og
produksjonsmiljøer like
• Jetty som                 http://www.flickr.com/photos/8364507@N06/4048424056/



  applikasjonsserver
• Byttet fra Oracle til
  MySQL
• Samme oppsett
  (porter, prefiks, osv.)
• Feil i produksjon kan
  stort sett
  reproduseres lokalt i
  utviklingsmiljøet
Kontinuerlig bygging

• Enhetstester
• Integrasjonstester
• Cruise Control
• Reduserer risikoen for
  at endringer fører til at
  noe brekker
• Muliggjør refaktorering
ADAM-A
Keep it simple

• Enkle tjenester
• Spesialiserte
• Heller flere enkle enn
  færre kompliserte
  tjenester
• Kommunikasjon
  mellom tjenestene
  med HTTP
   Enkelt å feilsøke
   Enkelt å cache
                           http://www.flickr.com/photos/baileyfamily/2039427760/
Keep it simple (forts.)

• Koden vår er bygget på ryggen av hundrevis av
  biblioteker
   eksempler: spring, hibernate, lucene, xstream, jawr, saxon, jquery
   alle unntatt ett er åpen kildekode
• Så få avhengigheter som mulig
• Hold egne og eksterne biblioteker oppdatert
• Bruke biblioteker som gjør få ting, men gjør dem
  bra
Puppet

• Verktøy for automatisk
  oppdatering av servere
• “Puppet-master”, en
  maskin, holder
  konfigurasjonen
• Sikrer at servere
  (“puppets”) blir oppdatert
  iht. reglene
• Endringer spores av
  Subversion                   http://www.flickr.com/photos/eugene/18142113/
Test-, stage og snapshot-servere

• Kombinasjonen av kontinuerlig bygging...
• ... og automatisert oppdatering av servere ...
• ... gir oss en (nesten) kontinuerlig oppdatert server
  som viser hva som er utviklet til nå.
• Oppdateres flere ganger om dagen.

• Test- og stage-servere oppdateres også enkelt.
Tilgang til serverne

• Alle utviklerne har
  login men ikke fulle
  admin-rettigheter
• Både utviklere og
  driftere kan sette ny
  kode i produksjon
• Endringer kan spores,
  så drifterne har fortsatt
  kontroll over maskinen


                              http://www.flickr.com/photos/penguincakes/2826996407/
Driftsvennlig kode

• Status-sider som
  forteller om tjenestene
  har det bra
   for f.eks. lastbalanserere
   og for mennesker
• Knapper, spaker og
  kontroller slik at man
  kan endre oppførselen
  til systemene i fart

                                http://www.flickr.com/photos/stephangeyer/
Eksempler: status og konsoll
Utviklerne er ansvarlige for koden
også etter at den er i prod
• Man får problemene i fanget hvis det ikke fungerer
  som det skal
• Gjelder både ved ytelsesproblemer og ved
  funksjonelle feil
Alt som rulles ut er ikke nødvendigvis
synlig med en gang
• Skille lansering av ny funksjonalitet fra utrulling av
  ny kode
• Konfigurerbar oppførsel i koden
   av/på
   gammel/ny
• Skru på ny funksjonalitet etter hvert, f.eks. på en
  avis først.
Dyktige medarbeidere

• Utviklere og driftsfolk som respekterer og stoler på
  hverandre
• ... og skjønner hverandres arbeidsoppgaver...
• ... og som prater sammen om hva som fungerer og
  ikke fungerer.
Ikke rulle ut på fredager
Suksessfaktorer

•   IRC og bot
•   Likt oppsett i utvikling og produksjon
•   Hold kode og oppsett så enkelt som mulig
•   Kontinuerlig bygging
•   Enkel oppdatering av servere
•   Hyppig utrulling
Hva har åpen kildekode gitt oss?

• Fleksibilitet
    kan velge hvor og hvordan programmer skal kjøre
    kan bytte ut biter som ikke virker
    mulighet til å sette opp så mange testmiljøer vi vil
• Trygghet
    kan bytte ut biter som ikke virker
    kan fikse det som ikke fungerer bra nok
    kan selv velge hvor vi skal sette inn ressurser hvis noe ikke virker
• Skalering
    ikke bundet av lisenser som begrenser antall cpu-er eller maskiner
    frihet til å sette sammen løsninger slik at de skalerer slik vi vil.
Mer informasjon

•   http://www.linux.org/           • http://en.wikipedia.org/wiki/
•   http://java.sun.com/              Internet_Relay_Chat
•   http://php.net/                 • http://www.mirc.com/ircintro.html
•   http://varnish-cache.org/       • http://www.tandberg.com/
•   http://dev.mysql.com/           • http://subversion.apache.org/
•   http://www.postgresql.org/      • http://jetty.codehaus.org/jetty/
•   http://munin-monitoring.org/    • http://cruisecontrol.sourceforge.net/
•   http://www.nagios.org/          • http://blogg.api.no/-/bulletin/show/
                                      557849_attention-all-personnel
•   http://www.redpill-linpro.no/
                                    • http://www.puppetlabs.com/
                                    • http://www.erdetfredag.no/
jw@apdm.no
 @jorgenwahlberg

http://www.apdm.no/
 http://blogg.api.no/
 @apressen_apdm

Mais conteúdo relacionado

Destaque

Fri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFriprogsenteret
 
Partidos politicos
Partidos politicosPartidos politicos
Partidos politicossecundaria2
 
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXML
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXMLGo Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXML
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXMLFriprogsenteret
 
Hva er fri programvare? Hvem er Friprog, og hva gjør de?
Hva er fri programvare? Hvem er Friprog, og hva gjør de?Hva er fri programvare? Hvem er Friprog, og hva gjør de?
Hva er fri programvare? Hvem er Friprog, og hva gjør de?Friprogsenteret
 
El Prat de Llobregat
El Prat de LlobregatEl Prat de Llobregat
El Prat de Llobregatxchange0709
 
A Brief Outline Of The Catalan Educational System
A Brief Outline Of The Catalan Educational SystemA Brief Outline Of The Catalan Educational System
A Brief Outline Of The Catalan Educational Systemxchange0709
 
Sikkerhet i fri programvare
Sikkerhet i fri programvareSikkerhet i fri programvare
Sikkerhet i fri programvareFriprogsenteret
 
GoOpen 2009 - Kristian Foss: Business uten å blø
GoOpen 2009 - Kristian Foss: Business uten å bløGoOpen 2009 - Kristian Foss: Business uten å blø
GoOpen 2009 - Kristian Foss: Business uten å bløFriprogsenteret
 
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?Friprogsenteret
 
Amatciems - o frumusețe unică
Amatciems - o frumusețe unicăAmatciems - o frumusețe unică
Amatciems - o frumusețe unicăTransmix Romania
 
Flex for php_developers_info_q
Flex for php_developers_info_qFlex for php_developers_info_q
Flex for php_developers_info_qredfaceapple
 
ครูไทยหัวใจไอที1
ครูไทยหัวใจไอที1ครูไทยหัวใจไอที1
ครูไทยหัวใจไอที1guest3114116
 
Презентация УИС для учебных заведений
Презентация УИС для учебных заведенийПрезентация УИС для учебных заведений
Презентация УИС для учебных заведенийsoftmotions
 
день геолога 2010
день геолога 2010день геолога 2010
день геолога 2010guest203e43
 
NEB Step-1 Formative Assessment
NEB Step-1 Formative AssessmentNEB Step-1 Formative Assessment
NEB Step-1 Formative AssessmentDrSaeed Shafi
 
Emerce Conversion Event presentatie Sander Tamaëla
Emerce Conversion Event  presentatie Sander TamaëlaEmerce Conversion Event  presentatie Sander Tamaëla
Emerce Conversion Event presentatie Sander TamaëlaSander Tamaëla
 

Destaque (19)

Fri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessenFri programvare og utfordringer i anskaffelsesprosessen
Fri programvare og utfordringer i anskaffelsesprosessen
 
Partidos politicos
Partidos politicosPartidos politicos
Partidos politicos
 
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXML
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXMLGo Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXML
Go Open 2008: Erlend Øverby, Status ISO-sertifisering av OOXML
 
Hva er fri programvare? Hvem er Friprog, og hva gjør de?
Hva er fri programvare? Hvem er Friprog, og hva gjør de?Hva er fri programvare? Hvem er Friprog, og hva gjør de?
Hva er fri programvare? Hvem er Friprog, og hva gjør de?
 
El Prat de Llobregat
El Prat de LlobregatEl Prat de Llobregat
El Prat de Llobregat
 
A Brief Outline Of The Catalan Educational System
A Brief Outline Of The Catalan Educational SystemA Brief Outline Of The Catalan Educational System
A Brief Outline Of The Catalan Educational System
 
Sikkerhet i fri programvare
Sikkerhet i fri programvareSikkerhet i fri programvare
Sikkerhet i fri programvare
 
GoOpen 2009 - Kristian Foss: Business uten å blø
GoOpen 2009 - Kristian Foss: Business uten å bløGoOpen 2009 - Kristian Foss: Business uten å blø
GoOpen 2009 - Kristian Foss: Business uten å blø
 
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?
Roar Skålin: Fri flyt av meterologiske data - til nytte for samfunnet?
 
Amatciems - o frumusețe unică
Amatciems - o frumusețe unicăAmatciems - o frumusețe unică
Amatciems - o frumusețe unică
 
Flex for php_developers_info_q
Flex for php_developers_info_qFlex for php_developers_info_q
Flex for php_developers_info_q
 
ครูไทยหัวใจไอที1
ครูไทยหัวใจไอที1ครูไทยหัวใจไอที1
ครูไทยหัวใจไอที1
 
Презентация УИС для учебных заведений
Презентация УИС для учебных заведенийПрезентация УИС для учебных заведений
Презентация УИС для учебных заведений
 
Amarillo
AmarilloAmarillo
Amarillo
 
Nupud
NupudNupud
Nupud
 
Lila
LilaLila
Lila
 
день геолога 2010
день геолога 2010день геолога 2010
день геолога 2010
 
NEB Step-1 Formative Assessment
NEB Step-1 Formative AssessmentNEB Step-1 Formative Assessment
NEB Step-1 Formative Assessment
 
Emerce Conversion Event presentatie Sander Tamaëla
Emerce Conversion Event  presentatie Sander TamaëlaEmerce Conversion Event  presentatie Sander Tamaëla
Emerce Conversion Event presentatie Sander Tamaëla
 

Semelhante a GoOpen 2010: Jorgen Wahlberg

GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenFriprogsenteret
 
Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2Libriotech
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teoriDag Tjemsland
 
Frokostseminar mai 2010 solr open source cominvent as
Frokostseminar mai 2010 solr open source cominvent asFrokostseminar mai 2010 solr open source cominvent as
Frokostseminar mai 2010 solr open source cominvent asCominvent AS
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列yoyojacky
 
Audun Ytterdal: Bruk av fri programvare hos VG Nett
Audun Ytterdal: Bruk av fri programvare hos VG NettAudun Ytterdal: Bruk av fri programvare hos VG Nett
Audun Ytterdal: Bruk av fri programvare hos VG NettFriprogsenteret
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stortEirik Torske
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterThor Henning Hetland
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPOle Kristian Mørch-Storstein
 
Introduksjon til TDD
Introduksjon til TDDIntroduksjon til TDD
Introduksjon til TDDJoachim Løvf
 
Introduksjon til Spring Boot
Introduksjon til Spring BootIntroduksjon til Spring Boot
Introduksjon til Spring BootHenrik Schwarz
 
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av AutentiseringsprosjektetIkt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektetleiftorger
 
Hva er fri programvare
Hva er fri programvareHva er fri programvare
Hva er fri programvareLibriotech
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 

Semelhante a GoOpen 2010: Jorgen Wahlberg (20)

GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug Hanssen
 
Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2Hva er Koha? - Versjon 2
Hva er Koha? - Versjon 2
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Meetup16
Meetup16Meetup16
Meetup16
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teori
 
Frokostseminar mai 2010 solr open source cominvent as
Frokostseminar mai 2010 solr open source cominvent asFrokostseminar mai 2010 solr open source cominvent as
Frokostseminar mai 2010 solr open source cominvent as
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列
 
Audun Ytterdal: Bruk av fri programvare hos VG Nett
Audun Ytterdal: Bruk av fri programvare hos VG NettAudun Ytterdal: Bruk av fri programvare hos VG Nett
Audun Ytterdal: Bruk av fri programvare hos VG Nett
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stort
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
Flexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnPFlexible, scalable self-service provisioning using Office PnP
Flexible, scalable self-service provisioning using Office PnP
 
Introduksjon til TDD
Introduksjon til TDDIntroduksjon til TDD
Introduksjon til TDD
 
Introduksjon til Spring Boot
Introduksjon til Spring BootIntroduksjon til Spring Boot
Introduksjon til Spring Boot
 
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av AutentiseringsprosjektetIkt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
 
Hva er fri programvare
Hva er fri programvareHva er fri programvare
Hva er fri programvare
 
Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
Aws på kartet - 2
Aws på kartet - 2Aws på kartet - 2
Aws på kartet - 2
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 

Mais de Friprogsenteret

Fri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFriprogsenteret
 
Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Friprogsenteret
 
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretGoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretFriprogsenteret
 
The Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorThe Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorFriprogsenteret
 
Åpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTÅpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTFriprogsenteret
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David ElbothFriprogsenteret
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaFriprogsenteret
 
GoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandGoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandFriprogsenteret
 
GoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtGoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtFriprogsenteret
 
GoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyGoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyFriprogsenteret
 
GoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonGoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonFriprogsenteret
 
GoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundGoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundFriprogsenteret
 
GoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusGoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusFriprogsenteret
 
GoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupGoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupFriprogsenteret
 
GoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzGoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzFriprogsenteret
 
GoOpen 2010: Per Einar Dybvik
GoOpen 2010: Per Einar DybvikGoOpen 2010: Per Einar Dybvik
GoOpen 2010: Per Einar DybvikFriprogsenteret
 
GoOpen 2010: Paul Skrede
GoOpen 2010: Paul SkredeGoOpen 2010: Paul Skrede
GoOpen 2010: Paul SkredeFriprogsenteret
 
GoOpen 2010: Oddbjorn Berentsen
GoOpen 2010: Oddbjorn BerentsenGoOpen 2010: Oddbjorn Berentsen
GoOpen 2010: Oddbjorn BerentsenFriprogsenteret
 

Mais de Friprogsenteret (20)

Fri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanskeFri programvare + Åpne data = Hånd i hanske
Fri programvare + Åpne data = Hånd i hanske
 
Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?Hvorfor — og hvordan satser BEKK på fri programvare?
Hvorfor — og hvordan satser BEKK på fri programvare?
 
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved FriprogsenteretGoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
GoOpen Roadshow Trondheim - Innledning ved Friprogsenteret
 
The Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sectorThe Norwegian approach to open source in the public sector
The Norwegian approach to open source in the public sector
 
Åpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiTÅpning av MSc ved UiA og HiT
Åpning av MSc ved UiA og HiT
 
Overalt, alltid
Overalt, alltidOveralt, alltid
Overalt, alltid
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David Elboth
 
GoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'EliaGoOpen 2010: Sandro D'Elia
GoOpen 2010: Sandro D'Elia
 
GoOpen 2010: Roger Bivand
GoOpen 2010: Roger BivandGoOpen 2010: Roger Bivand
GoOpen 2010: Roger Bivand
 
GoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth BergholtGoOpen 2010: Lisbeth Bergholt
GoOpen 2010: Lisbeth Bergholt
 
GoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend ØverbyGoOpen 2010: Erlend Øverby
GoOpen 2010: Erlend Øverby
 
GoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese LotheringtonGoOpen 2010: Ann Therese Lotherington
GoOpen 2010: Ann Therese Lotherington
 
GoOpen 2010: Olav Torvund
GoOpen 2010: Olav TorvundGoOpen 2010: Olav Torvund
GoOpen 2010: Olav Torvund
 
GoOpen 2010: Arne Magnus
GoOpen 2010: Arne MagnusGoOpen 2010: Arne Magnus
GoOpen 2010: Arne Magnus
 
GoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine FrøstrupGoOpen 2010: Anne Cathrine Frøstrup
GoOpen 2010: Anne Cathrine Frøstrup
 
GoOpen 2010: Tom Orvei
GoOpen 2010: Tom OrveiGoOpen 2010: Tom Orvei
GoOpen 2010: Tom Orvei
 
GoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund SchultzGoOpen 2010: Rein Amund Schultz
GoOpen 2010: Rein Amund Schultz
 
GoOpen 2010: Per Einar Dybvik
GoOpen 2010: Per Einar DybvikGoOpen 2010: Per Einar Dybvik
GoOpen 2010: Per Einar Dybvik
 
GoOpen 2010: Paul Skrede
GoOpen 2010: Paul SkredeGoOpen 2010: Paul Skrede
GoOpen 2010: Paul Skrede
 
GoOpen 2010: Oddbjorn Berentsen
GoOpen 2010: Oddbjorn BerentsenGoOpen 2010: Oddbjorn Berentsen
GoOpen 2010: Oddbjorn Berentsen
 

GoOpen 2010: Jorgen Wahlberg

  • 1. Hjelp, vi må prodsette! Jørgen Wahlberg utviklingsleder, A-pressen Digitale Medier
  • 2. A-pressen Digitale Medier • 65 nettaviser bl.a. RB.no, BA.no, Nordlys.no, AN.no selve nettavisene, fotball-live, skattelistene, rubrikkannonser, etc. • Norges femte største nettaktør ca. 350 000 unike brukere pr dag ca. 1,2 millioner lesere i uken • Zett.no, Derdubor.no, Mediehuset Digital, Nettsamfunnet Origo • A-pressen eier også halve Nettavisen halve TV2
  • 3. Om oss • Ca. 15 utviklere • Ca. 60 linux-servere • Drift satt ut til Linpro • Stort sett Java • Noe PHP • Varnish • MySQL • PostgreSQL • Escenic • FAST ESP
  • 4. Produksjonssetting • Endring medfører risiko for at noe går galt • Endring er nødvendig og det vi går på jobb for • Endring er like viktig som stabilitet • Må balanseres mot hverandre
  • 5. Hva har vi gjort for å redusere risikoen for feil ved utrullinger? • Automatisering • Kommunikasjon • Utviklingsfilosofi • Samarbeid utvikling/drift
  • 6. Munin og Nagios • Nagios viser status på systemene og varsler når noe er galt • Munin grafer utvikling for forskjellige parametre over tid slik at vi kan se om endringer førte til uventet oppførsel
  • 7. Dedikerte driftere • Drift av tjenestene håndteres av Redpill Linpro • En person jobber fast med vår rigg • Slipper å forholde oss til nye ansikter for hver henvendelse
  • 8. Tett kommunikasjon mellom drift og utvikling • Ticketsystem • Mail • Møter • Videokonferanse • IRC
  • 9. Ikke bare menneskene kommuniserer på IRC • På kanalen er det en bruker som heter “bot” • Bot er et program, ikke et menneske • Bot forteller hva som skjer med serverne: oppdateringer feilmeldinger http://www.flickr.com/photos/frogdna/3605073173/
  • 10. Versjonskontroll • Vi bruker Subversion som versjonskontrollsystem • For kildekode og konfigurasjon • Brukes av både utvikling og drift • Alle vet hvor de skal se
  • 11. Gjøre utviklings- og produksjonsmiljøer like • Jetty som http://www.flickr.com/photos/8364507@N06/4048424056/ applikasjonsserver • Byttet fra Oracle til MySQL • Samme oppsett (porter, prefiks, osv.) • Feil i produksjon kan stort sett reproduseres lokalt i utviklingsmiljøet
  • 12. Kontinuerlig bygging • Enhetstester • Integrasjonstester • Cruise Control • Reduserer risikoen for at endringer fører til at noe brekker • Muliggjør refaktorering
  • 14. Keep it simple • Enkle tjenester • Spesialiserte • Heller flere enkle enn færre kompliserte tjenester • Kommunikasjon mellom tjenestene med HTTP Enkelt å feilsøke Enkelt å cache http://www.flickr.com/photos/baileyfamily/2039427760/
  • 15. Keep it simple (forts.) • Koden vår er bygget på ryggen av hundrevis av biblioteker eksempler: spring, hibernate, lucene, xstream, jawr, saxon, jquery alle unntatt ett er åpen kildekode • Så få avhengigheter som mulig • Hold egne og eksterne biblioteker oppdatert • Bruke biblioteker som gjør få ting, men gjør dem bra
  • 16. Puppet • Verktøy for automatisk oppdatering av servere • “Puppet-master”, en maskin, holder konfigurasjonen • Sikrer at servere (“puppets”) blir oppdatert iht. reglene • Endringer spores av Subversion http://www.flickr.com/photos/eugene/18142113/
  • 17. Test-, stage og snapshot-servere • Kombinasjonen av kontinuerlig bygging... • ... og automatisert oppdatering av servere ... • ... gir oss en (nesten) kontinuerlig oppdatert server som viser hva som er utviklet til nå. • Oppdateres flere ganger om dagen. • Test- og stage-servere oppdateres også enkelt.
  • 18. Tilgang til serverne • Alle utviklerne har login men ikke fulle admin-rettigheter • Både utviklere og driftere kan sette ny kode i produksjon • Endringer kan spores, så drifterne har fortsatt kontroll over maskinen http://www.flickr.com/photos/penguincakes/2826996407/
  • 19. Driftsvennlig kode • Status-sider som forteller om tjenestene har det bra for f.eks. lastbalanserere og for mennesker • Knapper, spaker og kontroller slik at man kan endre oppførselen til systemene i fart http://www.flickr.com/photos/stephangeyer/
  • 21. Utviklerne er ansvarlige for koden også etter at den er i prod • Man får problemene i fanget hvis det ikke fungerer som det skal • Gjelder både ved ytelsesproblemer og ved funksjonelle feil
  • 22. Alt som rulles ut er ikke nødvendigvis synlig med en gang • Skille lansering av ny funksjonalitet fra utrulling av ny kode • Konfigurerbar oppførsel i koden av/på gammel/ny • Skru på ny funksjonalitet etter hvert, f.eks. på en avis først.
  • 23. Dyktige medarbeidere • Utviklere og driftsfolk som respekterer og stoler på hverandre • ... og skjønner hverandres arbeidsoppgaver... • ... og som prater sammen om hva som fungerer og ikke fungerer.
  • 24. Ikke rulle ut på fredager
  • 25. Suksessfaktorer • IRC og bot • Likt oppsett i utvikling og produksjon • Hold kode og oppsett så enkelt som mulig • Kontinuerlig bygging • Enkel oppdatering av servere • Hyppig utrulling
  • 26. Hva har åpen kildekode gitt oss? • Fleksibilitet kan velge hvor og hvordan programmer skal kjøre kan bytte ut biter som ikke virker mulighet til å sette opp så mange testmiljøer vi vil • Trygghet kan bytte ut biter som ikke virker kan fikse det som ikke fungerer bra nok kan selv velge hvor vi skal sette inn ressurser hvis noe ikke virker • Skalering ikke bundet av lisenser som begrenser antall cpu-er eller maskiner frihet til å sette sammen løsninger slik at de skalerer slik vi vil.
  • 27. Mer informasjon • http://www.linux.org/ • http://en.wikipedia.org/wiki/ • http://java.sun.com/ Internet_Relay_Chat • http://php.net/ • http://www.mirc.com/ircintro.html • http://varnish-cache.org/ • http://www.tandberg.com/ • http://dev.mysql.com/ • http://subversion.apache.org/ • http://www.postgresql.org/ • http://jetty.codehaus.org/jetty/ • http://munin-monitoring.org/ • http://cruisecontrol.sourceforge.net/ • http://www.nagios.org/ • http://blogg.api.no/-/bulletin/show/ 557849_attention-all-personnel • http://www.redpill-linpro.no/ • http://www.puppetlabs.com/ • http://www.erdetfredag.no/