SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Versiooniuuenduse
automatiseerimine kasutades
skriptimiskeelt Bash
Irina Ivanova
Bakalaureusetöö (6 EAP)
Juhendajad: Helle Hein, dotsent
Polina Morozova, MSc (Nortal AS)
Tartu Ülikool, 2016
Probleem
• ~20 moodulit
• 3 klienti: toode, test–, demorakendus
• 7 klienti: toode, testrakendus
• 7 projekti testrakendust
2/9
3×3 + 7×2 + 7 = 30 rakendust
30×20 = 600 uuendust
Manuaalne uuendus
• Uue war-faili allalaadimine
• Uue faili paigaldamine
• Vana faili eemaldamine
• Uue versiooni staatuse kontrollimine
• Kolleegide teavitamine
3/9
Nõuded lahendusele
• Kiire arendusprotsess
• Kiire ja mugav uuendamisprotsess
• Töötamine erinevatel veebiserveritel
• Hallatav lahendus
• Mitte kallis
4/9
Võimalikud lahendused
• Atlassian Bamboo
• Chef
• Jenkins
• Ansible Tower
• Kirjutada enda rakendus
5/9
Bash skripti kasutus
./update-version.sh	admin	1.1.1.1	irina	[p]
Ühe mooduli uuendamine:
Mitme moodulite uuendamine:
./batch-update.sh	irina	[p]
6/9
Demo
7/9
Mõju projektile
Moodul
Automatiseeritud
uuendus
Käsitsi
uuendus
Uuendusi 2015.
aastal
Säästetud aeg
2015. aastal
admin 27s 80s 67 tk 1t
treatment 61s 112s 240 tk 3t 44m
reception 38s 100s 197 tk 3t 39m
kõik (18 tk) 552s 1048s – –
8/9
Tulemused
• Versiooniuuendus projektis on
automatiseeritud
• Skripti paigaldamine ja kasutamine
on dokumenteeritud
• Skripti lähtekood ja dokumendatsioon
on avalik
9/9

Mais conteúdo relacionado

Destaque

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Destaque (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Versiooniuuenduse automatiseerimine kasutades skriptimiskeelt Bash

Notas do Editor

  1. Lugupeetud kuulajad Minu bakalaureusetöö on versiooniuuendamise protsessi automatiseerimisest kasutades Bash keelt. Töös on lahendatud rakenduslik probleem, mis esines projektis, kus ma praegu töötan. Probleem seisnes selles, et kuna projekti rakendus on modulaarne ja seda kasutavad mitu klienti, siis rakenduse manuaalne versiooniuuendamine võtis palju aega. Antud konktekstis versiooniuuendamine tähendab protsessi, mille korral veebiserverisse paigaldatakse mooduli uuem versioon, et rakendada selles olemasolevaid koodiparandusi. Töö teoreetilise osa eesmärk oli leida võimalikud lahendused sellele probleemile ja valida neist parim. Töö praktilise osa eesmärk oli rakendada valitud lahendust projektis. Kuna vaadeldavas projektis versiooniuuendamistega tegelevad testijad ja mina ise töötan seal testijana, siis mul oli tugev motivatsioon leida head lahendust, mida mina ise saaks kasutada iga päev.
  2. Projekti rakendus on kirjutatud Javas ja koosneb keskmiselt kahekümnest war-failist (täpne arv sõltub kliendist). Projektil on olemas kokku 10 klienti, kolmel nendest on 3 rakendust: toode, test ja demo; seitsmel on 2 rakendust; lisaks on olemas 7 projekti oma testrakendust. Kokku see teeb 30 rakendust, mida on vaja regulaarselt uuendada. See tähendab, et selleks, et paigaldada kõik 20 moodulit kõikidele keskkondadele on vaja teostada umbes 600 uuendust.
  3. Manuaalne uuendamine koosneb viiest põhisammust: uue war-faili allalaadimine serverisse selle paigaldamine veebiserverisse vana war-faili eemaldamine veebiserverist uue versiooni staatuse kontrollimine kolleegide teavitamine, et mingi versioon on uuendatud mingis rakenduses Kui on vaja uuendada kõik 20 moodulit, siis on vaja teha kõik need sammud iga mooduli kohta.
  4. Enne versiooniuuendamise protsessi automatiseerimist olid koostatud nõuded, milledele lahendus peab vastama. Kõige olulisem nõue oli kiire arendusprotsess, kuna projektis puudusid inimressurssid, et pühendada selleks palju aega. Lisaks olulised nõuded olid, et protsess peab olema kiirem ja mugavam võrreldes käsitsi uuendamisega; see peab töötama erinevatel veebiserveritel, nagu Oracle WebLogic ja Apache Tomcat; see peab olema hallatav, et selle seadistamine ja parandamine oleks projekti kontrolli all; ja see peab olema võimalikult odav (peale inimresurssi kasutamist).
  5. Vastavalt nõuetele olid valitud ja uuritud võimalikud lahendused. Kokku vaatasin 4 valmistoode lahendust - Atlassian Bamboo, Chef, Jenkins ja Ansible Tower; ja lisaks võimalust kirjutada oma enda rakendust või skripti. Kõikide valmistoodete puudused on selles, et suurem osa nendest maksavad väga palju; suuremat osa ei ole võimalik hallata kuna nende lähtekood ei ole avalik; ja nende tundmaõppimine ja seadistamine võtab palju aega. Enda rakenduse kirjutamisel on olemas aga olulised eelised, näiteks lahendus on väga paindlik - ma võin realiseerida ainult seda funktsionaalsust, mis on vaja meie projekti jaoks; see on tasuta ja selle arendamine toimub osade kaupa, mis tähendab, et inimresurssi investeerimine toimub ka osade kaupa. Võrreldes kõikide lahenduste eelised ja puudused oli valitud viimane nendest - enda rakenduse kirjutamine. Ja oli valitud just Bash skript selle pärast, et lahendus peab töötama kõikides operatsioonisüsteemides sama moodi ja see peab suhtlema teiste veebiteenustega, mille jaoks kõige paremini sobivad skriptimiskeeled.
  6. Skript automatiseerib kõik tegevused, mida varem kasutajad pidid tegema manuaalselt. See koosneb mitmest failist, mida on vaja alla laadida serverile, kus asub veebiserver uuendatava rakendusega ja täiendada konfiguratsiooni faili vastavalt antud serveri parameetritele (seda on vaja teha ainult üks kord). Selleks, et nüüd uuendada rakendust, kasutaja peab käivitama Bash skriptifaili vastavate parameetritega. Ja kuna süsteem on modulaarne, see tähendab, et on võimalik uuendada üht või mitu moodulit korraga. Selleks on olemas 2 erinevat faili erinevate sisendparameetritega. Ühe mooduli uuendamiseks on vaja sisestada mooduli nimetust, versiooni numbrit, mida soovitakse paigaldada, kasutajanime ja tunnust, kas uuendus peab olema paralleelne või mitte. Mitme moodulite uuendamiseks on vaja sisestada kasutajanime ja paralleelsuse tunnust ja kõike mooduleid ja versioone loetakse sisse eraldi failist.
  7. Siin on näide ühe eduka uuendamisprotsessi kohta. Kasutaja logib sisse serverisse. Käivitab skriptifaili vastavate sisendparameetritega. Skript küsib parooli autentimise jaoks ja näitab kõik sammud, mida see teeb. Teated on värvilised ehk saab väga kiiresti näha viga tekkimist, aga tegelikult kasutaja ei pea jälgima skripti tööd, võib samal ajal tegeleda teiste asjadega, kui skript lõpetab tööd, siis see annab sellest teada terminalile, kus see oli käivitatud, ja kasutaja saab sellest teavitust.
  8. Skript vastab kõikidele nõuetele, mis olid püstitatud töö alguses. Ja üks nõue, mida on võimalik mõõta on uuendamise protsessi kiirus. Mõõtmiseks oli valitud üks rakendus, kus ma mõõtsin kolme mooduli ja kõike mooduli uuendamist. Kõik moodulid olid uuendatud käsitsi ja automatiseeritud protsessiga ning tulemused on toodud tabelis. Nagu on näha - automatiseeritud uuendus on umbes kaks korda kiirem, mille abil oli säästetud mitu tundi aastas. Lisaks oli küsitud tagasiside kolleegide käest, kes kasutavad antud skripti omas töös. Kõige populaarsem arvamus on see, et skript on mugav ja kiire.
  9. Töö tulemuseks on automatiseeritud lahendus, mis juba edukalt töötab projektis ja mida kasutavad mitu inimest iga päev. On olemas dokumentatsioon, mille järgi iga kolleeg saab kasutada skripti enda virutaal või lokaalmasinas. Skripti lähtekood ja dokumentatsioon on avalikud ja asuvad GitHub ja GitBook repositooriumites, mis tähendab, et igaüks, kellel on olemas sarnane projekt, võib kasutada antud skripti ja täiendada seda enda funktsionaalsusega. Kokkuvõtteks võib öelda, et bakalaureusetöö püstitatud eesmärgid on täidetud, mida kinnitavad nii meeskonnaliikmete tagaside kuid ka käsitsi ja automatiseeritud protsessi kiiruse võrdlemine. Tänan kuulamast.