<?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>release Archives | Clever Cloud</title>
	<atom:link href="https://stagingv6.cleverapps.io/blog/tag/release/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Tue, 22 Oct 2024 10:35:44 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>release Archives | Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Clever Cloud joins the Eclipse Foundation: a commitment to the future of European open source</title>
		<link>https://stagingv6.cleverapps.io/blog/press/2024/07/10/clever-cloud-joins-the-eclipse-foundation/</link>
		
		<dc:creator><![CDATA[Leo Le Levé Dandé]]></dc:creator>
		<pubDate>Wed, 10 Jul 2024 11:50:00 +0000</pubDate>
				<category><![CDATA[Press]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?p=12971</guid>

					<description><![CDATA[<p><img width="1600" height="710" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-300x133.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1024x454.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-768x341.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1536x682.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1368x607.png 1368w" sizes="(max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>This membership is in line with <a href="https://stagingv6.cleverapps.io/open-source/" target="_blank" rel="noreferrer noopener">Clever Cloud's commitment to open source</a>, its promotion and protection.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A unique vision of open source</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Joining the <a href="https://www.eclipse.org/org/" target="_blank" rel="noreferrer noopener">Eclipse Foundation</a> reflects Clever Cloud's desire to play an active role in strengthening open source and, in particular, in building a <a href="https://stagingv6.cleverapps.io/sovereign-cloud/" target="_blank" rel="noreferrer noopener">strategically autonomous European cloud</a>. As recent developments in the market for proprietary virtualisation software have shown, it is imperative to have open source alternatives to these, whose governance is indisputable and transparent. The Eclipse Foundation is the ideal partner for this: an association under Belgian law, it offers neutral and open governance, and promotes and enables the implementation of best practice in this area for the projects it supports.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>"<em>We are very proud to be joining the Eclipse Foundation. This membership embodies our ambition to strengthen open source, as well as to develop the strategic autonomy essential to the emergence and distribution of independent clouds, in Europe and around the world</em>," says Quentin Adam, CEO of Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>"<em>We are delighted to welcome Clever Cloud to the Eclipse Foundation. Their commitment to open source aligns perfectly with our mission to foster transparent governance and promote best practices in open technology projects,</em>” said Mike Milinkovich, Executive Director at the Eclipse Foundation. “<em>As part of our community, Clever Cloud will participate in a number of important initiatives that promote European innovation with a worldwide impact.</em>"</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">For the development of open source in Europe and worldwide</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>By participating in the Eclipse Foundation ecosystem, Clever Cloud aims to:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><strong>Promote open source in Europe and worldwide: </strong>Through shared values and a commitment to businesses and organisations, this membership will contribute to the wider adoption of open source in Europe and worldwide. This supports an independent digital economy, encouraging local innovation and reducing dependency on proprietary solutions and technological lock-in;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Promoting transparent governance: </strong>While open source projects are now essential components of any application, it is important to ensure that they remain free and open. Clear, stable governance that is immune to privatisation abuses is the guarantee of their development, the investment they attract and their longevity;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Continuing to innovate in the development of open solutions: </strong>A shared belief in open source, the impact of sharing knowledge and its intrinsic quality of innovation through collaborative work. Motivated by the quality of software and its maintainability, Clever Cloud has long been invested in the development of open solutions such as <a href="https://stagingv6.cleverapps.io/blog/engineering/2023/09/25/reverse-proxy-open-sourcing-sozu-connectors/" target="_blank" rel="noreferrer noopener">Sōzu</a>, <a href="https://stagingv6.cleverapps.io/blog/engineering/2016/10/24/exherbo-rust-packaging/" target="_blank" rel="noreferrer noopener">Exherbo</a>, <a href="https://stagingv6.cleverapps.io/blog/engineering/2021/04/12/introduction-to-biscuit/" target="_blank" rel="noreferrer noopener">Biscuit</a>, etc.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>This membership supports Clever Cloud's commitment to the strategic autonomy of cloud software components, of which open source is an essential building block, for the maintenance of robust, open and transparent innovation. This support for local innovation and technological development gives European companies the opportunity to collaborate and develop solutions tailored to the specific needs of their markets.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Clever Cloud will be contributing a number of its open source projects to the foundation in the near future, providing an opportunity to strengthen the availability of alternatives to proprietary software with unquestionable and transparent governance.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>About the Eclipse Foundation: </strong>The Eclipse Foundation provides our global community of individuals and organisations with a business-friendly environment for open source software collaboration and innovation. We host the Eclipse IDE, Adoptium, Software Defined Vehicle, Jakarta EE, and over 415 open source projects, including runtimes, tools, specifications, and frameworks for cloud and edge applications, IoT, AI, automotive, systems engineering, open processor designs, and many others. Headquartered in Brussels, Belgium, the Eclipse Foundation is an international non-profit association supported by over 360 members. Visit us at this year’s <a href="https://www.globenewswire.com/Tracker?data=Kv21nbHnyZFKXANBPt9BlwtVNixeR8YEMlbPdPHWe7jtio2SuCyRZ2pIP-H9omDas_NPJD9khxx_0qeed30UDbAyYpaKSxSnkAtnDpKdGlz-azKKot8ipdA2uPiK_Ok-" target="_blank" rel="noreferrer noopener">Open Community Experience (OCX)</a> conference on 22-24 October 2024 in Mainz, Germany. To learn more, follow us on social media <a href="https://www.globenewswire.com/Tracker?data=crxgwwZkoXjVz-P3vBPYL1WfozmudAXFHtZ-OyCCYRoK9L29-RX41si4NIYMbupF0K5EqOoLgQFMbWl1oxbMn1vCm2srn3C6Xz2t8pvN7bw=" target="_blank" rel="noreferrer noopener">@EclipseFdn</a>, <a href="https://www.globenewswire.com/Tracker?data=f6Kly3LnbNLs41utDun2gpW0ZMXfYGKCjfvINVQLl-zWpvuf1MeIE1VB4suC2bmw0ydWqGj6R5VWEPSBWRmf-ik8ETUjYhtJ5x5qWzNFZAg=" target="_blank" rel="noreferrer noopener">LinkedIn</a>, or visit <a href="https://www.globenewswire.com/Tracker?data=lRO6KY4D5k9taS59KAEk4piQYwFcaGqaTmPyAwtRmc87tr8piQgv-ik_ldGNOjZ-HEKRT0uKyYvWpUzVc7Ap0Q==" target="_blank" rel="noreferrer noopener">eclipse.org</a>.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="710" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-300x133.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1024x454.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-768x341.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1536x682.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/07/2024-07-10-clever-cloud-banniere-blog-eclipse-foundation-en-1368x607.png 1368w" sizes="(max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>This membership is in line with <a href="https://stagingv6.cleverapps.io/open-source/" target="_blank" rel="noreferrer noopener">Clever Cloud's commitment to open source</a>, its promotion and protection.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A unique vision of open source</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Joining the <a href="https://www.eclipse.org/org/" target="_blank" rel="noreferrer noopener">Eclipse Foundation</a> reflects Clever Cloud's desire to play an active role in strengthening open source and, in particular, in building a <a href="https://stagingv6.cleverapps.io/sovereign-cloud/" target="_blank" rel="noreferrer noopener">strategically autonomous European cloud</a>. As recent developments in the market for proprietary virtualisation software have shown, it is imperative to have open source alternatives to these, whose governance is indisputable and transparent. The Eclipse Foundation is the ideal partner for this: an association under Belgian law, it offers neutral and open governance, and promotes and enables the implementation of best practice in this area for the projects it supports.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>"<em>We are very proud to be joining the Eclipse Foundation. This membership embodies our ambition to strengthen open source, as well as to develop the strategic autonomy essential to the emergence and distribution of independent clouds, in Europe and around the world</em>," says Quentin Adam, CEO of Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>"<em>We are delighted to welcome Clever Cloud to the Eclipse Foundation. Their commitment to open source aligns perfectly with our mission to foster transparent governance and promote best practices in open technology projects,</em>” said Mike Milinkovich, Executive Director at the Eclipse Foundation. “<em>As part of our community, Clever Cloud will participate in a number of important initiatives that promote European innovation with a worldwide impact.</em>"</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">For the development of open source in Europe and worldwide</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>By participating in the Eclipse Foundation ecosystem, Clever Cloud aims to:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li><strong>Promote open source in Europe and worldwide: </strong>Through shared values and a commitment to businesses and organisations, this membership will contribute to the wider adoption of open source in Europe and worldwide. This supports an independent digital economy, encouraging local innovation and reducing dependency on proprietary solutions and technological lock-in;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Promoting transparent governance: </strong>While open source projects are now essential components of any application, it is important to ensure that they remain free and open. Clear, stable governance that is immune to privatisation abuses is the guarantee of their development, the investment they attract and their longevity;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><strong>Continuing to innovate in the development of open solutions: </strong>A shared belief in open source, the impact of sharing knowledge and its intrinsic quality of innovation through collaborative work. Motivated by the quality of software and its maintainability, Clever Cloud has long been invested in the development of open solutions such as <a href="https://stagingv6.cleverapps.io/blog/engineering/2023/09/25/reverse-proxy-open-sourcing-sozu-connectors/" target="_blank" rel="noreferrer noopener">Sōzu</a>, <a href="https://stagingv6.cleverapps.io/blog/engineering/2016/10/24/exherbo-rust-packaging/" target="_blank" rel="noreferrer noopener">Exherbo</a>, <a href="https://stagingv6.cleverapps.io/blog/engineering/2021/04/12/introduction-to-biscuit/" target="_blank" rel="noreferrer noopener">Biscuit</a>, etc.</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>This membership supports Clever Cloud's commitment to the strategic autonomy of cloud software components, of which open source is an essential building block, for the maintenance of robust, open and transparent innovation. This support for local innovation and technological development gives European companies the opportunity to collaborate and develop solutions tailored to the specific needs of their markets.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Clever Cloud will be contributing a number of its open source projects to the foundation in the near future, providing an opportunity to strengthen the availability of alternatives to proprietary software with unquestionable and transparent governance.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>About the Eclipse Foundation: </strong>The Eclipse Foundation provides our global community of individuals and organisations with a business-friendly environment for open source software collaboration and innovation. We host the Eclipse IDE, Adoptium, Software Defined Vehicle, Jakarta EE, and over 415 open source projects, including runtimes, tools, specifications, and frameworks for cloud and edge applications, IoT, AI, automotive, systems engineering, open processor designs, and many others. Headquartered in Brussels, Belgium, the Eclipse Foundation is an international non-profit association supported by over 360 members. Visit us at this year’s <a href="https://www.globenewswire.com/Tracker?data=Kv21nbHnyZFKXANBPt9BlwtVNixeR8YEMlbPdPHWe7jtio2SuCyRZ2pIP-H9omDas_NPJD9khxx_0qeed30UDbAyYpaKSxSnkAtnDpKdGlz-azKKot8ipdA2uPiK_Ok-" target="_blank" rel="noreferrer noopener">Open Community Experience (OCX)</a> conference on 22-24 October 2024 in Mainz, Germany. To learn more, follow us on social media <a href="https://www.globenewswire.com/Tracker?data=crxgwwZkoXjVz-P3vBPYL1WfozmudAXFHtZ-OyCCYRoK9L29-RX41si4NIYMbupF0K5EqOoLgQFMbWl1oxbMn1vCm2srn3C6Xz2t8pvN7bw=" target="_blank" rel="noreferrer noopener">@EclipseFdn</a>, <a href="https://www.globenewswire.com/Tracker?data=f6Kly3LnbNLs41utDun2gpW0ZMXfYGKCjfvINVQLl-zWpvuf1MeIE1VB4suC2bmw0ydWqGj6R5VWEPSBWRmf-ik8ETUjYhtJ5x5qWzNFZAg=" target="_blank" rel="noreferrer noopener">LinkedIn</a>, or visit <a href="https://www.globenewswire.com/Tracker?data=lRO6KY4D5k9taS59KAEk4piQYwFcaGqaTmPyAwtRmc87tr8piQgv-ik_ldGNOjZ-HEKRT0uKyYvWpUzVc7Ap0Q==" target="_blank" rel="noreferrer noopener">eclipse.org</a>.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clever Cloud announces international growth strategy and the expansion of leadership team</title>
		<link>https://stagingv6.cleverapps.io/blog/company/2024/06/19/clever-cloud-announces-international-growth/</link>
		
		<dc:creator><![CDATA[Carine Guillemet]]></dc:creator>
		<pubDate>Wed, 19 Jun 2024 13:23:44 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[Press]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?p=12777</guid>

					<description><![CDATA[<p><img width="1600" height="710" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannier international growth" decoding="async" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-300x133.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1024x454.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-768x341.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1536x682.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1368x607.png 1368w" sizes="(max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>Countries in these international zones wish to ensure strong data sovereignty as part of their digital growth. As Clever Cloud is <a href="https://stagingv6.cleverapps.io/sovereign-cloud/">strongly committed</a> to this issue, we thought it would be interesting and important to share our experience with them. As part of this ambitious strategy, the company is pleased to welcome <strong>Erwan Rougeux, who joins the management team as Vice President International Growth.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With ten years' international experience as CTO, <a href="https://www.linkedin.com/in/erwan-rougeux/">Erwan Rougeux</a> will bring his expertise, knowledge of geopolitics and network all around the world to guide Clever Cloud's growth into new territories.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>“<em>We're delighted to welcome Erwan to Clever Cloud. His appetite for technical subjects, his in-depth knowledge of the countries in which we wish to expand, and our shared values will be invaluable assets in our growth strategy. This represents a major step in the development of our company</em>", says Quentin Adam, CEO of Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>“<em>I'm delighted to be joining Clever Cloud as Vice President International Growth. After more than 10 years’ experience in French institutions abroad, I'm determined to keep working for digital sovereignty and to oﬀer a European alternative to GAFAM thanks to an innovative, secure, and data-friendly cloud. My humanist values, perfectly in line with Quentin Adam's strategy, will enable us to create synergy in host countries, to catalyze local projects and talents to support digital transformations and our international development</em>", declares Erwan Rougeux.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>A growth strategy that respects sovereignty</strong></h2>
<!-- /wp:heading -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:paragraph -->
<p>Clever Cloud's strategy involves creating and fostering partnerships with local players, as well as calling on local talent and acculturating them to its Cloud platform. It is essential for Clever Cloud to adapt to the cultures of host countries, and to provide local administrators and companies with the keys to support their strategic autonomy and data sovereignty.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The company aims to open its first international office in the second half of this year,.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Interested, want to know more or discuss our strategy with us? Please write at <a href="mailto:Erwan.rougeux@clever-cloud.com">Erwan.rougeux@clever-cloud.com</a></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"><!-- wp:image {"id":12778,"width":"295px","height":"auto","sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized"><img src="https://cdn.clever-cloud.com/uploads/2024/06/erwanrougeux.jpg" alt="" class="wp-image-12778" style="width:295px;height:auto"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="710" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="bannier international growth" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-300x133.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1024x454.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-768x341.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1536x682.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/2024-06-12-clever-cloud-banniere-blog-marches-exterieurs-en-1-1368x607.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>Countries in these international zones wish to ensure strong data sovereignty as part of their digital growth. As Clever Cloud is <a href="https://stagingv6.cleverapps.io/sovereign-cloud/">strongly committed</a> to this issue, we thought it would be interesting and important to share our experience with them. As part of this ambitious strategy, the company is pleased to welcome <strong>Erwan Rougeux, who joins the management team as Vice President International Growth.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With ten years' international experience as CTO, <a href="https://www.linkedin.com/in/erwan-rougeux/">Erwan Rougeux</a> will bring his expertise, knowledge of geopolitics and network all around the world to guide Clever Cloud's growth into new territories.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>“<em>We're delighted to welcome Erwan to Clever Cloud. His appetite for technical subjects, his in-depth knowledge of the countries in which we wish to expand, and our shared values will be invaluable assets in our growth strategy. This represents a major step in the development of our company</em>", says Quentin Adam, CEO of Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>“<em>I'm delighted to be joining Clever Cloud as Vice President International Growth. After more than 10 years’ experience in French institutions abroad, I'm determined to keep working for digital sovereignty and to oﬀer a European alternative to GAFAM thanks to an innovative, secure, and data-friendly cloud. My humanist values, perfectly in line with Quentin Adam's strategy, will enable us to create synergy in host countries, to catalyze local projects and talents to support digital transformations and our international development</em>", declares Erwan Rougeux.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><strong>A growth strategy that respects sovereignty</strong></h2>
<!-- /wp:heading -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:paragraph -->
<p>Clever Cloud's strategy involves creating and fostering partnerships with local players, as well as calling on local talent and acculturating them to its Cloud platform. It is essential for Clever Cloud to adapt to the cultures of host countries, and to provide local administrators and companies with the keys to support their strategic autonomy and data sovereignty.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The company aims to open its first international office in the second half of this year,.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Interested, want to know more or discuss our strategy with us? Please write at <a href="mailto:Erwan.rougeux@clever-cloud.com">Erwan.rougeux@clever-cloud.com</a></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"><!-- wp:image {"id":12778,"width":"295px","height":"auto","sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized"><img src="https://cdn.clever-cloud.com/uploads/2024/06/erwanrougeux.jpg" alt="" class="wp-image-12778" style="width:295px;height:auto"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Materia KV: our easy-to-use serverless key-value database is available to all</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2024/06/11/materia-kv-our-easy-to-use-serverless-key-value-database-is-available-to-all/</link>
		
		<dc:creator><![CDATA[David Legrand]]></dc:creator>
		<pubDate>Tue, 11 Jun 2024 11:37:46 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?p=12497</guid>

					<description><![CDATA[<p><img width="1600" height="800" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Materia KV: our easy-to-use serverless key-value database is available to all" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-300x150.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1024x512.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-768x384.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1536x768.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1368x684.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>They “push” their code, and we deploy it, while ensuring that the environment in which they operate is kept up to date and secure, with one clear objective: maintaining it in operational condition. Whatever the situation, their service responds.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Designing simple, robust and innovative services</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We do this whilst minimizing the footprint on our servers, offering on-demand or automatic horizontal/vertical scaling. This means we can multiply instances or scale them up / down according to the load of your sites. This commitment to simplicity extends beyond applications, as we also offer a wide range of “as-a-service” database (DB) services, enabling you to deploy <a href="https://stagingv6.cleverapps.io/product/mongodb/">MongoDB</a>, <a href="https://stagingv6.cleverapps.io/product/mysql/">MySQL</a>, <a href="https://stagingv6.cleverapps.io/product/postgresql/">PostgreSQL</a> or <a href="https://stagingv6.cleverapps.io/product/redis/">Redis</a> environments in a matter of seconds, with the same tools and guarantees.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>However, over the past few years, we faced a number of recurring requests: not only did some of our customers wish to access other services, but they also regularly asked to take benefit of our infrastructure, spread over three datacenters, to obtain high-availability services. But when it comes to DB, this isn't always easy to implement while ensuring a high level of automation and data consistency. So we decided to develop our own range of products to achieve this.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The “<a href="https://stagingv6.cleverapps.io/materia/">Materia</a>” project was born, based on the <a href="https://www.foundationdb.org/" target="_blank" rel="noreferrer noopener">FoundationDB</a> open-source transactional engine used, for example, by <a href="https://www.apple.com/" target="_blank" rel="noreferrer noopener">Apple</a> for its iCloud services and by <a href="https://www.snowflake.com/en/" target="_blank" rel="noreferrer noopener">Snowflake</a>. We're contributing to it and adapting it to our needs, while taking advantage of its distributed and resilient aspect, notably due to its significant <a href="https://apple.github.io/foundationdb/testing.html" target="_blank" rel="noreferrer noopener">simulation</a> capacity. It allows us to imagine a whole universe of serverless services, very simple to use, invoiced on a pay-per-use basis, with compatibility layers we're developing to enable our customers to “talk” to it using existing protocols such as DynamoDB, GraphQL or PostgreSQL, for example.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Materia KV available to all</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We started with the Redis protocol to introduce Materia KV, <strong>currently in Alpha testing phase</strong>. It's a key-value database synchronously replicated across our three Paris datacenters. When our servers respond, your data has been written three times. Above all, it's very easy to use: go to our <a href="https://console.clever-cloud.com">Console</a>, create a Materia KV add-on, and you'll instantly obtain a token that can be used with any Redis client or by sending commands to our servers directly through the TCP protocol.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Thus, you can now benefit from a high-availability, key-value data storage solution, without having to configure a single instance, and with no minimum monthly fee: you simply pay for what you use. Above all, we provide this service with compatibility to existing protocols. Today Redis, tomorrow DynamoDB and GraphQL. The list of supported commands is available <a href="https://developers.clever-cloud.com/doc/addons/materia-kv/#supported-types-and-commands">here</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Launched at <a href="https://stagingv6.cleverapps.io/blog/company/2024/04/16/materiadb-kv-materia-functions/">Devoxx France mid-April</a>, Materia KV made a big splash on site and during our demonstrations since then. We've therefore decided to make it available to all, to enable our customers and the interested public to give us feedback on how it works for them, and what their needs are. While billing will be on a per-use basis starting with the Beta phase, right now it's free! So give it a try and <a href="https://github.com/CleverCloud/Community/discussions/categories/materia" target="_blank" rel="noreferrer noopener">let us know what you think</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://console.clever-cloud.com/users/me/addons/new" target="_blank" rel="noreferrer noopener">Create a Materia KV add-on</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://developers.clever-cloud.com/doc/addons/materia-kv/" target="_blank" rel="noreferrer noopener">Materia KV documentation</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Already built-in our tools and interfaces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Materia KV is of course available as an addon-provider in <a href="https://developers.clever-cloud.com/api/">our API</a>, <a href="https://registry.terraform.io/providers/CleverCloud/clevercloud/latest/docs" target="_blank" rel="noreferrer noopener">Terraform</a> (or OpenTofu, for example), but also in our CLI, <a href="https://github.com/CleverCloud/clever-tools" target="_blank" rel="noreferrer noopener">Clever Tools</a>. To create an access token, simply run the following command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever addon create kv NAME</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>This add-on can be linked directly to a Clever Cloud application, injecting its environment variables. But you can also use it from any third-party service, command-line client (CLI) or with graphical user interface (GUI).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>While Materia KV and its various interfaces will be developed over time, we've started to think about integrating it into Clever Tools. A test branch, available <a href="https://github.com/CleverCloud/clever-tools/pull/725" target="_blank" rel="noreferrer noopener">as a binary</a> and <a href="https://github.com/CleverCloud/clever-tools/blob/davlgd-embedded-kv-client/docs/kv.md" target="_blank" rel="noreferrer noopener">documented</a>, offers a clever <code>kv command</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With it, you can directly send requests to Materia KV by having the environment variable configured locally, or by specifying an ID in your commands:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash"># With Bash and Zsh
source <(clever addon env ADDON_ID --export)
# With Fish
clever addon env ADDON_ID --export | source

clever kv PING # PONG
clever kv set yourKey theValue
clever kv get yourKey</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>As this demo version doesn't handle all the commands managed by Materia KV, you can send a “raw” command and it will return the answer :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever kv redis_raw 'hset key field1 value1 field2 value2' # 2
clever kv redis_raw 'hget key field2'                      # value2
clever kv redis_raw 'hgetall key'                          # the full hash</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To demonstrate the possibilities of such integration, you also have the option of directly querying a JSON object stored in a key :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever kv set simpleJson '{"key": "value"}' # the set data
clever kv getJson simpleJson key            # value
clever kv set jsonKey '[{"key": "value"}, {"bigKey": {"subKey1": "subValue1","subKey2": "subValue2"}}]'
clever kv getjson jsonKey bigKey.subKey2    # subValue1
clever kv getjson jsonKey ''                # the full JSON</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To show just how simple such implementations can be, we've written a Materia KV client <a href="https://github.com/CleverCloud/mkv-go-cli" target="_blank" rel="noreferrer noopener">in Go</a> using Go-Redis. If you'd rather understand how you can send commands and receive responses from Materia KV directly in TCP, you'll find examples in both <a href="https://github.com/CleverCloud/mkv-raw-tcp-v" target="_blank" rel="noreferrer noopener">V</a> or <a href="https://github.com/CleverCloud/mkv-raw-tcp-ruby" target="_blank" rel="noreferrer noopener">Ruby</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Feel free to create your own and let us know ;)</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A demonstration of Materia KV on Twitch, a community space</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":12691,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2024/06/2024-06-05--clever-cloud--twitch--thumbnail--materia-kv--en-1024x576.png" alt="" class="wp-image-12691"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Want to find out more? Horacio González, our head of DevRel, will be giving a demonstration <a href="https://www.twitch.tv/clevercloud" target="_blank" rel="noreferrer noopener">on Twitch</a> on Tuesday June 18 at 13h15 (Paris Time). Pierre Zemb, creator of Materia at Clever Cloud, will also be discussing with our CTO Steven Le Roux in a video published at the end of June on <a href="https://www.youtube.com/c/Clevercloud-platform" target="_blank" rel="noreferrer noopener">Clever Cloud's YouTube channel</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And to share your views, questions and requirements, go to the Materia-dedicated section of our <a href="https://github.com/CleverCloud/Community/discussions/categories/materia" target="_blank" rel="noreferrer noopener">GitHub community space</a>.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1600" height="800" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Materia KV: our easy-to-use serverless key-value database is available to all" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en.png 1600w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-300x150.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1024x512.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-768x384.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1536x768.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2024/06/materia-kv-alpha-publique-en-1368x684.png 1368w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /></p><!-- wp:paragraph -->
<p>They “push” their code, and we deploy it, while ensuring that the environment in which they operate is kept up to date and secure, with one clear objective: maintaining it in operational condition. Whatever the situation, their service responds.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Designing simple, robust and innovative services</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We do this whilst minimizing the footprint on our servers, offering on-demand or automatic horizontal/vertical scaling. This means we can multiply instances or scale them up / down according to the load of your sites. This commitment to simplicity extends beyond applications, as we also offer a wide range of “as-a-service” database (DB) services, enabling you to deploy <a href="https://stagingv6.cleverapps.io/product/mongodb/">MongoDB</a>, <a href="https://stagingv6.cleverapps.io/product/mysql/">MySQL</a>, <a href="https://stagingv6.cleverapps.io/product/postgresql/">PostgreSQL</a> or <a href="https://stagingv6.cleverapps.io/product/redis/">Redis</a> environments in a matter of seconds, with the same tools and guarantees.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>However, over the past few years, we faced a number of recurring requests: not only did some of our customers wish to access other services, but they also regularly asked to take benefit of our infrastructure, spread over three datacenters, to obtain high-availability services. But when it comes to DB, this isn't always easy to implement while ensuring a high level of automation and data consistency. So we decided to develop our own range of products to achieve this.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The “<a href="https://stagingv6.cleverapps.io/materia/">Materia</a>” project was born, based on the <a href="https://www.foundationdb.org/" target="_blank" rel="noreferrer noopener">FoundationDB</a> open-source transactional engine used, for example, by <a href="https://www.apple.com/" target="_blank" rel="noreferrer noopener">Apple</a> for its iCloud services and by <a href="https://www.snowflake.com/en/" target="_blank" rel="noreferrer noopener">Snowflake</a>. We're contributing to it and adapting it to our needs, while taking advantage of its distributed and resilient aspect, notably due to its significant <a href="https://apple.github.io/foundationdb/testing.html" target="_blank" rel="noreferrer noopener">simulation</a> capacity. It allows us to imagine a whole universe of serverless services, very simple to use, invoiced on a pay-per-use basis, with compatibility layers we're developing to enable our customers to “talk” to it using existing protocols such as DynamoDB, GraphQL or PostgreSQL, for example.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Materia KV available to all</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We started with the Redis protocol to introduce Materia KV, <strong>currently in Alpha testing phase</strong>. It's a key-value database synchronously replicated across our three Paris datacenters. When our servers respond, your data has been written three times. Above all, it's very easy to use: go to our <a href="https://console.clever-cloud.com">Console</a>, create a Materia KV add-on, and you'll instantly obtain a token that can be used with any Redis client or by sending commands to our servers directly through the TCP protocol.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Thus, you can now benefit from a high-availability, key-value data storage solution, without having to configure a single instance, and with no minimum monthly fee: you simply pay for what you use. Above all, we provide this service with compatibility to existing protocols. Today Redis, tomorrow DynamoDB and GraphQL. The list of supported commands is available <a href="https://developers.clever-cloud.com/doc/addons/materia-kv/#supported-types-and-commands">here</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Launched at <a href="https://stagingv6.cleverapps.io/blog/company/2024/04/16/materiadb-kv-materia-functions/">Devoxx France mid-April</a>, Materia KV made a big splash on site and during our demonstrations since then. We've therefore decided to make it available to all, to enable our customers and the interested public to give us feedback on how it works for them, and what their needs are. While billing will be on a per-use basis starting with the Beta phase, right now it's free! So give it a try and <a href="https://github.com/CleverCloud/Community/discussions/categories/materia" target="_blank" rel="noreferrer noopener">let us know what you think</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://console.clever-cloud.com/users/me/addons/new" target="_blank" rel="noreferrer noopener">Create a Materia KV add-on</a></div>
<!-- /wp:button -->

<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://developers.clever-cloud.com/doc/addons/materia-kv/" target="_blank" rel="noreferrer noopener">Materia KV documentation</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Already built-in our tools and interfaces</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Materia KV is of course available as an addon-provider in <a href="https://developers.clever-cloud.com/api/">our API</a>, <a href="https://registry.terraform.io/providers/CleverCloud/clevercloud/latest/docs" target="_blank" rel="noreferrer noopener">Terraform</a> (or OpenTofu, for example), but also in our CLI, <a href="https://github.com/CleverCloud/clever-tools" target="_blank" rel="noreferrer noopener">Clever Tools</a>. To create an access token, simply run the following command:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever addon create kv NAME</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>This add-on can be linked directly to a Clever Cloud application, injecting its environment variables. But you can also use it from any third-party service, command-line client (CLI) or with graphical user interface (GUI).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>While Materia KV and its various interfaces will be developed over time, we've started to think about integrating it into Clever Tools. A test branch, available <a href="https://github.com/CleverCloud/clever-tools/pull/725" target="_blank" rel="noreferrer noopener">as a binary</a> and <a href="https://github.com/CleverCloud/clever-tools/blob/davlgd-embedded-kv-client/docs/kv.md" target="_blank" rel="noreferrer noopener">documented</a>, offers a clever <code>kv command</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With it, you can directly send requests to Materia KV by having the environment variable configured locally, or by specifying an ID in your commands:</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash"># With Bash and Zsh
source <(clever addon env ADDON_ID --export)
# With Fish
clever addon env ADDON_ID --export | source

clever kv PING # PONG
clever kv set yourKey theValue
clever kv get yourKey</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>As this demo version doesn't handle all the commands managed by Materia KV, you can send a “raw” command and it will return the answer :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever kv redis_raw 'hset key field1 value1 field2 value2' # 2
clever kv redis_raw 'hget key field2'                      # value2
clever kv redis_raw 'hgetall key'                          # the full hash</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To demonstrate the possibilities of such integration, you also have the option of directly querying a JSON object stored in a key :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="language-bash">clever kv set simpleJson '{"key": "value"}' # the set data
clever kv getJson simpleJson key            # value
clever kv set jsonKey '[{"key": "value"}, {"bigKey": {"subKey1": "subValue1","subKey2": "subValue2"}}]'
clever kv getjson jsonKey bigKey.subKey2    # subValue1
clever kv getjson jsonKey ''                # the full JSON</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>To show just how simple such implementations can be, we've written a Materia KV client <a href="https://github.com/CleverCloud/mkv-go-cli" target="_blank" rel="noreferrer noopener">in Go</a> using Go-Redis. If you'd rather understand how you can send commands and receive responses from Materia KV directly in TCP, you'll find examples in both <a href="https://github.com/CleverCloud/mkv-raw-tcp-v" target="_blank" rel="noreferrer noopener">V</a> or <a href="https://github.com/CleverCloud/mkv-raw-tcp-ruby" target="_blank" rel="noreferrer noopener">Ruby</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Feel free to create your own and let us know ;)</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">A demonstration of Materia KV on Twitch, a community space</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":12691,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://cdn.clever-cloud.com/uploads/2024/06/2024-06-05--clever-cloud--twitch--thumbnail--materia-kv--en-1024x576.png" alt="" class="wp-image-12691"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Want to find out more? Horacio González, our head of DevRel, will be giving a demonstration <a href="https://www.twitch.tv/clevercloud" target="_blank" rel="noreferrer noopener">on Twitch</a> on Tuesday June 18 at 13h15 (Paris Time). Pierre Zemb, creator of Materia at Clever Cloud, will also be discussing with our CTO Steven Le Roux in a video published at the end of June on <a href="https://www.youtube.com/c/Clevercloud-platform" target="_blank" rel="noreferrer noopener">Clever Cloud's YouTube channel</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And to share your views, questions and requirements, go to the Materia-dedicated section of our <a href="https://github.com/CleverCloud/Community/discussions/categories/materia" target="_blank" rel="noreferrer noopener">GitHub community space</a>.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Clever Cloud at your service: startups, Kubernetes or VMware, we&#8217;re here!</title>
		<link>https://stagingv6.cleverapps.io/blog/company/2022/06/07/clever-cloud-at-your-service-startups-kubernetes-or-vmware-were-here/</link>
		
		<dc:creator><![CDATA[David Legrand]]></dc:creator>
		<pubDate>Tue, 07 Jun 2022 10:29:31 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[company]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://stagingv6.cleverapps.io/?p=6793</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="VMware_banner" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>You may know Clever Cloud as a platform that allows you to simply deploy your applications on our servers or those of our hosting partners, focusing on what matters: their development. We maintain them in operating conditions, in the most optimized and secure environment possible.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Clever Cloud: on-demand, on-premises... or on top of VMware</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This approach comes from a desire to be at the service of our customers, our first partners and promoters. It's by their side that we ensure our growth, thanks to them that our team grows.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Our first objective is to constantly offer them a better product, matching their expectations. To find solutions to their requests. This is why Clever Cloud is not a "PaaS" like any other, why we defend French and European Tech with such determination, and why we do not chase investors and fund-raising.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In addition to our "classic" offer, we provide different levels of services. Our customers can request access to a <a href="https://stagingv6.cleverapps.io/clever-cloud-premium/">Premium subscription</a> and even use our tools on their own <a href="https://stagingv6.cleverapps.io/on-premises/">on-premises servers</a>. It allows them to get a greater control over their data, while enjoying the simplicity and flexibility of our platform.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6806,"sizeSlug":"full","linkDestination":"custom"} -->
<figure class="wp-block-image aligncenter size-full"><a href="https://stagingv6.cleverapps.io/clever-cloud-premium/" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2022/06/offreen.webp" alt="Clever Cloud offer" class="wp-image-6806"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>For example, we recently received a special request from a prospect: host their own Clever Cloud in an ANSSI-qualified SecNumCloud infrastructure (<a href="https://www.ovhcloud.com/fr/enterprise/hpc-premier-secnumcloud/" target="_blank" rel="noreferrer noopener">OVHcloud's Hosted Private Cloud</a> offering powered by VMware). We assigned a part of our technical team to this project, developed a PoC and now everything is in line, ready for use. You're also interested? <a href="https://stagingv6.cleverapps.io/contact/">Let us know</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Respond and fit to our customers' needs</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We regularly meet companies with unique needs and requests, particular technical requirements, software or hardware, in terms of performance, etc. They do not find suitable answers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In such situations, we can helm and make our tools evolve easily, design a tailor-made solution, which is possible because we develop our own platform. Sometimes, this work is more generic, leading to products that will be available to everyone through our Console.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This has led us to imagine our own Kubernetes offering, which we are regularly asked for, or IaaS/FaaS solutions (being finalized by our team). Always looking at how we can differentiate, with the ambition of doing better, bringing value to our customers, taking advantage of our freedom to design things in the most "Clever" way possible.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>By the way, if you are a startup that needs technical or financial support, that wants to take advantage of our approach and why not co-design offers and products, apply to our <a href="https://stagingv6.cleverapps.io/early-stage/">Early Stage program</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And to move forward together, nothing could be easier: <a href="https://stagingv6.cleverapps.io/contact/">contact us</a>.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="VMware_banner" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2022/06/vmware-banner-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>You may know Clever Cloud as a platform that allows you to simply deploy your applications on our servers or those of our hosting partners, focusing on what matters: their development. We maintain them in operating conditions, in the most optimized and secure environment possible.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Clever Cloud: on-demand, on-premises... or on top of VMware</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This approach comes from a desire to be at the service of our customers, our first partners and promoters. It's by their side that we ensure our growth, thanks to them that our team grows.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Our first objective is to constantly offer them a better product, matching their expectations. To find solutions to their requests. This is why Clever Cloud is not a "PaaS" like any other, why we defend French and European Tech with such determination, and why we do not chase investors and fund-raising.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In addition to our "classic" offer, we provide different levels of services. Our customers can request access to a <a href="https://stagingv6.cleverapps.io/clever-cloud-premium/">Premium subscription</a> and even use our tools on their own <a href="https://stagingv6.cleverapps.io/on-premises/">on-premises servers</a>. It allows them to get a greater control over their data, while enjoying the simplicity and flexibility of our platform.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6806,"sizeSlug":"full","linkDestination":"custom"} -->
<figure class="wp-block-image aligncenter size-full"><a href="https://stagingv6.cleverapps.io/clever-cloud-premium/" target="_blank" rel="noreferrer noopener"><img src="https://cdn.clever-cloud.com/uploads/2022/06/offreen.webp" alt="Clever Cloud offer" class="wp-image-6806"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>For example, we recently received a special request from a prospect: host their own Clever Cloud in an ANSSI-qualified SecNumCloud infrastructure (<a href="https://www.ovhcloud.com/fr/enterprise/hpc-premier-secnumcloud/" target="_blank" rel="noreferrer noopener">OVHcloud's Hosted Private Cloud</a> offering powered by VMware). We assigned a part of our technical team to this project, developed a PoC and now everything is in line, ready for use. You're also interested? <a href="https://stagingv6.cleverapps.io/contact/">Let us know</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Respond and fit to our customers' needs</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We regularly meet companies with unique needs and requests, particular technical requirements, software or hardware, in terms of performance, etc. They do not find suitable answers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In such situations, we can helm and make our tools evolve easily, design a tailor-made solution, which is possible because we develop our own platform. Sometimes, this work is more generic, leading to products that will be available to everyone through our Console.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This has led us to imagine our own Kubernetes offering, which we are regularly asked for, or IaaS/FaaS solutions (being finalized by our team). Always looking at how we can differentiate, with the ambition of doing better, bringing value to our customers, taking advantage of our freedom to design things in the most "Clever" way possible.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>By the way, if you are a startup that needs technical or financial support, that wants to take advantage of our approach and why not co-design offers and products, apply to our <a href="https://stagingv6.cleverapps.io/early-stage/">Early Stage program</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>And to move forward together, nothing could be easier: <a href="https://stagingv6.cleverapps.io/contact/">contact us</a>.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Apache Pulsar Public Beta Release</title>
		<link>https://stagingv6.cleverapps.io/blog/engineering/2021/10/05/apache-pulsar-public-beta-release/</link>
		
		<dc:creator><![CDATA[Alexandre DUVAL]]></dc:creator>
		<pubDate>Tue, 05 Oct 2021 11:32:27 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/?p=3279</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Apache Pulsar Public Beta release" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>It's a big day for queuing and streaming enthusiasts today. Our engineering team is proud to release Apache Pulsar as an add-on on Clever Cloud in public beta!

<span id="more-3279"></span>

Apache Pulsar is a distributed messaging and streaming platform based on a "publish-subscribe" model. Clever Cloud Pulsar add-on provides one Pulsar namespace, with almost all management rights.
<h2>Common use cases</h2>
<ul>
 	<li><b>Replicating data among databases</b> using Pulsar IO is commonly used to distribute change events from databases.</li>
 	<li><b>Parallel processing and workflows.</b> You can efficiently distribute a large number of tasks among multiple workers (compressing text files, sending email notifications).</li>
 	<li><b>Data streaming from IoT devices.</b> For example, a residential sensor can stream data to backend servers.</li>
 	<li><b>Refreshing distributed caches.</b> For example, an application can publish invalidation events to update the IDs of objects that have changed.</li>
 	<li><b>Real-time event distribution.</b> Events, raw or processed, may be made available to multiple applications across your team and organization for real-time processing.</li>
</ul>
<h2>Biscuit token support</h2>
At Clever Cloud, we are working on the <a href="https://stagingv6.cleverapps.io/blog/engineering/2021/04/12/introduction-to-biscuit/">Biscuit token</a>, the foundation for our authorization systems. Consequently, we open-sourced our <a href="https://github.com/CleverCloud/biscuit-pulsar/commits/master">Biscuit token for Pulsar implementation</a> which is directly pluggable to the Pulsar authentication and authorization system.

This way, we can provide a Pulsar namespace with token-based authorizations. A generated access token enables you to operate your Pulsar namespace and its topics directly using the Pulsar Admin REST API.

Using the power of Biscuit tokens, you can also attenuate your Biscuit token and create a new token that is only able to consume a single topic or multiple topics matching a regex. <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#authorization">Here</a> is an example with a topic prefix.

The rights management we support is documented <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#operations">here</a>.
<h2>Usage</h2>
We advise you to use <a href="https://github.com/streamnative/pulsarctl">pulsarctl</a> provided by StreamNative. Here is an example to list topics in your namespace:
<pre><code class="language-bash">pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces topics $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE</code></pre>
As Biscuit is a token, you can use <code>AuthenticationToken("")</code> provided by clients libraries to authenticate to our clusters without any tweak.
<ul>
 	<li>C++ client</li>
 	<li>C# client</li>
 	<li>Go client</li>
 	<li>Java client (<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#java-example">example)</a></li>
 	<li>Node.js client</li>
 	<li>Python client</li>
 	<li>Rust client (<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#rust-example">example</a>)</li>
 	<li>WebSocket client</li>
</ul>
<h2>Storage policies</h2>
The Pulsar add-on comes with default retention policies and offload policies.
<h3>Retention policies</h3>
A freshly created Pulsar add-on has infinite retention policies, you can change it using:
<pre><code class="language-bash"># Example to set retention of namespace to 2 weeks and/or 100 GB
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-retention $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE --time 2w --size 100G</code></pre>
<h3>Offload policies (cold storage)</h3>
Each <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/">Pulsar add-on</a> is provided with a hidden <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/cellar/">Cellar add-on</a> (object-storage add-on) used as a target for offloading data to cold storage. These policies are deactivated by default; you can enable offloading using:
<pre><code class="lang-bash"># Example to set offload to run when hot storage is &gt; 10G and put data to Cellar add-on as cold storage
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-offload-treshold $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE 10G</code></pre>
Considering the previous retention of 100GB and the offload threshold of 10G. You will always have 10GB in the hot storage (Apache BookKeeper) and 90GB in Cellar.

We will provide in the add-on dashboard the current storage usage of your hot and cold storage.
<h2>Pricing</h2>
Today, the pricing is in beta, meaning that it is <strong>subject to change</strong> depending on our client's usages.
Please try the calculator to simulate the cost of your usage.

<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/">Learn more on the Clever Cloud documentation</a>]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Apache Pulsar Public Beta release" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/09/pulsar-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>It's a big day for queuing and streaming enthusiasts today. Our engineering team is proud to release Apache Pulsar as an add-on on Clever Cloud in public beta!

<span id="more-3279"></span>

Apache Pulsar is a distributed messaging and streaming platform based on a "publish-subscribe" model. Clever Cloud Pulsar add-on provides one Pulsar namespace, with almost all management rights.
<h2>Common use cases</h2>
<ul>
 	<li><b>Replicating data among databases</b> using Pulsar IO is commonly used to distribute change events from databases.</li>
 	<li><b>Parallel processing and workflows.</b> You can efficiently distribute a large number of tasks among multiple workers (compressing text files, sending email notifications).</li>
 	<li><b>Data streaming from IoT devices.</b> For example, a residential sensor can stream data to backend servers.</li>
 	<li><b>Refreshing distributed caches.</b> For example, an application can publish invalidation events to update the IDs of objects that have changed.</li>
 	<li><b>Real-time event distribution.</b> Events, raw or processed, may be made available to multiple applications across your team and organization for real-time processing.</li>
</ul>
<h2>Biscuit token support</h2>
At Clever Cloud, we are working on the <a href="https://stagingv6.cleverapps.io/blog/engineering/2021/04/12/introduction-to-biscuit/">Biscuit token</a>, the foundation for our authorization systems. Consequently, we open-sourced our <a href="https://github.com/CleverCloud/biscuit-pulsar/commits/master">Biscuit token for Pulsar implementation</a> which is directly pluggable to the Pulsar authentication and authorization system.

This way, we can provide a Pulsar namespace with token-based authorizations. A generated access token enables you to operate your Pulsar namespace and its topics directly using the Pulsar Admin REST API.

Using the power of Biscuit tokens, you can also attenuate your Biscuit token and create a new token that is only able to consume a single topic or multiple topics matching a regex. <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#authorization">Here</a> is an example with a topic prefix.

The rights management we support is documented <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#operations">here</a>.
<h2>Usage</h2>
We advise you to use <a href="https://github.com/streamnative/pulsarctl">pulsarctl</a> provided by StreamNative. Here is an example to list topics in your namespace:
<pre><code class="language-bash">pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces topics $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE</code></pre>
As Biscuit is a token, you can use <code>AuthenticationToken("")</code> provided by clients libraries to authenticate to our clusters without any tweak.
<ul>
 	<li>C++ client</li>
 	<li>C# client</li>
 	<li>Go client</li>
 	<li>Java client (<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#java-example">example)</a></li>
 	<li>Node.js client</li>
 	<li>Python client</li>
 	<li>Rust client (<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/#rust-example">example</a>)</li>
 	<li>WebSocket client</li>
</ul>
<h2>Storage policies</h2>
The Pulsar add-on comes with default retention policies and offload policies.
<h3>Retention policies</h3>
A freshly created Pulsar add-on has infinite retention policies, you can change it using:
<pre><code class="language-bash"># Example to set retention of namespace to 2 weeks and/or 100 GB
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-retention $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE --time 2w --size 100G</code></pre>
<h3>Offload policies (cold storage)</h3>
Each <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/">Pulsar add-on</a> is provided with a hidden <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/cellar/">Cellar add-on</a> (object-storage add-on) used as a target for offloading data to cold storage. These policies are deactivated by default; you can enable offloading using:
<pre><code class="lang-bash"># Example to set offload to run when hot storage is &gt; 10G and put data to Cellar add-on as cold storage
pulsarctl \
--admin-service-url $ADDON_PULSAR_HTTP_URL \
--auth-params $ADDON_PULSAR_TOKEN \
--auth-plugin org.apache.pulsar.client.impl.auth.AuthenticationToken \
namespaces set-offload-treshold $ADDON_PULSAR_TENANT/$ADDON_PULSAR_NAMESPACE 10G</code></pre>
Considering the previous retention of 100GB and the offload threshold of 10G. You will always have 10GB in the hot storage (Apache BookKeeper) and 90GB in Cellar.

We will provide in the add-on dashboard the current storage usage of your hot and cold storage.
<h2>Pricing</h2>
Today, the pricing is in beta, meaning that it is <strong>subject to change</strong> depending on our client's usages.
Please try the calculator to simulate the cost of your usage.

<a href="https://stagingv6.cleverapps.io/doc/deploy/addon/pulsar/">Learn more on the Clever Cloud documentation</a>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Auto managed connection pooling for MySQL add-ons</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2021/05/05/proxysql-release/</link>
		
		<dc:creator><![CDATA[Arnaud Lefebvre]]></dc:creator>
		<pubDate>Wed, 05 May 2021 13:44:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pool]]></category>
		<category><![CDATA[proxysql]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2021/05/05/proxysql-release/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>Starting today, we provide <a href="https://www.proxysql.com/">ProxySQL</a>, a MySQL proxy, on all of our managed instances for out of the box connection pooling to your MySQL add-ons.

<span id="more-2987"></span>

ProxySQL acts as a local proxy between your application and your MySQL add-on. Your application will be able to connect to ProxySQL which will then forward your requests to the linked MySQL add-on.
<blockquote>A connection pool will cache your database connections and keep them open for future requests</blockquote>
Thanks to the connection pool, your database connections will be cached and your application won't have to wait for the connection to be established to your add-on. This can lead to faster response time when a lot of requests are executed. It also solves the problem of too many opened connections to the database. You will be able to do as many queries as you need without getting a "user max connection exceeded" error. ProxySQL will queue all the requests until a connection slot is available.

<em>Sidenote: ProxySQL is not available on Docker instances as we do not manage your Dockerfile.</em>
<h2 id="configure-proxysql">Configure ProxySQL</h2>
To enable ProxySQL for your application, you first need to have a MySQL add-on linked to your application. You then have to set the <code>CC_ENABLE_MYSQL_PROXYSQL=true</code> environment variable.

Once enabled, the <code>CC_MYSQL_PROXYSQL_SOCKET_PATH</code> environment variable will be injected during the deployment phase. It provides a <a href="https://en.wikipedia.org/wiki/Unix_domain_socket">Unix Domain Socket</a> path to use to connect to ProxySQL.

There are also two other environment variables you can set to configure ProxySQL to match your needs:
<ul>
 	<li><code>CC_MYSQL_PROXYSQL_USE_TLS</code>: A boolean (<code>true</code> or <code>false</code>) to enable <code>TLS</code> between ProxySQL and your MySQL add-on. Defaults to <code>true</code>.</li>
 	<li><code>CC_MYSQL_PROXYSQL_MAX_CONNECTIONS</code>: An integer which defines how many maximum connections ProxySQL will open to your MySQL add-on. Defaults to <code>10</code>. You can refer to <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql#scalability">our ProxySQL documentation</a> to learn more about how you should compute the maximum connection value when auto scalability is involved.</li>
</ul>
<h3 id="examples">Examples</h3>
Here are some examples on how to connect to ProxySQL using various languages:
<h4 id="php-using-pdo">PHP using PDO</h4>
Using <a href="https://www.php.net/manual/en/ref.pdo-mysql.connection.php">PDO</a>, you have to use the <code>unix_socket</code> option in your DSN:
<pre><code class="language-php">&lt;?php
// This variable is injected during the deployment
$socket = getenv("CC_MYSQL_PROXYSQL_SOCKET_PATH");
// Get the database name from the environment
$db = getenv("MYSQL_ADDON_DB");
// Get the database user from the environment
$user = getenv("MYSQL_ADDON_USER");
// Get the database password from the environment
$pass = getenv("MYSQL_ADDON_PASSWORD");
$dsn = "mysql:unix_socket=$socket;dbname=$db";
try {
  $pdo = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
  throw new PDOException($e-&gt;getMessage(), (int)$e-&gt;getCode());
}
</code></pre>
<h4 id="wordpress">Wordpress</h4>
For Wordpress, you can change the <code>DB_HOST</code> variable in your <code>wp-config.php</code>:
<pre><code class="language-php">// To connect using a unix socket, the syntax is: `localhost:/path/to/socket`
define('DB_HOST', "localhost:" . getenv("CC_MYSQL_PROXYSQL_SOCKET_PATH") );
// Get the database user from the environment
define('DB_USER', getenv("MYSQL_ADDON_USER"));
// Get the database password from the environment
define('DB_PASSWORD', getenv("MYSQL_ADDON_PASSWORD"));
// Get the database name from the environment
define('DB_NAME', getenv("MYSQL_ADDON_DB"));
</code></pre>
<h4 id="nodejs">Node.js</h4>
On Node.js, using the <code>mysql</code> npm package, you have to set the <code>socketPath</code> property :
<pre><code class="language-javascript">const mysql      = require('mysql');
const connection = mysql.createConnection({
  // Get ProxySQL unix domain socket path from the environment
  socketPath : process.env["CC_MYSQL_PROXYSQL_SOCKET_PATH"],
  // Get the database user from the environment
  user       : process.env["MYSQL_ADDON_USER"],
  // Get the database password from the environment
  password   : process.env["MYSQL_ADDON_PASSWORD"],
  // Get the database name from the environment
  database   : process.env["MYSQL_ADDON_DB"]
});
connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});
</code></pre>
<h3 id="metrics">Metrics</h3>
ProxySQL exposes some metrics using the Prometheus format. Those metrics are automatically collected into our Metrics system and can be accessed in the <a href="https://stagingv6.cleverapps.io/doc/administrate/metrics/overview/#display-metrics">Advanced Metrics</a> view of your application. This allows you to track how effective your connection pool is and how many request your instances are making. You can get the list of metrics we expose in <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql#metrics">our ProxySQL documentation</a>
<h3 id="documentation">Documentation</h3>
You can find more information about this feature in <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql">our ProxySQL documentation</a>.
<h3 id="conclusion">Conclusion</h3>
Using ProxySQL may help decrease the response time of your application if it does a lot of SQL requests. We'd love to hear from you on how ProxySQL's connection pool affected your applications performances.]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/mysql-connection-pooling-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>Starting today, we provide <a href="https://www.proxysql.com/">ProxySQL</a>, a MySQL proxy, on all of our managed instances for out of the box connection pooling to your MySQL add-ons.

<span id="more-2987"></span>

ProxySQL acts as a local proxy between your application and your MySQL add-on. Your application will be able to connect to ProxySQL which will then forward your requests to the linked MySQL add-on.
<blockquote>A connection pool will cache your database connections and keep them open for future requests</blockquote>
Thanks to the connection pool, your database connections will be cached and your application won't have to wait for the connection to be established to your add-on. This can lead to faster response time when a lot of requests are executed. It also solves the problem of too many opened connections to the database. You will be able to do as many queries as you need without getting a "user max connection exceeded" error. ProxySQL will queue all the requests until a connection slot is available.

<em>Sidenote: ProxySQL is not available on Docker instances as we do not manage your Dockerfile.</em>
<h2 id="configure-proxysql">Configure ProxySQL</h2>
To enable ProxySQL for your application, you first need to have a MySQL add-on linked to your application. You then have to set the <code>CC_ENABLE_MYSQL_PROXYSQL=true</code> environment variable.

Once enabled, the <code>CC_MYSQL_PROXYSQL_SOCKET_PATH</code> environment variable will be injected during the deployment phase. It provides a <a href="https://en.wikipedia.org/wiki/Unix_domain_socket">Unix Domain Socket</a> path to use to connect to ProxySQL.

There are also two other environment variables you can set to configure ProxySQL to match your needs:
<ul>
 	<li><code>CC_MYSQL_PROXYSQL_USE_TLS</code>: A boolean (<code>true</code> or <code>false</code>) to enable <code>TLS</code> between ProxySQL and your MySQL add-on. Defaults to <code>true</code>.</li>
 	<li><code>CC_MYSQL_PROXYSQL_MAX_CONNECTIONS</code>: An integer which defines how many maximum connections ProxySQL will open to your MySQL add-on. Defaults to <code>10</code>. You can refer to <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql#scalability">our ProxySQL documentation</a> to learn more about how you should compute the maximum connection value when auto scalability is involved.</li>
</ul>
<h3 id="examples">Examples</h3>
Here are some examples on how to connect to ProxySQL using various languages:
<h4 id="php-using-pdo">PHP using PDO</h4>
Using <a href="https://www.php.net/manual/en/ref.pdo-mysql.connection.php">PDO</a>, you have to use the <code>unix_socket</code> option in your DSN:
<pre><code class="language-php">&lt;?php
// This variable is injected during the deployment
$socket = getenv("CC_MYSQL_PROXYSQL_SOCKET_PATH");
// Get the database name from the environment
$db = getenv("MYSQL_ADDON_DB");
// Get the database user from the environment
$user = getenv("MYSQL_ADDON_USER");
// Get the database password from the environment
$pass = getenv("MYSQL_ADDON_PASSWORD");
$dsn = "mysql:unix_socket=$socket;dbname=$db";
try {
  $pdo = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
  throw new PDOException($e-&gt;getMessage(), (int)$e-&gt;getCode());
}
</code></pre>
<h4 id="wordpress">Wordpress</h4>
For Wordpress, you can change the <code>DB_HOST</code> variable in your <code>wp-config.php</code>:
<pre><code class="language-php">// To connect using a unix socket, the syntax is: `localhost:/path/to/socket`
define('DB_HOST', "localhost:" . getenv("CC_MYSQL_PROXYSQL_SOCKET_PATH") );
// Get the database user from the environment
define('DB_USER', getenv("MYSQL_ADDON_USER"));
// Get the database password from the environment
define('DB_PASSWORD', getenv("MYSQL_ADDON_PASSWORD"));
// Get the database name from the environment
define('DB_NAME', getenv("MYSQL_ADDON_DB"));
</code></pre>
<h4 id="nodejs">Node.js</h4>
On Node.js, using the <code>mysql</code> npm package, you have to set the <code>socketPath</code> property :
<pre><code class="language-javascript">const mysql      = require('mysql');
const connection = mysql.createConnection({
  // Get ProxySQL unix domain socket path from the environment
  socketPath : process.env["CC_MYSQL_PROXYSQL_SOCKET_PATH"],
  // Get the database user from the environment
  user       : process.env["MYSQL_ADDON_USER"],
  // Get the database password from the environment
  password   : process.env["MYSQL_ADDON_PASSWORD"],
  // Get the database name from the environment
  database   : process.env["MYSQL_ADDON_DB"]
});
connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});
</code></pre>
<h3 id="metrics">Metrics</h3>
ProxySQL exposes some metrics using the Prometheus format. Those metrics are automatically collected into our Metrics system and can be accessed in the <a href="https://stagingv6.cleverapps.io/doc/administrate/metrics/overview/#display-metrics">Advanced Metrics</a> view of your application. This allows you to track how effective your connection pool is and how many request your instances are making. You can get the list of metrics we expose in <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql#metrics">our ProxySQL documentation</a>
<h3 id="documentation">Documentation</h3>
You can find more information about this feature in <a href="https://stagingv6.cleverapps.io/doc/deploy/addon/mysql/proxysql">our ProxySQL documentation</a>.
<h3 id="conclusion">Conclusion</h3>
Using ProxySQL may help decrease the response time of your application if it does a lot of SQL requests. We'd love to hear from you on how ProxySQL's connection pool affected your applications performances.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Documentation Update</title>
		<link>https://stagingv6.cleverapps.io/blog/company/2020/11/20/documentation-update/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Fri, 20 Nov 2020 13:23:00 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2020/11/20/documentation-update/</guid>

					<description><![CDATA[<p><img width="2100" height="810" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1.png 2100w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1536x592.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-2048x790.png 2048w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1368x528.png 1368w" sizes="auto, (max-width: 2100px) 100vw, 2100px" /></p><p>Today we are releasing an updated, rebranded version of our documentation.</p>
<span id="more-2776"></span>

<p>It has been a change long in the making, we have a new documentation portal. New layout, new organization, new content but it&#39;s still available at the same place: <a href="https://stagingv6.cleverapps.io/doc/">https://stagingv6.cleverapps.io/doc/</a></p>
<p>The content still lives under <a href="https://github.com/CleverCloud/doc.clever-cloud.com/">https://github.com/CleverCloud/doc.clever-cloud.com/</a> and has been reorganized. We are, of course, always welcoming new contributions, whether it is for a single typo, filling an issue or a detailed tutorial. Guidelines are available on the <a href="https://stagingv6.cleverapps.io/doc/contribute/writing/">&#39;Writing new Content&#39; page</a>.</p>
<p>Please give us feedback. We would love to know what page is missing or what you would like to read.</p>
<p>A quick word about how it&#39;s made. We are using <a href="https://gohugo.io/">Hugo</a> to generate the website. The theme used for this website is also available on Github: <a href="https://github.com/CleverCloud/hugo-cc-doc-theme">https://github.com/CleverCloud/hugo-cc-doc-theme</a></p>
<p>One of the reasons for this choice is that we are selling white-label version of Clever Cloud, and our customers want their own documentation. This allows us to keep working on the same content and to offer them a quick and easy way to deploy their own documentation.</p>
<p>I would like to finish this post with a big thank you to <a href="https://twitter.com/valeriane_IT">Valeriane Venance</a> who started this project with me and made a good chunk of it, to the Clever Cloud team and to all our <a href="https://github.com/CleverCloud/doc.clever-cloud.com/graphs/contributors">contributors</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="2100" height="810" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1.png 2100w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1536x592.png 1536w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-2048x790.png 2048w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/docupdate-1-1368x528.png 1368w" sizes="auto, (max-width: 2100px) 100vw, 2100px" /></p><p>Today we are releasing an updated, rebranded version of our documentation.</p>
<span id="more-2776"></span>

<p>It has been a change long in the making, we have a new documentation portal. New layout, new organization, new content but it&#39;s still available at the same place: <a href="https://stagingv6.cleverapps.io/doc/">https://stagingv6.cleverapps.io/doc/</a></p>
<p>The content still lives under <a href="https://github.com/CleverCloud/doc.clever-cloud.com/">https://github.com/CleverCloud/doc.clever-cloud.com/</a> and has been reorganized. We are, of course, always welcoming new contributions, whether it is for a single typo, filling an issue or a detailed tutorial. Guidelines are available on the <a href="https://stagingv6.cleverapps.io/doc/contribute/writing/">&#39;Writing new Content&#39; page</a>.</p>
<p>Please give us feedback. We would love to know what page is missing or what you would like to read.</p>
<p>A quick word about how it&#39;s made. We are using <a href="https://gohugo.io/">Hugo</a> to generate the website. The theme used for this website is also available on Github: <a href="https://github.com/CleverCloud/hugo-cc-doc-theme">https://github.com/CleverCloud/hugo-cc-doc-theme</a></p>
<p>One of the reasons for this choice is that we are selling white-label version of Clever Cloud, and our customers want their own documentation. This allows us to keep working on the same content and to offer them a quick and easy way to deploy their own documentation.</p>
<p>I would like to finish this post with a big thank you to <a href="https://twitter.com/valeriane_IT">Valeriane Venance</a> who started this project with me and made a good chunk of it, to the Clever Cloud team and to all our <a href="https://github.com/CleverCloud/doc.clever-cloud.com/graphs/contributors">contributors</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Elixir and Phoenix are now officially supported</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2019/12/05/elixir-phoenix/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Thu, 05 Dec 2019 16:44:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[elixir]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[phoenix]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2019/12/05/elixir-phoenix/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Today we officialize our support for Elixir and Phoenix!</p>
<span id="more-2968"></span>

<p>We have been testing this with some of our customers for quite a while now. So there it is, you can now deploy any <a href="https://elixir-lang.org/">Elixir</a> code, like a <a href="https://hexdocs.pm/phoenix">Phoenix</a> based website for instance. But first, if you are not familiar with both Elixir and Phoenix, let&#39;s see what it is.</p>
<p>Straight from Wikipedia:</p>
<blockquote>
Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides productive tooling and extensible design.
</blockquote>

<p>Yes, it&#39;s using Erlang. The language and VM that powers, among others RabbitMQ, CouchDB, Facebook/Whatsapp messaging backend, and many Telcos backend. We are talking massive scale, concurrent usage here. To go back to elixir, here&#39;s what some simple code looks like:</p>
<pre><code class="language-ruby">defmodule KVTest do
  use ExUnit.Case

  def hello do
    :world
  end

  test &quot;greets the world&quot; do
    assert hello() == :world
  end
end
</code></pre>
<p>It feels like a functional Ruby.</p>
<p>Elixir applications use the <a href="https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html">Mix</a> build tool as a task runner. With that, you can scaffold projects and code, compile, test, run, manage dependencies, run database migrations, and more. Everything runs on top of OTP (Open Telecom Platform), a set of Erlang libraries and tools. And inside OTP you will find BEAM, the virtual machine that compiles Erlang and Elixir source code into bytecode and run it. So this is what you have access to when you run and Elixir application on Clever Cloud.</p>
<p>The most wide-used Elixir Framework is Phoenix. It feels like Ruby on Rails. And this is what we&#39;ll see how to deploy today. If you want to follow, make sure you have installed clever-tools and Mix</p>
<pre><code class="language-bash">mix phx.new hello # generate a project, say Yes to Fetch and install dependencies.
clever addon create postgresql-addon hello-phoenix-pg # create a postgres database
clever create --type elixir hello-phoenix # create an erlang application on Clever Cloud
clever service link-addon hello-phoenix-pg # link the database
clever env set CC_PHOENIX_ASSETS_DIR assets # Tell Clever Cloud where to run the js build
</code></pre>
<p>This will generate all the code you need to start a Phoenix application. Just like Rails, there are other tasks you can use to generate code. Take a look at the list of <a href="https://hexdocs.pm/phoenix/phoenix_mix_tasks.html#phoenix-specific-mix-tasks">available tasks</a>.</p>
<p>Next, we should configure the database access. By default the DATABASE_URL variable is defined in <code>./config/prod.secret.exs</code>. In this file you will define all the secrets, which is to say anything that should not be hardcoded in your configuration files. The DATABASE_URL should be changed to POSTGRESQL_ADDON_URI, which is what will be available in your app. There are three other variables we can use in this file. The PORT is already configured, we just have do set a secret and a pool size limit:</p>
<pre><code class="language-bash">clever env set SECRET_KEY_BASE Th3S3Cr3t
clever env set POOL_SIZE 5
</code></pre>
<p>And now all there is to do is run these:</p>
<pre><code class="language-bash">git init # initialize a git repository
git add . # add all the files
git commit -m&quot;init&quot; first commit
clever deploy # push your code to Clever Cloud
clever open # open the site in your default browser
</code></pre>
<p>And you should see the Phoenix default app running :) As with most applications running on Clever Cloud, you can configure your build and deployment through environment variables. Here&#39;s the current list of options:</p>
<table class="table table-bordered" style="text-align:center">
  <tr>
    <th><center>Name</center></th>
    <th><center>Description</center></th>
    <th><center>Default value</center></th>
  </tr>
  <tr>
    <td>CC_ELIXIR_VERSION</td
    <td>Choose the Elixir version between '1.8' or `1.9`</td>
    <td>`1.9`</td>
    <td></td>
  </tr>
  <tr>
    <td>CC_PHOENIX_ASSETS_DIR</td
    <td>Folder in which your Phoenix assets are located.</td>
    <td></td>
  </tr>
  <tr>
    <td>CC_PHOENIX_DIGEST_GOAL</td>
    <td>Phoenix digest goal.</td>
    <td>phx.digest</td>
  </tr>
  <tr>
    <td>CC_PHOENIX_SERVER_GOAL</td>
    <td>Phoenix server goal.</td>
    <td>phx.server</td>
  </tr>
  <tr>
    <td>CC_PHOENIX_RUN_ECTO_MIGRATE</td>
    <td>Whether to run 'mix ecto.migrate' or not.</td>
    <td>true</td>
  </tr>
</table>

<p>Now you know all the basics to start an Elixir or Phoenix project. Have a look at some other Elixir frameworks like the Bot Framework <a href="https://github.com/hedwig-im/hedwig">Hedwig</a> or the simpler web one like <a href="https://github.com/CrowdHailer/raxx/">Raxx</a>, <a href="https://github.com/hexedpackets/trot">trot</a> or <a href="https://github.com/elixir-maru/maru">Maru</a>. Please let us know what you think about this :) Happy hacking!</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/elixir-release-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Today we officialize our support for Elixir and Phoenix!</p>
<span id="more-2968"></span>

<p>We have been testing this with some of our customers for quite a while now. So there it is, you can now deploy any <a href="https://elixir-lang.org/">Elixir</a> code, like a <a href="https://hexdocs.pm/phoenix">Phoenix</a> based website for instance. But first, if you are not familiar with both Elixir and Phoenix, let&#39;s see what it is.</p>
<p>Straight from Wikipedia:</p>
<blockquote>
Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides productive tooling and extensible design.
</blockquote>

<p>Yes, it&#39;s using Erlang. The language and VM that powers, among others RabbitMQ, CouchDB, Facebook/Whatsapp messaging backend, and many Telcos backend. We are talking massive scale, concurrent usage here. To go back to elixir, here&#39;s what some simple code looks like:</p>
<pre><code class="language-ruby">defmodule KVTest do
  use ExUnit.Case

  def hello do
    :world
  end

  test &quot;greets the world&quot; do
    assert hello() == :world
  end
end
</code></pre>
<p>It feels like a functional Ruby.</p>
<p>Elixir applications use the <a href="https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html">Mix</a> build tool as a task runner. With that, you can scaffold projects and code, compile, test, run, manage dependencies, run database migrations, and more. Everything runs on top of OTP (Open Telecom Platform), a set of Erlang libraries and tools. And inside OTP you will find BEAM, the virtual machine that compiles Erlang and Elixir source code into bytecode and run it. So this is what you have access to when you run and Elixir application on Clever Cloud.</p>
<p>The most wide-used Elixir Framework is Phoenix. It feels like Ruby on Rails. And this is what we&#39;ll see how to deploy today. If you want to follow, make sure you have installed clever-tools and Mix</p>
<pre><code class="language-bash">mix phx.new hello # generate a project, say Yes to Fetch and install dependencies.
clever addon create postgresql-addon hello-phoenix-pg # create a postgres database
clever create --type elixir hello-phoenix # create an erlang application on Clever Cloud
clever service link-addon hello-phoenix-pg # link the database
clever env set CC_PHOENIX_ASSETS_DIR assets # Tell Clever Cloud where to run the js build
</code></pre>
<p>This will generate all the code you need to start a Phoenix application. Just like Rails, there are other tasks you can use to generate code. Take a look at the list of <a href="https://hexdocs.pm/phoenix/phoenix_mix_tasks.html#phoenix-specific-mix-tasks">available tasks</a>.</p>
<p>Next, we should configure the database access. By default the DATABASE_URL variable is defined in <code>./config/prod.secret.exs</code>. In this file you will define all the secrets, which is to say anything that should not be hardcoded in your configuration files. The DATABASE_URL should be changed to POSTGRESQL_ADDON_URI, which is what will be available in your app. There are three other variables we can use in this file. The PORT is already configured, we just have do set a secret and a pool size limit:</p>
<pre><code class="language-bash">clever env set SECRET_KEY_BASE Th3S3Cr3t
clever env set POOL_SIZE 5
</code></pre>
<p>And now all there is to do is run these:</p>
<pre><code class="language-bash">git init # initialize a git repository
git add . # add all the files
git commit -m&quot;init&quot; first commit
clever deploy # push your code to Clever Cloud
clever open # open the site in your default browser
</code></pre>
<p>And you should see the Phoenix default app running :) As with most applications running on Clever Cloud, you can configure your build and deployment through environment variables. Here&#39;s the current list of options:</p>
<table class="table table-bordered" style="text-align:center">
  <tr>
    <th><center>Name</center></th>
    <th><center>Description</center></th>
    <th><center>Default value</center></th>
  </tr>
  <tr>
    <td>CC_ELIXIR_VERSION</td
    <td>Choose the Elixir version between '1.8' or `1.9`</td>
    <td>`1.9`</td>
    <td></td>
  </tr>
  <tr>
    <td>CC_PHOENIX_ASSETS_DIR</td
    <td>Folder in which your Phoenix assets are located.</td>
    <td></td>
  </tr>
  <tr>
    <td>CC_PHOENIX_DIGEST_GOAL</td>
    <td>Phoenix digest goal.</td>
    <td>phx.digest</td>
  </tr>
  <tr>
    <td>CC_PHOENIX_SERVER_GOAL</td>
    <td>Phoenix server goal.</td>
    <td>phx.server</td>
  </tr>
  <tr>
    <td>CC_PHOENIX_RUN_ECTO_MIGRATE</td>
    <td>Whether to run 'mix ecto.migrate' or not.</td>
    <td>true</td>
  </tr>
</table>

<p>Now you know all the basics to start an Elixir or Phoenix project. Have a look at some other Elixir frameworks like the Bot Framework <a href="https://github.com/hedwig-im/hedwig">Hedwig</a> or the simpler web one like <a href="https://github.com/CrowdHailer/raxx/">Raxx</a>, <a href="https://github.com/hexedpackets/trot">trot</a> or <a href="https://github.com/elixir-maru/maru">Maru</a>. Please let us know what you think about this :) Happy hacking!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Announcing New PHP Versions</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2016/01/15/announcing-new-php-versions/</link>
		
		<dc:creator><![CDATA[Julien Durillon]]></dc:creator>
		<pubDate>Fri, 15 Jan 2016 16:15:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2016/01/15/announcing-new-php-versions/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>So, we <em>have</em> been a bit late when it came to supporting PHP 5.6. But we had a good reason for that! We were reworking the PHP scalers to create a single PHP scaler that could handle any PHP versions we would install on it. So we are finally getting PHP 5.6 and 7.0 out in the open.</p>
<p>But that&#39;s not all! Previously, selecting your PHP version was done upon application creation once and for all. Changing the PHP version required you to create a new application and to migrate your code (and data).</p>
<p>Now, you can change the PHP version by setting an environment variable and redeploying your application! Just set the PHP_VERSION variable to one of the following values:</p>
<ul>
<li>5.4</li>
<li>5.5</li>
<li>5.6</li>
<li>7.0</li>
</ul>
<p>Then redeploy your application, <em>et voilà</em>!</p>
<p>You can now test different versions of PHP as much as you want without setting up your environment every time! In the console, select the <code>PHP (beta)</code> application type when creating a new app. Once the beta will be over, you will see only one <code>PHP</code> option instead of <code>PHP 5.4</code> and <code>PHP 5.5</code>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/php-multi-update-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>So, we <em>have</em> been a bit late when it came to supporting PHP 5.6. But we had a good reason for that! We were reworking the PHP scalers to create a single PHP scaler that could handle any PHP versions we would install on it. So we are finally getting PHP 5.6 and 7.0 out in the open.</p>
<p>But that&#39;s not all! Previously, selecting your PHP version was done upon application creation once and for all. Changing the PHP version required you to create a new application and to migrate your code (and data).</p>
<p>Now, you can change the PHP version by setting an environment variable and redeploying your application! Just set the PHP_VERSION variable to one of the following values:</p>
<ul>
<li>5.4</li>
<li>5.5</li>
<li>5.6</li>
<li>7.0</li>
</ul>
<p>Then redeploy your application, <em>et voilà</em>!</p>
<p>You can now test different versions of PHP as much as you want without setting up your environment every time! In the console, select the <code>PHP (beta)</code> application type when creating a new app. Once the beta will be over, you will see only one <code>PHP</code> option instead of <code>PHP 5.4</code> and <code>PHP 5.5</code>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introducing io.js VS Node.js &#8211; Press Start</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2015/01/23/introducing-io-js/</link>
		
		<dc:creator><![CDATA[Julien Durillon]]></dc:creator>
		<pubDate>Fri, 23 Jan 2015 15:22:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[iojs]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2015/01/23/introducing-io-js/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Change is happening in the Node landscape.<br>A group of rebels forked the main Node project, tired to wait for new versions and ES6 features. Their goal is to provide a npm compatible framework that always runs over the latest V8 version. The underlying goal is to profit from ES6 features that are being implemented in V8.  </p>
<p>Today, Clever Cloud gives you the possiblity to run your io.js app in the cloud.</p>
<span id="more-2857"></span>

<link href='//fonts.googleapis.com/css?family=Press+Start+2P' rel='stylesheet' type='text/css'>
<h2 class="quotes" style="font-family: 'Press Start 2P', cursive;">PRESS START</h2>

<p><em>A soundtrack is available for this post, in order to cope with its visual artwork:</em></p>
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/132124579&amp;auto_play=false&amp;hide_related=true&amp;player_type=tiny&amp;show_comments=flase&amp;show_user=false&amp;show_reposts=false&amp;visual=false"></iframe>

<h2 id="here-comes-the-rain-again">Here comes the rain again</h2>
<blockquote>
<p>It is inevitable. <small>Agent Smith, Matrix Reloaded (2003)</small></p>
</blockquote>
<p>Open Source generates diversity. Node.js fork io.js hits its version 1.0 (<a href="https://iojs.org/dist/v1.0.4/">1.0.4 now</a>). After a slight clash with Joyent last year, one of the Node.js developers, <a href="https://twitter.com/indutny">Fedor Indutny</a>, decided to go on his own to maintain a new version of Node.js.<br>As mentionned above, the goal it to support the features of version 6 of the <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ECMA-262 specification [PDF]</a>, which implementation timeframe was judged too slow on Node.js.</p>
<h2 id="why-is-supporting-iojs-great">Why is supporting io.js great?</h2>
<p>While it is great to have a production-ready environment, addressing stability and security concerns, we are still nerds. We love to use cutting edge technology. The io.js framewok just released version 1.0.4. This is not a stable version. It is just a version different enough from the node.js project that io people just felt they needed to express it in the version number.</p>
<h2 id="is-io-going-to-replace-nodejs-on-clever-cloud">Is io going to replace Node.js on Clever Cloud?</h2>
<p>No. We will go on supporting Node.js and io together. For now, the default is the latest Node.js version. In the future, the standard for server-side javascript might be io, or Node.js, or another framework that does not exist yet. It is still a young ecosystem.<br>Even if the entire community switches to another Node.js fork, we will still support Node.js for compatibility reasons.</p>
<h2 id="how-do-i-use-iojs-on-clever-cloud">How do I use io.js on Clever Cloud?</h2>
<p>It&#39;s fairly simple: as you specified the Node.js version in package.json, you just prefix the version with io.js:</p>
<pre><code class="language-javascript">{
  &quot;engines&quot;: {
    &quot;node&quot;: &quot;iojs-v1.0.3&quot;
  }
}
</code></pre>
<p>And that&#39;s it! The &quot;node&quot;  executable will be the one provided by io.js.</p>
<h2 id="what-can-i-do-with-iojs">What can I do with io.js?</h2>
<p>First, you can do everything you could do with Node.js. In addition to that, io.js is mostly about new features. Check the &quot;ES6 support&quot; page: <a href="https://iojs.org/es6.html">https://iojs.org/es6.html</a>.<br>You can use Map instead of Object, you have out-of-the box Promises/A+, you can (and will) use the &quot;let&quot; keyword…</p>
<p><a href="https://github.com/CleverCloud/demo-iojs">Try it now on Clever Cloud</a>!</p>
<p style="font-size:11px">Credits & Thanks to <a href="http://nervewax.com/" rel="noopener noreferrer" target="_blank">nervewax</a> for its great background image used for this post.</p>

<style type="text/css">
.quotes {display: none;}
@media (min-width: 1200px){
  .quotes {
    display: block;
    position: absolute;
    top: -200px;
    color: #14A2FC !important;
    text-align: center;
    width: 100%;
    animation: flickerAnimation 2s infinite;
    -webkit-animation: flickerAnimation 2.5s infinite;
  }
  @keyframes flickerAnimation {
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-o-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-moz-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-webkit-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  .animate-flicker {
     -webkit-animation: flickerAnimation 1s infinite;
     -moz-animation: flickerAnimation 1s infinite;
     -o-animation: flickerAnimation 1s infinite;
      animation: flickerAnimation 1s infinite;
  }
}
</style>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/iojs-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Change is happening in the Node landscape.<br>A group of rebels forked the main Node project, tired to wait for new versions and ES6 features. Their goal is to provide a npm compatible framework that always runs over the latest V8 version. The underlying goal is to profit from ES6 features that are being implemented in V8.  </p>
<p>Today, Clever Cloud gives you the possiblity to run your io.js app in the cloud.</p>
<span id="more-2857"></span>

<link href='//fonts.googleapis.com/css?family=Press+Start+2P' rel='stylesheet' type='text/css'>
<h2 class="quotes" style="font-family: 'Press Start 2P', cursive;">PRESS START</h2>

<p><em>A soundtrack is available for this post, in order to cope with its visual artwork:</em></p>
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/132124579&amp;auto_play=false&amp;hide_related=true&amp;player_type=tiny&amp;show_comments=flase&amp;show_user=false&amp;show_reposts=false&amp;visual=false"></iframe>

<h2 id="here-comes-the-rain-again">Here comes the rain again</h2>
<blockquote>
<p>It is inevitable. <small>Agent Smith, Matrix Reloaded (2003)</small></p>
</blockquote>
<p>Open Source generates diversity. Node.js fork io.js hits its version 1.0 (<a href="https://iojs.org/dist/v1.0.4/">1.0.4 now</a>). After a slight clash with Joyent last year, one of the Node.js developers, <a href="https://twitter.com/indutny">Fedor Indutny</a>, decided to go on his own to maintain a new version of Node.js.<br>As mentionned above, the goal it to support the features of version 6 of the <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ECMA-262 specification [PDF]</a>, which implementation timeframe was judged too slow on Node.js.</p>
<h2 id="why-is-supporting-iojs-great">Why is supporting io.js great?</h2>
<p>While it is great to have a production-ready environment, addressing stability and security concerns, we are still nerds. We love to use cutting edge technology. The io.js framewok just released version 1.0.4. This is not a stable version. It is just a version different enough from the node.js project that io people just felt they needed to express it in the version number.</p>
<h2 id="is-io-going-to-replace-nodejs-on-clever-cloud">Is io going to replace Node.js on Clever Cloud?</h2>
<p>No. We will go on supporting Node.js and io together. For now, the default is the latest Node.js version. In the future, the standard for server-side javascript might be io, or Node.js, or another framework that does not exist yet. It is still a young ecosystem.<br>Even if the entire community switches to another Node.js fork, we will still support Node.js for compatibility reasons.</p>
<h2 id="how-do-i-use-iojs-on-clever-cloud">How do I use io.js on Clever Cloud?</h2>
<p>It&#39;s fairly simple: as you specified the Node.js version in package.json, you just prefix the version with io.js:</p>
<pre><code class="language-javascript">{
  &quot;engines&quot;: {
    &quot;node&quot;: &quot;iojs-v1.0.3&quot;
  }
}
</code></pre>
<p>And that&#39;s it! The &quot;node&quot;  executable will be the one provided by io.js.</p>
<h2 id="what-can-i-do-with-iojs">What can I do with io.js?</h2>
<p>First, you can do everything you could do with Node.js. In addition to that, io.js is mostly about new features. Check the &quot;ES6 support&quot; page: <a href="https://iojs.org/es6.html">https://iojs.org/es6.html</a>.<br>You can use Map instead of Object, you have out-of-the box Promises/A+, you can (and will) use the &quot;let&quot; keyword…</p>
<p><a href="https://github.com/CleverCloud/demo-iojs">Try it now on Clever Cloud</a>!</p>
<p style="font-size:11px">Credits & Thanks to <a href="http://nervewax.com/" rel="noopener noreferrer" target="_blank">nervewax</a> for its great background image used for this post.</p>

<style type="text/css">
.quotes {display: none;}
@media (min-width: 1200px){
  .quotes {
    display: block;
    position: absolute;
    top: -200px;
    color: #14A2FC !important;
    text-align: center;
    width: 100%;
    animation: flickerAnimation 2s infinite;
    -webkit-animation: flickerAnimation 2.5s infinite;
  }
  @keyframes flickerAnimation {
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-o-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-moz-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  @-webkit-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0; }
    100% { opacity:1; }
  }
  .animate-flicker {
     -webkit-animation: flickerAnimation 1s infinite;
     -moz-animation: flickerAnimation 1s infinite;
     -o-animation: flickerAnimation 1s infinite;
      animation: flickerAnimation 1s infinite;
  }
}
</style>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
