SlideShare a Scribd company logo
1 of 89
Download to read offline
Driftbarhet

Steg mot smidig drift
JavaZone 2010 – Trond Arve Wasskog
Driftbarhet?
Overskyggende fokus på
sluttbrukerfunksjonalitet
Ikke-funksjonelle krav...
Når det feiler i et av de
involverte systemene, så skal
 det ved asynkrone oppgaver
automatisk gjøres nye forsøk,
 og etter x antall forsøk skal
det legges en melding på den
generiske varslingstjenesten.
Utføring av sentrale funksjoner
 skal logges. Dette vil være en
    form for logging av utført
  forretningslogikk. Naturlige
  tidspunkt for slik logging vil
være ved oppretting/innsending
      av ”noe”, verifisering,
    tjenestekall, oppslag, etc.
Formelle krav i henhold til
regelverk og lover skal oppfylles.
 Eksempler på aktuelle lover og
          regelverk er
    personopplysningsloven,
arkivloven og offentlighetsloven.
Driftbarhet

Tilrettelegging for effektiv
           drift
Driftsoperatørene
Ansvar for at
applikasjonen fungerer
 i produksjonsmiljøet
Som administrator

       skal jeg kunne søke opp en
             prosessinnstans

slik at jeg raskt kan finne den spesifikke
  prosessen eller utvalget av prosesser
             jeg skal håndtere
Gitt at jeg har kundenummer for en
            feilende prosess

   når jeg oppgir kundenummeret i
              søkefeltet

så skal alle prosesser for det spesifikke
   kundenummeret listes sortert på
               oppstartstid
Som administrator

skal jeg se en oversikt over
  alle aktuelle prosesser

slik at jeg vet om systemet
    kjører som normalt
Gitt prosessoversikten vises

  Når ingen prosesser har feilet

Så skal alle prosesser ha status OK
   og være sortert på ferdigdato
Gitt at prosessoversikten vises

          Når en prosess feiler

Skal den feilende prosessen ha status FEIL
       og vises øverst i prosesslista
  og de andre prosessene ha status OK
Driftsoperatørene er
også brukere av systemet
Plattform
Driftsoppgaver
Utrulling
Bunntekst -- Endres i toppmenyen: ”Insert” -> ”Header & Footer” (Velg ”Apply to all”)   Side 28
Utvikling   Test   QA   Produksjon
Utvikling      Test         QA         Produksjon
  App          App          App           App
   OS           OS           OS            OS
Hypervisor   Hypervisor   Hypervisor    Hypervisor
Version    SQL   Version   SQL   Version
  2.1              2.2             2.3


          Database migrations
http://martinfowler.com/bliki/BlueGreenDeployment.html
Automatisering
Overvåkning
Som en driftsoperatør

 ønsker jeg å avdekke feil i
  konfigurasjon og miljø

slik at applikasjonen starter
Diagnosetester
Gitt at applikasjonen starter

 når applikasjonsbrukeren
     ikke har tilgang til
      importkatalogen

så skal oppstarten feile med
   en tydelig feilmelding
Diagnosetest              Beskrivelse
Java VM versjon           Systemet benytter riktig Java
                          VM versjon
Java VM parametre         Systemet har nødvendige Java
                          VM parametre satt
Tid og dato               Verifiserer at klokke og tid er
                          satt korrekt
Språk/tegnsett OS         Språk og tegnsett er korrekt på
                          operativsystemnivå
Språk/tegnsett database   Språk og tegnsett er korrekt på
                          databasenivå
Systembruker tilgang      Sjekker at systembrukeren har
                          tilgang til nødvendige filområder
Kan kjøre ved oppstart eller
   som egen testkjøring
Som en driftsoperatør

ønsker jeg å verifisere at den
      nylig installerte
  applikasjonen fungerer
Som en driftsoperatør

ønsker jeg å ha oversikt over
applikasjonens helsetilstand

 slik at jeg tidlig kan oppdage
problemer og iverksette tiltak
Som en driftsoperatør

      ønsker jeg at alle
applikasjonene overvåkes i et
     felles driftskonsoll
Diagnosetester

    Røyktester

   Helsesjekker

Felles driftskonsoll
Feilhåndtering og logging
Drift vil vite hva de skal gjøre
      når en feil oppstår
Som en driftsoperatør

skal jeg kunne skille mellom
applikasjonsfeil, systemfeil
  og programmeringsfeil

 slik at jeg vet om jeg skal
         gjøre tiltak
Funksjonell   Feilretting og Prøv igjen?
              håndtering    utrulling
Application        Ja            Nei           Nei
Exception



System            Mulig          Nei          Mulig
Exception



Programming        Nei           Ja            Nei
Exception
Som en driftsoperatør

  Ønsker jeg at feil kan
     kategoriseres

Slik at jeg kan identifisere
  gjentaktende feiltyper
Som en driftsoperatør

skal jeg kunne identifisere
 hver enkelt feilhendelse

slik at jeg kan finne feil som
     rapporteres med ID
Legg til kontekst
der feilen oppstår
java.lang
               RuntimeException


               AbstractException
                -Enum category
                   -Long uid
                 -Map context
             addContext(key, value)




ApplicationException          SystemException
Alvorlighetsgrad
Fatal    Kritisk applikasjonsfeil

 Error    Kritisk sesjonsfeil

Warning   Mindre kritiske feil

 Info     Interessante hendelser
Logg til lokal disk
Enkel tilgang til
produksjonsloggene
Loggovervåkning
Enkel og konsistent
  feilhåndtering
    og logging
Finn en sårbarhet - I
try {
   conn = pool.getConnection();
   stmt = conn.createStatement();

   // execute sql

} finally {
   stmt.close();
   conn.close();
}
try {
   conn = pool.getConnection();
   stmt = conn.createStatement();
   // execute sql
} finally {
   try {
       stmt.close();
   } catch (Exception e) { //SystemEx }
   try {
      conn.close();
   } catch (Exception e) { //SystemEx }
}
Finn en sårbarhet - II
URLConnection conn =
   openConnection("http://www.bekk.no");
conn.connect();

InputStream is = conn.getInputStream();
while(is.available() > 0) {
    // process
}
URLConnection conn =
   openConnection("http://www.bekk.no");
conn.setConnectTimeout(CONNECT_TIMEOUT);
conn.setReadTimeout(READ_TIMEOUT);
conn.connect();

InputStream is = conn.getInputStream();
while(is.available() > 0) {
    // process
}
Finn en sårbarhet - III
public synchronized Object get(String id)
{
    Object obj = items.get(id);
    if(null == obj) {
         obj = createFromBackingStore(id);
         items.put(id, obj);
    }
    return obj;
}
public synchronized Object get(String id)
{
    Object obj = items.get(id);
    if(null == obj) {
         obj = createFromBackingStore(id);
         items.put(id, obj);
    }
    return obj;
}
Finn en sårbarhet - IV
Last-
          balanserer
              50/50


Appserver 1           Appserver 2

   80%                   75%
Last-
           balanserer
              100/0


Appserver 1           Appserver 2

 155% ??                 0%
Finn en sårbarhet - V
Last-
          balanserer




Appserver 1       Appserver 2
Last-
          balanserer




Appserver 1       Appserver 2
Finn en sårbarhet - VI
Folke
                                   LDAP
        registeret




                        Min
Print                                     Mainframe
                     Applikasjon




            SAP                     CMS
Folke
                                   LDAP
        registeret

                  5s         20 ms


          10 ms         Min         60s
Print                                     Mainframe
                     Applikasjon
                  10s          5s


            SAP                     CMS
Folke
                                   LDAP
        registeret




                        Min
Print                                     Mainframe
                     Applikasjon




            SAP                     CMS
Oppsummert
devops
Det koster så lite
og betyr så mye
Takk for at du hørte på!

                             Spørmål?
                   trond.arve.wasskog@bekk.no


                             BEKK CONSULTING AS
SKUR 39, VIPPETANGEN. P.O. BOX 134 SENTRUM, 0102 OSLO, NORWAY. WWW.BEKK.NO

More Related Content

Viewers also liked

Галереям и выставочным залам (НашКиев.UA)
Галереям и выставочным залам (НашКиев.UA)Галереям и выставочным залам (НашКиев.UA)
Галереям и выставочным залам (НашКиев.UA)NashKiev.UA
 
The Team/Organization Loop of Trust
The Team/Organization Loop of TrustThe Team/Organization Loop of Trust
The Team/Organization Loop of TrustDerek W. Wade
 
What is Synch Tech?
What is Synch Tech?What is Synch Tech?
What is Synch Tech?Scott Wertel
 
Салонам красоты (НашКиев.UA)
Салонам красоты (НашКиев.UA)Салонам красоты (НашКиев.UA)
Салонам красоты (НашКиев.UA)NashKiev.UA
 
Slide share
Slide shareSlide share
Slide shareDavindra
 
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...Patrick Kane
 
соц-дем 04-05'11 (NashKiev.UA)
соц-дем 04-05'11 (NashKiev.UA)соц-дем 04-05'11 (NashKiev.UA)
соц-дем 04-05'11 (NashKiev.UA)NashKiev.UA
 
Showcase Wellness Technology Oulu Finland 2011
Showcase Wellness Technology Oulu Finland 2011Showcase Wellness Technology Oulu Finland 2011
Showcase Wellness Technology Oulu Finland 2011Oulu Wellness Institute
 

Viewers also liked (15)

Safety glass europe
Safety glass   europeSafety glass   europe
Safety glass europe
 
5things
5things5things
5things
 
Галереям и выставочным залам (НашКиев.UA)
Галереям и выставочным залам (НашКиев.UA)Галереям и выставочным залам (НашКиев.UA)
Галереям и выставочным залам (НашКиев.UA)
 
Vaccine markets in Europe
Vaccine markets in EuropeVaccine markets in Europe
Vaccine markets in Europe
 
P&O3 session 1
P&O3 session 1P&O3 session 1
P&O3 session 1
 
Assignment nº4 heick
Assignment nº4 heickAssignment nº4 heick
Assignment nº4 heick
 
The Team/Organization Loop of Trust
The Team/Organization Loop of TrustThe Team/Organization Loop of Trust
The Team/Organization Loop of Trust
 
What is Synch Tech?
What is Synch Tech?What is Synch Tech?
What is Synch Tech?
 
Салонам красоты (НашКиев.UA)
Салонам красоты (НашКиев.UA)Салонам красоты (НашКиев.UA)
Салонам красоты (НашКиев.UA)
 
Slide share
Slide shareSlide share
Slide share
 
Potassic fertilizers asia
Potassic fertilizers   asiaPotassic fertilizers   asia
Potassic fertilizers asia
 
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...
Priori Data - Defining the Relevant Market for your App - Casual Connect Fall...
 
Comunidad de hoy
Comunidad de hoyComunidad de hoy
Comunidad de hoy
 
соц-дем 04-05'11 (NashKiev.UA)
соц-дем 04-05'11 (NashKiev.UA)соц-дем 04-05'11 (NashKiev.UA)
соц-дем 04-05'11 (NashKiev.UA)
 
Showcase Wellness Technology Oulu Finland 2011
Showcase Wellness Technology Oulu Finland 2011Showcase Wellness Technology Oulu Finland 2011
Showcase Wellness Technology Oulu Finland 2011
 

Similar to Driftbarhet - Steg mot smidig drift, JavaZone 2010

Ikke test Puppet-koden din
Ikke test Puppet-koden dinIkke test Puppet-koden din
Ikke test Puppet-koden dinJan Ivar Beddari
 
Meetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMeetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMorten Bergset
 
Solide systemer med unit of work
Solide systemer med unit of workSolide systemer med unit of work
Solide systemer med unit of workEirik Maus
 
Apache solr i finn.no
Apache solr i finn.noApache solr i finn.no
Apache solr i finn.noFINN.no
 
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av AutentiseringsprosjektetIkt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektetleiftorger
 
Javascript tar hevn
Javascript tar hevnJavascript tar hevn
Javascript tar hevnfossmo
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryKnut Haugen
 
Introduksjon til python skriping i arc gis plattformen
Introduksjon til python skriping i arc gis plattformenIntroduksjon til python skriping i arc gis plattformen
Introduksjon til python skriping i arc gis plattformenGeodata AS
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列yoyojacky
 
Presentation Mapreduce Bjornnordlund
Presentation Mapreduce BjornnordlundPresentation Mapreduce Bjornnordlund
Presentation Mapreduce BjornnordlundBjørn Nordlund
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
Fluent api design
Fluent api designFluent api design
Fluent api designJoar Øyen
 
Du må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonDu må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonOle-Martin Mørk
 
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergFriprogsenteret
 
Blazor - en kjapp intro
Blazor - en kjapp introBlazor - en kjapp intro
Blazor - en kjapp introRunegri
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februarSturla Grelland
 
Hva er fri programvare
Hva er fri programvareHva er fri programvare
Hva er fri programvareLibriotech
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenFriprogsenteret
 

Similar to Driftbarhet - Steg mot smidig drift, JavaZone 2010 (20)

Ikke test Puppet-koden din
Ikke test Puppet-koden dinIkke test Puppet-koden din
Ikke test Puppet-koden din
 
Meetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMeetup 9 i KristansandPHP
Meetup 9 i KristansandPHP
 
Solide systemer med unit of work
Solide systemer med unit of workSolide systemer med unit of work
Solide systemer med unit of work
 
Soa Runtime
Soa RuntimeSoa Runtime
Soa Runtime
 
Apache solr i finn.no
Apache solr i finn.noApache solr i finn.no
Apache solr i finn.no
 
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av AutentiseringsprosjektetIkt Fagforum - Presentasjon Av Autentiseringsprosjektet
Ikt Fagforum - Presentasjon Av Autentiseringsprosjektet
 
Javascript tar hevn
Javascript tar hevnJavascript tar hevn
Javascript tar hevn
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Introduksjon til python skriping i arc gis plattformen
Introduksjon til python skriping i arc gis plattformenIntroduksjon til python skriping i arc gis plattformen
Introduksjon til python skriping i arc gis plattformen
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列
 
Presentation Mapreduce Bjornnordlund
Presentation Mapreduce BjornnordlundPresentation Mapreduce Bjornnordlund
Presentation Mapreduce Bjornnordlund
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Fluent api design
Fluent api designFluent api design
Fluent api design
 
Du må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonDu må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjon
 
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
 
Blazor - en kjapp intro
Blazor - en kjapp introBlazor - en kjapp intro
Blazor - en kjapp intro
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar
 
AWS på kartet
AWS på kartetAWS på kartet
AWS på kartet
 
Hva er fri programvare
Hva er fri programvareHva er fri programvare
Hva er fri programvare
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug Hanssen
 

More from ilmyggo

GodeMinerTilSlettSpill-JavaZone.pdf
GodeMinerTilSlettSpill-JavaZone.pdfGodeMinerTilSlettSpill-JavaZone.pdf
GodeMinerTilSlettSpill-JavaZone.pdfilmyggo
 
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...ilmyggo
 
Lov og rett i skyen JavaZone 2018
Lov og rett i skyen JavaZone 2018Lov og rett i skyen JavaZone 2018
Lov og rett i skyen JavaZone 2018ilmyggo
 
Bekk Teknologiradar 2018 - Modige ledere
Bekk Teknologiradar 2018 - Modige ledereBekk Teknologiradar 2018 - Modige ledere
Bekk Teknologiradar 2018 - Modige ledereilmyggo
 
Atom Feeds Gruser JMS
Atom Feeds Gruser JMSAtom Feeds Gruser JMS
Atom Feeds Gruser JMSilmyggo
 
Tis not agile
Tis not agileTis not agile
Tis not agileilmyggo
 
Alle vil til himmelen men ingen vil dø software 2016
Alle vil til himmelen men ingen vil dø   software 2016Alle vil til himmelen men ingen vil dø   software 2016
Alle vil til himmelen men ingen vil dø software 2016ilmyggo
 
11 erfaringer ditt prosjekt ikke behøver å gjenta
11 erfaringer ditt prosjekt ikke behøver å gjenta11 erfaringer ditt prosjekt ikke behøver å gjenta
11 erfaringer ditt prosjekt ikke behøver å gjentailmyggo
 
Kontinuerlig leveransei skatteetatenpart-2
Kontinuerlig leveransei skatteetatenpart-2Kontinuerlig leveransei skatteetatenpart-2
Kontinuerlig leveransei skatteetatenpart-2ilmyggo
 
Kontinuerlig leveransei skatteetatenpart-1
Kontinuerlig leveransei skatteetatenpart-1Kontinuerlig leveransei skatteetatenpart-1
Kontinuerlig leveransei skatteetatenpart-1ilmyggo
 
Enkelhet testbarhet og skalerbarhet med grid i skatteetaten
Enkelhet testbarhet og skalerbarhet med grid i skatteetatenEnkelhet testbarhet og skalerbarhet med grid i skatteetaten
Enkelhet testbarhet og skalerbarhet med grid i skatteetatenilmyggo
 
Riktig feilhåndtering (og ja, checked exceptions er skadelige)
Riktig feilhåndtering (og ja, checked exceptions er skadelige)Riktig feilhåndtering (og ja, checked exceptions er skadelige)
Riktig feilhåndtering (og ja, checked exceptions er skadelige)ilmyggo
 
Arkitektur på vondt og godt
Arkitektur på vondt og godtArkitektur på vondt og godt
Arkitektur på vondt og godtilmyggo
 

More from ilmyggo (13)

GodeMinerTilSlettSpill-JavaZone.pdf
GodeMinerTilSlettSpill-JavaZone.pdfGodeMinerTilSlettSpill-JavaZone.pdf
GodeMinerTilSlettSpill-JavaZone.pdf
 
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...
JavaZone 2021: Året da åpen kildekode ble diskutert på Stortinget! av Trond A...
 
Lov og rett i skyen JavaZone 2018
Lov og rett i skyen JavaZone 2018Lov og rett i skyen JavaZone 2018
Lov og rett i skyen JavaZone 2018
 
Bekk Teknologiradar 2018 - Modige ledere
Bekk Teknologiradar 2018 - Modige ledereBekk Teknologiradar 2018 - Modige ledere
Bekk Teknologiradar 2018 - Modige ledere
 
Atom Feeds Gruser JMS
Atom Feeds Gruser JMSAtom Feeds Gruser JMS
Atom Feeds Gruser JMS
 
Tis not agile
Tis not agileTis not agile
Tis not agile
 
Alle vil til himmelen men ingen vil dø software 2016
Alle vil til himmelen men ingen vil dø   software 2016Alle vil til himmelen men ingen vil dø   software 2016
Alle vil til himmelen men ingen vil dø software 2016
 
11 erfaringer ditt prosjekt ikke behøver å gjenta
11 erfaringer ditt prosjekt ikke behøver å gjenta11 erfaringer ditt prosjekt ikke behøver å gjenta
11 erfaringer ditt prosjekt ikke behøver å gjenta
 
Kontinuerlig leveransei skatteetatenpart-2
Kontinuerlig leveransei skatteetatenpart-2Kontinuerlig leveransei skatteetatenpart-2
Kontinuerlig leveransei skatteetatenpart-2
 
Kontinuerlig leveransei skatteetatenpart-1
Kontinuerlig leveransei skatteetatenpart-1Kontinuerlig leveransei skatteetatenpart-1
Kontinuerlig leveransei skatteetatenpart-1
 
Enkelhet testbarhet og skalerbarhet med grid i skatteetaten
Enkelhet testbarhet og skalerbarhet med grid i skatteetatenEnkelhet testbarhet og skalerbarhet med grid i skatteetaten
Enkelhet testbarhet og skalerbarhet med grid i skatteetaten
 
Riktig feilhåndtering (og ja, checked exceptions er skadelige)
Riktig feilhåndtering (og ja, checked exceptions er skadelige)Riktig feilhåndtering (og ja, checked exceptions er skadelige)
Riktig feilhåndtering (og ja, checked exceptions er skadelige)
 
Arkitektur på vondt og godt
Arkitektur på vondt og godtArkitektur på vondt og godt
Arkitektur på vondt og godt
 

Driftbarhet - Steg mot smidig drift, JavaZone 2010