BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Spring Cloud 1.0 - Plateforme d’Abstraction Cloud

par Bienvenido David , traduit par Slim Ouertani le 11 juil. 2014 |

Pivotal a récemment publié Spring Cloud 1.0, une bibliothèque open source qui fournit un moyen simple pour développer des applications JVM pour le cloud. Les applications peuvent se connecter à divers services de cloud computing et découvrir des informations sur l'environnement cloud lors de l'exécution. Spring Cloud peut être utilisé à la fois avec des applications basées Spring ou autres. Spring cloud 1.0 supporte Cloud Foundry et Heroku et peut être étendu pour supporter d'autres plate-formes de cloud.

Spring Cloud introduit les concepts de connecteur cloud et de connecteur de service. Un Connecteur Cloud est une interface qu’un fournisseur de cloud implémente pour permettre au reste de la bibliothèque de travailler avec une plate-forme cloud. Spring Cloud 1.0 est livré avec Cloud Foundry, Cloud Connector et Heroku Cloud Connector. Un connecteur de service est un objet qui représente une connexion à un service. Spring Cloud 1.0 est livré avec un connecteur de service pour les projets javax.sql.DataSource et Spring Data. Des connecteurs cloud ainsi que des connecteurs de service sur mesure peuvent être écrits pour supporter d'autres plate-formes et services cloud, paquetés sous forme de fichiers JAR et simplement ajoutés au classpath.

Pour utiliser Spring Cloud avec une application Spring, vous aurez besoin d'ajouter la dépendance spring-cloud-spring-service-connector. Voici un extrait de la dépendance Maven.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-spring-service-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Pour utiliser Spring Cloud avec une application non-Spring, vous aurez besoin d'ajouter plutôt la dépendance spring-cloud-core.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-core</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Si vous souhaitez avoir la possibilité de déployer à la fois sur Cloud Foundry et Heroku, ajoutez les dépendances suivantes.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-heroku-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Voici un exemple pour obtenir un service de DataSource et un ApplicationInstanceInfo. ApplicationInstanceInfo fournit les informations sur l'instance et il est spécifique à la plate-forme cloud.

// MyController.java
@Controller
public class MyController {
    @Autowired(required = false) DataSource dataSource;

    @Autowired ApplicationInstanceInfo instanceInfo;

    ...
}
// CloudConfig.java
@Configuration
@ServiceScan
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
    @Bean
    public ApplicationInstanceInfo applicationInfo() {
        return cloud().getApplicationInstanceInfo();
    }
}

L’annotation @Profile("cloud") est utilisée puisque nous voulons que cette configuration soit chargée dans un environnement de cloud computing. L'annotation @ServiceScan permet de scanner tous les services et crée un bean pour l’auto-connexion. @ServiceScan est similaire à @ComponentScan, mais au lieu de chercher des composants et des beans, il cherche les services connexes.

Pour une procédure rapide sur la manière de déploiement sur Cloud Foundry ou Heroku, lisez cet article de blog "Introduire Spring cloud". Il utilise un exemple d'application Spring Boot. Pour les applications non-spring, elles devraient passer par les notes d'utilisation README Spring cloud Core.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT