2009-12-11 16 views
11

Esistono strumenti di integrazione continua che verranno eseguiti su Google App Engine?Continuous Integration Tooling in esecuzione su AppEngine

+1

Quale piattaforma, java o python? Stai cercando uno strumento che puoi utilizzare per testare continuamente il tuo progetto del motore di app o stai cercando uno strumento CI che verrà eseguito sul motore di app, che puoi utilizzare per testare qualcos'altro? –

+1

Capisco la domanda come "uno strumento CI che verrà eseguito sul motore di app"? Se questo è ciò che stai cercando, nella mia esperienza EC2 sarà più adatto a questo. –

+0

@Pascal Grazie per il vostro consiglio. Speravo di rimanere libero, esaminerò i costi dell'EC2 per i piccoli progetti. –

risposta

3

Non credo. L'ambiente sandbox sicuro di Google App Engine non sembra compatibile con i requisiti di tutti i motori CI che conosco (la scrittura sul file system è un'esigenza di base di qualsiasi motore per il checkout delle fonti, per compilarli, per registrare durante i test, per creare report , eccetera).

Come ho detto in un commento, Amazon EC2 è appropriato per l'esecuzione di un motore di configurazione e so che molte aziende lo utilizzano per questo scopo. Dovresti davvero guardare in questa direzione.

2

Alla fine della giornata, un'app del motore di app è solo un codice python o un codice java. Puoi utilizzare il tuo strumento CI preferito per creare la tua app, eseguire test di unità e distribuirli su qualsiasi server di test che vuoi, sia locale usando il server di sviluppo, o sul cloud se vuoi davvero ... Quali funzionalità extra stai cercando per?

EDIT: Ora che ho capito la domanda è di circa CI che gira su App Engine, non CI per App Engine, la mia risposta di cui sopra è praticamente inutile.

+0

Non sono sicuro di come rendere la domanda più specifica. Un elemento della configurazione eseguito su Google App Engine. IE something-ci.appspot.com dammi il mio Hudson o qualcosa del genere. Google App Engine ha costanti molto specifiche, come ad esempio non può scrivere sul file system e quindi Hudson ovviamente non può essere eseguito sul motore di app, anche se è un codice java. –

+0

gotcha. la mia risposta è inutile allora. –

0

Direttamente con il motore dell'app non penso che questo sia possibile. La mia comprensione di come funziona AppEngine (che ammetto è piuttosto limitata) indica che sarebbe possibile avere una serie di servizi che lavorano insieme per realizzare questo. Fondamentalmente hai bisogno di un servizio che sia un proxy per il tuo sistema di archiviazione, e uno che sia un proxy per il tuo servizio di build (entrambi questi non possono essere su AppEngine). AppEngine può quindi monitorare questi servizi eseguendo la copia pertinente e costruendo metafore.

Se la cosa creata è di per sé un'applicazione, è possibile distribuirla automaticamente, quindi utilizzare il servizio AppEngine per connettersi e testarlo.

Non penso che sarebbe più efficace di avere un'istanza CI locale e, almeno a breve termine, sarebbe più complicato da configurare e gestire.

Ancora una volta, la mia attuale comprensione di AppEngine è limitata a ciò che ho usato per Google Wave e alcuni altri piccoli progetti.

1

Sì, è possibile utilizzare la funzione di suddivisione del traffico [attualmente sperimentale], con l'opzione cookie, per l'invio di nuovi client a una nuova versione.

https://developers.google.com/appengine/docs/adminconsole/trafficsplitting

Lascia la versione corrente sul posto, distribuire la nuova versione di messa in scena, testarlo, e quando si desidera che tutti i nuovi clienti per accedere alla versione, solo hanno un filtro di richiesta che stabilisce un breve ha vissuto cookie di reindirizzamento per tutti i nuovi clienti.

Se si controlla questo cookie prima di impostarlo, tutti i client esistenti vedranno la versione precedente e tutti i nuovi client avranno la nuova versione.

Se si mantiene il valore del cookie più recente in memcached-backed-by-ds {usa date di scadenza!}, È possibile implementare l'integrazione continua con un singolo filtro di richiesta; basta impostare il datastore singleton sul nuovo cookie per la suddivisione del traffico, e sei a posto.

+0

Inoltre, ora che è possibile attivare le distribuzioni tramite git push, l'esecuzione di elementi di configurazione in un ambiente appengine è più facile che mai !! Credo che la nuova versione del motore di calcolo eseguirà automaticamente i test Maven prima di distribuire nuove versioni./win/https://cloud.google.com/tools/repo/push-to-deploy – Ajax

3

Recentemente, Cloudbees portare questo fonctionnality:

utenti Google App Engine possono ora eseguire Jenkins continua integrazione nel cloud con la firma a appengine.cloudbees.com. Jenkins monitorerà il codice sorgente dei tuoi progetti per eventuali modifiche, eseguirà build e test necessari e informerà il team di eventuali problemi, oppure distribuirà automaticamente l'applicazione a Google App Engine se tutto sembra a posto.

Problemi correlati