SlideShare une entreprise Scribd logo
1  sur  42
Corso di
Version, Configuration &
Document Management
Salvatore Cordiano
@parallelit
Master in Sviluppo di Applicazioni Web, Mobile e Social Media
Agenda
• Version management
• Configuration management
• Document management
Versioning
Che cos’è il versioning?
Il termine è l’abbreviazione del controllo di versione o
version control.
Version control
Un programma che tiene traccia delle modifiche ai
file ed alle cartelle.
!
!
Il controllo di versione è anche noto come:
• Source Control Manager (SCM)
• Revision Control System (RCS)
• Version Control System (VCS)
Perché usare il controllo di
versione?
Perché questo fa schifo!
Alcuni esempio di software
per il controllo di versione
• CVS
• SVN!
• Git!
• Mercurial
• Bazaar Darcs
• Perforce
• Fossil
• BitKeeper
!
Nel corso della lezione faremo principalmente riferimento ad SVN http://subversion.apache.org/
Quali sono i vantaggi dell’uso di un
sistema di controllo delle versioni?
• Fornisce supporto alla memorizzazione dei codici
sorgenti.
• Fornisce uno storico di ciò che è stato fatto.
• Può fornire un modo per lavorare in parallelo su
diversi aspetti dell’applicazione in sviluppo.
• Può fornire un modo per lavorare in parallelo senza
intralciarsi a vicenda.
Il numero di versione (1)
• Le modifiche su file e cartelle
sono identificate incrementando
un numero o un codice associato,
denominato “numero di
versione”, “etichetta di versione”,
o semplicemente “versione”.
• Ad ogni versione è associato
un’etichetta che identifica il nome
della persona che ha apportato la
modifica.
Il numero di versione (2)
• Head: identifica l’ultima revisione del repository.
• Base: identifica l’ultimo aggiornatamento della
copia di lavoro.
• Committed: identifica l’ultima revisione in cui un
elemento ha subito modifiche.
Che tipo di file?
• Testo
• Grafica
• Binario
• Qualunque
Glossario (1)
• Repository: Il repository è dove i file sono memorizzati,
spesso su un server.
• Commit: un commit si effettua quando si copiano le
modifiche fatte su file locali nel repository (il software di
controllo versione controlla quali file sono stati modificati
dall'ultima sincronizzazione).
• Change: una modifica (change) rappresenta una specifica
modifica ad un documento sottoposto al controllo di
versione. La granularità delle modifiche considerate come
cambiamenti varia tra i sistemi di controllo versione.
• Change list: su molti sistemi di controllo versione con
commit di modifiche multiple atomiche, una changelist
identifica un insieme di changes fatti in un singolo commit.
Glossario (2)
• Check-out: un check-out effettua una copia di
lavoro dal repository (può essere visto come
l’operazione inversa dell’importazione).
• Update: un update copia le modifiche fatte sul
repository nella propria directory di lavoro (può
essere visto come l’operazione inversa del commit).
• Merge: un merge o integrazione unisce modifiche
concorrenti in una revisione unificata.
• Revision (o versione): è una versione in una catena
di modifiche.
• Revert: annulla ogni modifica locale a file e cartelle.
Glossario (3)
• Conflict: un conflitto si presenta quando diversi
soggetti fanno modifiche in contemporanea alla
stessa porzione di un documento.
• Resolve conflict: l’intervento di un utente per la
risoluzione di un conflitto tra modifiche differenti di
uno stesso documento.
Concetti di base
Repository!
• Un posto dove memorizzare i sorgenti.
• Tipicamente si trova su una macchina remota affidabile
e sicura.
• Tutti gli sviluppatori condividono lo stesso repository.
!
Working folder!
• Cartella di lavoro.
• Ogni sviluppatore ne ha una collocata sulla propria
macchina.
• Contiene una copia del codice sorgente relativo al
progetto.
Repository = Time machine
• Il Repository è un archivio di ogni versione di ogni
file di codice sorgente.
• Contiene la storia del progetto.
• Rende possibile navigare indietro nel tempo e
recuperare versioni vecchie dei file
• Capire perché sono state fatte certe scelte e chi le
ha fatte.
• Capire perché sono stati introdotti nuovi bug e chi li
ha introdotti.
Quando viene rilevato un
conflitto?
• Sui sorgenti quando: due sviluppatori modificano la
stessa linea di codice; il primo fa un commit, il
secondo un update e rileva il conflitto.
• Sulla struttura dei file/direttori quando: due
sviluppatori rinominano/spostano lo stesso file/
direttorio.
SVN WorkFlow
Trunk, branch, tag (1)
Trunk, branch, tag (2)
Un modo ragionevole per organizzare un repository è
fare in modo che contenga:
• Un tronco principale di sviluppo: Trunk
• Un luogo dove memorizzare le linee di sviluppo
alternative: Branch, Branches
• Un luogo dove memorizzare le release stabili: Tag,
Tags
Branch (1)
• Relativamente ad un progetto, un branch è una
linea di sviluppo indipendente dalle altre.
• Viene inizialmente generato come copia completa
e condivide parte della storia.
Branch (2)
• I Branch, ad esempio, consentono di iniziare lo
sviluppo di una nuova release quando la
precedente è ancora in fase di consolidamento.
• Una volta terminato il consolidamento è possibile
effettuare il merge fra il branch ed il trunk.
• Il bug risolti in fase di consolidamento saranno fusi
insieme alle modifiche apportate per incorporare le
funzionalità della nuova release.
Tag
• Tag = Release
• Viene memorizzato separatamente in modo da
avere a portata di mano tutti i sorgenti relativi ad
una certa release.
• In questo modo non è necessario andare a
ripescare dal main trunk i sorgenti andando indietro
con le versioni dei file.
Configuration
management
A cosa serve il CM?
• Ma il sistema funzionava ieri, cosa è accaduto?
• Non riesco a riprodurre il problema (bug) sulla mia
copia di sistema
Tre problemi “classici” di CM
• Doppia manutenzione
Impedire l’esistenza di copie multiple dello stesso
file da aggiornare in modo indipendente
• Dati condivisi
Permettere a due o più sviluppatori di accedere
agli stessi file/dati
• Aggiornamento simultaneo
Impedire il “clobbering” quando due o più
sviluppatori modificano lo stesso file
Configuration management
(1)
• Identifica e tiene traccia di tutti gli elementi rilevanti
della configurazione del sistema, affinché tutti gli
errori possibili vengano individuati e vengano
trovate le possibili soluzioni.
Configuration management
(2)
CM is the practice of handling changes
systematically so that a system maintains its integrity
over time.
Configuration management
• La configurazione è definita come l’insieme delle
caratteristiche funzionali e fisiche di un prodotto
stabilite nei documenti tecnici e realizzate nel
prodotto stesso.
• Il configuration management si occupa di gestire e
controllare la variazione di tali caratteristiche.
• Non costituisce un’attività opzionale.
Configuration item
Il configuration item (CI) è un unità di configurazione
che può essere gestita individualmente.
Ad esempio in riferimento ad un’infrastruttura IT un CI
può essere un server, un software, un router, etc.
Configuration management
database
• E’ un elemento chiave del processo di CM
• Viene utilizzato per tracciare tutte le CI e le relazioni
tra di loro (Ad esempio: sul server X è disponibile il
sistema operativo Y, etc.).
Principali processi del
configuration management
• Pianificazione: include le strategie, policy, obiettivi, ruoli e
responsabilità nel processo di Configuration Management. Altro
elemento da tenere presente nella pianficazione è la struttura del
CMDB.
• Identificazione: include la selezione, identificazione e “labeling”
delle CI.
• Controllo: include il processo di assicurare che solo le CI
autorizzate siano presenti nel CMDB. Tutto le CI possono essere
modificate solo attraverso il processo di change management.
• Status Accounting: la gestione del ciclo di vita delle CI. Si
occupa del tracciamento e del reporting delle informazioni sullo
stato dei CI.
• Verifica: include gli audit effettuati con lo scopo di verificare
l’accuratezza del CMDB.
I tool di CM (1)
• Sono tool di IT automation che fanno un sacco di
lavoro.
• I tool di Configuration Management leggono le
configurazioni a partire da un file sorgente ed
applicano le stesse su uno o più server, in modo
automatico, prevedibile e idempotente.
!
Idempotente: posso applicare la stessa operazione più volte senza avere effetti
“collaterali”.
I tool di CM (2)
inizio configurazione
1. assicurati che apache2 sia installato
2. assicurati che php5 sia installato
3. assicurati che mysql sia installato
fine configurazione
Alcuni esempi di tool di CM
• Puppet
• Chef
• CFEngine
• Bcfg2
• BMCBladelogic
Document
management
Cosa intendiamo per
document management?
• Generalmente si fa riferimento al sistema di
gestione di documenti o document management
system (DMS).
• E’ una categoria di sistemi software che serve a
organizzare e facilitare la creazione collaborativa di
documenti e di altri contenuti.
• Tecnicamente il DMS è un’applicazione che si
occupa di eseguire operazioni massive sui
documenti, catalogandoli ed indicizzandoli
secondo determinati algoritmi.
Document management
system
Dietro un
termine
apparentemente
semplice si cela
un ambito
complesso:
!
!
!
• metadata
• integration
• capture
• validation
• indexing
• storage
• retrieval
• distribution
• security
• signature
• workflow
• collaboration
• versioning
• publishing
• reproduction
Alcuni esempi di DMS
• Alfresco
• LogicalDOC
Bibliografia
• Wikipedia
• http://svnbook.red-bean.com/
• http://subversion.apache.org/
• http://www.di.unipi.it/~cardillo/labso/files/docs/svn-
book.pdf

Contenu connexe

Tendances

MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys MeetupsMuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys MeetupsAngel Alberici
 
Vanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptVanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptRajnish Kumar
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
Session on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log managementSession on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log managementpqrs1234
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetupMuleSoft Meetup
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applicationsMuleSoft
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Angel Alberici
 
Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Manish Kumar Yadav
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductiongijish
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
What is tibco. Look at an introduction to tibco software
What is tibco. Look at an  introduction to tibco softwareWhat is tibco. Look at an  introduction to tibco software
What is tibco. Look at an introduction to tibco softwareCblsolutions.com
 
Mule idempotent filter and Object Store
Mule idempotent filter and Object StoreMule idempotent filter and Object Store
Mule idempotent filter and Object StoreAnirban Sen Chowdhary
 
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule #6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule JohnMathewPhilip
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsShanky Gupta
 

Tendances (20)

Managing APIs with MuleSoft
Managing APIs with MuleSoftManaging APIs with MuleSoft
Managing APIs with MuleSoft
 
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys MeetupsMuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
 
Vanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptVanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect ppt
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Session on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log managementSession on API auto scaling, monitoring and Log management
Session on API auto scaling, monitoring and Log management
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
 
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
Mule 4 migration + Common Integration Challenges : MuleSoft Virtual Muleys Me...
 
Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4Solace PubSub+ MuleSoft Connector for Mule 4
Solace PubSub+ MuleSoft Connector for Mule 4
 
Mulesoft Anypoint platform introduction
Mulesoft Anypoint platform introductionMulesoft Anypoint platform introduction
Mulesoft Anypoint platform introduction
 
Building APIs with Mule and Spring Boot
Building APIs with Mule and Spring BootBuilding APIs with Mule and Spring Boot
Building APIs with Mule and Spring Boot
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
What is tibco. Look at an introduction to tibco software
What is tibco. Look at an  introduction to tibco softwareWhat is tibco. Look at an  introduction to tibco software
What is tibco. Look at an introduction to tibco software
 
Mule idempotent filter and Object Store
Mule idempotent filter and Object StoreMule idempotent filter and Object Store
Mule idempotent filter and Object Store
 
The Mule Agent
The Mule AgentThe Mule Agent
The Mule Agent
 
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule #6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule
#6 Calicut MuleSoft Meetup : Demystyfying Custom Policies in Mule
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Cloudhub 2.0
Cloudhub 2.0Cloudhub 2.0
Cloudhub 2.0
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and Permissions
 

En vedette

Versioning aziendale con SVN
Versioning aziendale con SVNVersioning aziendale con SVN
Versioning aziendale con SVNAndrea Colleoni
 
10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in aziendaAndrea Colleoni
 
Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)Marcello Missiroli
 
Regole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneRegole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneAndrea Colleoni
 
Prevedere il futuro con twitter?
Prevedere il futuro con twitter?Prevedere il futuro con twitter?
Prevedere il futuro con twitter?Salvatore Cordiano
 
Algoritmi e strumenti per la Terapia Anticoagulante Orale
Algoritmi e strumenti per la Terapia Anticoagulante OraleAlgoritmi e strumenti per la Terapia Anticoagulante Orale
Algoritmi e strumenti per la Terapia Anticoagulante OraleSalvatore Cordiano
 
Corso di Concetti base di programmazione
Corso di Concetti base di programmazioneCorso di Concetti base di programmazione
Corso di Concetti base di programmazioneSalvatore Cordiano
 
Landing Page Testing To Increase Conversions
Landing Page Testing To Increase ConversionsLanding Page Testing To Increase Conversions
Landing Page Testing To Increase ConversionsAffiliate Summit
 
Landingpage - Concetti base per la realizzazione di landingpage efficaci
Landingpage - Concetti base per la realizzazione di landingpage efficaciLandingpage - Concetti base per la realizzazione di landingpage efficaci
Landingpage - Concetti base per la realizzazione di landingpage efficaciMassimo Petrucci
 
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best Practice
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best PracticeSnapchat - Funzionalità e utilizzo per le Aziende Case Study & Best Practice
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best PracticeGiuliano Ambrosio
 

En vedette (13)

Versioning aziendale con SVN
Versioning aziendale con SVNVersioning aziendale con SVN
Versioning aziendale con SVN
 
10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda
 
Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)
 
Regole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneRegole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazione
 
Corso HTML5. Una pagina base
Corso HTML5. Una pagina baseCorso HTML5. Una pagina base
Corso HTML5. Una pagina base
 
Prevedere il futuro con twitter?
Prevedere il futuro con twitter?Prevedere il futuro con twitter?
Prevedere il futuro con twitter?
 
Algoritmi e strumenti per la Terapia Anticoagulante Orale
Algoritmi e strumenti per la Terapia Anticoagulante OraleAlgoritmi e strumenti per la Terapia Anticoagulante Orale
Algoritmi e strumenti per la Terapia Anticoagulante Orale
 
Introduzione ai Social Media
Introduzione ai Social MediaIntroduzione ai Social Media
Introduzione ai Social Media
 
Corso di Concetti base di programmazione
Corso di Concetti base di programmazioneCorso di Concetti base di programmazione
Corso di Concetti base di programmazione
 
Landing Page Testing To Increase Conversions
Landing Page Testing To Increase ConversionsLanding Page Testing To Increase Conversions
Landing Page Testing To Increase Conversions
 
Corso di HTML5 e CSS
Corso di HTML5 e CSSCorso di HTML5 e CSS
Corso di HTML5 e CSS
 
Landingpage - Concetti base per la realizzazione di landingpage efficaci
Landingpage - Concetti base per la realizzazione di landingpage efficaciLandingpage - Concetti base per la realizzazione di landingpage efficaci
Landingpage - Concetti base per la realizzazione di landingpage efficaci
 
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best Practice
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best PracticeSnapchat - Funzionalità e utilizzo per le Aziende Case Study & Best Practice
Snapchat - Funzionalità e utilizzo per le Aziende Case Study & Best Practice
 

Similaire à Corso di Versioning, Configuration & Document Management

CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeDotNetMarche
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-templateDotNetCampus
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
 
Produzione software - La configurazione
Produzione software - La configurazioneProduzione software - La configurazione
Produzione software - La configurazioneGemax Consulting
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
OCS in un’ora - Introduzione a Open Conference Systems
OCS in un’ora - Introduzione a Open Conference Systems OCS in un’ora - Introduzione a Open Conference Systems
OCS in un’ora - Introduzione a Open Conference Systems AmmLibera AL
 
Progettato per specialisti del web
Progettato per specialisti del webProgettato per specialisti del web
Progettato per specialisti del webEugenio Uccheddu
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Gian Maria Ricci
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migrationAndrea Cirioni
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Mattia Milleri
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010migratore
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Emerasoft, solutions to collaborate
 

Similaire à Corso di Versioning, Configuration & Document Management (20)

Configuration management
Configuration management Configuration management
Configuration management
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-template
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Produzione software - La configurazione
Produzione software - La configurazioneProduzione software - La configurazione
Produzione software - La configurazione
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
OCS in un’ora - Introduzione a Open Conference Systems
OCS in un’ora - Introduzione a Open Conference Systems OCS in un’ora - Introduzione a Open Conference Systems
OCS in un’ora - Introduzione a Open Conference Systems
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Progettato per specialisti del web
Progettato per specialisti del webProgettato per specialisti del web
Progettato per specialisti del web
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migration
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
 

Plus de Salvatore Cordiano

Transformed: Moving to the Product Operating Model
Transformed: Moving to the Product Operating ModelTransformed: Moving to the Product Operating Model
Transformed: Moving to the Product Operating ModelSalvatore Cordiano
 
Executive Master in Business Administration
Executive Master in Business AdministrationExecutive Master in Business Administration
Executive Master in Business AdministrationSalvatore Cordiano
 
Facile.it Partner 🚀 Hackathon 2023 - What we learned
Facile.it Partner 🚀 Hackathon 2023 - What we learnedFacile.it Partner 🚀 Hackathon 2023 - What we learned
Facile.it Partner 🚀 Hackathon 2023 - What we learnedSalvatore Cordiano
 
Accrescere la motivazione per raggiungere gli obiettivi
Accrescere la motivazione per raggiungere gli obiettiviAccrescere la motivazione per raggiungere gli obiettivi
Accrescere la motivazione per raggiungere gli obiettiviSalvatore Cordiano
 
Migliora le prestazioni dei tuoi collaboratori
Migliora le prestazioni dei tuoi collaboratoriMigliora le prestazioni dei tuoi collaboratori
Migliora le prestazioni dei tuoi collaboratoriSalvatore Cordiano
 
Delivering Effective Feedback - FP Talks
Delivering Effective Feedback - FP TalksDelivering Effective Feedback - FP Talks
Delivering Effective Feedback - FP TalksSalvatore Cordiano
 
No Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringNo Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringSalvatore Cordiano
 
Facile.it Partner Hackathon - What we learned
Facile.it Partner Hackathon - What we learnedFacile.it Partner Hackathon - What we learned
Facile.it Partner Hackathon - What we learnedSalvatore Cordiano
 
FP Hackathon - Closing, remarks and awards ceremony
FP Hackathon - Closing, remarks and awards ceremonyFP Hackathon - Closing, remarks and awards ceremony
FP Hackathon - Closing, remarks and awards ceremonySalvatore Cordiano
 
Facile.it Partner Hackathon 2022
Facile.it Partner Hackathon 2022Facile.it Partner Hackathon 2022
Facile.it Partner Hackathon 2022Salvatore Cordiano
 
The Blake Mouton Managerial Grid
The Blake Mouton Managerial GridThe Blake Mouton Managerial Grid
The Blake Mouton Managerial GridSalvatore Cordiano
 
Facile.it Partner Hackathon (kick-off)
Facile.it Partner Hackathon (kick-off)Facile.it Partner Hackathon (kick-off)
Facile.it Partner Hackathon (kick-off)Salvatore Cordiano
 

Plus de Salvatore Cordiano (20)

Transformed: Moving to the Product Operating Model
Transformed: Moving to the Product Operating ModelTransformed: Moving to the Product Operating Model
Transformed: Moving to the Product Operating Model
 
Executive Master in Business Administration
Executive Master in Business AdministrationExecutive Master in Business Administration
Executive Master in Business Administration
 
Facile.it Partner 🚀 Hackathon 2023 - What we learned
Facile.it Partner 🚀 Hackathon 2023 - What we learnedFacile.it Partner 🚀 Hackathon 2023 - What we learned
Facile.it Partner 🚀 Hackathon 2023 - What we learned
 
Accrescere la motivazione per raggiungere gli obiettivi
Accrescere la motivazione per raggiungere gli obiettiviAccrescere la motivazione per raggiungere gli obiettivi
Accrescere la motivazione per raggiungere gli obiettivi
 
Il potere delle domande
Il potere delle domandeIl potere delle domande
Il potere delle domande
 
Impara a delegare
Impara a delegareImpara a delegare
Impara a delegare
 
Migliora il tuo ascolto
Migliora il tuo ascoltoMigliora il tuo ascolto
Migliora il tuo ascolto
 
Negoziazione organizzativa
Negoziazione organizzativaNegoziazione organizzativa
Negoziazione organizzativa
 
Migliora le prestazioni dei tuoi collaboratori
Migliora le prestazioni dei tuoi collaboratoriMigliora le prestazioni dei tuoi collaboratori
Migliora le prestazioni dei tuoi collaboratori
 
Charles Péguy - Il denaro
Charles Péguy - Il denaroCharles Péguy - Il denaro
Charles Péguy - Il denaro
 
Delivering Effective Feedback - FP Talks
Delivering Effective Feedback - FP TalksDelivering Effective Feedback - FP Talks
Delivering Effective Feedback - FP Talks
 
No Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringNo Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software Engineering
 
Facile.it Partner Hackathon - What we learned
Facile.it Partner Hackathon - What we learnedFacile.it Partner Hackathon - What we learned
Facile.it Partner Hackathon - What we learned
 
FP Hackathon - Closing, remarks and awards ceremony
FP Hackathon - Closing, remarks and awards ceremonyFP Hackathon - Closing, remarks and awards ceremony
FP Hackathon - Closing, remarks and awards ceremony
 
Facile.it Partner Hackathon 2022
Facile.it Partner Hackathon 2022Facile.it Partner Hackathon 2022
Facile.it Partner Hackathon 2022
 
Remarks about Ownership
Remarks about OwnershipRemarks about Ownership
Remarks about Ownership
 
Introducing Kaizen
Introducing KaizenIntroducing Kaizen
Introducing Kaizen
 
Introducing Eisenhower Matrix
Introducing Eisenhower MatrixIntroducing Eisenhower Matrix
Introducing Eisenhower Matrix
 
The Blake Mouton Managerial Grid
The Blake Mouton Managerial GridThe Blake Mouton Managerial Grid
The Blake Mouton Managerial Grid
 
Facile.it Partner Hackathon (kick-off)
Facile.it Partner Hackathon (kick-off)Facile.it Partner Hackathon (kick-off)
Facile.it Partner Hackathon (kick-off)
 

Corso di Versioning, Configuration & Document Management

  • 1. Corso di Version, Configuration & Document Management Salvatore Cordiano @parallelit Master in Sviluppo di Applicazioni Web, Mobile e Social Media
  • 2. Agenda • Version management • Configuration management • Document management
  • 4. Che cos’è il versioning? Il termine è l’abbreviazione del controllo di versione o version control.
  • 5. Version control Un programma che tiene traccia delle modifiche ai file ed alle cartelle. ! ! Il controllo di versione è anche noto come: • Source Control Manager (SCM) • Revision Control System (RCS) • Version Control System (VCS)
  • 6. Perché usare il controllo di versione? Perché questo fa schifo!
  • 7. Alcuni esempio di software per il controllo di versione • CVS • SVN! • Git! • Mercurial • Bazaar Darcs • Perforce • Fossil • BitKeeper ! Nel corso della lezione faremo principalmente riferimento ad SVN http://subversion.apache.org/
  • 8. Quali sono i vantaggi dell’uso di un sistema di controllo delle versioni? • Fornisce supporto alla memorizzazione dei codici sorgenti. • Fornisce uno storico di ciò che è stato fatto. • Può fornire un modo per lavorare in parallelo su diversi aspetti dell’applicazione in sviluppo. • Può fornire un modo per lavorare in parallelo senza intralciarsi a vicenda.
  • 9. Il numero di versione (1) • Le modifiche su file e cartelle sono identificate incrementando un numero o un codice associato, denominato “numero di versione”, “etichetta di versione”, o semplicemente “versione”. • Ad ogni versione è associato un’etichetta che identifica il nome della persona che ha apportato la modifica.
  • 10. Il numero di versione (2) • Head: identifica l’ultima revisione del repository. • Base: identifica l’ultimo aggiornatamento della copia di lavoro. • Committed: identifica l’ultima revisione in cui un elemento ha subito modifiche.
  • 11. Che tipo di file? • Testo • Grafica • Binario • Qualunque
  • 12. Glossario (1) • Repository: Il repository è dove i file sono memorizzati, spesso su un server. • Commit: un commit si effettua quando si copiano le modifiche fatte su file locali nel repository (il software di controllo versione controlla quali file sono stati modificati dall'ultima sincronizzazione). • Change: una modifica (change) rappresenta una specifica modifica ad un documento sottoposto al controllo di versione. La granularità delle modifiche considerate come cambiamenti varia tra i sistemi di controllo versione. • Change list: su molti sistemi di controllo versione con commit di modifiche multiple atomiche, una changelist identifica un insieme di changes fatti in un singolo commit.
  • 13. Glossario (2) • Check-out: un check-out effettua una copia di lavoro dal repository (può essere visto come l’operazione inversa dell’importazione). • Update: un update copia le modifiche fatte sul repository nella propria directory di lavoro (può essere visto come l’operazione inversa del commit). • Merge: un merge o integrazione unisce modifiche concorrenti in una revisione unificata. • Revision (o versione): è una versione in una catena di modifiche. • Revert: annulla ogni modifica locale a file e cartelle.
  • 14. Glossario (3) • Conflict: un conflitto si presenta quando diversi soggetti fanno modifiche in contemporanea alla stessa porzione di un documento. • Resolve conflict: l’intervento di un utente per la risoluzione di un conflitto tra modifiche differenti di uno stesso documento.
  • 15. Concetti di base Repository! • Un posto dove memorizzare i sorgenti. • Tipicamente si trova su una macchina remota affidabile e sicura. • Tutti gli sviluppatori condividono lo stesso repository. ! Working folder! • Cartella di lavoro. • Ogni sviluppatore ne ha una collocata sulla propria macchina. • Contiene una copia del codice sorgente relativo al progetto.
  • 16. Repository = Time machine • Il Repository è un archivio di ogni versione di ogni file di codice sorgente. • Contiene la storia del progetto. • Rende possibile navigare indietro nel tempo e recuperare versioni vecchie dei file • Capire perché sono state fatte certe scelte e chi le ha fatte. • Capire perché sono stati introdotti nuovi bug e chi li ha introdotti.
  • 17. Quando viene rilevato un conflitto? • Sui sorgenti quando: due sviluppatori modificano la stessa linea di codice; il primo fa un commit, il secondo un update e rileva il conflitto. • Sulla struttura dei file/direttori quando: due sviluppatori rinominano/spostano lo stesso file/ direttorio.
  • 20. Trunk, branch, tag (2) Un modo ragionevole per organizzare un repository è fare in modo che contenga: • Un tronco principale di sviluppo: Trunk • Un luogo dove memorizzare le linee di sviluppo alternative: Branch, Branches • Un luogo dove memorizzare le release stabili: Tag, Tags
  • 21. Branch (1) • Relativamente ad un progetto, un branch è una linea di sviluppo indipendente dalle altre. • Viene inizialmente generato come copia completa e condivide parte della storia.
  • 22. Branch (2) • I Branch, ad esempio, consentono di iniziare lo sviluppo di una nuova release quando la precedente è ancora in fase di consolidamento. • Una volta terminato il consolidamento è possibile effettuare il merge fra il branch ed il trunk. • Il bug risolti in fase di consolidamento saranno fusi insieme alle modifiche apportate per incorporare le funzionalità della nuova release.
  • 23. Tag • Tag = Release • Viene memorizzato separatamente in modo da avere a portata di mano tutti i sorgenti relativi ad una certa release. • In questo modo non è necessario andare a ripescare dal main trunk i sorgenti andando indietro con le versioni dei file.
  • 25. A cosa serve il CM? • Ma il sistema funzionava ieri, cosa è accaduto? • Non riesco a riprodurre il problema (bug) sulla mia copia di sistema
  • 26. Tre problemi “classici” di CM • Doppia manutenzione Impedire l’esistenza di copie multiple dello stesso file da aggiornare in modo indipendente • Dati condivisi Permettere a due o più sviluppatori di accedere agli stessi file/dati • Aggiornamento simultaneo Impedire il “clobbering” quando due o più sviluppatori modificano lo stesso file
  • 27. Configuration management (1) • Identifica e tiene traccia di tutti gli elementi rilevanti della configurazione del sistema, affinché tutti gli errori possibili vengano individuati e vengano trovate le possibili soluzioni.
  • 28. Configuration management (2) CM is the practice of handling changes systematically so that a system maintains its integrity over time.
  • 29. Configuration management • La configurazione è definita come l’insieme delle caratteristiche funzionali e fisiche di un prodotto stabilite nei documenti tecnici e realizzate nel prodotto stesso. • Il configuration management si occupa di gestire e controllare la variazione di tali caratteristiche. • Non costituisce un’attività opzionale.
  • 30. Configuration item Il configuration item (CI) è un unità di configurazione che può essere gestita individualmente. Ad esempio in riferimento ad un’infrastruttura IT un CI può essere un server, un software, un router, etc.
  • 31. Configuration management database • E’ un elemento chiave del processo di CM • Viene utilizzato per tracciare tutte le CI e le relazioni tra di loro (Ad esempio: sul server X è disponibile il sistema operativo Y, etc.).
  • 32. Principali processi del configuration management • Pianificazione: include le strategie, policy, obiettivi, ruoli e responsabilità nel processo di Configuration Management. Altro elemento da tenere presente nella pianficazione è la struttura del CMDB. • Identificazione: include la selezione, identificazione e “labeling” delle CI. • Controllo: include il processo di assicurare che solo le CI autorizzate siano presenti nel CMDB. Tutto le CI possono essere modificate solo attraverso il processo di change management. • Status Accounting: la gestione del ciclo di vita delle CI. Si occupa del tracciamento e del reporting delle informazioni sullo stato dei CI. • Verifica: include gli audit effettuati con lo scopo di verificare l’accuratezza del CMDB.
  • 33. I tool di CM (1) • Sono tool di IT automation che fanno un sacco di lavoro. • I tool di Configuration Management leggono le configurazioni a partire da un file sorgente ed applicano le stesse su uno o più server, in modo automatico, prevedibile e idempotente. ! Idempotente: posso applicare la stessa operazione più volte senza avere effetti “collaterali”.
  • 34. I tool di CM (2) inizio configurazione 1. assicurati che apache2 sia installato 2. assicurati che php5 sia installato 3. assicurati che mysql sia installato fine configurazione
  • 35. Alcuni esempi di tool di CM • Puppet • Chef • CFEngine • Bcfg2 • BMCBladelogic
  • 37. Cosa intendiamo per document management? • Generalmente si fa riferimento al sistema di gestione di documenti o document management system (DMS). • E’ una categoria di sistemi software che serve a organizzare e facilitare la creazione collaborativa di documenti e di altri contenuti. • Tecnicamente il DMS è un’applicazione che si occupa di eseguire operazioni massive sui documenti, catalogandoli ed indicizzandoli secondo determinati algoritmi.
  • 38. Document management system Dietro un termine apparentemente semplice si cela un ambito complesso: ! ! ! • metadata • integration • capture • validation • indexing • storage • retrieval • distribution • security • signature • workflow • collaboration • versioning • publishing • reproduction
  • 39.
  • 40.
  • 41. Alcuni esempi di DMS • Alfresco • LogicalDOC
  • 42. Bibliografia • Wikipedia • http://svnbook.red-bean.com/ • http://subversion.apache.org/ • http://www.di.unipi.it/~cardillo/labso/files/docs/svn- book.pdf