<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>deployment Archives | Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/fr/blog/tag/deployment-fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.clever.cloud/fr/blog/tag/deployment-fr/</link>
	<description>From Code to Product</description>
	<lastBuildDate>Fri, 24 Oct 2025 07:17:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>deployment Archives | Clever Cloud</title>
	<link>https://www.clever.cloud/fr/blog/tag/deployment-fr/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Déployer une application Scala / Akka avec intégration PostgreSQL</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/</link>
		
		<dc:creator><![CDATA[Geoffrey GUILBON]]></dc:creator>
		<pubDate>Thu, 09 Jun 2022 12:43:59 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[deployment]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=6842</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/akka.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="akka" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2022/06/akka.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/akka-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/akka-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:media-text {"align":"wide","mediaId":6741,"mediaLink":"https://www.clever.cloud/?attachment_id=6741","mediaType":"image","mediaWidth":30} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile" style="grid-template-columns:30% auto"><figure class="wp-block-media-text__media"><img src="https://cdn.clever-cloud.com/uploads/2022/06/akkatoolkitlogo.png" alt="akka_toolkit_logo" class="wp-image-6741 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph -->
<p>Lorsque j'ai commencé à travailler chez Clever Cloud, j'ai passé du temps à m'amuser pour me familiariser avec la plateforme et ses outils. Ce billet de blog vous présentera comment j'ai réussi à :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>créer une simple application Scala/Akka HTTP template avec persistance PostgreSQL</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lier l'application à un serveur PostgreSQL géré</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la déployer</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l'essayer !</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></div></div>
<!-- /wp:media-text -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Créer un modèle HTTP Scala/Akka 🔨</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Obtenez les sources</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://github.com/CleverCloud/scala-akka-http-postgres-example">Clonez</a> le projet généré à partir du modèle de <a href="https://github.com/akka/akka-http-quickstart-scala.g8" target="_blank" rel="noreferrer noopener">démarrage rapide Akka Github</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce service offre la possibilité de gérer un simple registre d'utilisateurs en mémoire exposant 4 routes :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Lister tous les utilisateurs</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Obtenir un utilisateur spécifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Créer un utilisateur</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supprimer un utilisateur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Une description complète des commandes cURL disponibles peut être trouvée <a href="https://developer.lightbend.com/guides/akka-http-quickstart-scala/#cURL-commands" target="_blank" rel="noreferrer noopener">ici</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Ajouter des fonctionnalités supplémentaires</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques fonctionnalités ont été ajoutées à l'exemple original :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>stocker le registre dans une base de données PostgreSQL (au lieu d'être en mémoire)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lire les paramètres de la base de données à partir des <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/03/22/lediteur-de-variables-denvironnement-sameliore/">variables d'environnement</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>ajouter une basic auth codée en dur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Tous les paramètres peuvent être spécifiés dans le <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/blob/master/src/main/resources/application.conf">fichier application.conf</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>basic auth</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>paramètres de la base de données</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les paramètres sont récupérés à partir des variables d'environnement, ou de la valeur par défaut spécifiée si aucune n'est trouvée.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">app {
  basic-auth {
    user = "foo"
    user = ${?BASIC_AUTH_USER}
    password = "bar"
    password = ${?BASIC_AUTH_PASSWORD}
  }
  routes {
    # If ask takes more time than this to complete the request is failed
    ask-timeout = 5s
  }

  db {
    host = "localhost"
    host = ${?POSTGRESQL_ADDON_HOST}
    port = "5432"
    port = ${?POSTGRESQL_ADDON_PORT}
    database = "postgres"
    database = ${?POSTGRESQL_ADDON_DB}
    user = "login"
    user = ${?POSTGRESQL_ADDON_USER}
    pass = "pass"
    pass = ${?POSTGRESQL_ADDON_PASSWORD}
  }
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exécuter l'application en utilisant Clever Cloud CLI 🚀</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une application Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever create --type sbt myakka --region par --org testorg</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande crée une nouvelle application</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>de type sbt pour <a href="https://www.clever.cloud/fr/product/applications-scala/">Scala</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>nommée myakka</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans la région de Paris</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans mon organisation de test testorg</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Activer une instance de build dédiée pour un build plus rapide (pro tip optionnel)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Par défaut, une application nouvellement créée exécutera une instance XS qui est assez petite pour construire rapidement des applications Scala. Une façon de construire plus rapidement est d'utiliser une instance de build dédiée : Dans la console Clever Cloud, allez dans votre application -&gt; options, et cochez la case [] <code>Activer l'instance de build dédiée</code>. De cette façon, vous pouvez conserver votre instance XS pour exécuter l'application, mais vous pouvez choisir une instance XL pour le temps de build. Ou avec l'outil de ligne de commande :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever scale -a myakka --build-flavor XL</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une base de données PostgreSQL</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever addon -l myakka create postgresql-addon myakkadb</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande commande une instance d'addon PostgreSQL et la lie à <code>myakka</code>, en injectant les bonnes variables d'environnement dans l'instance de l'application pour contacter la base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La création et la migration de la base de données sont effectuées à l'aide de l'outil <a href="https://flywaydb.org/" target="_blank" rel="noreferrer noopener">flywaydb</a>. Ces scripts se trouvent dans le répertoire <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/tree/master/src/main/resources/db/migration">migration/db</a> des ressources de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La migration sera automatiquement appelée une fois que vous aurez spécifié le hook de build approprié dans les variables d'environnement</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><code>CC_POST_BUILD_HOOK avec la valeur sbt flywayMigrate</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set <kbd>CC_POST_BUILD_HOOK</kbd> "sbt flywayMigrate"</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de la basic auth</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le login et le mot de passe de la basic auth peuvent être spécifiés comme variables d'environnement en utilisant la commande <code>clever env</code>. Si aucune variable n'est trouvée, la basic auth prendra par défaut les valeurs du fichier <code>application.conf</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set BASIC_AUTH_USER &lt;YOUR_AUTH_USER&gt;
clever env -a myakka set BASIC_AUTH_PASSWORD &lt;YOUR_AUTH_PASSWORD&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Reliez votre repo local à votre instance d'application Clever Cloud.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Récupérez l'identifiant de votre application avec</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever applications</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Liez ensuite le référentiel local à l'application (en créant un fichier <code>.clever.json</code>)</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever link app_&lt;UUID&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous êtes maintenant prêt à déployer et à exécuter votre code, il suffit d'exécuter</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever deploy</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant suivre le processus de déploiement jusqu'à ce qu'il se termine avec succès.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Votre application fonctionne maintenant !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Il est temps de l'expérimenter en utilisant <code>curl</code> ou votre interface graphique préférée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Ajouter un utilisateur</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Adaptez cette commande afin d'insérer un nouvel utilisateur dans le registre :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request POST \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  --header 'Content-type: application/json' \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;' \
  --data '{
  "name": "Serge",
  "age": 42,
  "countryOfResidence": "Greenland"
}'

{
	"description": "User Serge created."
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Récupérer tous les utilisateurs</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vérifiez que l'utilisateur a été correctement créé, en obtenant la liste des utilisateurs :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request GET \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;'

{"users":[{"age":42,"countryOfResidence":"Greenland","name":"Serge"}]}</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça marche, c'est un succès ! 🎉</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/akka.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="akka" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2022/06/akka.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/akka-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/akka-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/akka-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:media-text {"align":"wide","mediaId":6741,"mediaLink":"https://www.clever.cloud/?attachment_id=6741","mediaType":"image","mediaWidth":30} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile" style="grid-template-columns:30% auto"><figure class="wp-block-media-text__media"><img src="https://cdn.clever-cloud.com/uploads/2022/06/akkatoolkitlogo.png" alt="akka_toolkit_logo" class="wp-image-6741 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph -->
<p>Lorsque j'ai commencé à travailler chez Clever Cloud, j'ai passé du temps à m'amuser pour me familiariser avec la plateforme et ses outils. Ce billet de blog vous présentera comment j'ai réussi à :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>créer une simple application Scala/Akka HTTP template avec persistance PostgreSQL</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lier l'application à un serveur PostgreSQL géré</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>la déployer</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>l'essayer !</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></div></div>
<!-- /wp:media-text -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Créer un modèle HTTP Scala/Akka 🔨</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Obtenez les sources</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://github.com/CleverCloud/scala-akka-http-postgres-example">Clonez</a> le projet généré à partir du modèle de <a href="https://github.com/akka/akka-http-quickstart-scala.g8" target="_blank" rel="noreferrer noopener">démarrage rapide Akka Github</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ce service offre la possibilité de gérer un simple registre d'utilisateurs en mémoire exposant 4 routes :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Lister tous les utilisateurs</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Obtenir un utilisateur spécifique</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Créer un utilisateur</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Supprimer un utilisateur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Une description complète des commandes cURL disponibles peut être trouvée <a href="https://developer.lightbend.com/guides/akka-http-quickstart-scala/#cURL-commands" target="_blank" rel="noreferrer noopener">ici</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Ajouter des fonctionnalités supplémentaires</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Quelques fonctionnalités ont été ajoutées à l'exemple original :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>stocker le registre dans une base de données PostgreSQL (au lieu d'être en mémoire)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>lire les paramètres de la base de données à partir des <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/03/22/lediteur-de-variables-denvironnement-sameliore/">variables d'environnement</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>ajouter une basic auth codée en dur</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Tous les paramètres peuvent être spécifiés dans le <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/blob/master/src/main/resources/application.conf">fichier application.conf</a> :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>basic auth</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>paramètres de la base de données</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les paramètres sont récupérés à partir des variables d'environnement, ou de la valeur par défaut spécifiée si aucune n'est trouvée.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">app {
  basic-auth {
    user = "foo"
    user = ${?BASIC_AUTH_USER}
    password = "bar"
    password = ${?BASIC_AUTH_PASSWORD}
  }
  routes {
    # If ask takes more time than this to complete the request is failed
    ask-timeout = 5s
  }

  db {
    host = "localhost"
    host = ${?POSTGRESQL_ADDON_HOST}
    port = "5432"
    port = ${?POSTGRESQL_ADDON_PORT}
    database = "postgres"
    database = ${?POSTGRESQL_ADDON_DB}
    user = "login"
    user = ${?POSTGRESQL_ADDON_USER}
    pass = "pass"
    pass = ${?POSTGRESQL_ADDON_PASSWORD}
  }
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Exécuter l'application en utilisant Clever Cloud CLI 🚀</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une application Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever create --type sbt myakka --region par --org testorg</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande crée une nouvelle application</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>de type sbt pour <a href="https://www.clever.cloud/fr/product/applications-scala/">Scala</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>nommée myakka</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans la région de Paris</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>dans mon organisation de test testorg</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Activer une instance de build dédiée pour un build plus rapide (pro tip optionnel)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Par défaut, une application nouvellement créée exécutera une instance XS qui est assez petite pour construire rapidement des applications Scala. Une façon de construire plus rapidement est d'utiliser une instance de build dédiée : Dans la console Clever Cloud, allez dans votre application -&gt; options, et cochez la case [] <code>Activer l'instance de build dédiée</code>. De cette façon, vous pouvez conserver votre instance XS pour exécuter l'application, mais vous pouvez choisir une instance XL pour le temps de build. Ou avec l'outil de ligne de commande :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever scale -a myakka --build-flavor XL</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créez une base de données PostgreSQL</h3>
<!-- /wp:heading -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever addon -l myakka create postgresql-addon myakkadb</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Cette commande commande une instance d'addon PostgreSQL et la lie à <code>myakka</code>, en injectant les bonnes variables d'environnement dans l'instance de l'application pour contacter la base de données.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La création et la migration de la base de données sont effectuées à l'aide de l'outil <a href="https://flywaydb.org/" target="_blank" rel="noreferrer noopener">flywaydb</a>. Ces scripts se trouvent dans le répertoire <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example/tree/master/src/main/resources/db/migration">migration/db</a> des ressources de l'application.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La migration sera automatiquement appelée une fois que vous aurez spécifié le hook de build approprié dans les variables d'environnement</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><code>CC_POST_BUILD_HOOK avec la valeur sbt flywayMigrate</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set <kbd>CC_POST_BUILD_HOOK</kbd> "sbt flywayMigrate"</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de la basic auth</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le login et le mot de passe de la basic auth peuvent être spécifiés comme variables d'environnement en utilisant la commande <code>clever env</code>. Si aucune variable n'est trouvée, la basic auth prendra par défaut les valeurs du fichier <code>application.conf</code></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever env -a myakka set BASIC_AUTH_USER &lt;YOUR_AUTH_USER&gt;
clever env -a myakka set BASIC_AUTH_PASSWORD &lt;YOUR_AUTH_PASSWORD&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Reliez votre repo local à votre instance d'application Clever Cloud.</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Récupérez l'identifiant de votre application avec</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever applications</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Liez ensuite le référentiel local à l'application (en créant un fichier <code>.clever.json</code>)</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever link app_&lt;UUID&gt;</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous êtes maintenant prêt à déployer et à exécuter votre code, il suffit d'exécuter</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">clever deploy</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant suivre le processus de déploiement jusqu'à ce qu'il se termine avec succès.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Votre application fonctionne maintenant !</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Il est temps de l'expérimenter en utilisant <code>curl</code> ou votre interface graphique préférée.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Ajouter un utilisateur</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Adaptez cette commande afin d'insérer un nouvel utilisateur dans le registre :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request POST \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  --header 'Content-type: application/json' \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;' \
  --data '{
  "name": "Serge",
  "age": 42,
  "countryOfResidence": "Greenland"
}'

{
	"description": "User Serge created."
}</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Récupérer tous les utilisateurs</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vérifiez que l'utilisateur a été correctement créé, en obtenant la liste des utilisateurs :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">curl --request GET \
  --url https://app-&lt;UUID&gt;.cleverapps.io/users \
  -u '&lt;YOUR_AUTH_USER&gt;:&lt;YOUR_AUTH_PASSWORD&gt;'

{"users":[{"age":42,"countryOfResidence":"Greenland","name":"Serge"}]}</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Ça marche, c'est un succès ! 🎉</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jenkins disponible sur Clever Cloud</title>
		<link>https://www.clever.cloud/fr/blog/fonctionnalites/2021/10/26/jenkins-disponible-sur-clever-cloud/</link>
		
		<dc:creator><![CDATA[Arnaud Lefebvre]]></dc:creator>
		<pubDate>Tue, 26 Oct 2021 08:52:59 +0000</pubDate>
				<category><![CDATA[Fonctionnalités]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[fonctionnalité]]></category>
		<category><![CDATA[jenkins]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/blog/non-classifiee/2021/10/26/jenkins-disponible-sur-clever-cloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/jenkins.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="jenkins" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/jenkins.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>Aujourd'hui, nous sommes heureux d'annoncer la sortie de notre add-on Jenkins avec une intégration parfaite avec Clever Cloud !

Jenkins est un serveur d'automatisation open source qui permet aux développeurs de construire, tester et déployer leurs logiciels.<span id="more-3866"></span> Il facilite l'intégration continue (CI) et la livraison continue (CD), est hautement configurable et bénéficie d'une énorme communauté ainsi que de nombreuses ressources en ligne.
<figure id="attachment_3691"><img title="Jenkins Dashboard on Clever Cloud" src="https://cdn.clever-cloud.com/uploads/2021/10/Screenshot-2021-09-30-at-19-37-38-Console-Clever-Cloud-1.png" alt="Jenkins Dashboard on Clever Cloud" />
<figcaption id="caption-attachment-3691" class="wp-caption-text">Jenkins Dashboard on Clever Cloud</figcaption></figure>
<h3>Clever Cloud pour exécuter vos tâches</h3>
Vous pouvez personnaliser votre Jenkins grâce au grand nombre de plugins Jenkins disponibles : il donc possible d'installer et mettre à jour tous les plugins dont vous avez besoin pour personnaliser vos tâches. Nous fournissons également notre propre plugin personnalisé pour gérer les runners qui exécuteront ces tâches. Cela signifie que les jobs ne seront pas exécutées sur l'instance du contrôleur Jenkins mais dans des machines virtuelles dédiées déployées sur l'infrastructure Clever Cloud. Cela vous permet de configurer l'image Docker à utiliser avec tous les outils dont vous avez besoin, et la taille de la machine virtuelle qui conviendrait à vos tâches. La taille minimale est <strong>XS (1 vCPU, 2 GiB RAM)</strong> et le maximum est un <strong>3XL (16 vCPU, 32 GiB RAM).</strong> Si vous avez besoin de tailles de runner plus importantes pour vos travaux, n'hésitez pas nous en faire part!

Il n'y a aucune limite au nombre de tâches que vous pouvez exécuter, que ce soit en parallèle ou au total, vous pouvez lancer autant de tâches que vous le souhaitez. Chaque tâche ne sera facturée que pour le temps qu'elle a réellement pris, à la seconde près.
<h3>Améliorer votre workflow de déploiements sur Clever Cloud</h3>
Les modules complémentaires Jenkins de Clever Cloud peuvent améliorer votre flux de travail de déploiement sur Clever Cloud. Par exemple, si vous souhaitez déployer automatiquement votre projet une fois que tous les tests sont réussis, vous pouvez configurer votre tâche pour installer notre <a href="https://www.clever.cloud/developers/reference/clever-tools/getting_started/">CLI clever-tools</a>, puis pousser votre code vers votre application Clever Cloud.

Voici un exemple de Jenkinsfile sur la façon dont vous pourriez réaliser ceci. Il utilise plusieurs étapes pour installer clever-tools et lancer le déploiement de votre application par défaut. Clever-tools va automatiquement récupérer les secrets dans les variables d'environnement définies dans <code>CLEVER_TOKEN</code> et <code>CLEVER_SECRET</code> pour être authentifié. Vous devrez créer deux identifiants Jenkins avec des tokens réels. Les tokens peuvent être facilement récupérés sur votre machine locale en regardant dans <code>~/.config/clever-cloud</code> sur Linux et Mac OSX et <code>%APPDATA%/clever-cloud</code> sur Windows.
<pre><code class="language-java">pipeline {
  environment {
    CLEVER_TOKEN = credentials('CLEVER_TOKEN')
    CLEVER_SECRET = credentials('CLEVER_SECRET')
  }

  stage('clever-tools') {
      steps {
        script {
          sh 'npm install -g clever-tools'
       }
     }
  }

  stage('tests') {
    // Your tests steps
  }

  stage('deployment') {
    steps {
      script {
        // Deploy the application
        // A .clever.json file must exists in the repository
        sh 'clever deploy'
      }
    }
  }
}</code></pre>
Vous pouvez également utiliser les variables d'environnement propres à Jenkins pour personnaliser votre build. Vous pouvez obtenir une liste de ces variables en ajoutant <code>/env-vars.html</code> à la fin de l'URL de votre add-on. En les utilisant, vous pourriez décider de déployer sur votre application de mise en scène ou de production en fonction du nom de la branche.
<h3>Conçu avec les fonctionnalités classiques que vous aimez</h3>
Comme tous les autres produits que nous publions, les modules complémentaires de Jenkins disposent de <strong>sauvegardes automatiques</strong>, de <strong>métriques</strong>, de <strong>logs</strong> et de <strong>cryptage au repos</strong>. Vous pourrez également utiliser Clever Cloud <strong>Single Sign-On</strong> pour vous connecter à votre add-on Jenkins, ce qui signifie que chaque membre de l'organisation peut accéder à l'instance Jenkins sous son propre compte.

Vous trouverez plus d'informations sur la façon de configurer Jenkins <a href="https://www.clever.cloud/developers/doc/addons/jenkins/">dans notre documentation</a>.
<h3>Tarification</h3>
<script type="module" src="https://components.clever-cloud.com/load.js?version=7&amp;lang=en&amp;components=cc-pricing-product.smart-addon,cc-pricing-product.smart-runtime"></script>
Vous trouverez ci-dessous les prix des <strong>Jenkins</strong> et des <strong>Jenkins Runners</strong>. La <a href="https://www.clever.cloud/fr/tarification/#https://www.clever.cloud/pricing">page de tarification</a> est là pour vous aider à estimer différentes configurations.
<div>Jenkins est le service géré sur lequel vous allez configurer vos travaux.
<div></div>
</div>
<div>Les instances qui exécutent vos tâches, appelées "Jenkins runners", sont facturées à la seconde ::
<div></div>
</div>
<h3 id="whats-next">Quoi de neuf ?</h3>
Nous prévoyons de fournir une intégration encore meilleure avec Jenkins. Nos prochains objectifs sont d'ajouter des politiques de rétention de plusieurs runners (avoir des tâches successives sur un même runner par exemple) en plus d'améliorer le temps de démarrage des runners. Nous allons également ouvrir notre plugin Jenkins et le mettre en amont du dépôt de plugins Jenkins. De cette façon, nous apporterons la possibilité de démarrer vos propres runners Clever Cloud Jenkins à partir de votre instance Jenkins auto-hébergée.]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/jenkins.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="jenkins" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/jenkins.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/10/jenkins-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>Aujourd'hui, nous sommes heureux d'annoncer la sortie de notre add-on Jenkins avec une intégration parfaite avec Clever Cloud !

Jenkins est un serveur d'automatisation open source qui permet aux développeurs de construire, tester et déployer leurs logiciels.<span id="more-3866"></span> Il facilite l'intégration continue (CI) et la livraison continue (CD), est hautement configurable et bénéficie d'une énorme communauté ainsi que de nombreuses ressources en ligne.
<figure id="attachment_3691"><img title="Jenkins Dashboard on Clever Cloud" src="https://cdn.clever-cloud.com/uploads/2021/10/Screenshot-2021-09-30-at-19-37-38-Console-Clever-Cloud-1.png" alt="Jenkins Dashboard on Clever Cloud" />
<figcaption id="caption-attachment-3691" class="wp-caption-text">Jenkins Dashboard on Clever Cloud</figcaption></figure>
<h3>Clever Cloud pour exécuter vos tâches</h3>
Vous pouvez personnaliser votre Jenkins grâce au grand nombre de plugins Jenkins disponibles : il donc possible d'installer et mettre à jour tous les plugins dont vous avez besoin pour personnaliser vos tâches. Nous fournissons également notre propre plugin personnalisé pour gérer les runners qui exécuteront ces tâches. Cela signifie que les jobs ne seront pas exécutées sur l'instance du contrôleur Jenkins mais dans des machines virtuelles dédiées déployées sur l'infrastructure Clever Cloud. Cela vous permet de configurer l'image Docker à utiliser avec tous les outils dont vous avez besoin, et la taille de la machine virtuelle qui conviendrait à vos tâches. La taille minimale est <strong>XS (1 vCPU, 2 GiB RAM)</strong> et le maximum est un <strong>3XL (16 vCPU, 32 GiB RAM).</strong> Si vous avez besoin de tailles de runner plus importantes pour vos travaux, n'hésitez pas nous en faire part!

Il n'y a aucune limite au nombre de tâches que vous pouvez exécuter, que ce soit en parallèle ou au total, vous pouvez lancer autant de tâches que vous le souhaitez. Chaque tâche ne sera facturée que pour le temps qu'elle a réellement pris, à la seconde près.
<h3>Améliorer votre workflow de déploiements sur Clever Cloud</h3>
Les modules complémentaires Jenkins de Clever Cloud peuvent améliorer votre flux de travail de déploiement sur Clever Cloud. Par exemple, si vous souhaitez déployer automatiquement votre projet une fois que tous les tests sont réussis, vous pouvez configurer votre tâche pour installer notre <a href="https://www.clever.cloud/developers/reference/clever-tools/getting_started/">CLI clever-tools</a>, puis pousser votre code vers votre application Clever Cloud.

Voici un exemple de Jenkinsfile sur la façon dont vous pourriez réaliser ceci. Il utilise plusieurs étapes pour installer clever-tools et lancer le déploiement de votre application par défaut. Clever-tools va automatiquement récupérer les secrets dans les variables d'environnement définies dans <code>CLEVER_TOKEN</code> et <code>CLEVER_SECRET</code> pour être authentifié. Vous devrez créer deux identifiants Jenkins avec des tokens réels. Les tokens peuvent être facilement récupérés sur votre machine locale en regardant dans <code>~/.config/clever-cloud</code> sur Linux et Mac OSX et <code>%APPDATA%/clever-cloud</code> sur Windows.
<pre><code class="language-java">pipeline {
  environment {
    CLEVER_TOKEN = credentials('CLEVER_TOKEN')
    CLEVER_SECRET = credentials('CLEVER_SECRET')
  }

  stage('clever-tools') {
      steps {
        script {
          sh 'npm install -g clever-tools'
       }
     }
  }

  stage('tests') {
    // Your tests steps
  }

  stage('deployment') {
    steps {
      script {
        // Deploy the application
        // A .clever.json file must exists in the repository
        sh 'clever deploy'
      }
    }
  }
}</code></pre>
Vous pouvez également utiliser les variables d'environnement propres à Jenkins pour personnaliser votre build. Vous pouvez obtenir une liste de ces variables en ajoutant <code>/env-vars.html</code> à la fin de l'URL de votre add-on. En les utilisant, vous pourriez décider de déployer sur votre application de mise en scène ou de production en fonction du nom de la branche.
<h3>Conçu avec les fonctionnalités classiques que vous aimez</h3>
Comme tous les autres produits que nous publions, les modules complémentaires de Jenkins disposent de <strong>sauvegardes automatiques</strong>, de <strong>métriques</strong>, de <strong>logs</strong> et de <strong>cryptage au repos</strong>. Vous pourrez également utiliser Clever Cloud <strong>Single Sign-On</strong> pour vous connecter à votre add-on Jenkins, ce qui signifie que chaque membre de l'organisation peut accéder à l'instance Jenkins sous son propre compte.

Vous trouverez plus d'informations sur la façon de configurer Jenkins <a href="https://www.clever.cloud/developers/doc/addons/jenkins/">dans notre documentation</a>.
<h3>Tarification</h3>
<script type="module" src="https://components.clever-cloud.com/load.js?version=7&amp;lang=en&amp;components=cc-pricing-product.smart-addon,cc-pricing-product.smart-runtime"></script>
Vous trouverez ci-dessous les prix des <strong>Jenkins</strong> et des <strong>Jenkins Runners</strong>. La <a href="https://www.clever.cloud/fr/tarification/#https://www.clever.cloud/pricing">page de tarification</a> est là pour vous aider à estimer différentes configurations.
<div>Jenkins est le service géré sur lequel vous allez configurer vos travaux.
<div></div>
</div>
<div>Les instances qui exécutent vos tâches, appelées "Jenkins runners", sont facturées à la seconde ::
<div></div>
</div>
<h3 id="whats-next">Quoi de neuf ?</h3>
Nous prévoyons de fournir une intégration encore meilleure avec Jenkins. Nos prochains objectifs sont d'ajouter des politiques de rétention de plusieurs runners (avoir des tâches successives sur un même runner par exemple) en plus d'améliorer le temps de démarrage des runners. Nous allons également ouvrir notre plugin Jenkins et le mettre en amont du dépôt de plugins Jenkins. De cette façon, nous apporterons la possibilité de démarrer vos propres runners Clever Cloud Jenkins à partir de votre instance Jenkins auto-hébergée.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
