{"id":8464,"date":"2021-01-26T12:23:55","date_gmt":"2021-01-26T11:23:55","guid":{"rendered":"https:\/\/blog.capdata.fr\/?p=8464"},"modified":"2021-01-26T12:23:55","modified_gmt":"2021-01-26T11:23:55","slug":"azure-et-postgresql-en-paas","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/","title":{"rendered":"Azure et PostgreSQL en PaaS"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464&#038;title=Azure%20et%20PostgreSQL%20en%20PaaS\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Azure%20et%20PostgreSQL%20en%20PaaS&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Nous nous retrouvons pour le 2eme article de la s\u00e9rie de PostgreSQL en PaaS public, avec cette fois Azure.<\/p>\n<h1>Pr\u00e9sentation<\/h1>\n<p>Azure, bien que assez r\u00e9cent dans sa conqu\u00eate du cloud (f\u00e9vrier 2010) a beaucoup \u00e9toff\u00e9 son offre et notamment son offre PaaS BDD avec aujourd&#8217;hui pr\u00e8s d&#8217;une dizaine d&#8217;offres dont 3 enti\u00e8rement d\u00e9di\u00e9es \u00e0 PostgreSQL (hors offre Arc*) :<\/p>\n<ul>\n<li>Single server<\/li>\n<li>Flexible server (toujours en preview lors de cet article)<\/li>\n<li>Hyperscale (rachet\u00e9 \u00e0 <a href=\"https:\/\/www.citusdata.com\/\">Citusdata<\/a>)<\/li>\n<\/ul>\n<p>Cela montre \u00e0 quel point Microsoft veut asseoir sa position dans la fourniture d&#8217;une offre PaaS PostgreSQL, en effet, l&#8217;offre de base ne date que 2017.<\/p>\n<p>La strat\u00e9gie d&#8217;allocation d&#8217;instances sur Azure est de simplifier les choix disponibles, ainsi la quantit\u00e9 de m\u00e9moire est li\u00e9e au nombre de CPU.<\/p>\n<p><em>*Azure Arc permet de cr\u00e9er des infrastructures cloud hybride ou multi cloud<\/em><\/p>\n<h1>Azure PostgreSQL Single Server<\/h1>\n<p>C&#8217;est la premi\u00e8re offre PaaS PostgreSQL Azure \u00e0 avoir vu le jour, petite particularit\u00e9 \u00e9vidente uniquement pour Microsoft, le PaaS ne peut pas \u00eatre stopp\u00e9, red\u00e9marr\u00e9 oui mais pas arr\u00eat\u00e9 (\u00e0 moins de vouloir supprimer celui-ci).<\/p>\n<p>Les versions support\u00e9es vont de la 9.5 \u00e0 la 11 (sachant que la version 13 est sortie le 12\/11\/2020).<\/p>\n<p>Pour le provisionnement d&#8217;instance, on a le choix entre :<\/p>\n<ul>\n<li>Basic =&gt; Id\u00e9al pour les petites charges, instances de 1 \u00e0 2 CPU, 2Go de RAM \/ CPU<\/li>\n<li>General Purpose =&gt; de 2 \u00e0 64 CPU, 5Go de RAM \/ CPU<\/li>\n<li>Memory Optimized =&gt; de 2 \u00e0 32 CPU, 10Go de RAM \/ CPU<\/li>\n<\/ul>\n<h2>Stockage<\/h2>\n<p>Le stockage allouable va de 5Go \u00e0\u00a0 16To et peut \u00eatre configur\u00e9 pour profiter de &#8220;l&#8217;autogrow&#8221; (augmentation automatique du stockage), les IOPS sont li\u00e9es \u00e0 la quantit\u00e9 de stockage (3 IOPS\/GB, Min 100 IOPS, Max 20,000 IOPS), ce qui implique de devoir &#8220;sur-provisionner&#8221; pour avoir la quantit\u00e9 d&#8217;IOPS voulue.<\/p>\n<h1>Azure PostgreSQL Flexible Server<\/h1>\n<p>Ce service est en preview mais semble prometteur, en effet, il &#8220;comble&#8221; certaines lacunes du Single Server notamment le fait de pouvoir arr\u00eater le PaaS sans avoir \u00e0 le supprimer, ajout du support de la version 12 (support des versions 11 et 12 uniquement).<br \/>\nFlexible Server apporte \u00e9galement certaines &#8220;r\u00e9gressions&#8221; (qui devraient \u00eatre combl\u00e9es \u00e0 terme), notamment la perte de &#8220;l&#8217;autogrow&#8221;.<\/p>\n<h2>Le stockage<\/h2>\n<p>Le stockage s&#8217;alloue avec un minimum de 32Go et chaque nouvelle augmentation est le double du pr\u00e9c\u00e9dent, ainsi, on a les valeurs suivantes comme stockage disponible :<\/p>\n<div style=\"direction: ltr;\">\n<table style=\"direction: ltr; border-collapse: collapse; border: 1pt solid #A3A3A3;\" title=\"\" border=\"1\" summary=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">32<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">64<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">128<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">256<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">512<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">1024<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">2048<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">4096<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">8192<\/span><\/p>\n<\/td>\n<td style=\"background-color: white; vertical-align: top; width: .6034in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Segoe UI'; font-size: 11.0pt; color: #171717;\"><span style=\"font-weight: bold;\">16384<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Les IOPS sont ici aussi li\u00e9es au stockage (mais \u00e9galement au CPU) :<\/p>\n<\/div>\n<div style=\"direction: ltr;\">\n<table style=\"direction: ltr; border-collapse: collapse; border: 1pt solid #A3A3A3;\" title=\"\" border=\"1\" summary=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top; width: .6868in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Liberation Sans'; font-size: 11.0pt;\">Storage size<\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">32<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">64<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">128<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">256<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">512<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">1024<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">2048<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">4096<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">8192<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .5965in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">16384<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top; width: .6868in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'Liberation Sans'; font-size: 11.0pt;\">IOPS_MAX<\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">120<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">240<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">500<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">1100<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">2300<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">5000<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">7500<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6673in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">7500<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .6798in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">16000<\/span><\/p>\n<\/td>\n<td style=\"vertical-align: top; width: .5965in; padding: 4pt 4pt 4pt 4pt; border: 1pt solid #A3A3A3;\">\n<p style=\"margin: 0in; font-family: 'liberation serif'; font-size: 11.0pt; text-align: center;\"><span style=\"font-weight: bold;\">18000<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Attention, contrairement au Single Server le PaaS n\u00e9cessite un arr\u00eat pour upgrader le stockage.<\/p>\n<\/div>\n<h1>Azure PostgreSQL Hyperscale (Citus)<\/h1>\n<p>Cette version du PaaS reposant sur l&#8217;extension de Citus data (rachet\u00e9 par Microsoft en 2019) est surtout d\u00e9di\u00e9e aux gros entrep\u00f4ts de donn\u00e9es, en effet grace \u00e0 l&#8217;extension Citus les donn\u00e9es sont &#8220;shard\u00e9es&#8221; et les requ\u00eates parall\u00e9lisables sur de nombreux noeuds.<img decoding=\"async\" src=\"https:\/\/azurecomcdn.azureedge.net\/cvt-f6f2bc3807ab6c5507c5956acbbf0612a96ca236ff6a25e53e46bc3762357eba\/images\/page\/services\/postgresql\/val-prop2.png\" \/><\/p>\n<p>La mise en place de Citus et donc l&#8217;exploitation correcte d&#8217;hyperscale demande cependant d&#8217;avoir un sch\u00e9ma de donn\u00e9es se pr\u00eatant correctement car il faut pouvoir partitionner suivant une certaine clef, cependant, ceci \u00e9tant fait, les acc\u00e8s sont alors transparents (pas d&#8217;ajout de code suppl\u00e9mentaire) pour l&#8217;application (et\/ou les clients).<\/p>\n<h1>Performances<\/h1>\n<p>Seuls les PaaS Single Server et Flexible Server ont \u00e9t\u00e9 &#8220;Bench\u00e9s&#8221;.<\/p>\n<p>Comme lors de l&#8217;article pr\u00e9c\u00e9dent, l&#8217;outil benchmarkSQL a \u00e9t\u00e9 utilis\u00e9, les m\u00e9triques des PaaS ont \u00e9galement \u00e9t\u00e9 captur\u00e9es.<\/p>\n<p>Les sources sont disponibles \u00e0 l&#8217;adresse : <a href=\"https:\/\/github.com\/Capdata\/benchmarksql\">https:\/\/github.com\/Capdata\/benchmarksql<\/a> et mises \u00e0 jour en fonction des avanc\u00e9es, un article a d&#8217;ailleurs \u00e9t\u00e9 \u00e9crit montrant comment utiliser benchmarkSQL (<a href=\"https:\/\/blog.capdata.fr\/index.php\/postgresql-benchmarking\/\">https:\/\/blog.capdata.fr\/index.php\/postgresql-benchmarking\/<\/a>)<\/p>\n<p>Les PaaS ont tous la version 11 de PostgreSQL, les options PostgreSQL sont laiss\u00e9es \u00e0 leurs d\u00e9fauts, les instances de type Basic et Burstable ont \u00e9t\u00e9 \u00e9cart\u00e9es du test car trop limit\u00e9es en capacit\u00e9s.<\/p>\n<p>A chaque test, on utilise les 2 typologie d&#8217;instances (Memory Optimized et General Purpose) et on it\u00e8re \u00e0 la fois sur le nombre de CPU (et donc de fait la quantit\u00e9 de RAM) puis sur le stockage allou\u00e9 (de fa\u00e7on \u00e0 avoir plus d&#8217;IOPS), les r\u00e9sultats sont r\u00e9capitul\u00e9s ci-dessous, avec en abscisse l&#8217;ID du test compos\u00e9 du type d&#8217;instance (<strong>G<\/strong>eneral <strong>P<\/strong>urpose ou <strong>M<\/strong>emory <strong>O<\/strong>ptimised), du nombre de CPU et de la taille du stockage allou\u00e9 s\u00e9par\u00e9s par &#8220;_&#8221; et en ordonn\u00e9 le nombre de transactions par minute au 75eme <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Centile\">centile<\/a>\u00a0 :<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8476 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_v2.png\" alt=\"\" width=\"958\" height=\"664\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_v2.png 958w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_v2-300x208.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_v2-768x532.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/p>\n<ul>\n<li>Premier constat, il y a peu de diff\u00e9rences entre les instances de type Memory Optimized et General Purpose<\/li>\n<li>Deuxi\u00e8me constat, les PaaS de type Flexible Server (azurefs) sont nettement plus performants (en terme de nombre de transactions admissibles \/ minute) que les PaaS de type Single Server (azuress)<\/li>\n<li>Dernier constat, sur Flexible Server le stockage allou\u00e9 limite tr\u00e8s peu les IOPS, ie, pour du GP_16 (General purpose 16 CPU), si on compare les performances pour le stockage minimun\u00a0 (128 Go) au maximun (2 To) on a quasiment autant de transactions par minute, pour preuve la comparaison sur les IOPS des instances lors des benchs (ID correspond \u00e0 &lt;stockage allou\u00e9&gt;_&lt;nombre de cpu&gt;, les types d&#8217;instance General Purpose et Memory Optimized ont \u00e9t\u00e9 agr\u00e9g\u00e9es ici et on ne garde que le max de chaque) :<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8479 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_IOPS.png\" alt=\"\" width=\"958\" height=\"664\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_IOPS.png 958w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_IOPS-300x208.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_IOPS-768x532.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/p>\n<p>On a donc un r\u00e9el changement qu&#8217;\u00e0 partir de 1To de stockage provisionn\u00e9, les IOPS auraient \u00e9t\u00e9 limit\u00e9es par le CPU ? Voyons \u00e7a ci-dessous :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8478 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_CPU.png\" alt=\"\" width=\"958\" height=\"664\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_CPU.png 958w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_CPU-300x208.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_perf_CPU-768x532.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/p>\n<p>On a donc une limite sur les petites instances (de 2 et 4 CPU) mais plus rien apr\u00e8s.<\/p>\n<p>C&#8217;est donc une bonne nouvelle, reste \u00e0 voir maintenant si cela n&#8217;est pas du au fait que le service soit en mode preview car pour rappel, les IOPS max pour 128Go de stockage sont d&#8217;uniquement 500 contre pr\u00e8s de 4500 ici !!!<\/p>\n<p>&nbsp;<\/p>\n<h1>Comparaison financi\u00e8re<\/h1>\n<p>Dans le tableau ci-dessous les tarifs sont donn\u00e9s de fa\u00e7on indicative uniquement, le but \u00e9tant de comparer un co\u00fbt Single Server avec un Flexible Server.<\/p>\n<table border=\"0\" cellspacing=\"0\">\n<colgroup width=\"85\"><\/colgroup>\n<colgroup span=\"7\" width=\"100\"><\/colgroup>\n<tbody>\n<tr>\n<td rowspan=\"2\" align=\"center\" valign=\"middle\" bgcolor=\"#BF0041\" height=\"35\"><span style=\"color: #ffffff;\">SIZE<\/span><\/td>\n<td colspan=\"3\" align=\"center\" valign=\"middle\" bgcolor=\"#F7D1D5\"><span style=\"color: #000000;\">SingleServer<\/span><\/td>\n<td colspan=\"3\" align=\"center\" valign=\"middle\" bgcolor=\"#77BC65\"><span style=\"color: #000000;\">FlexibleServer<\/span><\/td>\n<td rowspan=\"2\" align=\"center\" valign=\"middle\" bgcolor=\"#BF0041\"><span style=\"color: #ffffff;\">Diff<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"left\" bgcolor=\"#FFD8CE\">CPU<\/td>\n<td align=\"left\" bgcolor=\"#FFD8CE\">Storage<\/td>\n<td align=\"left\" bgcolor=\"#FFD8CE\">Total<\/td>\n<td align=\"left\" bgcolor=\"#AFD095\"><span style=\"color: #000000;\">CPU<\/span><\/td>\n<td align=\"left\" bgcolor=\"#AFD095\"><span style=\"color: #000000;\">Storage<\/span><\/td>\n<td align=\"left\" bgcolor=\"#AFD095\"><span style=\"color: #000000;\">Total<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_2_128<\/td>\n<td align=\"right\">119<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">133<\/td>\n<td align=\"right\">116<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">130<\/td>\n<td align=\"right\">-3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_2_128<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">175<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">175<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_4_128<\/td>\n<td align=\"right\">237<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">251<\/td>\n<td align=\"right\">233<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">247<\/td>\n<td align=\"right\">-4<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_4_128<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">337<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">337<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_8_128<\/td>\n<td align=\"right\">474<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">488<\/td>\n<td align=\"right\">465<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">479<\/td>\n<td align=\"right\">-9<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_8_128<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">660<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">660<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_16_128<\/td>\n<td align=\"right\">949<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">963<\/td>\n<td align=\"right\">931<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">945<\/td>\n<td align=\"right\">-18<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_16_128<\/td>\n<td align=\"right\">1291<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1305<\/td>\n<td align=\"right\">1292<\/td>\n<td align=\"right\">14<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1306<\/td>\n<td align=\"right\">1<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_2_256<\/td>\n<td align=\"right\">119<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">146<\/td>\n<td align=\"right\">116<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">143<\/td>\n<td align=\"right\">-3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_2_256<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">188<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">188<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_4_256<\/td>\n<td align=\"right\">237<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">264<\/td>\n<td align=\"right\">233<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">260<\/td>\n<td align=\"right\">-4<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_4_256<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">350<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">350<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_8_256<\/td>\n<td align=\"right\">474<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">501<\/td>\n<td align=\"right\">465<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">492<\/td>\n<td align=\"right\">-9<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_8_256<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">673<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">673<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_16_256<\/td>\n<td align=\"right\">949<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">976<\/td>\n<td align=\"right\">931<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">958<\/td>\n<td align=\"right\">-18<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_16_256<\/td>\n<td align=\"right\">1291<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1318<\/td>\n<td align=\"right\">1292<\/td>\n<td align=\"right\">27<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1319<\/td>\n<td align=\"right\">1<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_2_512<\/td>\n<td align=\"right\">119<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">174<\/td>\n<td align=\"right\">116<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">171<\/td>\n<td align=\"right\">-3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_2_512<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">216<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">216<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_4_512<\/td>\n<td align=\"right\">237<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">292<\/td>\n<td align=\"right\">233<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">288<\/td>\n<td align=\"right\">-4<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_4_512<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">378<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">378<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_8_512<\/td>\n<td align=\"right\">474<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">529<\/td>\n<td align=\"right\">465<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">520<\/td>\n<td align=\"right\">-9<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_8_512<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">701<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">701<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_16_512<\/td>\n<td align=\"right\">949<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1004<\/td>\n<td align=\"right\">931<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">986<\/td>\n<td align=\"right\">-18<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_16_512<\/td>\n<td align=\"right\">1291<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1346<\/td>\n<td align=\"right\">1292<\/td>\n<td align=\"right\">55<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1347<\/td>\n<td align=\"right\">1<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_2_1024<\/td>\n<td align=\"right\">119<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">228<\/td>\n<td align=\"right\">116<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">225<\/td>\n<td align=\"right\">-3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_2_1024<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">270<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">270<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_4_1024<\/td>\n<td align=\"right\">237<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">346<\/td>\n<td align=\"right\">233<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">342<\/td>\n<td align=\"right\">-4<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_4_1024<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">432<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">432<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_8_1024<\/td>\n<td align=\"right\">474<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">583<\/td>\n<td align=\"right\">465<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">574<\/td>\n<td align=\"right\">-9<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_8_1024<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">755<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">755<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_16_1024<\/td>\n<td align=\"right\">949<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1058<\/td>\n<td align=\"right\">931<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1040<\/td>\n<td align=\"right\">-18<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_16_1024<\/td>\n<td align=\"right\">1291<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1400<\/td>\n<td align=\"right\">1292<\/td>\n<td align=\"right\">109<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1401<\/td>\n<td align=\"right\">1<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_2_2048<\/td>\n<td align=\"right\">119<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">337<\/td>\n<td align=\"right\">116<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">334<\/td>\n<td align=\"right\">-3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_2_2048<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">379<\/td>\n<td align=\"right\">161<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">379<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_4_2048<\/td>\n<td align=\"right\">237<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">455<\/td>\n<td align=\"right\">233<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">451<\/td>\n<td align=\"right\">-4<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_4_2048<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">541<\/td>\n<td align=\"right\">323<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">541<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_8_2048<\/td>\n<td align=\"right\">474<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">692<\/td>\n<td align=\"right\">465<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">683<\/td>\n<td align=\"right\">-9<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_8_2048<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">864<\/td>\n<td align=\"right\">646<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">864<\/td>\n<td align=\"right\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">GP_16_2048<\/td>\n<td align=\"right\">949<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1167<\/td>\n<td align=\"right\">931<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1149<\/td>\n<td align=\"right\">-18<\/td>\n<\/tr>\n<tr>\n<td align=\"left\" height=\"17\">MO_16_2048<\/td>\n<td align=\"right\">1291<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#FFD8CE\">1509<\/td>\n<td align=\"right\">1292<\/td>\n<td align=\"right\">218<\/td>\n<td align=\"right\" bgcolor=\"#AFD095\">1510<\/td>\n<td align=\"right\">1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Les instances Flexible Server sont donc moins ch\u00e8res, la plus grande diff\u00e9rence de tarif allant jusqu&#8217;\u00e0 18\u20ac pour les instances les plus grosses ce qui repr\u00e9sente presque 20% du tarif (je rappelle aussi que contrairement aux Single Server, les instances Flexible Server peuvent \u00eatre stopp\u00e9es, suspendant de fait leur co\u00fbt).<\/p>\n<h1>Conclusion<\/h1>\n<p>Plus performantes, moins ch\u00e8re, plus de fonctionnalit\u00e9s, les instances Flexible Server sont sans nul doute la prochaine it\u00e9ration des PaaS PostgreSQL sur Azure, reste \u00e0 savoir si les performances resteront apr\u00e8s le passage en General Availability.<\/p>\n<p>Au del\u00e0 de ce comparatif sur les performances pures, on peut voir \u00e0 quel point Microsoft investi dans le Cloud et notamment PostgreSQL.<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464&#038;title=Azure%20et%20PostgreSQL%20en%20PaaS\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Azure%20et%20PostgreSQL%20en%20PaaS&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8464\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Nous nous retrouvons pour le 2eme article de la s\u00e9rie de PostgreSQL en PaaS public, avec cette fois Azure. Pr\u00e9sentation Azure, bien que assez r\u00e9cent dans sa conqu\u00eate du cloud (f\u00e9vrier 2010) a beaucoup \u00e9toff\u00e9 son offre et notamment son&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":8466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[282,266],"tags":[],"class_list":["post-8464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-postgresql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Azure et PostgreSQL en PaaS - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure et PostgreSQL en PaaS - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Nous nous retrouvons pour le 2eme article de la s\u00e9rie de PostgreSQL en PaaS public, avec cette fois Azure. Pr\u00e9sentation Azure, bien que assez r\u00e9cent dans sa conqu\u00eate du cloud (f\u00e9vrier 2010) a beaucoup \u00e9toff\u00e9 son offre et notamment son&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-26T11:23:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_article.png\" \/>\n\t<meta property=\"og:image:width\" content=\"904\" \/>\n\t<meta property=\"og:image:height\" content=\"1300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Capdata team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Capdata team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\"},\"author\":{\"name\":\"Capdata team\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\"},\"headline\":\"Azure et PostgreSQL en PaaS\",\"datePublished\":\"2021-01-26T11:23:55+00:00\",\"dateModified\":\"2021-01-26T11:23:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\"},\"wordCount\":1160,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"articleSection\":[\"Azure\",\"PostgreSQL\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\",\"name\":\"Azure et PostgreSQL en PaaS - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2021-01-26T11:23:55+00:00\",\"dateModified\":\"2021-01-26T11:23:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure et PostgreSQL en PaaS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\",\"name\":\"Capdata team\",\"sameAs\":[\"https:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Azure et PostgreSQL en PaaS - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/","og_locale":"fr_FR","og_type":"article","og_title":"Azure et PostgreSQL en PaaS - Capdata TECH BLOG","og_description":"Nous nous retrouvons pour le 2eme article de la s\u00e9rie de PostgreSQL en PaaS public, avec cette fois Azure. Pr\u00e9sentation Azure, bien que assez r\u00e9cent dans sa conqu\u00eate du cloud (f\u00e9vrier 2010) a beaucoup \u00e9toff\u00e9 son offre et notamment son&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2021-01-26T11:23:55+00:00","og_image":[{"width":904,"height":1300,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2021\/01\/Azure_article.png","type":"image\/png"}],"author":"Capdata team","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Capdata team","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/"},"author":{"name":"Capdata team","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9"},"headline":"Azure et PostgreSQL en PaaS","datePublished":"2021-01-26T11:23:55+00:00","dateModified":"2021-01-26T11:23:55+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/"},"wordCount":1160,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"articleSection":["Azure","PostgreSQL"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/","url":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/","name":"Azure et PostgreSQL en PaaS - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2021-01-26T11:23:55+00:00","dateModified":"2021-01-26T11:23:55+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/azure-et-postgresql-en-paas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Azure et PostgreSQL en PaaS"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9","name":"Capdata team","sameAs":["https:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=8464"}],"version-history":[{"count":11,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8464\/revisions"}],"predecessor-version":[{"id":8511,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8464\/revisions\/8511"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/8466"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=8464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=8464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=8464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}