Upload
klab
View
100
Download
0
Embed Size (px)
Citation preview
Il cielo è sempre più AzureRegole di buona programmazione per
favorire la migrazione ad AzureRelatori
Denis Nani
4 novembre 2015
PerchépassareadAzure?
• Partire da una applicazione già sviluppata per il cliente e modificarla in modo che possa funzionare sia On Premise (su server interno) sia su AzureinconfigurazionePaaS(PlatformAsAService) solo modificandone la configurazione.• Che cos’è Azure PaaS?
• “PaaS is a shared and elastically scalable application development and deployment platform delivered as a service.”
1/13
Azure(PlatformAsAService)
• VantaggidiAzurePaaS:• Scalabilitàorizzontale• Facilitàdideploy• Gestionedell’hardwarenonpiùacaricodelcliente
• semplificazione del processo di sviluppo delle applicazioni esulando però dai problemi di costo e complessità legati all’ acquisto ed alla gestione dello strato hardware/software sottostante• Tratto da https://msdn.microsoft.com/it-it/library/jj573926.aspx:
• Nel PaaS la competenza IT necessaria viene ridotta al minimo, e il software deve essere scritto “bene”, altrimenti sul PaaS, semplicemente, non gira.
2/13
SessioneeApplicationCache
Situazioneiniziale:- Utilizzo della Session come «repository» per tutto ciò che va memorizzato tra le pagine (anche
file!), scarsa propensione a svuotare le variabili in memoria.Problema:
- Necessità di utilizzare una tipologia di sessione condivisa tra più macchine (scalabilità orizzontale)
Cosaabbiamofatto:- Integrazione Kernel Aziendale) su Azure utilizziamo la RedisCache (garantisce affidabilità e utilizzoinwebfarm). E’ importante che gli oggetti memorizzati in sessione siano serializzabili!
BestPractices:- Utilizzare la cache con scrupolo- non sovraccaricarla di variabili inutili- utilizzare oggetti semplici- svuotare le variabili quando non servono
5/13
Excel
Prima:- Utilizzo di automazionediExcel per esportazioni in Excel particolari (che richiedono template) e dei driverdiOLEDB per excel per importare velocemente righe da Excel
Problema:- Sono richiesti componenti esterni da installare sul server- Non possibile per una configurazione Azure PaaS, sconsigliato per una configurazione On
PremiseCosaabbiamofatto:
- Utilizzo di un framework basato sullo standardOpenXML(ClosedXML) per utilizzare Excel senza necessità di avere installato sul server Offfice o driver particolari
BestPractices:- Nonutilizzareautomazioni che richiedono componenti esterni all’applicativo da installare sul server
6/13
Autenticazione Utenti
Prima:- Utilizzo della autenticazione di Windows per loggare automaticamente un utente
Problema:- Azure non supporta l’autenticazione di Windows
Possibilisoluzioni:- Autenticazione tramite Form- Authority esterne di autenticazione
Cosaabbiamofatto:- (Integrazione Kernel Aziendale) utilizzo di Office365 e Oauth2.0 per
gestire l’autenticazione utente mediante una Authority esterna
7/13
Gestione di File Fissi: AppData
Cosaabbiamofatto:- Utilizzo di indirizzirelativi per gestire i file fissi (template, help)
inclusi nella soluzione- Posizionarli nella cartella AppData (ideata appositamente per
questo)BestPractices:
- Utilizzare sempre indirizzirelativi per gestire i file, così non è nemmeno necessario modificare la configurazione in fase di deploy!
- Utilizzare le cartellediAsp.Net come AppData che già automaticamente negano l’accesso dei file esternamente al server
8/13
Gestione di File lato utente
Prima:- Gestione dei file lato utente tramite utilizzo diretto della libreria .NET System.IOeFileSystemdelserver
Problema:- Su Azure Paas non conosciamo il File System del server e nemmeno la capienza del server
Cosaabbiamofatto:- (Integrazione Kernel Aziendale) Utilizzo di una interfacciadiFileRepository come
interfaccia per la gestione dei file. Tramite config è possibile impostare la gestione con BlobStorageperAzure o con File System per la release On Premise
BestPractices:- Utilizzare una interfacciadiFileRepository per gestire i file che possono essere
manipolati lato UI
9/13
DataBase
Prima:- Utilizzo di sinonimieLinkedServerper ottenere agevolmente dati da tabelle di
altri databaseProblema:
- I database di SQL Azure non consentono l’uso di sinonimi e linked server!Cosaabbiamofatto:
- I sinonimi che puntavano a tabelle sul db di log sono stati eliminati e le tabelle sono state trasferite direttamente sul db di produzione
- I sinonimi che puntavano a tabelle di db esterni sono stati sostituiti da procedure schedulate che copiano i dati dal db esterno al db di produzione
BestPractices:- Evitare l’utilizzo di sinonimi per evitaredipendenzetradatabase!
10/13
Cubi e dwh
Prima:- Utilizzo di AnalysisServiceper estrazione di dati, analizzabili tramite Excel
Possibilisoluzioni:- Microsoft sta sviluppando strumenti di DataWarehousing appositi per Azure- Power BI permette di analizzare dati provenienti da un db di SQL Azure- Situazione in continua evoluzione
Cosaabbiamofatto:- Utilizzo di WCFOdata per trasferire i dati su Excel senza l’utilizzo di Analysis Service
Problemi:- È difficile filtrare preventivamente i dati: l’Excel è costretto a scaricarsi tutti i dati
prima di procedere all’elaborazione- Eccessivalentezza e pesantezzadati
11/13
Sicurezza12/13
Prima:• Applicativi e Database situati su rete
interna aziendale• Connessione accessibile solo tramite
VPN• «ComfortZone»
Dopo:• Applicativi e Database situati su
Azure, quindi esterni alla rete aziendale
• Chiunque può accedere• Necessità di maggioreprotezione!• Utilizzare connessioniprotette(ssl)
• Autenticareiservizi