SlideShare a Scribd company logo
1 of 20
Download to read offline
QUOVADIS, MINISTERIUM?
David Ondřich,Aveco
MIKROSLUŽBY vs. …
1. komponentizace pomocí služeb
2. služba = vzdálená knihovna,
3. nezávislý deploy
4. business capability, functional teams
5. smart endpoints, dumb pipes
6. decentralised governance
7. decentralised data mgmt.
8. automatizovaná infrastruktura
9. odolnost vůči selhání
10. postupný návrh / vývoj
http://martinfowler.com/articles/microservices.html
1. služby
2. proces poskytuje ≥1 službu
3. program je vyměnitelný za běhu
4. procesy pro jednotlivé funkce
5. zprávy mezi procesy, fronty zpráv v procesech
6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl +
sh (server-side scripting), MPS (DSL), custom script (cfg)
7. import / export, MOS, vysílání, media-mgmt
8. testy + skripty pro deploy, start skripty
9. replikace, orbitální architektura
10. levá ruka neví, co dělá pravá
… vs.ASTRA
1. služby
2. proces poskytuje ≥1 službu
3. program je vyměnitelný za běhu
4. procesy pro jednotlivé funkce
5. zprávy mezi procesy, fronty zpráv v procesech
6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl +
sh (server-side scripting), MPS (DSL), custom script (cfg)
7. import / export, MOS, vysílání, media-mgmt
8. testy + skripty pro deploy, start skripty
9. replikace, orbitální architektura
10. levá ruka neví, co dělá pravá
… vs.ASTRA
1. služby
2. proces poskytuje ≥1 službu
3. program je vyměnitelný za běhu
4. procesy pro jednotlivé funkce
5. zprávy mezi procesy, fronty zpráv v procesech
6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl +
sh (server-side scripting), MPS (DSL), custom script (cfg)
7. import / export, MOS, vysílání, media-mgmt
8. testy + skripty pro deploy, start skripty
9. replikace, orbitální architektura
10. levá ruka neví, co dělá pravá
… vs.ASTRA
1. služby
2. proces poskytuje ≥1 službu
3. program je vyměnitelný za běhu
4. procesy pro jednotlivé funkce
5. zprávy mezi procesy, fronty zpráv v procesech
6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl +
sh (server-side scripting), MPS (DSL), custom script (cfg)
7. import / export, MOS, vysílání, media-mgmt
8. testy + skripty pro deploy, start skripty
9. replikace, orbitální architektura
10. levá ruka neví, co dělá pravá
… vs.ASTRA
[values/extrules]
AUDIO=$ON_SELECTION(7fff)!=M,AUDIOMODE,data_values/amode|$VALUE(7fff)!=:2:|
$FROM(7fff)!=AUDIO1|$FROM(7fff)!=AUDIO2¶
AUDIO1=$ON_SELECTION(1)!=S,AUDIOMODE,data_values/amode1¶
AUDIO2=$ON_SELECTION(1)!=S,AUDIOMODE,data_values/amode2¶
UMID=$DATETIME(1)![1,6]=YYMMDD|$VALUE(1)![7,1]=_|$ON_SELECTION(1)!
[8,5]=SRC__,CRIT1,data_values/crit1|$VALUE(1)![13,1]=_|$ON_SELECTION(1)!
[14,6]=SUBSRC,CRIT3,data_values/crit3|$VALUE(1)![20,1]=_|$DATETIME(1)!
[21,4]=hhmm|$VALUE(1)![25,1]=_|$UNIQUEID(1)![26,3]=named[1,25]¶
NAME=$VALUE(1)!=.Pre|$VALUE(2)!=.Middle|$VALUE(4)!=.Post|$VALUE(8)!
=.PostRec|$VALUE(10)!=.NewSelector|$VALUE(20)!=.SaveSelector|$VALUE(40)!
=.PHMiddle|$VALUE(80)!=.ReRecordPost|$VALUE(100)!=.ManualEdit|$VALUE(200)!
=.PreRecord|$VALUE(400)!=.IngestStarted|$VALUE(800)!=.IngestStopped?
$VALUE(8000)!=.NotGenerated¶
1. služby
2. proces poskytuje ≥1 službu
3. program je vyměnitelný za běhu
4. procesy pro jednotlivé funkce
5. zprávy mezi procesy, fronty zpráv v procesech
6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl +
sh (server-side scripting), MPS (DSL), custom script (cfg)
7. import / export, MOS, vysílání, media-mgmt
8. testy + skripty pro deploy, start skripty
9. replikace, orbitální architektura
10. levá ruka neví, co dělá pravá
… vs.ASTRA
VLASTNOSTI
• stovky procesů
• tři logovací frameworky, 2× GC
• middleware (remote)
• fail-over + škálovatelnost
• architektonická splácanina
• zpětná kompatibilita
ORGANIZAČNÍ OPATŘENÍ
• continuous integration + vyhodnocování buildů
• „černé puntíky“
• checklisty pro kontrolu kvality
• integrační testy
• QA oddělení
• lpění na zpětné kompatibilitě
ORGANIZAČNÍ OPATŘENÍ
• continuous integration + vyhodnocování buildů
• „černé puntíky“
• checklisty pro kontrolu kvality
• integrační testy
• QA oddělení
• lpění na zpětné kompatibilitě
category topic
basics
all English and meaningful binary name
all
all English and meaningful help for the text commands
all
all the program doesn't use the redirection of file descriptors
all
all
all correct ending by CTRL-C
all background process doesn't stop by CTRL-C
all correct handling of the SIGPIPE signal
all correct handling of other signals
all all related unit tests pass with turned on memtest
all English and meaningful names of configuration variables
all check of RT behavior: sent processes, used timers, etc.
all
all needless SVN branches are deleted
logging
all appropriate logging ID (distinguishable processes)
all appropriate default logging verbosity
all enabled logging into the logserv
all disabled logging into the console and files
all disabled (not compiled in) debug messages
all logged all basic states (i.e. no_comm, comm)
all logged start and stop of the process
all
all English logging messages
status reporting
all appropriate status ID (distinguishable processes)
all periodical live ticks
all reported all basic states (i.e. no_comm, comm)
all localized and meaningful status messages
all
English and meaningful help text for --help or use
all components (client manager, dynvar context, shared
timers etc.) participate in the help text
all chained text commands work (client manager, shared
timers, parent driver class, dynvar context etc.)
correct ending by the konec utility
all extra files (Lua, RNC etc.) are specified in the SMakefile
with the install directive if it's needed
logging of all incoming commands (binary, text) except too
often repeating ones
correct handling of severities (i.e. resolved disaster should
not clean not yet resolved error)
ORGANIZAČNÍ OPATŘENÍ
• continuous integration + vyhodnocování buildů
• „černé puntíky“
• checklisty pro kontrolu kvality
• integrační testy
• QA oddělení
• lpění na zpětné kompatibilitě
SLUŽBY
• ano, ale…
• duplicity (multi-) kódu
• chaotická architektura
• „levný“ fail-over + horizontální škálování
• snadné extendování (3rd middleware)
• závislosti mezi službami
• verzování API
JSOU NĚJAKÉ DOTAZY?!?
Dík za pozornost.
@dondrich, david.ondrich@aveco.com

More Related Content

Viewers also liked

Ελ Γκρεκο -Γυμνάσιο Καπνοχωρίου
Ελ Γκρεκο -Γυμνάσιο  ΚαπνοχωρίουΕλ Γκρεκο -Γυμνάσιο  Καπνοχωρίου
Ελ Γκρεκο -Γυμνάσιο Καπνοχωρίουifh
 
Δομήνικος,Παναγοπούλου- Τσιριγώτη
Δομήνικος,Παναγοπούλου- ΤσιριγώτηΔομήνικος,Παναγοπούλου- Τσιριγώτη
Δομήνικος,Παναγοπούλου- ΤσιριγώτηIliana Kouvatsou
 
διδακτικο σεναριο για τον El greco
διδακτικο σεναριο για τον El grecoδιδακτικο σεναριο για τον El greco
διδακτικο σεναριο για τον El grecosomakris
 
Unesco ομαδα α
Unesco ομαδα αUnesco ομαδα α
Unesco ομαδα αgelarchanwn
 
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑ
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑ
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑOlympia Tripolitsiotou
 
Δομήνικος Θεοτοκόπουλος Ελ Γκρέκο
Δομήνικος Θεοτοκόπουλος   Ελ ΓκρέκοΔομήνικος Θεοτοκόπουλος   Ελ Γκρέκο
Δομήνικος Θεοτοκόπουλος Ελ Γκρέκοadam dim
 
ισπανια 2ο γυμνασιο κορινθου
ισπανια  2ο γυμνασιο κορινθουισπανια  2ο γυμνασιο κορινθου
ισπανια 2ο γυμνασιο κορινθουElena Gelasi
 
κόροιβος
κόροιβοςκόροιβος
κόροιβος2gymkor
 
Πρωτεινες
ΠρωτεινεςΠρωτεινες
Πρωτεινεςifh
 
Βάγια Παπαδοπούλου Θεοτοκόπουλος
Βάγια Παπαδοπούλου ΘεοτοκόπουλοςΒάγια Παπαδοπούλου Θεοτοκόπουλος
Βάγια Παπαδοπούλου ΘεοτοκόπουλοςIlias Koulalis
 

Viewers also liked (13)

Ελ Γκρεκο -Γυμνάσιο Καπνοχωρίου
Ελ Γκρεκο -Γυμνάσιο  ΚαπνοχωρίουΕλ Γκρεκο -Γυμνάσιο  Καπνοχωρίου
Ελ Γκρεκο -Γυμνάσιο Καπνοχωρίου
 
Δομήνικος,Παναγοπούλου- Τσιριγώτη
Δομήνικος,Παναγοπούλου- ΤσιριγώτηΔομήνικος,Παναγοπούλου- Τσιριγώτη
Δομήνικος,Παναγοπούλου- Τσιριγώτη
 
ομαδα γ
ομαδα γομαδα γ
ομαδα γ
 
διδακτικο σεναριο για τον El greco
διδακτικο σεναριο για τον El grecoδιδακτικο σεναριο για τον El greco
διδακτικο σεναριο για τον El greco
 
El Greco
El GrecoEl Greco
El Greco
 
Unesco ομαδα α
Unesco ομαδα αUnesco ομαδα α
Unesco ομαδα α
 
ραφαηλίδου 3 2010
ραφαηλίδου 3 2010ραφαηλίδου 3 2010
ραφαηλίδου 3 2010
 
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑ
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑ
ΔΟΜΗΝΙΚΟΣ ΘΕΟΤΟΚΟΠΟΥΛΟΣ:ΑΠΟ ΤΗΝ ΚΡΗΤΗ ΣΤΗΝ ΙΣΠΑΝΙΑ
 
Δομήνικος Θεοτοκόπουλος Ελ Γκρέκο
Δομήνικος Θεοτοκόπουλος   Ελ ΓκρέκοΔομήνικος Θεοτοκόπουλος   Ελ Γκρέκο
Δομήνικος Θεοτοκόπουλος Ελ Γκρέκο
 
ισπανια 2ο γυμνασιο κορινθου
ισπανια  2ο γυμνασιο κορινθουισπανια  2ο γυμνασιο κορινθου
ισπανια 2ο γυμνασιο κορινθου
 
κόροιβος
κόροιβοςκόροιβος
κόροιβος
 
Πρωτεινες
ΠρωτεινεςΠρωτεινες
Πρωτεινες
 
Βάγια Παπαδοπούλου Θεοτοκόπουλος
Βάγια Παπαδοπούλου ΘεοτοκόπουλοςΒάγια Παπαδοπούλου Θεοτοκόπουλος
Βάγια Παπαδοπούλου Θεοτοκόπουλος
 

Similar to jOpenSpace.cz 2015: Quo vadis, ministerium?

Slovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceSlovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceMartin Cerveny
 
Slasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileSlasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileRENESTEIN
 
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...LTP-portal-cz
 
Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Martin Cerveny
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Martin Cerveny
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware HoudinyCESNET
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Bezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETBezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETCESNET
 
Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Tomáš Kypta
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisMartin Cerveny
 
Android - vývoj, distribuce a propagace
Android - vývoj, distribuce a propagaceAndroid - vývoj, distribuce a propagace
Android - vývoj, distribuce a propagaceAvast Software
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)almadcz
 
Ivan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan K
 
Teorie testy2
Teorie testy2Teorie testy2
Teorie testy2dejfbart
 
Arduino naplno (Arduino Day 2015)
Arduino naplno (Arduino Day 2015)Arduino naplno (Arduino Day 2015)
Arduino naplno (Arduino Day 2015)Adam Hořčica
 
Brožura Síťové technologie/ Murrelektronik
Brožura Síťové technologie/ MurrelektronikBrožura Síťové technologie/ Murrelektronik
Brožura Síťové technologie/ MurrelektronikIvana Vrzáková
 
Webová API a Node.js
Webová API a Node.jsWebová API a Node.js
Webová API a Node.jsDevelcz
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemMartin Cerveny
 

Similar to jOpenSpace.cz 2015: Quo vadis, ministerium? (20)

Slovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceSlovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTrace
 
Slasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileSlasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows Mobile
 
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
 
Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware Houdiny
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Bezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETBezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNET
 
2 prz
 2 prz 2 prz
2 prz
 
Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013Programování pro Android - úvod, FI MUNI, 2013
Programování pro Android - úvod, FI MUNI, 2013
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
 
Android - vývoj, distribuce a propagace
Android - vývoj, distribuce a propagaceAndroid - vývoj, distribuce a propagace
Android - vývoj, distribuce a propagace
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)
 
Ivan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmy
 
Teorie testy2
Teorie testy2Teorie testy2
Teorie testy2
 
Arduino naplno (Arduino Day 2015)
Arduino naplno (Arduino Day 2015)Arduino naplno (Arduino Day 2015)
Arduino naplno (Arduino Day 2015)
 
Brožura Síťové technologie/ Murrelektronik
Brožura Síťové technologie/ MurrelektronikBrožura Síťové technologie/ Murrelektronik
Brožura Síťové technologie/ Murrelektronik
 
Webová API a Node.js
Webová API a Node.jsWebová API a Node.js
Webová API a Node.js
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise System
 

jOpenSpace.cz 2015: Quo vadis, ministerium?

  • 2. MIKROSLUŽBY vs. … 1. komponentizace pomocí služeb 2. služba = vzdálená knihovna, 3. nezávislý deploy 4. business capability, functional teams 5. smart endpoints, dumb pipes 6. decentralised governance 7. decentralised data mgmt. 8. automatizovaná infrastruktura 9. odolnost vůči selhání 10. postupný návrh / vývoj http://martinfowler.com/articles/microservices.html
  • 3. 1. služby 2. proces poskytuje ≥1 službu 3. program je vyměnitelný za běhu 4. procesy pro jednotlivé funkce 5. zprávy mezi procesy, fronty zpráv v procesech 6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl + sh (server-side scripting), MPS (DSL), custom script (cfg) 7. import / export, MOS, vysílání, media-mgmt 8. testy + skripty pro deploy, start skripty 9. replikace, orbitální architektura 10. levá ruka neví, co dělá pravá … vs.ASTRA
  • 4.
  • 5. 1. služby 2. proces poskytuje ≥1 službu 3. program je vyměnitelný za běhu 4. procesy pro jednotlivé funkce 5. zprávy mezi procesy, fronty zpráv v procesech 6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl + sh (server-side scripting), MPS (DSL), custom script (cfg) 7. import / export, MOS, vysílání, media-mgmt 8. testy + skripty pro deploy, start skripty 9. replikace, orbitální architektura 10. levá ruka neví, co dělá pravá … vs.ASTRA
  • 6.
  • 7. 1. služby 2. proces poskytuje ≥1 službu 3. program je vyměnitelný za běhu 4. procesy pro jednotlivé funkce 5. zprávy mezi procesy, fronty zpráv v procesech 6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl + sh (server-side scripting), MPS (DSL), custom script (cfg) 7. import / export, MOS, vysílání, media-mgmt 8. testy + skripty pro deploy, start skripty 9. replikace, orbitální architektura 10. levá ruka neví, co dělá pravá … vs.ASTRA
  • 8.
  • 9.
  • 10. 1. služby 2. proces poskytuje ≥1 službu 3. program je vyměnitelný za běhu 4. procesy pro jednotlivé funkce 5. zprávy mezi procesy, fronty zpráv v procesech 6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl + sh (server-side scripting), MPS (DSL), custom script (cfg) 7. import / export, MOS, vysílání, media-mgmt 8. testy + skripty pro deploy, start skripty 9. replikace, orbitální architektura 10. levá ruka neví, co dělá pravá … vs.ASTRA
  • 11. [values/extrules] AUDIO=$ON_SELECTION(7fff)!=M,AUDIOMODE,data_values/amode|$VALUE(7fff)!=:2:| $FROM(7fff)!=AUDIO1|$FROM(7fff)!=AUDIO2¶ AUDIO1=$ON_SELECTION(1)!=S,AUDIOMODE,data_values/amode1¶ AUDIO2=$ON_SELECTION(1)!=S,AUDIOMODE,data_values/amode2¶ UMID=$DATETIME(1)![1,6]=YYMMDD|$VALUE(1)![7,1]=_|$ON_SELECTION(1)! [8,5]=SRC__,CRIT1,data_values/crit1|$VALUE(1)![13,1]=_|$ON_SELECTION(1)! [14,6]=SUBSRC,CRIT3,data_values/crit3|$VALUE(1)![20,1]=_|$DATETIME(1)! [21,4]=hhmm|$VALUE(1)![25,1]=_|$UNIQUEID(1)![26,3]=named[1,25]¶ NAME=$VALUE(1)!=.Pre|$VALUE(2)!=.Middle|$VALUE(4)!=.Post|$VALUE(8)! =.PostRec|$VALUE(10)!=.NewSelector|$VALUE(20)!=.SaveSelector|$VALUE(40)! =.PHMiddle|$VALUE(80)!=.ReRecordPost|$VALUE(100)!=.ManualEdit|$VALUE(200)! =.PreRecord|$VALUE(400)!=.IngestStarted|$VALUE(800)!=.IngestStopped? $VALUE(8000)!=.NotGenerated¶
  • 12. 1. služby 2. proces poskytuje ≥1 službu 3. program je vyměnitelný za běhu 4. procesy pro jednotlivé funkce 5. zprávy mezi procesy, fronty zpráv v procesech 6. Astra = Java + Groovy (GUI), C++ / C / asm (core), Lua + Perl + sh (server-side scripting), MPS (DSL), custom script (cfg) 7. import / export, MOS, vysílání, media-mgmt 8. testy + skripty pro deploy, start skripty 9. replikace, orbitální architektura 10. levá ruka neví, co dělá pravá … vs.ASTRA
  • 13. VLASTNOSTI • stovky procesů • tři logovací frameworky, 2× GC • middleware (remote) • fail-over + škálovatelnost • architektonická splácanina • zpětná kompatibilita
  • 14. ORGANIZAČNÍ OPATŘENÍ • continuous integration + vyhodnocování buildů • „černé puntíky“ • checklisty pro kontrolu kvality • integrační testy • QA oddělení • lpění na zpětné kompatibilitě
  • 15.
  • 16. ORGANIZAČNÍ OPATŘENÍ • continuous integration + vyhodnocování buildů • „černé puntíky“ • checklisty pro kontrolu kvality • integrační testy • QA oddělení • lpění na zpětné kompatibilitě
  • 17. category topic basics all English and meaningful binary name all all English and meaningful help for the text commands all all the program doesn't use the redirection of file descriptors all all all correct ending by CTRL-C all background process doesn't stop by CTRL-C all correct handling of the SIGPIPE signal all correct handling of other signals all all related unit tests pass with turned on memtest all English and meaningful names of configuration variables all check of RT behavior: sent processes, used timers, etc. all all needless SVN branches are deleted logging all appropriate logging ID (distinguishable processes) all appropriate default logging verbosity all enabled logging into the logserv all disabled logging into the console and files all disabled (not compiled in) debug messages all logged all basic states (i.e. no_comm, comm) all logged start and stop of the process all all English logging messages status reporting all appropriate status ID (distinguishable processes) all periodical live ticks all reported all basic states (i.e. no_comm, comm) all localized and meaningful status messages all English and meaningful help text for --help or use all components (client manager, dynvar context, shared timers etc.) participate in the help text all chained text commands work (client manager, shared timers, parent driver class, dynvar context etc.) correct ending by the konec utility all extra files (Lua, RNC etc.) are specified in the SMakefile with the install directive if it's needed logging of all incoming commands (binary, text) except too often repeating ones correct handling of severities (i.e. resolved disaster should not clean not yet resolved error)
  • 18. ORGANIZAČNÍ OPATŘENÍ • continuous integration + vyhodnocování buildů • „černé puntíky“ • checklisty pro kontrolu kvality • integrační testy • QA oddělení • lpění na zpětné kompatibilitě
  • 19. SLUŽBY • ano, ale… • duplicity (multi-) kódu • chaotická architektura • „levný“ fail-over + horizontální škálování • snadné extendování (3rd middleware) • závislosti mezi službami • verzování API
  • 20. JSOU NĚJAKÉ DOTAZY?!? Dík za pozornost. @dondrich, david.ondrich@aveco.com