Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Hello!
Semua cerita yang baik akan berakhir. Dan kisah kami tentang cara kami menghasilkan penyelesaian untuk melepasi Tembok Api Cina dengan cepat tidak terkecuali. Oleh itu, saya bersegera untuk berkongsi dengan anda yang terakhir, bahagian akhir mengenai topik ini.

Pada bahagian sebelumnya kami bercakap tentang banyak bangku ujian yang kami hasilkan dan apakah keputusan yang mereka berikan. Dan kami memutuskan apa yang bagus untuk ditambah CDN! untuk kelikatan ke dalam skema kami.

Saya akan memberitahu anda cara kami menguji Alibaba Cloud CDN, Tencent Cloud CDN dan Akamai, dan perkara yang kami dapati. Dan sudah tentu, mari kita ringkaskan.

Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Alibaba Cloud CDN

Kami dihoskan di Alibaba Cloud dan menggunakan IPSEC dan CEN daripada mereka. Adalah logik untuk mencuba penyelesaian mereka terlebih dahulu.

Alibaba Cloud mempunyai dua jenis produk yang mungkin sesuai dengan kami: CDN ΠΈ DCDN. Pilihan pertama ialah CDN klasik untuk domain tertentu (subdomain). Pilihan kedua bermaksud Laluan Dinamik untuk CDN (Saya memanggilnya CDN dinamik), ia boleh didayakan dalam mod Tapak Penuh (untuk domain kad bebas), ia juga menyimpan kandungan statik dan mempercepatkan kandungan dinamik pada dirinya sendiri, iaitu, dinamik halaman juga akan dimuatkan melalui pembekal rangkaian pantas. Ini penting bagi kami, kerana pada asasnya tapak kami adalah dinamik, ia menggunakan banyak subdomain, dan lebih mudah untuk menyediakan CDN sekali untuk "asterisk" - *.semrushchina.cn.

Kami telah melihat produk ini pada peringkat awal projek Cina kami, tetapi kemudian ia masih belum berfungsi, dan pembangun berjanji bahawa produk itu akan tersedia untuk semua pelanggan tidak lama lagi. Dan dia melakukannya.

Dalam DCDN anda boleh:

  • konfigurasikan penamatan SSL dengan sijil anda,
  • membolehkan pecutan kandungan dinamik,
  • mengkonfigurasi caching fail statik secara fleksibel,
  • bersihkan cache,
  • soket web ke hadapan,
  • dayakan pemampatan dan juga HTML Beautifier.

Secara umum, semuanya adalah sama seperti orang dewasa dan penyedia CDN yang besar.

Selepas Origin (tempat di mana pelayan tepi CDN akan pergi) ditentukan, yang tinggal hanyalah mencipta CNAME untuk asterisk, merujuk all.semrushchina.cn.w.kunluncan.com (CNAME ini diterima dalam konsol Alibaba Cloud) dan CDN akan berfungsi.

Berdasarkan keputusan ujian, CDN ini banyak membantu kami. Statistik ditunjukkan di bawah.

keputusan
Uptime
median
75 Peratusan
95 Peratusan

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

Ini adalah keputusan yang sangat baik, terutamanya jika anda membandingkannya dengan jumlah nombor pada mulanya. Tetapi kami tahu bahawa ujian penyemak imbas versi Amerika laman web kami www.semrush.com dijalankan dari Amerika Syarikat dalam purata 8.3s (nilai yang sangat anggaran). Terdapat ruang untuk penambahbaikan. Selain itu, terdapat juga penyedia CDN yang menarik untuk diuji.

Jadi kami lancar beralih ke gergasi lain di pasaran China - Tencent.

Tencent Awan

Tencent baru sahaja membangunkan awannya - ini boleh dilihat daripada sebilangan kecil produk. Semasa menggunakannya, kami ingin menguji bukan sahaja CDN mereka, tetapi juga infrastruktur rangkaian mereka secara keseluruhan:

  • adakah mereka mempunyai sesuatu yang serupa dengan CEN?
  • Bagaimanakah IPSEC berfungsi untuk mereka? Adakah ia pantas, apakah masa beroperasi?
  • adakah mereka mempunyai Anycast?

Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Mari kita lihat soalan-soalan ini secara berasingan.

Analog CEN

Tencent ada produk Rangkaian Cloud Connect (CCN), membolehkan anda menyambungkan VPC dari wilayah berbeza, termasuk wilayah di dalam dan luar China. Produk kini dalam versi beta dalaman, dan anda perlu membuat tiket yang meminta untuk menyambung kepadanya. Kami mengetahui daripada sokongan bahawa akaun global (kami tidak bercakap tentang warganegara China atau entiti undang-undang) tidak boleh mengambil bahagian dalam program ujian beta dan, secara amnya, menghubungkan wilayah di dalam China dengan wilayah di luar. 1-0 berpihak kepada Ali Cloud

IPSEC

Wilayah paling selatan Tencent ialah Guangzhou. Kami memasang terowong dan menyambungkannya ke wilayah Hong Kong di GCP (kemudian wilayah ini telah pun tersedia). Terowong kedua di Ali Cloud dari Shenzhen ke Hong Kong juga dinaikkan pada masa yang sama. Ternyata melalui rangkaian Tencent kependaman ke Hong Kong secara amnya lebih baik (10ms) daripada dari Shenzhen ke Hong Kong ke Ali (120ms - apa?). Tetapi ini tidak sama sekali mempercepatkan kerja tapak yang bertujuan untuk bekerja melalui Tencent dan terowong ini, yang dengan sendirinya adalah fakta yang menakjubkan dan sekali lagi membuktikan perkara berikut: kependaman - untuk China ini bukan penunjuk yang benar-benar bernilai memberi perhatian semasa membangunkan penyelesaian untuk melepasi tembok api Cina.

Pecutan Internet Anycast

Produk lain yang membolehkan anda bekerja melalui IP anycast ialah AIA. Tetapi ia juga tidak tersedia untuk akaun global, jadi saya tidak akan memberitahu anda mengenainya, tetapi mengetahui bahawa produk sedemikian wujud mungkin berguna.

Tetapi ujian CDN menunjukkan beberapa keputusan yang cukup menarik. CDN Tencent tidak boleh didayakan pada tapak penuh, hanya pada domain tertentu. Kami membuat domain dan menghantar trafik kepada mereka:

Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Ternyata CDN ini mempunyai fungsi berikut: Pengoptimuman Trafik Merentas Sempadan. Ciri ini sepatutnya mengurangkan kos apabila trafik melalui tembok api Cina. Sebagai asal Alamat IP Google GLB (GLB anycast) telah ditentukan. Oleh itu, kami ingin memudahkan seni bina projek.

Hasilnya sangat baik - pada tahap Ali Cloud CDN, dan di beberapa tempat lebih baik. Ini mengejutkan, kerana jika ujian berjaya, anda boleh meninggalkan sebahagian besar infrastruktur, terowong, CEN, mesin maya, dll.

Kami tidak bergembira lama, kerana masalah telah didedahkan: ujian dalam Catchpoint gagal untuk pembekal Internet China Mobile. Dari mana-mana lokasi kami menerima tamat masa melalui CDN Tencent. Surat-menyurat dengan sokongan teknikal tidak membawa kepada apa-apa. Kami cuba menyelesaikan masalah ini selama kira-kira sehari, tetapi tiada apa yang berhasil.

Saya berada di China pada masa itu, tetapi tidak dapat mencari Wi-Fi awam pada rangkaian pembekal ini untuk mengesahkan masalah secara peribadi. Jika tidak semuanya kelihatan pantas dan baik.
Walau bagaimanapun, disebabkan China Mobile adalah salah satu daripada tiga pengendali terbesar, kami terpaksa mengembalikan trafik ke Ali CDN.
Tetapi secara keseluruhan, ini adalah penyelesaian yang agak menarik yang memerlukan ujian dan penyelesaian masalah yang lebih lama untuk masalah ini.

Akamai

Pembekal CDN terakhir yang kami uji ialah Akamai. Ini adalah pembekal besar yang mempunyai rangkaiannya di China. Sudah tentu, kami tidak dapat melepasinya.

Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Sejak awal lagi, kami bersetuju dengan Akamai untuk tempoh percubaan supaya kami boleh menukar domain dan melihat cara ia berfungsi pada rangkaian mereka. Saya akan menerangkan keputusan semua ujian dalam bentuk "Apa yang saya suka" dan "Apa yang saya tidak suka," dan saya juga akan memberikan keputusan ujian.

Apa yang saya suka:

  • Lelaki dari Akamai sangat membantu dalam semua soalan dan menemani kami pada semua peringkat ujian. Kami sentiasa cuba memperbaiki sesuatu di pihak kami. Mereka memberikan nasihat teknikal yang baik.
  • Akamai adalah kira-kira 10-15% lebih perlahan daripada penyelesaian kami melalui Ali Cloud CDN. Apa yang mengagumkan ialah dalam Origin for Akamai kami menyatakan alamat IP GLB, bermakna trafik tidak melalui penyelesaian kami (berpotensi kami boleh meninggalkan sebahagian daripada infrastruktur). Namun begitu, keputusan ujian menunjukkan bahawa penyelesaian ini lebih teruk daripada versi semasa kami (keputusan perbandingan di bawah).
  • Menguji kedua-dua Origin GLB dan Origin di China. Kedua-dua pilihan adalah lebih kurang sama.
  • Terdapat Laluan Pasti (pengoptimuman penghalaan automatik). Anda boleh mengehoskan objek ujian pada Origin, dan pelayan Akamai Edge akan cuba mengambilnya (GET biasa). Untuk permintaan ini, kelajuan dan metrik lain diukur, berdasarkan rangkaian Akamai mengoptimumkan laluan supaya trafik berjalan lebih pantas untuk tapak kami dan jelas sekali bahawa mendayakan ciri ini benar-benar memberi kesan yang kuat pada kelajuan tapak.
  • Membuat versi konfigurasi dalam antara muka web adalah hebat. Anda boleh lakukan Bandingkan untuk versi, lihat diff. Lihat versi sebelumnya.
  • Anda boleh melancarkan versi baharu terlebih dahulu hanya pada rangkaian Akamai Staging - rangkaian yang sama seperti pengeluaran, hanya cara ini tidak akan menjejaskan pengguna sebenar. Untuk ujian ini, anda perlu memalsukan rekod DNS pada mesin tempatan anda.
  • Kelajuan muat turun yang sangat pantas melalui rangkaian mereka untuk fail statik yang besar, dan, nampaknya, sebarang fail lain. Fail daripada cache "sejuk" diambil berkali-kali lebih cepat daripada fail yang sama daripada cache "sejuk" Ali CDN. Daripada cache "panas", kelajuan sudah sama, tambah atau tolak.

Ujian 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  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
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/s

Ujian 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  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
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/s

Kami mendapati bahawa keadaan dalam contoh di atas bergantung kepada pelbagai faktor. Pada masa menulis perkara ini, saya menjalankan ujian sekali lagi. Keputusan untuk kedua-dua platform adalah lebih kurang sama. Ini memberitahu kita bahawa Internet di China, walaupun untuk pengendali besar dan penyedia awan, berkelakuan berbeza dari semasa ke semasa.

Pada titik sebelumnya, saya akan menambah tambah besar untuk Akamai: jika Ali menunjukkan kilatan prestasi tinggi dan prestasi sangat rendah yang serupa (ini terpakai kepada Ali CDN, Ali CEN dan Ali IPSEC), maka Akamai, setiap masa, tidak kira bagaimana saya menguji rangkaian mereka, semuanya berfungsi dengan stabil.
Akamai mempunyai banyak liputan di China dan berfungsi melalui banyak pembekal.

Perkara yang saya tidak suka:

  • Saya tidak suka antara muka web dan cara ia berfungsi - ia sangat buruk. Tetapi pada dasarnya anda terbiasa dengannya (mungkin).
  • Keputusan ujian lebih teruk daripada tapak kami.
  • Terdapat lebih banyak ralat semasa ujian berbanding di tapak kami (masa aktif di bawah).
  • Kami tidak mempunyai pelayan DNS kami sendiri di China. Oleh itu terdapat banyak ralat dalam ujian kerana tamat masa penyelesaian DNS.
  • Mereka tidak menyediakan julat IP mereka -> tidak ada cara untuk mendaftarkan julat yang betul set_ip_sebenar daripada pada pelayan kami.

Metrik (~3626 larian; semua metrik kecuali Uptime, dalam ms; statistik untuk satu tempoh masa):

Pembekal CDN
median
75%
95%
Tindak balas
Respons halaman web
Uptime
DNS
Hubungi
Tunggu
Muatkan
SSL

AliCDN
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

Taburan mengikut Peratusan (dalam ms):

Peratusan
Akamai
AliCDN

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

Kesimpulannya ialah: pilihan Akamai berdaya maju, tetapi tidak memberikan kestabilan dan kelajuan yang sama seperti penyelesaian kami sendiri ditambah dengan Ali CDN.

Nota kecil

Beberapa detik tidak disertakan dalam cerita, tetapi saya ingin menulis tentangnya juga.

Beijing + Tokyo dan Hong Kong

Seperti yang saya katakan di atas, kami menguji terowong IPSEC ke Hong Kong (HK). Tetapi kami juga menguji CEN ke HK. Kosnya kurang sedikit, dan saya tertanya-tanya bagaimana ia akan berfungsi antara bandar dengan jarak ~100 km. Ternyata menarik bahawa kependaman antara bandar-bandar ini adalah 100ms lebih tinggi daripada versi asal kami (ke Taiwan). Kelajuan, kestabilan juga lebih baik untuk Taiwan. Akibatnya, kami meninggalkan HK sebagai wilayah IPSEC sandaran.

Di samping itu, kami cuba memasang pemasangan berikut:

  • penamatan pelanggan di Beijing,
  • IPSEC dan CEN ke Tokyo,
  • dalam Ali CDN pelayan di Beijing ditunjukkan sebagai asal.

Skim ini tidak begitu stabil, walaupun dari segi kelajuan ia secara amnya tidak kalah dengan penyelesaian kami. Mengenai terowong, saya telah melihat kejatuhan sekejap walaupun untuk CEN, yang sepatutnya stabil. Oleh itu, kami kembali kepada skema lama dan membongkar pementasan ini.

Di bawah ialah statistik tentang kependaman antara kawasan yang berbeza untuk saluran yang berbeza. Mungkin ada yang berminat dengannya.

IPsec
Ali cn-beijing <β€”> GCP asia-timur laut1 β€” 193ms
Ali cn-shenzhen <β€”> GCP asia-east2 β€” 91ms
Ali cn-shenzhen <β€”> GCP us-east4 β€” 200ms

CEN
Ali cn-beijing <β€”> Ali ap-timur laut-1 β€” 54ms (!)
Ali cn-shenzhen <β€”> Ali cn-hongkong β€” 6ms (!)
Ali cn-shenzhen <β€”> Ali us-east1 β€” 216ms

Maklumat am tentang Internet di China

Sebagai tambahan kepada masalah dengan Internet yang diterangkan pada awalnya, di bahagian pertama artikel.

  • Internet di China agak laju di dalamnya.
    • Kesimpulan dibuat berdasarkan ujian rangkaian Wi-Fi awam di pelbagai lokasi di mana rangkaian ini digunakan oleh sebilangan besar orang.
    • Kelajuan muat turun dan muat naik ke pelayan di dalam China adalah kira-kira 20 Mbit/s dan 5-10 Mbit/s, masing-masing.
    • Kelajuan ke pelayan di luar China hanya sedikit, kurang daripada 1 Mbit/s.
  • Internet di China tidak begitu stabil.
    • Kadangkala tapak boleh dibuka dengan cepat, kadangkala perlahan (pada masa hari yang sama pada hari yang berbeza), dengan syarat konfigurasi tidak berubah. Kami memerhatikan ini dengan contoh semrushchina.cn. Ini boleh dikaitkan dengan Ali CDN, yang juga berfungsi dengan cara ini dan bergantung pada masa hari, kedudukan bintang, dsb.
  • Internet Mudah Alih terdapat hampir di mana-mana 4G atau 4G+. Tangkap di kereta bawah tanah, lif - ringkasnya, di mana-mana.
  • Adalah mitos bahawa pengguna China hanya mempercayai domain dalam zon .cn. Kami mempelajari ini secara langsung daripada pengguna.
    • Anda boleh lihat bagaimana http://baidu.cn ubah hala ke www.baidu.com (di tanah besar China juga).
  • Banyak sumber memang disekat. Primitif: google.com, Facebook, Twitter. Tetapi banyak sumber Google berfungsi (sudah tentu, tidak pada semua Wi-Fi dan VPN tidak digunakan (di bahagian penghala juga, itu pasti).
  • Banyak domain "teknikal" syarikat yang disekat juga berfungsi. Ini bermakna anda tidak boleh selalu memotong semua Google dan sumber lain yang kelihatan disekat secara melulu. Anda perlu mencari beberapa senarai domain yang dilarang.
  • Mereka hanya mempunyai tiga pengendali Internet utama: China Unicom, China Telecom, China Mobile. Terdapat yang lebih kecil, tetapi bahagian pasaran mereka tidak penting

Bonus: gambarajah penyelesaian akhir

Bagaimana kami menerobos Tembok Api Besar China (Bahagian 3)

Jumlah

Setahun telah berlalu sejak permulaan projek. Kami bermula dengan fakta bahawa tapak kami pada umumnya enggan berfungsi seperti biasa dari China, dan hanya GET curl mengambil masa 5.5 saat.

Kemudian, dengan penunjuk ini dalam penyelesaian pertama (Cloudflare):

keputusan
Uptime
median
75 Peratusan
95 Peratusan

CloudFlare
86.6
18s
30s
60s

Kami akhirnya mencapai keputusan berikut (statistik untuk bulan lalu):

keputusan
Uptime
median
75 Peratusan
95 Peratusan

Ali CDN + CEN/IPsec + GLB
99.86
8.8s
9.5s
13.7s

Seperti yang anda lihat, kami masih belum dapat mencapai masa operasi 100%, tetapi kami akan menghasilkan sesuatu, dan kemudian kami akan memberitahu anda tentang keputusan dalam artikel baharu :)

Hormat kepada yang membaca ketiga-tiga bahagian tersebut hingga habis. Saya harap anda mendapati semua ini menarik seperti yang saya lakukan semasa saya melakukannya.

PS Bahagian sebelumnya

Π§Π°ΡΡ‚ΡŒ 1
Π§Π°ΡΡ‚ΡŒ 2

Sumber: www.habr.com

Tambah komen