14
Il cielo è sempre più Azure Regole di buona programmazione per favorire la migrazione ad Azure Relatori Denis Nani 4 novembre 2015

Il cielo è sempre più azure

  • 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

Configurazione On Premise3/13

Configurazione su Azure (Paas)4/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

Domande? 13/13