Terapkan adegan
Pertandingan organisasi dan kapasitas teknis membawa aplikasi monomer tradisional dapat secara signifikan berkurang karena perusahaan berkembang dari satu baris produk + monostruktur ke banyak produk-produk + multi- tahap pengembangan tim.Semakin lama siklus penyebaran, semakin tinggi biaya pengujian regresi, kebutuhan untuk perubahan kecil ke modul bukan inti untuk diterbitkan kembali untuk seluruh aplikasiSinyal ini menunjukkan bahwa pengenalan struktur layanan mikro tidak lagi "over- dirancang" tapi kondisi yang diperlukan untuk melanjutkan pengiriman efisien oleh tim.
Tipe tanda balik yang termasuk: aplikasi mulai kali lebih dari 30 detik memimpin ke sebuah pengalaman pemutakhiran yang memburuk; variasi signifikan dalam frekuensi perubahan dalam modul bisnis yang berbeda (modul transaksi inti diperbarui sekali seminggu dan belakang manajemen modul cenderung bergerak hanya sekali sebulan), tetapi tunggal - tubuh memaksa semua modul untuk mempertahankan ritme rilis yang sama; beberapa tim pengembangan berkolaborasi pada gudang kode yang sama untuk menggabungkan konflik dan kembali risiko pertumbuhan ukuran tim dan indeks yang sama akan kebocoran memori seluruh sistem yang sama atau kegagalan sistem yang sama akan menyebabkan kegagalan pada seluruh sistem yang sama dan kehilangan.
Skenario ini menjelaskan di sini berlaku untuk perusahaan dengan tingkat pengembangan bisnis yang tinggi, kerjasama multi- tim, permintaan tinggi untuk ketahanan sistem dan pengiriman efisien.ZhiHua TechMenyediakan layanan transformasi mikrospervice lengkap dari konseling terstruktur ke implementasi dari impromasi, tidak mewakili data klien tertentu.
Tantangan operasional yang khas
1. Kirim-efisiensi bottlenecks dalam struktur tunggal-formulir
- Release a coupling: 30 pengembang berbagi gudang kode dan sebuah baris streaming CI / CD. Kombinasi kode apapun dapat memblokir rilis orang lain. Perbaikan penting untuk Bug pembayaran, yang harus menunggu sampai backlog sebelumnya dari 5 MRI semua konsolidated dan dikembalikan ke tes selesai -- MRI ini tidak ada hubungannya dengan modul pembayaran.
- Uji ledakan.: Jangkauan tes regresi untuk satu aplikasi adalah tentang "aplikasi lengkap". Bahkan jika SQL dimodifikasi hanya dengan satu antarmuka pencarian, dibutuhkan 40 menit sampai 2 jam untuk menjalankan paket tes akhir-ke-akhir. Panjang siklus umpan balik tes memperlambat kecepatan iteratif.
- Kunci TeknisSeluruh aplikasi ini terikat pada sebuah gudang teknologi (seperti Java 8 + Spring), sebuah skenario bisnis baru yang lebih cocok untuk Go atau Node.js, namun pengenalan bahasa baru berarti sebuah konstruksi baru, penyebaran dan sistem pemantauan, dan tim sering memilih untuk "bekerja sama".
Kompleksitas dibawa oleh distribusi
- Jaringan tidak dapat diandalkan.Jaringan ini disebut metode, dan layanan mikro terhubung.
- Konsistensi dataACID adalah basis dasar bagi layanan pribadi + layanan pembayaran tunggal. Di bawah mikromen tiap layanan memiliki basis data sendiri, dan operasi layanan lintas (berikut ini adalah = order service + inventaris + report Service) harus mengandalkan program layanan yang didistribusikan seperti Saga atau TCC untuk memastikan konsistensi akhir. Pergantian dalam berpikir - dari "compportion" ke "kompensasi mungkin untuk setiap langkah" - adalah ambang kognitif paling sulit bagi sebuah tim untuk menyeberang.
- Debugging dan Deterensi: Permintaan dapat melewati 5-8 layanan mikro. Ketika pengguna melaporkan gagal perintah "down" Anda perlu bertabrakan rantai panggilan penuh dari log gateway, log layanan urut, log layanan inventaris, log layanan pembayaran, tanpa pelacakan terdistribusi (misalnya Jaeger, SkyWalking), masalah posisi seperti jarum.
3. Kurangnya infrastruktur dan mobilitas
- Kontarisasi dan organisasiMikrografies alami untuk penyebaran pembuatan vaksin, tapi Kubernetes sendiri memiliki kurva belajar curam. Pod Network, Service Discovery, Ingress Route, Configmap, Secret Management, HPA Resislient sprawl - konsep yang nol untuk tim tradisional.
- Kompleksitas CI / CDDari baris stream ke baris N (satu untuk setiap layanan), konstruksi cermin, mendorong, penyebaran, rollback membutuhkan standardisasi. Tanpa garis seragam template dan manajemen produk, perpecahan proses pengiriman dapat disebabkan oleh tim terpisah.
- ObservasiLogging, indikator, dan pelacakan - tiga pilar adalah satu. di bawah struktur mikrometer, tidak adanya salah satu pilar dapat menyebabkan penurunan signifikan dalam kemampuan untuk melepaskan.
Programme desain berpikir
1. Progresif split bukan Big Bang menulis ulang
ZhiHua Tech bersikeras untuk mengubah layanan mikroHangler Fig PattersonSecara progresif bergerak menuju modul fungsional dalam arsitektur baru sementara menjaga fungsi normal dari sistem lama, yang hidup berdampingan melalui lapisan rute sampai sistem lama sepenuhnya diganti:
- Pertama, kita hapus modul perubahan HF.Prioritas diberikan kepada pemisahan modul yang paling sering dan independen dari bisnis (misalnya pusat pengguna, pusat komoditas). Setelah mereka dibongkar, mereka menikmati pembagian penyebaran independen - perubahan tidak lagi dibatasi oleh kecepatan rilis modul lain.
- Entri Unified Entry API GatewayGateway bertanggung jawab untuk distribusi rute, otentikasi clearance, pembatasan aliran dan catatan log. Meminta untuk meneruskan gateway ke mono atau mikrometer dengan prefix jalur, tanpa rasa dari ujung depan.
- Basis data berikut split: Setiap mikroper yang terpisah memiliki basis data independen, Skema (bahkan contoh basis data sendirian), yang pada akhirnya konsisten dengan basis data tunggal dengan menyelaraskan data atau memanggil API. Dismantling dalam tahap mengurangi risiko dengan menggunakan strategi "Dub-Book + -Top-Baca".
2. / Layanan sedang mencengkeram pemerintahan komunikasi.
Ketika jumlah layanan mikro melebihi 10, pemerintahan layanan SDK tradisional (SDK untuk setiap layanan yang diperkenalkan ke dalam kerangka kerja RPC) mulai mengekspos biaya pemeliharaan - peningkatan SDK memerlukan semua layanan yang direstrukturisasi dan diterbitkan, layanan SSDK berbeda memerlukan pengiriman berbeda dan perubahan strategi pemerintahan memerlukan perubahan kode.
ZhiHua Tech merekomendasikan pengenalan setelah skala layanan telah mencapai tingkat tertentu Layanan Mesh (mis. Istio + Envoy), downside layanan kapasitas pemerintah untuk agen Sidecar:
- Manajemen arusRilis Grayscale (oleh pengubahan berat / header / cookie), gagal dalam pengujian suntikan, permintaan cermin - kemampuan ini dapat dicapai melalui Pengaturan Aturan dan Pengaturan Vital tanpa perlu memodifikasi kode bisnis.
- Komunikasi aman: MTLS (otentikasi TLS dua arah) secara otomatis diaktifkan untuk komunikasi antar layanan, penerbitan, rotasi dan pembatalan sertifikat secara otomatis dikelola oleh Citadel, dan pengembang bisnis tidak perlu melihat mekanisme keamanan bottom- up.
- Observasi: Sisi mobil otomatis mengumpulkan data telemetri (tertunda, sukses, laju kesalahan) bagi semua stasiun masuk dan keluar, dan keluaran ke Prometheus (indikator) + Jaeger (link) + ELK (log), membentuk segitiga yang dapat diamati lengkap.
CI / CD dan Gitoops baris pengiriman
ZhiHua Tech membantu klien membangun sebuah standar sistem CI / CD, prinsip inti sedangSebuah template untuk menutupi konstruksi dan penyebaran dari semua layanan:
- Templat Garis Air: Semua layanan mikro berbagi set yang sama dari teplat CI / CD (Jenkinsfile atau GitHub Actions workwork template), yang hanya memerlukan beberapa variabel (bahasa, port, kuota sumber daya) untuk diakses. Hindari perpecahan oleh setiap tim.
- Penyebaran Gitops: Sebuah pernyataan dari semua sumber daya Kubernetes (Pengisian, Layanan, Ingress, ConfigMap) disimpan dalam Repositori Git, dimana ArgoCD secara konstan memonitor perubahan dalam Git Repositori dan sinkronisasi mereka secara otomatis ke cluster. Setiap modifikasi manual dari sebuah cluster digulung kembali oleh pengontrol Gitops untuk memastikan bahwa "Git Repositori = Group Real".
- Canary rilis"Pengiriman progresif melalui Argo Rollouts - versi baru Pod dikerahkan 5% pertama, tingkat observasi kesalahan dan penundaan 5 menit, dan ekspansi normal indikator sampai 25% 50% dan 100%. Indikator pada setiap tahap secara otomatis memicu rollback.
Scope kapasitas sistem
Zip, pangkalan inventerisasi.
- Perencanaan Kubernetes ClusterMulti- lingkungan (development / test / pre-production / production) desain arsitektur cluster, pilihan spesifikasi titik, plugin jaringan (Calico / Cilium) seleksi, program penyimpanan (CSI) desain.
- Porter manajemen cerminBerikut ini beberapa contoh dari perkembangan terbaru di area cermin: konstruksi gudang cermin pelabuhan, pemindaian keamanan cermin (Trivy), strategi minimen cermin (konstruksi multitahap, dissolasi dasar cermin).
- Peregangan Fleksibel: HPA (berdasarkan CPU / RAM Pod pening horisontal) + Cluster Autoscaler (node level heat) + KEDA (berdasarkan acara yang didorong oleh indikator gubahan yang mendidih seperti kedalaman antrian pesan).
Pemerintah layanan dan komunikasi
- Gateway API: Meremaskani rute, batas aliran, otentikasi, log, pemrosesan lintas domain. Mendukung ekstensi Lansinisasi untuk menyesuaikan logika.
- Pendaftaran dan Discovery Layanan: Penemuan layanan berdasarkan layanan DNS + Kubernetes, mengelola metadata layanan eksternal dalam hubungannya dengan Konsul / Nacos.
- Atur TengahNacos / Apollo secara sentral mengelola konfigurasi lingkungan, perubahan konfigurasi dikirim secara real time, mendukung distribusi greyscale dan rollback.
Sistem Observasional
- Log: Fluendd / Filebeat mengumpulkan buffer Affeka, Toko pencarian Elasticana. Log-log terkait dengan TraceID.
- IndikatorPrometheus + Grafana, meliputi indikator infrastruktur (titik / kontainer / Pod) dan indikator aplikasi (QPS / tertunda / salah / indikator operasional).
- Pelacakan sambungan: OpenTelemetri + Jaeger, menampilkan rantai call lengkap dan waktu setiap lompatan antara layanan yang diminta.
- Hubungi polisi.: Alertmanager Peringatan Rahasia (darurat / peringatan / pemberitahuan), dikirim melalui Enterprise Micro-Credits / Persertifikasi / Buku Terbang, dengan cuplikan panel Grafana.
Pengiriman CI / CD
- Standardisasi repositori kode (kebijakan percabangan, CODEOWNERS, Templat Permintaan Kembali)
- Automatisasi, unit testing, pemindaian kode (SonarQube), pengiriman cermin
- Gitoops Deployment (ArgoCD) + Cyancant / Blue Green Rilis Strategy
Arsitektur data distribusi
- Kebijakan Pecah Basis Data: Pecah vertikal dengan field + Split horisontal dengan waktu / ID (SharingShere). Baca dan tulis terpisah (utama library menulis, membaca dari pustaka).
- Layanan distribusiIni adalah sejumlah kecil dari berita lokal berdasarkan informasi yang diterima dan berita lokal.
- Struktur Cache: Redis Cluster Multi-level Cache (cache Cafsee + Distribution Cache + Database), Cache Exside / Writer Behind.
Dikirim
| Tahap | Pengiriman | Elemen utama |
|---|---|---|
| Arsitektur | Dokumen Desain Struktur | Program layanan de- segregasi, definisi batas area, antar muka compact (API), strategi data- segregasi dan arsitektur infrastruktur |
| Infrastruktur | K8s Cluster + Middle | Tingkat Produksi Pembenahan Cluster penyebaran (termasuk konfigurasi jaringan / penyimpanan / keamanan), gateway API, grid layanan, pusat konfigurasi, pusat pendaftaran, dll. |
| Observasi | Surveillance dan sistem polisi | Prometheus + Grafana monitor panel, platform log ELK, Jaeger link pelacakan, alarm aturan konfigurasi dan saluran pemberitahuan hirarki |
| CI/CD | Waterline + GitOps | Standardisasi CI / CD flow template, konfigurasi ArgoCD, strategi rilis kanari, otomatis rollback mekanisme |
| Migrasi | Program migrasi dan pemberian | Program migrasi Hangers, data migrasi script, transportasi manual, pelatihan tim dan keamanan online 7x24 |
Orientasi nilai yang diperluas
- Keuntungan efisiensi yang signifikan dalam pengirimanLayanan ini dibangun secara independen, diuji dan dikerahkan, dan siklus pembebasan satu layanan berkurang dari "mingguan" menjadi tingkat "jam". perbaikan darurat tidak lagi diblokir oleh modul lain.
- Penyimpanan dan elastisitas: Kebocoran memori dari layanan tidak akan menurunkan sistem. Amplifikasi otomatis (HPA / KEDA) memastikan bahwa ada sumber daya yang cukup di bawah arus puncak untuk mengurangi biaya pemulihan sumber daya otomatis di lembah rendah.
- Kebebasan gudang teknologiLayanan yang berbeda dapat memilih kompartemen teknologi terbaik dari tempat kejadian, dan pengenalan teknologi baru tidak lagi memerlukan rekayasa rekreasi penuh.
- Capai yang dapat diamatiNarablog mengatakan bahwa pemerintah telah mampu "menunjukkan masalah" dari "tidak ada masalah" ke "tidak ada indikator anomali terlihat pada Grafana sebelum pengguna mengeluh".
Tahu lebih lanjut:
- Desain Perangkat Lunak Kustodial - Desain dan pengembangan kustom untuk proses bisnis unik
- Bisnis Digital Platform - Membangun basis teknologi yang efisien dan dapat diperparah
- Transportasi pengiriman produk - jaminan pengiriman lengkap dari baris aliran CI / CD ke transportasi produksi
- Saran gratis - komunikasikan kebutuhan struktural Anda dengan tim ZhiHua Tech
Perlu analisis lebih lanjut dalam konteks negara saat ini perusahaan?
Kami memberikan saran teknis IT, konstruksi informasi perusahaan, proyek perangkat lunak Outlook, aplikasi perusahaan FDE AI dan perangkat lunak desain produk dan jasa pengiriman.