SlideShare a Scribd company logo
1 of 39
Delivery automation roadmap /
Ceļš uz automatizētām piegādēm
Jānis Baiža
@jbaiza
Oracle pieredze > 10
gadi.
Oracle, .NET, Ruby,
Java
1 – 20+ cilvēki
projektā
Dažādas piegāžu
automatizācijas
pakāpes
Dibināta: 04.06.2014
apvienojoties SIA Special
Solutions, SIA eBIT unSIA Open
ID
Darbinieki: ~100
Tehnoloģijas: Oracle
PL/SQL, Java, Ruby,
Microsoft .NET, ĢIS
Jautājumi par automatizāciju
Vai izmanto automatizāciju?
Kādus rīkus izmanto (Jenkins/Bamboo/cits)
Vai esi pārliecināts par to, ka piegādes
sagatavošana/uzstādīšana ies pēc plāna?
– Ļoti pārliecināts
– 50/50
– Neesmu pārliecināts
Rīki
JENKINS
https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
Vienkārša instalācija
java -jar jenkins.war.
Viegla konfigurēšana
Visa konfigurācija no UI ar paskaidrojumiem,
nav nepieciešama XML labošana vai kas cits
tamlīdzīgs.
Izmaiņu kopas
Jenkins var ģenerēt izmaiņu sarakstus no
Subversion/CVS.
Rezultātu paziņošana
Būvējumu rezultāti RSS/E-pastā vai reālā laika
paziņojumi.
Build Notifiers – vairāk kā 50 spraudņi
– Skype
– Google calendar
– IRC
– Sladiator
JUnit/TestNG testu atskaites
Testu atskaites var tikt analizētas un vizuāli
attēlotas ar vēsturisko informāciju.
Sadalītie būvējumi
Jenkins var sadalīt būvējumu veikšanas/testu
slodzi starp vairākiem datoriem un dažādiem
OS.
Spraudņu atbalsts
Jenkins funkcionalitāte var tikt paplašināta ar
trešo pušu spraudņiem (vairāk par 900
dažādiem)
Java/Ant/Maven versijas
Iespējams definēt fiksētas
produktu versijas un projektā
izmantot nepieciešamo
versiju
Izmaiņu piegādes process
Izstrāde Vienībtesti Testēšana
Piegādes pakas
sagatavošana
Piegādes
uzstādīšana
PiegādePiegāde
IZMAIŅU IZSTRĀDE
Izmaiņu izstrāde – manuāli
Rakstīt pārbaudes vai tabula izveidota/kolonna
pievienota u.t.t.
Manuāla formu un citu objektu nogāde uz
aplikāciju serveri.
Izmaiņu izstrāde/sagatavošana
commit-am - automatizēšana
Atkārtoti darbināmi skripti:
– Pārbaude par iespēju veikt darbību
– Skriptu reģistrs, lai nemēģina izpildīt otru reizi
Gatavi paraugi dažādām darbībām (CREATE
TABLE/ALTER TABLE/CREATE INDEX, u.t.t.)
Automatizācijas iespējas:
– Konvertācija no ruby migrācijām
– DB struktūras salīdzināšana ar VCS
– Formu un citu objektu nogāde uz aplikāciju
serveri – lokāli darbināms “piegādes savākšanas”
skripts
Commit testa DB / Vienībtestu
automātiska darbināšana
Pēc commit automātiska DB izmaiņu uzlikšana
testa DB
– Pārbauda vai skripti darbosies
– Sagatavo vidi vienībtestiem
Vienībtestu automātiska darbināšana
IZMAIŅU NOGĀDĀŠANA
TESTĒŠANAI
Izmaiņu nogādāšana
testēšanai - manuāli
Izmainīto failu savākšana ar rokām, piemēram,
pēc SVN log.
Izmainīto aplikāciju servera failu kopēšana uz
serveri.
DB piegādes uzstādīšanas kopējais SQL skripts.
Pieteikumu statusu maiņa (bulk edit)
Izmaiņu
savākšana/sagatavošana
Java/.NET – Maven, Ant, MSBuild
Oracle Forms/Reports, DB (ja nepiegādā ar app
migrācijām) – savāc izmaiņas no repozitorija
– Instalācijas secība
• Stingri definēta starp dažāda veida objektiem (Tabulas ->
Indeksi -> Skati -> … -> Procedūras -> … -> Dati -> … ->
Oracle Forms -> …
• Commit secībā
• Objekta ietvaros alfabētiski
Izmaiņu uzstādīšana
Java – uzkopē war/ear/jar
.NET – web deploy/copy
Ruby – Capistrano
Oracle Forms/Reports, DB (ja nepiegādā ar app
migrācijām)
– “master” skripts, kurā definētas darbības
dažāda veida objektu uzstādīšanai
– ģenerēts skripts ar visām uzstādāmajām
izmaiņām.
Savākšanas/Uzstādīšanas
automatizēšana
Maven, Ant, MSBuild – Jenkins iebūvēts/plug-in
Shell/Powershell skriptu darbināšana no Jenkins
Integrācija ar Jira - Jira Issue Updater Plugin
PIEGĀDES PAKAS
SAGATAVOŠANA
Piegādes pakas
sagatavošana
Piegādes failu savākšana
Arhīva izveidošana
Arhīva kopēšana uz serveri
Piegādes dokumentācijas “dzejošana”
Izmaiņas pieteikumu sistēmā
(statusi/versijas/komentāri)
Nogādāšana līdz klientam
SFTP
Repozitorijs commit -> push -> instalē pēc tag
Direct build (ja ir piekļuve klienta vidēm)
Caur e-pastu, caur JIRA
Slikti: Repozitorijā iekommitots sakompilēts
binārais fails
Slikti: Klients pats build-o – var nesakrist
darbstacijas konfigurācijas, pastāv iespēja, ka
pielabos kodu.
Pakas informācija
Informācija par piegādi
– Ar roku rakstīts -> E-pasts no template ->
Automātiski aizpildīts template ->
Nosūtīts/pārsūtīts gatavais e-pasts
Statusu maiņa/komentāri pie pieteikuma
Piegādes dokumentācija
– Eksports no pieteikumu sistēmas
– Ģenerēts
• Caur JIRA API
• Markdown (teksts -> PDF)
Pakas uzstādīšana
Maksimāli automatizēts, bet ar monitorēšanas
un reaģēšanas iespēju.
– NOATTEND_INSTALL, NOATTEND_LEVEL
• There was a warning during installation. Press
enter to continue
• There was an error during installation. Do you wish
to continue [y|n]
Rollback uz iepriekšējo versiju
Atgriezeniskā saite par versijas uzlikšanu
– Master -> Test -> Prod
“ONE CLICK” AUTOMATIZĀCIJA
Jenkins / Build pipeline
Jenkins / Build pipeline (2)
KOPSAVILKUMS
Manuāli
Neliels izmaiņu apjoms
Nē!
Automatizēšana - Legacy
projekti
Necenties automatizēt bardaku – var būt ilgi un
neoptimāli.
Jāmaina domāšana pašiem/klientam.
Automatizēšana ir laikietilpīga.
Automatizācija kā apakšprojekts.
Nevajag uzreiz 100% - galvenais sākumā karkass,
uz kura būvēt. Kļūdu novēršana var būt laikietilpīga.
Kļūdas piegādes savākšanā var izraisīt problēmas
sistēmā.
Atkārtojami instalējami skripti.
Never ending story – vienmēr ir vieta uzlabojumiem.
Automatizēšana - Jauni projekti
Jau uzsākot izmantot arhitektūru, kas atvieglo
piegāžu automatizēšanu
Pēc iespējas, dalīt neatkarīgi piegādājamos
moduļos - high cohesion, low coupling
Paldies par uzmanību! Jautājumi?
Feedback
 
Sponsors of XXIX DevClub.lv

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
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
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
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...
 

Delivery automation roadmap

Editor's Notes

  1. Kas ir jādara, lai izmaiņu piegāde nebūtu galvassāpes.
  2. Pēdējos 2-3 gadus pastiprināti interese par piegāžu automatizācijas procesu
  3. Dažādi klienti, gan privātajā gan valsts sektorā, gan Latvijā, gan ārzemēs LMT, Lattelecom, Latvenergo, Baltcom, LAD (Lauku atbalsta dienests), MSC (Mediterian shipping company), Nordea Mkods, e-paraksts
  4. Visu iepriekš minēto var darbināt ar roku, bet: Ja nav bieži jādara, tad var aizmirsties kas un kādā secībā jādara Ja bieži jādara, tad “apnīk” visu laiku laist vienu skriptu pēc otra + potenciāli ilgs gaidīšanas laiks
  5. By default installation will ask about every error encountered. By default noattend installation error level is E - terminate on errors. Supported NOATTEND_LEVEL values: A - continue always, E - terminate on errors, W - terminate on errors and warnings.
  6. Lai atvieglotu piegāžu statusa meklēšanu tika ieviests build pipeline (https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin) Sagatavo piegādi, atzīmē piegādes uzlikšanas faktu akcepttesta/produkcijas vidēs.
  7. 3 cilvēkmēnēši
  8. 3 cilvēkmēnēši