Bonjour !
Toutes les bonnes histoires ont une fin. Et notre histoire sur la façon dont nous avons trouvé une solution pour contourner le Grand Firewall de Chine ne fait pas exception. Je suis donc ravi de partager avec vous la derniÚre partie, la partie finale à ce sujet.
Dans la partie prĂ©cĂ©dente, nous avons parlĂ© de nombreux bancs d'essai que nous avons conçus et des rĂ©sultats qu'ils ont donnĂ©s. Et nous nous Ă©tions arrĂȘtĂ©s sur le fait qu'il serait bon d'ajouter un CDN ! pour la cohĂ©sion de notre schĂ©ma.
Je vais vous raconter comment nous avons testé Alibaba Cloud CDN, Tencent Cloud CDN et Akamai, et quelle solution nous avons finalement choisie. Et bien sûr, nous ferons un résumé.

Alibaba Cloud CDN
Nous sommes hébergés chez Alibaba Cloud, utilisant IPSEC et CEN de leur part. Il serait logique de commencer par essayer leurs solutions.
Alibaba Cloud propose deux types de produits qui pourraient nous convenir : CDN et DCDN. La premiĂšre option est un CDN classique pour un domaine spĂ©cifique (sous-domaine). La seconde option se dĂ©chiffre en Dynamic Route for CDN (que j'appelle CDN dynamique), qui peut ĂȘtre activĂ© en mode Full-site (pour les domaines wildcard), il met Ă©galement en cache la statique et accĂ©lĂšre le contenu dynamique, c'est-Ă -dire que la dynamique de la page sera Ă©galement chargĂ©e via les rĂ©seaux rapides du fournisseur. C'est important pour nous, car notre site est principalement dynamique, utilisant de nombreux sous-domaines, et il est plus pratique de configurer le CDN une seule fois pour âl'astĂ©risqueâ â *.semrushchina.cn.
Nous avions déjà vu ce produit lors des premiÚres étapes de notre projet en Chine, mais à l'époque, il ne fonctionnait pas encore, et les développeurs promettaient que le produit serait bientÎt disponible pour tous les clients. Et cela a été fait.
Dans DCDN, vous pouvez :
- configurer la terminaison SSL avec votre propre certificat,
- activer l'accélération du contenu dynamique,
- configurer de maniĂšre flexible le cache des fichiers statiques,
- effectuer un purge du cache,
- faire passer des web sockets,
- activer la compression et mĂȘme HTML Beautifier.
En gros, tout comme chez les grands fournisseurs de CDN.
AprÚs avoir spécifié l'Origin (l'endroit vers lequel iront les serveurs edge du CDN), il ne reste plus qu'à créer un CNAME pour l'astérisque, pointant vers all.semrushchina.cn.w.kunluncan.com (ce CNAME a été obtenu dans la console Alibaba Cloud), et le CDN fonctionnera.
D'aprÚs les résultats des tests, ce CDN nous a beaucoup aidés. Les statistiques sont ci-dessous.
Solution
Uptime
Médiane
75e percentile
95e percentile
Cloudflare
86.6
18s
30s
60s
IPsec
99.79
18s
21s
30s
CEN
99.75
16s
21s
27s
CEN/IPsec + GLB
99.79
13s
16s
25s
Ali CDN + CEN/IPsec + GLB
99.75
10s
12.8s
17.3s
Ce sont de trĂšs bons rĂ©sultats, surtout si on les compare Ă ceux d'auparavant. Mais nous savions que le test de la version amĂ©ricaine de notre site www.semrush.com s'effectue en moyenne depuis les Ătats-Unis en 8,3 secondes (valeur trĂšs approximative). Il y a du chemin Ă parcourir. De plus, il y avait d'autres fournisseurs de CDN qui mĂ©ritaient d'ĂȘtre testĂ©s.
Nous passons ainsi en douceur Ă un autre gĂ©ant du marchĂ© chinois â Tencent.
Tencent Cloud
Tencent dĂ©veloppe encore son cloud â cela se voit par le petit nombre de produits. Au cours de son utilisation, nous avons voulu tester non seulement leur CDN mais aussi l'infrastructure rĂ©seau dans son ensemble :
- ont-ils quelque chose qui ressemble Ă CEN ?
- Comment fonctionne leur IPSEC ? Est-ce rapide, quel est leur uptime ?
- ont-ils du Anycast ?

Nous allons examiner ces questions séparément.
Analog CEN
Tencent dispose d'un produit Cloud Connect Network (), permettant de connecter entre eux des VPC de différentes régions, y compris des régions à l'intérieur et à l'extérieur de la Chine. Le produit est actuellement en version beta interne, et il faut créer un ticket pour demander à y accéder. D'aprÚs le support, nous avons appris que les comptes globaux (pas de citoyens chinois ou de personnes morales) ne peuvent pas participer au programme de test beta et ne peuvent généralement pas connecter une région en Chine avec une région à l'extérieur. 1-0 en faveur d'Ali Cloud.
IPSEC
La rĂ©gion la plus au sud de Tencent est Guangzhou. Nous avons créé un tunnel et l'avons connectĂ© Ă la rĂ©gion de Hong Kong dans GCP (Ă l'Ă©poque, cette rĂ©gion Ă©tait dĂ©jĂ accessible). Nous avons Ă©galement ouvert en mĂȘme temps un deuxiĂšme tunnel dans Ali Cloud de Shenzhen Ă Hong Kong. Il s'est avĂ©rĂ© qu'Ă travers le rĂ©seau de Tencent, la latence vers Hong Kong est globalement meilleure (10 ms) que de Shenzhen Ă Hong Kong dans Ali (120 ms â quoi ?). Mais cela n'accĂ©lĂ©rait en aucun cas le fonctionnement du site orientĂ© vers Tencent et ce tunnel, ce qui Ă©tait un fait surprenant et prouvait encore une fois que : la latence â pour la Chine, ce n'est pas un indicateur sur lequel il faut vraiment se concentrer lors du dĂ©veloppement d'une solution pour le contournement du pare-feu chinois.
Anycast Internet Acceleration
Un autre produit permettant de travailler via IP anycast â . Mais il est Ă©galement inaccessible aux comptes globaux, donc je n'en parlerai pas, mais savoir qu'un tel produit existe peut ĂȘtre utile.
Mais le test de CDN a montrĂ© des rĂ©sultats plutĂŽt intĂ©ressants. Le CDN de Tencent ne peut pas ĂȘtre activĂ© sur un site complet, seulement sur des domaines spĂ©cifiques. Nous avons installĂ© des domaines et dirigĂ© du trafic vers eux :

Il s'est avéré que ce CDN a cette fonction : Optimisation du trafic transfrontalier. Cette fonctionnalité devrait réduire les coûts de passage du trafic à travers le pare-feu chinois. En tant que Origin adresse IP du GLB de Google (GLB anycast). Ainsi, nous voulions simplifier l'architecture du projet.
Les rĂ©sultats ont Ă©tĂ© trĂšs bons â au niveau de l'Ali Cloud CDN, et parfois mĂȘme meilleurs. C'est surprenant, car en cas de rĂ©ussite des tests, il serait possible de se passer d'une part importante de l'infrastructure, des tunnels, CEN, des serveurs virtuels, etc.
Nous avons peu apprécié cette joie, car un problÚme est apparu : les tests dans Catchpoint échouaient pour le fournisseur d'accÚs internet China Mobile. Nous avons reçu un timeout via le CDN de Tencent depuis n'importe quelle localisation. La correspondance avec le support technique n'a rien donné. Pendant environ un jour, nous avons essayé de résoudre ce problÚme, mais sans succÚs.
à ce moment-là , j'étais en Chine, mais je n'ai pas pu trouver de Wi-Fi public dans le réseau de ce fournisseur pour vérifier le problÚme personnellement. En dehors de cela, tout semblait rapide et bon.
Cependant, étant donné que l'opérateur China Mobile fait partie des trois plus grands opérateurs, nous avons dû renvoyer le trafic vers l'Ali CDN.
Mais dans l'ensemble, c'était une solution assez intéressante qui mérite un test et un dépannage plus approfondis.
Akamai
Le dernier fournisseur CDN que nous avons testé est Akamai. C'est un grand fournisseur qui possÚde son propre réseau en Chine. Bien sûr, nous ne pouvions pas passer à cÎté.

DĂšs le dĂ©part, nous avons convenu avec Akamai d'une pĂ©riode d'essai, afin que nous puissions activer le domaine et voir comment il fonctionnerait sur leur rĂ©seau. Je dĂ©crirai les rĂ©sultats de tous les tests sous forme de âCe que j'ai aimĂ©â et âCe que je n'ai pas aimĂ©â, ainsi que les rĂ©sultats des tests.
Ce que j'ai aimé :
- Les équipes d'Akamai sont trÚs aidantes dans toutes les questions et nous ont accompagnés à chaque étape des tests. Ils ont constamment cherché à améliorer quelque chose de leur cÎté. Ils ont donné de bons conseils techniques.
- Akamai fonctionne environ 10 à 15 % plus lentement que notre solution via Ali Cloud CDN. Ce qui est impressionnant, c'est que pour Akamai, nous avons indiqué l'adresse IP du GLB en tant qu'origine, ce qui signifie que le trafic ne passait pas par notre solution (il est donc potentiellement possible de se passer d'une part de l'infrastructure). Cependant, les résultats des tests ont montré que cette option était moins bonne que notre solution actuelle (les résultats comparatifs ci-dessous).
- Il a été testé à la fois comme origine GLB et comme origine en Chine. Les deux options sont à peu prÚs identiques.
- Oui Sure Route (optimisation automatique du routage). Il est possible de placer un objet de test sur l'Origin, et les serveurs Edge d'Akamai essaieront de l'obtenir (appel GET classique). Pour ces requĂȘtes, la vitesse et d'autres mĂ©triques sont mesurĂ©es, sur la base desquelles le rĂ©seau Akamai optimise les routes, afin que le trafic circule plus rapidement pour notre site et il devient Ă©vident que l'activation de cette fonctionnalitĂ© a rĂ©ellement un impact significatif sur la vitesse de notre site.
- La versionnage de la configuration dans l'interface web est formidable. Il est possible de faire un Compare pour les versions, de voir un diff. Consulter les versions précédentes.
- Il est possible de dĂ©ployer une nouvelle version d'abord uniquement sur le rĂ©seau Staging d'Akamai â un rĂ©seau identique Ă celui de production, mais ce chemin n'affecte pas les utilisateurs rĂ©els. Pour ce test, il faut effectuer un spoofing des enregistrements DNS sur la machine locale.
- Une vitesse de chargement trĂšs rapide Ă travers leur rĂ©seau pour de gros fichiers statiques, ainsi que pour tout autre type de fichiers. Un fichier du cache « froid » est rĂ©cupĂ©rĂ© bien plus rapidement qu'un mĂȘme fichier du cache « froid » d'Ali CDN. Pour le cache « chaud », la vitesse est dĂ©jĂ plus ou moins Ă©quivalente.
Test Ali CDN :
root@shenzhen1:~# curl -o /dev/null -w@curl_time https://en.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
% Total % Received % Xferd Vitesse Moyenne Temps Temps Temps Courant
Dload Upload Total Dépensé Restant Vitesse
100 5757k 0 5757k 0 0 513k 0 --:--:-- 0:00:11 --:--:-- 526k
time_namelookup: 0.004286
time_connect: 0.030107
time_appconnect: 0.117525
time_pretransfer: 0.117606
time_redirect: 0.000000
time_starttransfer: 0.840348
----------
time_total: 11.208119
----------
size_download: 5895467 Bytes
speed_download: 525999.000B/sTest Akamai :
root@shenzhen1:~# curl -o /dev/null -w@curl_time https://www.semrushchina.cn/my_reports/build/scripts/simpleInit.js?v=1551879212
% Total % Received % Xferd Vitesse Moyenne Temps Temps Temps Courant
Dload Upload Total Dépensé Restant Vitesse
100 5757k 0 5757k 0 0 1824k 0 --:--:-- 0:00:03 --:--:-- 1825k
time_namelookup: 0.509005
time_connect: 0.528261
time_appconnect: 0.577235
time_pretransfer: 0.577324
time_redirect: 0.000000
time_starttransfer: 1.327013
----------
time_total: 3.154850
----------
size_download: 5895467 Bytes
speed_download: 1868699.000B/sNous avons remarquĂ© que la situation de l'exemple ci-dessus dĂ©pend de diffĂ©rents facteurs. Au moment de rĂ©diger ce point, j'ai refait le test. Les rĂ©sultats pour les deux plateformes se sont rĂ©vĂ©lĂ©s ĂȘtre Ă peu prĂšs identiques. Cela nous indique que l'internet en Chine, mĂȘme pour de grands opĂ©rateurs et fournisseurs de cloud, se comporte parfois de maniĂšre variable.
à l'élément précédent, j'ajouterai un grand avantage d'Akamai : si Ali présente des pics de performances élevées et des temps trÚs bas (cela concerne à la fois Ali CDN, Ali CEN et Ali IPSEC), chez Akamai, peu importe combien de fois j'ai testé leur réseau, tout fonctionne de maniÚre stable.
Akamai a effectivement une large couverture en Chine et collabore avec de nombreux fournisseurs.
Ce qui n'a pas plu :
- Je n'aime pas l'interface web et le schĂ©ma de fonctionnement â c'est vraiment basique. Mais dans l'ensemble, on s'y habitue (probablement).
- Les résultats des tests sont pires que ceux de notre plateforme.
- Il y a plus d'erreurs dans les tests que sur notre plateforme (temps de disponibilité inférieur).
- Il n'y a pas de serveurs DNS propres en Chine. Cela entraßne de nombreuses erreurs dans les tests en raison des délais d'expiration de la résolution DNS.
- Ils ne fournissent pas leurs plages d'IP -> impossible d'écrire correctement set_real_ip_from sur nos serveurs.
Métriques (~3626 exécutions; toutes les métriques, sauf le temps de disponibilité, en ms; statistiques pour une période donnée) :
Fournisseur CDN
Médiane
75%
95%
Response
Réponse de la page web
Uptime
DNS
Connecter
Attente
Charge
SSL
Ali CDN
9195
10749
17489
1,715
10,745
99.531
57
17
927
479
200
Akamai
9783
11887
19888
2,352
11,550
98.980
424
91
1408
381
50
Distribution par percentiles (en ms) :
Percentile
Akamai
Ali CDN
10
7,092
6,942
20
7,775
7,583
30
8,446
8,092
40
9,146
8,596
50
9,783
9,195
60
10,497
9,770
70
11,371
10,383
80
12,670
11,255
90
15,882
13,165
100
91,592
91,596
La conclusion est la suivante : l'option avec Akamai est viable, mais elle ne fournit pas les mĂȘmes niveaux de stabilitĂ© et de vitesse que notre propre solution en combinaison avec Ali CDN.
Petites notes
Certains points n'ont pas été inclus dans le récit, mais j'aimerais aussi en parler.
Pékin + Tokyo et Hong Kong
Comme je l'ai mentionné plus haut, nous avons testé un tunnel IPSEC vers Hong Kong (HK). Mais nous avons également testé CEN vers HK. Il est légÚrement moins cher, et il était intéressant de voir comment il allait fonctionner entre des villes distantes de ~100 km. Il s'avÚre qu'il y a 100 ms de latence supplémentaire entre ces villes par rapport à notre option initiale (vers Taïwan). La vitesse et la stabilité étaient également meilleures pour Taïwan. Au final, nous avons conservé HK comme région de sauvegarde IPSEC.
De plus, nous avons tenté de mettre en place une telle installation :
- terminaison des clients à Pékin,
- IPSEC et CEN vers Tokyo,
- indiqué comme serveur d'origine dans le CDN Ali à Pékin.
Ce schĂ©ma n'Ă©tait pas aussi stable, bien que la vitesse globale ne soit pas infĂ©rieure Ă notre solution. En ce qui concerne le tunnel, j'ai remarquĂ© des baisses pĂ©riodiques mĂȘme pour CEN, qui Ă©tait censĂ© ĂȘtre stable. Nous sommes donc revenus Ă l'ancien schĂ©ma et avons abandonnĂ© cette mise en scĂšne.
Vous trouverez ci-dessous des statistiques sur la latence entre différentes régions par différents canaux. Cela peut intéresser certains.
IPsec
Ali cn-beijing GCP asia-northeast1 â 193ms
Ali cn-shenzhen GCP asia-east2 â 91ms
Ali cn-shenzhen GCP us-east4 â 200ms
CEN
Ali cn-beijing Ali ap-northeast-1 â 54ms (!)
Ali cn-shenzhen Ali cn-hongkong â 6ms (!)
Ali cn-shenzhen Ali us-east1 â 216ms
Informations générales sur Internet en Chine
En complément des problÚmes d'Internet décrits au début de l'article, dans la premiÚre partie.
- Internet en Chine fonctionne assez rapidement à l'intérieur.
- Cette conclusion est basĂ©e sur des tests rĂ©alisĂ©s sur des rĂ©seaux Wi-Fi publics dans divers endroits oĂč ces rĂ©seaux sont utilisĂ©s par un grand nombre de personnes.
- La vitesse de téléchargement et de téléversement vers les serveurs à l'intérieur de la Chine était d'environ 20 Mbit/s et 5-10 Mbit/s respectivement.
- La vitesse vers des serveurs en dehors de la Chine est simplement dérisoire, inférieure à 1 Mbit/s.
- Internet en Chine n'est pas trĂšs stable.
- Parfois, les sites peuvent se charger rapidement, parfois lentement (Ă la mĂȘme heure de la journĂ©e, mais diffĂ©rents jours), Ă condition que la configuration ne change pas. Nous l'avons observĂ© avec semrushchina.cn. Cela peut ĂȘtre attribuĂ© Ă Ali CDN, qui fonctionne Ă©galement de maniĂšre variable selon l'heure de la journĂ©e, la position des Ă©toiles, etc.
- Internet mobile est pratiquement partout en 4G ou 4G+. On capte dans le mĂ©tro, les ascenseurs â en gros, partout.
- L'idée que les utilisateurs chinois ne font confiance qu'aux domaines en .cn est un mythe. Nous l'avons vérifié directement auprÚs des utilisateurs.
- On peut voir comment redirige vers www.baidu.com (également en Chine continentale).
- De nombreuses ressources sont effectivement bloquées. Par exemple : google.com, Facebook, Twitter. Mais beaucoup de ressources de Google fonctionnent (bien sûr, ce n'est pas sur tous les Wi-Fi et le VPN n'est pas utilisé (cÎté routeur aussi, c'est certain).
- De nombreux domaines "techniques" des entreprises bloquées fonctionnent également. Cela signifie qu'il ne faut pas toujours éliminer toutes les ressources Google et autres qui semblent bloquées sans discernement. Il faut rechercher une liste de domaines interdits.
- Ils n'ont que trois principaux opérateurs Internet : China Unicom, China Telecom, China Mobile. Il y en a d'autres plus petits, mais leur part de marché est insignifiante.
Bonus : le schéma final de la solution

Conclusion
Il y a un an, nous avons lancĂ© le projet. Nous avons commencĂ© par le fait que notre site refusait complĂštement de fonctionner correctement depuis la Chine, et une simple requĂȘte GET avec curl prenait 5,5 secondes.
Ensuite, avec ces chiffres lors de la premiĂšre solution (Cloudflare) :
Solution
Uptime
Médiane
75e percentile
95e percentile
Cloudflare
86.6
18s
30s
60s
Nous avons finalement obtenu ces résultats (statistiques du dernier mois) :
Solution
Uptime
Médiane
75e percentile
95e percentile
Ali CDN + CEN/IPsec + GLB
99.86
8.8s
9.5s
13.7s
Comme on peut le voir, atteindre un uptime de 100 % n'a pas encore été possible, mais nous allons trouver une solution, et nous vous informerons des résultats dans un nouvel article :)
Respect à ceux qui ont lu les trois parties jusqu'à la fin. J'espÚre que tout cela vous a intéressé autant que moi lorsque je l'ai écrit.
P.S. Parties précédentes
Source : habr.com
