Alcuni di fondo ....Come si ospita un ruolo di lavoro di Azure localmente/su premise?
Stiamo avventurarsi in Azure per la prima volta e stanno cercando di farlo in piccoli passi. Per ora, le nostre prime app saranno ruoli di lavoro che monitorano le code per elaborare le richieste (come l'invio di e-mail o l'esecuzione di alcuni screen scraping) e inseriremo semplicemente le code dalla nostra app MVC on-premise e dai servizi WCF. Sposteremo in seguito l'app MVC e i servizi WCF in Azure.
Il nostro flusso di lavoro di sviluppo va essenzialmente come questo (un po 'modificato in modi poco importanti):
- Sviluppare a livello locale e su alcuni server condivisi. Controlla nel controllo del codice sorgente.
- Ogni 15 minuti, costruire server di costruisce e distribuisce a un ambiente di "sviluppo" (raddoppia come CI e copre in caso abbiamo bisogno di colpire un ambiente di "sviluppo" diverso da quello locale)
- tester tecnici attivare manualmente costruire server per distribuire l'ultimo build "Dev" riuscito nell'ambiente di test (o in alternativa, la build di test precedentemente distribuita, incluso/escluso il database).
- I tester tecnici ei business tester attivano manualmente il build server per distribuire l'ultima build "Test" di successo (o in alternativa, la build di test precedentemente distribuita, incluso/escluso il database) nell'ambiente di controllo qualità.
- Ad un certo punto uniamo il changeset che il QA approva per la distribuzione.
- Successivamente il nostro server di produzione di produzione distribuisce questa versione alla gestione temporanea e successivamente ai nostri ambienti di produzione (la ospitiamo N volte in ambienti paralleli/indipendenti).
Come si può vedere, abbiamo una serie di versioni della nostra app ospitate internamente per le persone di supporto interno che hanno colpito prima di raggiungere la produzione. Vorrei che questi avessero un livello ragionevolmente basso di dipendenza da Azure. Non è necessario completare la dipendenza da sever, quindi continueremo a utilizzare le code di Azure e forse alcuni altri meccanismi solo perché sono facili da continuare a utilizzare, ma non vogliamo che il nostro build server debba essere distribuito in Azure per ognuno di questi ambienti (e in alternativa paga per tutto ciò che ospita).
Quindi, come possiamo ospitare i nostri ruoli di lavoro in locale in modo ragionevole in un modo in cui stiamo testando il codice che viene distribuito in Azure?
Un'opzione che è stata suggerita è che creiamo il ruolo di lavoratore come involucro/facciata e facciamo tutto il lavoro reale all'interno di una libreria di classi, che era il nostro piano. Tuttavia, il follow-up per permetterci di "ospitare" questo sarebbe quello di creare una seconda applicazione wrapper/facciata che esegua lo stesso lavoro del ruolo di worker, solo in un modo in cui possiamo eseguirla come un'attività pianificata o una finestra server. In definitiva, non mi piace questa opzione perché un intero progetto non viene mai testato fino a quando non colpisce la messa in scena.
E 'possibile fare qualcosa di simile in cui si crea una seconda applicazione involucro/facciata che invece di chiamare la libreria di classi che in realtà i riferimenti e chiama la funzione Run()
nel ruolo dei lavoratori?
Questo sembra l'utilizzo di VS2010 per eseguire il debug delle app di Azure localmente. È qualcosa che posso impostare in modo molto limitato "server" (di nuovo, soprattutto per i non sviluppatori di avere l'app ospitata in modo che possano testarlo)? Ho bisogno di qualcosa come TeamCity o CruiseControl (in definitiva gli script nant/powershell/tu-name-it) da distribuire all'emulatore di Azure se deve funzionare per me. – Jaxidian
Spero di averti compreso: puoi sicuramente distribuirli tramite script e lasciare che i test di qualità vengano eseguiti su tali computer. È possibile utilizzare Power Shell per l'accesso remoto a VM di Azure. Non hai bisogno di VS2010 per la distribuzione o qualcosa del genere. – Vladimir
Se vuoi dire che posso usare gli script per distribuirli all'emulatore, allora sì, mi capisci. Se stai parlando di Azure, questa non è la mia domanda. Ancora una volta, l'obiettivo di alto livello qui è la possibilità di "ospitare Azure" a scopo di test. – Jaxidian