2016-06-19 52 views

risposta

13

Cloud Foundry e OpenWhisk sono due modelli Bluemix Compute che uno sviluppatore può utilizzare per alimentare il carico di lavoro di un'applicazione.

darò un altissimo livello sintesi di entrambi i servizi e quando li uso ...

Cloud Foundry

  • IBM bluemix è stato originariamente basato via tecnologia open di Cloud Foundry . È una piattaforma di cloud computing come un servizio che supporta l'intero ciclo di vita, dallo sviluppo iniziale, a tutte le fasi di test, fino all'implementazione.
  • Cloud Foundry ha un programma CLI chiamato cf che è lo strumento principale per interagire con Bluemix (o Bluemix fornisce una GUI Web per questo).
  • Cloud Foundry introduce i concetti di Organizzazioni che contengono Spazi che è possibile pensare come aree di lavoro. Gli spazi diversi corrispondono tipicamente alle diverse fasi del ciclo di vita di un'applicazione.
  • Cloud Foundry introduce i concetti di Servizi e Applicazioni. Un servizio Cloud Foundry di solito svolge una funzione particolare (come un servizio di database) e un'applicazione di solito ha i servizi e le loro chiavi ad essa collegate.

OpenWhisk

  • OpenWhisk è un nuovo IBM Cloud sviluppato distribuita modello di calcolo event-driven.
  • Dispone di un'architettura serverless scalabile automaticamente che esegue la logica dell'applicazione sugli eventi.
  • OpenWhisk ha anche un programma CLI chiamato wsk che può essere utilizzato per eseguire snippet di codice o azioni su OpenWhisk.
  • OpenWhisk introduce i concetti di Trigger, azioni e regole.
  • I trigger sono una classe di eventi emessi dalle origini evento.
  • Azioni incapsulare il codice effettivo da eseguire che supporta più associazioni di lingua inclusi Node.js, Swift e programmi binari arbitrari incapsulati in contenitori Docker. Le azioni invocano qualsiasi parte di un ecosistema aperto, inclusi i servizi Bluemix esistenti per analisi, dati, cognitivi o qualsiasi altro servizio di terze parti.
  • Le regole sono un'associazione tra un trigger e un'azione.

Cloud Foundry vs. OpenWhisk

Quindi la domanda rimane: quando si dovrebbe usare Cloud Foundry, o quando si dovrebbe usare OpenWhisk?

Nella mia esperienza limitata con OpenWhisk, ecco i miei pensieri. Mi piace pensare a OpenWhisk come un'architettura di ridimensionamento automatico facilmente implementabile che gli sviluppatori di applicazioni possono utilizzare senza aver bisogno di una conoscenza approfondita dello sviluppo del backend. Penso che Cloud Foundry sia un livello inferiore nello stack software che potrebbe darti più personalizzazione, ma probabilmente ci vorranno più abilità e conoscenze per configurarlo.

userei Cloud Foundry se io ...

  • Was a Application Developer backend &.
  • Avevo esperienza nella creazione e nel collegamento di servizi.
  • Funzionalità necessarie che potrebbero non essere possibili utilizzando OpenWhisk.

userei OpenWhisk se io ...

  • Was uno sviluppatore di applicazioni.
  • Non volevo preoccuparmi di un server.
  • Non volevo imparare diversi linguaggi di programmazione, ecc. Per capire come configurare il mio server.
  • Davvero volevo concentrarmi sullo sviluppo della mia applicazione e fare in modo che il backend funzioni.

Spero che questo abbia aiutato.

Edit:

Ecco un immagine divertente che ho trovato che illustra questo:

comparison

+0

Wow grazie! Questo ha aiutato a chiarire le cose. – hans

+1

Qualcosa che alcuni potrebbero trovare utile sapere: openwhisk non è solo scalabile automaticamente, ma si occupa anche del bilanciamento del carico. – Sebas

6

CloudFoundry è una PaaS (Platform-as-a-service) piattaforma, il che significa in poche parole, che ospita la piattaforma per la vostra applicazione per l'esecuzione su. Esempi di una piattaforma includono node.js o JVM.

OpenWhisk è una piattaforma diserverless. Anche il termine FaaS (Function-as-a-service) sembra emergere. Carichi il codice, che viene eseguito quando si verifica un evento. Quell'evento potrebbe essere qualsiasi cosa, da una semplice richiesta HTTP a un cambiamento che si verifica nel tuo database.

La differenza fondamentale tra i due è la modalità di funzionamento. PaaS significa che stai ancora eseguendo un processo del server. Avrai un lungo processo in esecuzione che ascolta gli eventi ed esegue la tua logica, una volta che si verifica un evento. Tutto il resto, il processo è inattivo, richiede ancora cicli di CPU e memoria per ascoltare effettivamente gli eventi.

In serverless, la piattaforma si fa carico di "ascoltare gli eventi". Una volta che si verifica un evento, il tuo codice viene istanziato ed eseguito. Il codice viene quindi arrestato in seguito, quindi non richiede più alcuna risorsa. Ciò spiega anche perché le azioni di OpenWhisk hanno una limitazione di tempo di 5 minuti. Non è pensato per avere azioni a lungo termine.

Declinazione di responsabilità: Entrambe le piattaforme supportano molto più di quanto descritto qui, ho cercato di mantenere la differenza più sostanziale tra i due.

+0

serverless è un termine improprio. Non puoi dire che la differenza è che con PaaS stai ospitando il tuo server. Non è il caso. La distinzione è il modello operativo in quanto con FaaS la funzione viene eseguita solo quando necessario, in cui, come nel caso di PaaS, in genere si hanno sempre più istanze in esecuzione in attesa di qualcosa da fare. – christo4ferris

+0

@ christo4ferris Non è esattamente quello che ho affermato nei paragrafi 3 e 4? In PaaS stai infatti eseguendo il tuo server (softwarewise, non hardwarewise). – markusthoemmes

+0

la distinzione è solo il modello operativo. Sì, un PaaS fa i pacchi e crea un 'server' ma in realtà non lo 'ospitiamo', fa la piattaforma. In FaaS accade la stessa cosa. La funzione deve esistere in un runtime ecc., Non è possibile accedervi. – christo4ferris