SlideShare a Scribd company logo
1 of 19
Download to read offline
Model de les Actualitzacions
       d'openSUSE


  Daniel Massaguer   Jordi Massaguer
Problema


    El cost de mantenir software appliances i distribucions
 Linux depèn de de les actualitzacions dels diferents
 components.




 Quan serà la següent actualització ?


                                ?
Dificultats
    Les actualitzacions depenen de factors no observables i que
  canvien al llarg del temps com ara:
  - Dedicació dels autors:
     - Temps complert
     - Temps parcial
     - Temps lliure

  - Experiència (software + area)
  - Metodologies i eines (e.g., junit, Metodologies àgils)
  - Nombre de programadors
  - Motivació

    La relació entre actualitzacions i altres factors observables
  es desconeguda:
  - Quan va ser la última actualització
  - Actualització d'altres components
  - Maduresa del projecte
  - Tipus d'actualització (e.g., de seguretat)
  - Lineas de Codi
Dos Models

 1.- Model de cues

 x : variable aleatòria = 'temps entre actualitzacions d'un component'

    Model Parametric: Process Poisson
    x es comporta com una distribucio estadistica (exponencial):
               x ~ exp(λ=1/x)

    Model no parametric
    x no es comporta com una distribucio estadistica, pero podem mesurar
    propietats basiques d'x (mitjana, desviacio standard).
                x~?
Dos Models

     1.- Model de cues

     x : variable aleatòria = 'temps entre actualitzacions d'un component'

          Model Parametric: Process Poisson
          x es comporta com una distribucio estadistica (exponencial):
                     x ~ exp(λ=1/x)

          Model no parametric
          x no es comporta com una distribucio estadistica, pero podem mesurar
          propietats basiques d'x (mitjana, desviacio standard).
                      x~?

     2.- Time Series (series temporals)

     y = f(t)
     y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
         quinzena de Gener)'




*un exemple tipic de series temporals es el preu de les accions d'una companyia al llarg del temps
Dos Models

 1.- Model de cues

 x : variable aleatòria = 'temps entre actualitzacions d'un component'

    Model Parametric: Process Poisson
    x es comporta com una distribucio estadistica (exponencial):
               x ~ exp(λ=1/x)

    Model no parametric
    x no es comporta com una distribucio estadistica, pero podem mesurar
    propietats basiques d'x (mitjana, desviacio standard).
                x~?

 2.- Time Series (series temporals)

 y = f(t)
 y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
     quinzena de Gener)'


Quin model es mes appropriat?
Quin model es mes appropriat?
→ Estudi preliminar amb 1 any d'actualitzacions per 11.0 --i586
→ Estudi preliminar amb 1 any d'actualitzacions per 11.0 i586
Process Poisson                                                                      xi ~ exp(λ=1/x)

                x = 'temps entre actualitzacions d'un component'*


                               x ~ exp(λ=1/x)** → No és un procés Poisson


                             Time between updates
                                      i586 - openSUSE 11.0
              250


              200


              150
  Frequency




              100


              50


                0
                    0   28       56       84    112    140   168   196   224   252   280   308   336   364   392
                         time [days] (bins of 28 days)
*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només
tenim en compte aquells components amb més d'una actualització (6.56%).

**segons els tests d'Anderson-Darling, Kolmogoronov-Smirnov, i Chi-squared.

***segons els mateixos tests, x no es comporta com una distribucio normal o altres distribucions conegudes.
Model No Parametric                                                                                       xi ~?

               x = 'temps entre actualitzacions d'un component'*

               x = 73,5 dies
               stdev(x) = 53,19 dies



                            Time between updates
                                     i586 - openSUSE 11.0
             250


             200


             150
 Frequency




             100


             50


               0
                   0   28       56         84       112       140     168   196   224   252   280   308    336    364   392
                                      time [days] (bins of 28 days)

*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només
tenim en compte aquells components amb més d'una actualització (6.56%).
Model No Parametric                                                                                       x ~?

               x = 'temps entre actualitzacions d'un component'*

               x = 73,5 dies
               stdev(x) = 53,19 dies
               75% : [21,4 dies , 4,6 mesos]                                → massa variabilitat!


                            Time between updates
                                     i586 - openSUSE 11.0
             250


             200


             150
 Frequency




             100


              50


               0
                   0   28       56         84       112       140     168   196   224   252   280   308    336   364   392
                                      time [days] (bins of 28 days)

*assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només
tenim en compte aquells components amb més d'una actualització (6.56%).
Time Series
                                    Updates per quarter                                                       Frequency of updates per quarter
                                     i586 - openSUSE 11.0                                                  i586 security updates - openSUSE 11.0
                              0.4
                                                                                              0.35
                              0.3
 (Normalized) frequency




                              0.2                                                              0.3
                              0.1                                                             0.25
                                0                                                              0.2
                                                      Winter (Jan-Mar)                        0.15
                          Summer (July-Sep)
                                                                                               0.1
                                            Academic quarter
                                                                                              0.05
                                                                                                 0
                                                                                                                         Fall (Oct-Dec)                   Spring(Apr-June)
                                                                                                     Summer (July-Sep)                    Winter (Jan-Mar)


                                     Frequency of updates per quarter
                               i586 recommended updates - openSUSE 11.0
                                                                                                                  Actualitzacions de
        0.6                                                                                                       Seguretat : tot l'anya slight
        0.5                                                                                                       increase in Winter and decrease
        0.4                                                                                                       in Spring.
        0.3
        0.2
                                                                                                                  Actualitzacions
                                                                                                                  Recomenades: La majoria al
        0.1
                                                                                                                  principi
                          0
                                                    Fall (Oct-Dec)                      Spring(Apr-June)
                              Summer (July-Sep)                      Winter (Jan-Mar)
Time Series

                                                                   Nu m ber of up dat es per 1/2 a m ont h
                                                                  i586 secur it y u pd at es - open SUSE 1 1.0
                                           120
                                           100
                                                       h
                                                              max
                                            80
                                            60
                                            40     h
                                                              min
                                            20
                                             0




                                                 May 15, 08

                                                               Jun 15, 08

                                                                            Jul 15, 08

                                                                                         Aug 15, 08

                                                                                                      Sep 15, 08

                                                                                                                   Oct 15, 08

                                                                                                                                Nov 15, 08

                                                                                                                                             Dec 15, 08



                                                                                                                                                                      Jan 31, 09

                                                                                                                                                                                   Feb 28, 09

                                                                                                                                                                                                Mar 31, 09

                                                                                                                                                                                                             Apr 30, 09

                                                                                                                                                                                                                          May 31, 09
                                                                                                                                                          Jan 7, 09
  Actualitzacions de Seguretat:
  h  (t) = max(y) = 109
      max
  h         (t) = min (y) = 14
      min


  h     (t) = A(t)*sin(B(t)*t + C(t)) + D(t)
      sin


  Es poden aproximar amb una
  funcio sinusoidal !!!
20
                                                                                                                                                  40
                                                                                                                                                       60
                                                                                                                                                            80




                                                                                                                                        0
                                                                                                                              May 15, 08




                                                                                                                                             h
                                                                                                                              May 31, 08




                                                                                                                                                             h
                                                                                                                              Jun 15, 08




                                                                                                                                            min
                                                                                                                              Jun 30, 08




                                                                                                                                                            max
                                                                                                                               Jul 15, 08
                                                                                                                               Jul 31, 08
                                                                                                                              Aug 15, 08
                                                                                                                              Aug 31, 08
                                                                                                                              Sep 15, 08
                                                                                                                                                                                                             Time Series




                                                                                                                              Sep 30, 08
                                                                                                                              Oct 15, 08
                                                                                                                              Oct 31, 08
                                                                                                                              Nov 15, 08
                                                                                                                              Nov 30, 08
                                                                                                                              Dec 15, 08
                                                                                                                              Dec 21, 08
                                                                                                                               Jan 7, 09
                                                                                                                              Jan 15, 09
                                                                                                                              Jan 31, 09
                                                                                                                              Feb 15, 09
                                                                                                                              Feb 28, 09
                                                                                                                              Mar 15, 09
                                                                                                                              Mar 31, 09
                                                                                                                                                               Nu m ber of up dat es per 1/2 a m ont h




                                                                                                                              Apr 15, 09
                                                                                                                                                              i586 secur it y u pd at es - open SUSE 1 1.0




                                                                                                                              Apr 30, 09
                                                                                                                              May 15, 09

                                 h
                                                                         h
                                                                                              h


                                                                                                                              May 31, 09
                                sin
                                                                        min

                                                                                                                              Jun 20, 09
                                                                                             max
                                                                         (t) = min (y) = 0
                                                                                                 (t) = max(y) = 74




funcio sinusoidal !!!
                                                                                              Actualitzacions Recomenades :



                                 (t) = A(t)*sin(B(t)*t + C(t)) + D(t)


   Es poden aproximar amb una
Dos Models

 Model de cues

 x : variable aleatòria = 'temps entre actualitzacions d'un component'

    Model Parametric: Process Poisson
    x es comporta com una distribucio estadistica (exponencial):
               x ~ exp(λ=1/x)

    Model no parametric
    x no es comporta com una distribucio estadistica, pero podem mesurar
    propietats basiques d'x (mitjana, desviacio standard).


 Time Series (series temporals)

 y = f(t)
 y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a
     quinzena de Gener)'
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
           11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals*
            11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals*
                                           h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
                                            h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)




*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
           11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals*
            11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals*
                                           h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
                                            h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)




*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
           11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals*
            11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals*
                                           h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
                                            h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)




*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)
           11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals*
            11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals*
                                           h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)
                                            h(t) = A(t)*sin(B(t)*t + C(t)) + D(t)




*(amb diferents valors per A(t), B(t), C(t), i D(t))
Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010)




         La Majoria de les actualitzacions recomenades
         es publiquen abans que surti la seguent
         distribucio (>70%)
Conclusions i feina futura

    •   Un model basat en time series es apropriat.
    •   La majoria d'actualitzacions recomenades es publiquen abans
        que surti la seguent distribucio.
    •   El numero d'actualitzacions de seguretat es mante
        aproximadament constant al llarg de la vida d'una actualitzacio.


    •   Feina futura:
        •   Proposar i estudiar model predictiu de les actualitzacions de
            diferents software appliances

        •   http://updateforecast.appspot.com
              → estadistiques, time series, i prediccions actualitzades
               automaticament.

        •   Estudiar models que tinguin en compte actualitzacions
            compartides i relacions entre diferents distros.

        •   Estudiar relacio entre bugs publicats a Bugzilla i
            actualitzacions.

More Related Content

More from Servei de Noves Tecnologies del Consell Comarcal de la Garrotxa

More from Servei de Noves Tecnologies del Consell Comarcal de la Garrotxa (15)

Microsoft Dynamics Nav 2009
Microsoft Dynamics Nav 2009Microsoft Dynamics Nav 2009
Microsoft Dynamics Nav 2009
 
Aplicacions pràctiques amb SO alternatius
Aplicacions pràctiques amb SO alternatiusAplicacions pràctiques amb SO alternatius
Aplicacions pràctiques amb SO alternatius
 
Xarxes Amb Linux
Xarxes Amb LinuxXarxes Amb Linux
Xarxes Amb Linux
 
Canon Digital
Canon DigitalCanon Digital
Canon Digital
 
Joomla Ecommerce
Joomla EcommerceJoomla Ecommerce
Joomla Ecommerce
 
Eines TIC
Eines TICEines TIC
Eines TIC
 
Posicionament web en els buscadors
Posicionament web en els buscadorsPosicionament web en els buscadors
Posicionament web en els buscadors
 
Liferay
LiferayLiferay
Liferay
 
Presencia a la Xarxa
Presencia a la XarxaPresencia a la Xarxa
Presencia a la Xarxa
 
La Web
La WebLa Web
La Web
 
Iglues Bulmages
Iglues BulmagesIglues Bulmages
Iglues Bulmages
 
Presentacio Joomla Volcanica Pime
Presentacio Joomla Volcanica PimePresentacio Joomla Volcanica Pime
Presentacio Joomla Volcanica Pime
 
Seleccionar
SeleccionarSeleccionar
Seleccionar
 
Planta't a Internet
Planta't a InternetPlanta't a Internet
Planta't a Internet
 
Treu el suc a Internet
Treu el suc a InternetTreu el suc a Internet
Treu el suc a Internet
 

Prediccio actualitzacions OpenSUSE

  • 1. Model de les Actualitzacions d'openSUSE Daniel Massaguer Jordi Massaguer
  • 2. Problema El cost de mantenir software appliances i distribucions Linux depèn de de les actualitzacions dels diferents components. Quan serà la següent actualització ? ?
  • 3. Dificultats Les actualitzacions depenen de factors no observables i que canvien al llarg del temps com ara: - Dedicació dels autors: - Temps complert - Temps parcial - Temps lliure - Experiència (software + area) - Metodologies i eines (e.g., junit, Metodologies àgils) - Nombre de programadors - Motivació La relació entre actualitzacions i altres factors observables es desconeguda: - Quan va ser la última actualització - Actualització d'altres components - Maduresa del projecte - Tipus d'actualització (e.g., de seguretat) - Lineas de Codi
  • 4. Dos Models 1.- Model de cues x : variable aleatòria = 'temps entre actualitzacions d'un component' Model Parametric: Process Poisson x es comporta com una distribucio estadistica (exponencial): x ~ exp(λ=1/x) Model no parametric x no es comporta com una distribucio estadistica, pero podem mesurar propietats basiques d'x (mitjana, desviacio standard). x~?
  • 5. Dos Models 1.- Model de cues x : variable aleatòria = 'temps entre actualitzacions d'un component' Model Parametric: Process Poisson x es comporta com una distribucio estadistica (exponencial): x ~ exp(λ=1/x) Model no parametric x no es comporta com una distribucio estadistica, pero podem mesurar propietats basiques d'x (mitjana, desviacio standard). x~? 2.- Time Series (series temporals) y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a quinzena de Gener)' *un exemple tipic de series temporals es el preu de les accions d'una companyia al llarg del temps
  • 6. Dos Models 1.- Model de cues x : variable aleatòria = 'temps entre actualitzacions d'un component' Model Parametric: Process Poisson x es comporta com una distribucio estadistica (exponencial): x ~ exp(λ=1/x) Model no parametric x no es comporta com una distribucio estadistica, pero podem mesurar propietats basiques d'x (mitjana, desviacio standard). x~? 2.- Time Series (series temporals) y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a quinzena de Gener)' Quin model es mes appropriat? Quin model es mes appropriat? → Estudi preliminar amb 1 any d'actualitzacions per 11.0 --i586 → Estudi preliminar amb 1 any d'actualitzacions per 11.0 i586
  • 7. Process Poisson xi ~ exp(λ=1/x) x = 'temps entre actualitzacions d'un component'* x ~ exp(λ=1/x)** → No és un procés Poisson Time between updates i586 - openSUSE 11.0 250 200 150 Frequency 100 50 0 0 28 56 84 112 140 168 196 224 252 280 308 336 364 392 time [days] (bins of 28 days) *assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%). **segons els tests d'Anderson-Darling, Kolmogoronov-Smirnov, i Chi-squared. ***segons els mateixos tests, x no es comporta com una distribucio normal o altres distribucions conegudes.
  • 8. Model No Parametric xi ~? x = 'temps entre actualitzacions d'un component'* x = 73,5 dies stdev(x) = 53,19 dies Time between updates i586 - openSUSE 11.0 250 200 150 Frequency 100 50 0 0 28 56 84 112 140 168 196 224 252 280 308 336 364 392 time [days] (bins of 28 days) *assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%).
  • 9. Model No Parametric x ~? x = 'temps entre actualitzacions d'un component'* x = 73,5 dies stdev(x) = 53,19 dies 75% : [21,4 dies , 4,6 mesos] → massa variabilitat! Time between updates i586 - openSUSE 11.0 250 200 150 Frequency 100 50 0 0 28 56 84 112 140 168 196 224 252 280 308 336 364 392 time [days] (bins of 28 days) *assumim que el “temps entre updates” de tots els components es comporten de forma similar. Només tenim en compte aquells components amb més d'una actualització (6.56%).
  • 10. Time Series Updates per quarter Frequency of updates per quarter i586 - openSUSE 11.0 i586 security updates - openSUSE 11.0 0.4 0.35 0.3 (Normalized) frequency 0.2 0.3 0.1 0.25 0 0.2 Winter (Jan-Mar) 0.15 Summer (July-Sep) 0.1 Academic quarter 0.05 0 Fall (Oct-Dec) Spring(Apr-June) Summer (July-Sep) Winter (Jan-Mar) Frequency of updates per quarter i586 recommended updates - openSUSE 11.0 Actualitzacions de 0.6 Seguretat : tot l'anya slight 0.5 increase in Winter and decrease 0.4 in Spring. 0.3 0.2 Actualitzacions Recomenades: La majoria al 0.1 principi 0 Fall (Oct-Dec) Spring(Apr-June) Summer (July-Sep) Winter (Jan-Mar)
  • 11. Time Series Nu m ber of up dat es per 1/2 a m ont h i586 secur it y u pd at es - open SUSE 1 1.0 120 100 h max 80 60 40 h min 20 0 May 15, 08 Jun 15, 08 Jul 15, 08 Aug 15, 08 Sep 15, 08 Oct 15, 08 Nov 15, 08 Dec 15, 08 Jan 31, 09 Feb 28, 09 Mar 31, 09 Apr 30, 09 May 31, 09 Jan 7, 09 Actualitzacions de Seguretat: h (t) = max(y) = 109 max h (t) = min (y) = 14 min h (t) = A(t)*sin(B(t)*t + C(t)) + D(t) sin Es poden aproximar amb una funcio sinusoidal !!!
  • 12. 20 40 60 80 0 May 15, 08 h May 31, 08 h Jun 15, 08 min Jun 30, 08 max Jul 15, 08 Jul 31, 08 Aug 15, 08 Aug 31, 08 Sep 15, 08 Time Series Sep 30, 08 Oct 15, 08 Oct 31, 08 Nov 15, 08 Nov 30, 08 Dec 15, 08 Dec 21, 08 Jan 7, 09 Jan 15, 09 Jan 31, 09 Feb 15, 09 Feb 28, 09 Mar 15, 09 Mar 31, 09 Nu m ber of up dat es per 1/2 a m ont h Apr 15, 09 i586 secur it y u pd at es - open SUSE 1 1.0 Apr 30, 09 May 15, 09 h h h May 31, 09 sin min Jun 20, 09 max (t) = min (y) = 0 (t) = max(y) = 74 funcio sinusoidal !!! Actualitzacions Recomenades : (t) = A(t)*sin(B(t)*t + C(t)) + D(t) Es poden aproximar amb una
  • 13. Dos Models Model de cues x : variable aleatòria = 'temps entre actualitzacions d'un component' Model Parametric: Process Poisson x es comporta com una distribucio estadistica (exponencial): x ~ exp(λ=1/x) Model no parametric x no es comporta com una distribucio estadistica, pero podem mesurar propietats basiques d'x (mitjana, desviacio standard). Time Series (series temporals) y = f(t) y = 'numero d'actualitzacions durant un interval de temps (e.g., 1a quinzena de Gener)'
  • 14. Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010) 11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals* 11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals* h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) *(amb diferents valors per A(t), B(t), C(t), i D(t))
  • 15. Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010) 11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals* 11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals* h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) *(amb diferents valors per A(t), B(t), C(t), i D(t))
  • 16. Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010) 11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals* 11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals* h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) *(amb diferents valors per A(t), B(t), C(t), i D(t))
  • 17. Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010) 11.0 i i11.1 , ,rec. i iseg i586, es poden modelar amb funcions sinusoidals* 11.0 11.1 rec. seg i586, es poden modelar amb funcions sinusoidals* h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) h(t) = A(t)*sin(B(t)*t + C(t)) + D(t) *(amb diferents valors per A(t), B(t), C(t), i D(t))
  • 18. Time Series: 11.0, 11.1, 11.2 (Jan 25, 2010) La Majoria de les actualitzacions recomenades es publiquen abans que surti la seguent distribucio (>70%)
  • 19. Conclusions i feina futura • Un model basat en time series es apropriat. • La majoria d'actualitzacions recomenades es publiquen abans que surti la seguent distribucio. • El numero d'actualitzacions de seguretat es mante aproximadament constant al llarg de la vida d'una actualitzacio. • Feina futura: • Proposar i estudiar model predictiu de les actualitzacions de diferents software appliances • http://updateforecast.appspot.com → estadistiques, time series, i prediccions actualitzades automaticament. • Estudiar models que tinguin en compte actualitzacions compartides i relacions entre diferents distros. • Estudiar relacio entre bugs publicats a Bugzilla i actualitzacions.