1 / 17

MIHA VALEN ČIČ

Kako z velikimi?. MIHA VALEN ČIČ. Deklica za vse – šišam, brijam, zube vadim Miha Valenčič s.p. Pričakovanja. Ni demonstracijsko predavanje Ni VisualStudia verzija Veliknajst Pogovarjajmo se. Direktni marketing. Sem eden izmed vas, developer, arhitekt, zapisnikar, itd.

joel-garner
Télécharger la présentation

MIHA VALEN ČIČ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kako z velikimi? MIHA VALENČIČ Deklica za vse – šišam, brijam, zube vadim Miha Valenčič s.p.

  2. Pričakovanja • Ni demonstracijsko predavanje • Ni VisualStudia verzija Veliknajst • Pogovarjajmo se

  3. Direktni marketing • Sem eden izmed vas, developer, arhitekt, zapisnikar, itd. • Z razvojem in načrtovanjem inf. sistemov se ukvarjam že preko 15 let • Sem multidisciplinaren • Imel sem srečo, da sem se ukvarjal z raznolikimi sistemi, ki so mi dali veliko misliti in nudili veliko izzivov

  4. Kdo so “veliki”? • Morda bolje rečeno kompleksni? • Veliko število uporabnikov (predvsem sočasnih) • Zahteve po visoki razpoložljivosti • Zahteve po visoki zanesljivosti • Zahteve po določenih performancah (SLA) • Vpeti v n različnih sistemov (n > 3)

  5. Krog zaupanjaAli zaupamo razvojnikom? • Zaupamo sebi? • Zaupamo kolegom? • Kvaliteta glede na velikost razvojne ekipe • Kvaliteta glede na motivacijo razvojne ekipe • Kvaliteta glede na testno (QA) ekipo

  6. Heterogenost • Zahtevna okolja so običajno kompleksna in heterogena • V “enteprise” segmentu najdemo veliko *NIX sistemov, SOA, J2EE • Pomembna je interoperabilnost • WS-* • HTTP + POX • REST v praksi skorajda ni prisoten, čeprav je zanimiva alternativa • Anti-corruption layer

  7. Metrike in performance • Metrike na strežniku • Metrike na odjemalcu (fat client, browser) • Kje je “baseline”? Testiranje glede na baseline • Cold start, warm start • Server configuration • Web/Application server parametri • TCP/IP & ostali sistemski parametri • HW parametri (strežnika in prenosne opreme) • Meritve naj bodo čim bolj znanstvene

  8. Metrike in performanceWeb aplikacije • Merjenje ASP.NET • ASP.NET tuning (odvisno od verzije .NET ogrodja) • Default nastavitve so tako-tako – relativno slabe • Trivia: Če traja en request (zahteva po izvajanju neke funkcionalnosti) pri meritvi 1 sekundo, koliko časa traja, da poservisiramo 200 odjemalcev, ki sočasno želijo izvesti operacijo? • Odgovor: odvisno • kolikosočasnihnitipodpirastrežnik • ali se namdogaja contention ali ne • je našaaplikacije high-througputali high-latency ponaravi?

  9. Razvojni principiInfrastruktura • Source control – brez izgovorov! • Continous integration servers • Build • Testing • Issue/Bug tracking

  10. Razvojni principiDevelopment • DI/IoC containers • Plugins • SOLID • Coding style (IDesign naprimer)

  11. Odgovor: odvisno. Verjetno je drugametodaboljša. 10ms je sicerpremalo, vendarlahko problem analiziramo in mordauvedemo caching transformacij, kjerdejanskozmanjšamočasovnopotratonanekajmilisekund in dejanskoprehitimotudiprvometodo, ostanenam le inicializacija. Inicializacijolahko (morda??) zaobidemo s t.i. warmupstrategijami. • Ali je pomembnarazlikačeenametodaporabirecimo 5ms, drugametoda pa 90ms, pri tem da je: • drugametodaprecejboljfleksibilna in uporabnikuprijazna • lažjazaimplementacijo • boljrobustna • imamovisokezahtevepoperformancah, ki v povprečjunaj ne bi presegale 100ms. Razvojni principiDevelopment • Optimizacija: “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” • Primer: templating funkcionalnost

  12. Razvojni principiPakiranje aplikacij • Package dependency • Coupling • Cohesion • Shipping/Release dependency

  13. Razvojni principiBackwards compatibility • Pogosto je to zahteva • Vsaj 1 “major” verzijo • Assembly binding redirecti • Metode lahko le dodajamo, ne smemo jih odvzemati

  14. Deployment • HW vs virtualizacija • Slovenija ima majhne zahteve • Virtualizacija pomaga pri: • Poceni redundančnih rešitvah • Poceni in enostavnemu testiranju distribuiranih namestitev • Poceni simulaciji preobremenitve (enostavno lahko omejimo RAM in CPU ki je na voljo) • Hiteremu odzivu v primeru izpadov

  15. Nepogrešljiva orodjaDon’t live home without them • Možgan • SQL Profiler • Performance Viewer • Log Parser • Load generator (ACTest, grinder, custom...) • tcpdump/windump, Wireshark • debugging proxy • Firebug (Firefox), IE8 Dev tools

  16. Hvala! • Moj kontakt: miha.valencic@gmail.com

More Related