Mengapa kami membuat Enterprise Service Mesh?

Service Mesh ialah corak seni bina yang terkenal untuk menyepadukan perkhidmatan mikro dan berhijrah ke infrastruktur awan. Hari ini dalam dunia kontena awan agak sukar untuk dilakukan tanpanya. Beberapa pelaksanaan rangkaian perkhidmatan sumber terbuka sudah tersedia di pasaran, tetapi fungsi, kebolehpercayaan dan keselamatannya tidak selalu mencukupi, terutamanya apabila ia berkaitan dengan keperluan syarikat kewangan besar di seluruh negara. Itulah sebabnya kami di Sbertech memutuskan untuk menyesuaikan Service Mesh dan ingin bercakap tentang perkara yang menarik tentang Service Mesh, perkara yang tidak begitu menarik dan perkara yang akan kami lakukan mengenainya.

Mengapa kami membuat Enterprise Service Mesh?

Populariti corak Service Mesh semakin meningkat dengan populariti teknologi awan. Ia adalah lapisan infrastruktur khusus yang memudahkan interaksi antara perkhidmatan rangkaian yang berbeza. Aplikasi awan moden terdiri daripada ratusan atau bahkan ribuan perkhidmatan sedemikian, setiap satunya boleh mempunyai beribu-ribu salinan.

Mengapa kami membuat Enterprise Service Mesh?

Interaksi antara dan pengurusan perkhidmatan ini adalah tugas utama Mesh Perkhidmatan. Malah, ini ialah model rangkaian banyak proksi, diurus secara berpusat dan melaksanakan satu set fungsi yang sangat berguna.

Pada peringkat proksi (satah data):

  • Menetapkan dan mengedarkan dasar penghalaan dan pengimbangan trafik
  • Pengedaran kunci, sijil, token
  • Pengumpulan telemetri, penjanaan metrik pemantauan
  • Integrasi dengan infrastruktur keselamatan dan pemantauan

Pada peringkat satah kawalan:

  • Menggunakan dasar penghalaan dan pengimbangan trafik
  • Menguruskan percubaan semula dan tamat masa, mengesan nod "mati" (pecah litar), mengurus kerosakan suntikan dan memastikan ketahanan perkhidmatan melalui mekanisme lain
  • Pengesahan/keizinan panggilan
  • Menggugurkan metrik (kebolehlihatan)

Julat pengguna yang berminat dalam pembangunan teknologi ini sangat luas - daripada syarikat permulaan kecil kepada syarikat Internet yang besar, contohnya, PayPal.

Mengapakah Service Mesh diperlukan dalam sektor korporat?

Terdapat banyak faedah yang jelas untuk menggunakan Mesh Perkhidmatan. Pertama sekali, ia hanya mudah untuk pembangun: untuk menulis kod platform teknologi muncul, yang memudahkan penyepaduan ke dalam infrastruktur awan dengan ketara disebabkan oleh fakta bahawa lapisan pengangkutan diasingkan sepenuhnya daripada logik aplikasi.

Tambahan pula, Service Mesh memudahkan perhubungan antara pembekal dan pengguna. Hari ini, lebih mudah bagi penyedia dan pengguna API untuk bersetuju dengan antara muka dan kontrak mereka sendiri, tanpa melibatkan pengantara dan penimbang tara penyepaduan khas - bas perkhidmatan perusahaan. Pendekatan ini memberi kesan ketara kepada dua penunjuk. Kepantasan membawa fungsi baharu ke pasaran (masa ke pasaran) meningkat, tetapi pada masa yang sama kos penyelesaian meningkat, memandangkan penyepaduan perlu dilakukan secara bebas. Penggunaan Service Mesh oleh pasukan pembangunan fungsi perniagaan membantu mengekalkan keseimbangan di sini. Akibatnya, penyedia API boleh memfokuskan secara eksklusif pada komponen aplikasi perkhidmatan mereka dan hanya menerbitkannya dalam Service Mesh - API akan segera tersedia kepada semua pelanggan, dan kualiti penyepaduan akan siap pengeluaran dan tidak memerlukan satu pun. baris kod tambahan.

Kelebihan seterusnya ialah pembangun, menggunakan Service Mesh, memfokuskan pada fungsi perniagaan semata-mata β€” pada produk dan bukannya komponen teknologi perkhidmatannya. Sebagai contoh, anda tidak perlu lagi memikirkan hakikat bahawa dalam situasi di mana perkhidmatan dipanggil melalui rangkaian, kegagalan sambungan mungkin berlaku di suatu tempat. Selain itu, Service Mesh membantu mengimbangi trafik antara salinan perkhidmatan yang sama: jika salah satu salinan "mati", sistem akan menukar semua trafik kepada salinan langsung yang tinggal.

Mesh Perkhidmatan - ini adalah asas yang baik untuk mencipta aplikasi yang diedarkan, yang menyembunyikan daripada pelanggan butiran menyediakan panggilan kepada perkhidmatannya secara dalaman dan luaran. Semua aplikasi yang menggunakan Service Mesh diasingkan pada tahap pengangkutan dari rangkaian dan antara satu sama lain: tiada komunikasi antara mereka. Dalam kes ini, pemaju menerima kawalan penuh ke atas perkhidmatannya.

Perlu diingatkan bahawa Mengemas kini aplikasi yang diedarkan dalam persekitaran jaringan perkhidmatan menjadi lebih mudah. Contohnya, penggunaan biru/hijau, di mana dua persekitaran aplikasi tersedia untuk pemasangan, satu daripadanya tidak dikemas kini dan berada dalam mod siap sedia. Kembali ke versi sebelumnya sekiranya keluaran yang tidak berjaya dijalankan oleh penghala khas, peranan Service Mesh mengatasi dengan baik. Untuk menguji versi baharu, anda boleh gunakan pelepasan kenari β€” beralih kepada versi baharu hanya 10% daripada trafik atau permintaan daripada kumpulan perintis pelanggan. Trafik utama pergi ke versi lama, tiada apa-apa yang rosak.

Juga Service Mesh memberi kami kawalan SLA masa nyata. Sistem proksi yang diedarkan tidak akan membenarkan perkhidmatan gagal apabila salah satu pelanggan melebihi kuota yang diberikan kepadanya. Jika daya pemprosesan API adalah terhad, tiada siapa yang akan dapat mengatasinya dengan sejumlah besar transaksi: Service Mesh berdiri di hadapan perkhidmatan dan tidak membenarkan trafik yang tidak perlu. Ia hanya akan melawan balik dalam lapisan integrasi, dan perkhidmatan itu sendiri akan terus berfungsi tanpa menyedarinya.

Jika syarikat ingin mengurangkan kos untuk pembangunan penyelesaian penyepaduan, Service Mesh turut membantu: Anda boleh bertukar kepada versi sumber terbuka daripada produk komersial. Mesh Perkhidmatan Perusahaan kami adalah berdasarkan versi sumber terbuka Service Mesh.

Satu lagi kelebihan - ketersediaan satu set lengkap perkhidmatan integrasi. Oleh kerana semua penyepaduan dibina melalui perisian tengah ini, kami boleh menguruskan semua trafik penyepaduan dan sambungan antara aplikasi yang membentuk teras perniagaan syarikat. Ia sangat selesa.

Dan akhirnya Service Mesh menggalakkan syarikat beralih kepada infrastruktur dinamik. Sekarang ramai yang melihat ke arah kontena. Memotong monolit kepada perkhidmatan mikro, melaksanakan semua ini dengan indah - topik ini semakin meningkat. Tetapi apabila anda cuba memindahkan sistem yang telah dikeluarkan selama bertahun-tahun ke platform baharu, anda serta-merta menghadapi beberapa masalah: menolak kesemuanya ke dalam bekas dan menggunakannya pada platform bukanlah mudah. Dan pelaksanaan, penyegerakan dan interaksi komponen yang diedarkan ini merupakan satu lagi topik yang sangat kompleks. Bagaimanakah mereka akan berkomunikasi antara satu sama lain? Adakah akan berlaku kegagalan yang melata? Service Mesh membolehkan anda menyelesaikan beberapa masalah ini dan memudahkan penghijrahan dari seni bina lama kepada yang baru kerana fakta bahawa anda boleh melupakan logik pertukaran rangkaian.

Mengapa anda memerlukan penyesuaian Service Mesh?

Dalam syarikat kami, beratus-ratus sistem dan modul wujud bersama, dan masa jalannya sangat dimuatkan. Jadi corak mudah satu sistem memanggil yang lain dan menerima respons tidak mencukupi, kerana dalam pengeluaran kita mahukan lebih. Apa lagi yang anda perlukan daripada rangkaian perkhidmatan perusahaan?

Mengapa kami membuat Enterprise Service Mesh?

Perkhidmatan pemprosesan acara

Bayangkan kita perlu membuat pemprosesan acara masa nyata - sistem yang menganalisis tindakan pelanggan dalam masa nyata dan boleh menjadikannya tawaran yang relevan dengan serta-merta. Untuk melaksanakan fungsi yang serupa, gunakan corak seni bina yang dipanggil seni bina dipacu peristiwa (EDA). Tiada satu pun daripada Service Meshes semasa secara asli menyokong corak sedemikian, tetapi ini sangat penting, terutamanya untuk bank!

Agak pelik bahawa Panggilan Prosedur Jauh (RPC) disokong oleh semua versi Service Mesh, tetapi mereka tidak mesra dengan EDA. Kerana Service Mesh ialah sejenis penyepaduan teragih moden, dan EDA ialah corak seni bina yang sangat relevan yang membolehkan anda melakukan perkara unik dari segi pengalaman pelanggan.

Mesh Perkhidmatan Perusahaan kami sepatutnya menyelesaikan masalah ini. Di samping itu, kami ingin melihat di dalamnya pelaksanaan penghantaran terjamin, penstriman dan pemprosesan acara yang kompleks menggunakan pelbagai penapis dan templat.

Perkhidmatan pemindahan fail

Sebagai tambahan kepada EDA, adalah bagus untuk dapat memindahkan fail: pada skala Perusahaan, selalunya hanya penyepaduan fail boleh dilakukan. Khususnya, corak seni bina ETL (Extract, Transform, Load) digunakan. Di dalamnya, sebagai peraturan, semua orang bertukar-tukar fail secara eksklusif: data besar digunakan, yang tidak praktikal untuk menolak permintaan berasingan. Keupayaan untuk menyokong pemindahan fail secara asli dalam Enterprise Service Mesh memberikan anda fleksibiliti yang diperlukan oleh perniagaan anda.

Perkhidmatan orkestrasi

Organisasi besar hampir selalu mempunyai pasukan yang berbeza yang membuat produk yang berbeza. Sebagai contoh, di bank, beberapa pasukan bekerja dengan deposit, sementara yang lain bekerja dengan produk pinjaman, dan terdapat banyak kes sedemikian. Ini adalah orang yang berbeza, pasukan yang berbeza yang membuat produk mereka, membangunkan API mereka dan memberikannya kepada orang lain. Dan selalunya terdapat keperluan untuk mengarang perkhidmatan ini, serta melaksanakan logik kompleks untuk memanggil set API secara berurutan. Untuk menyelesaikan masalah ini, anda memerlukan penyelesaian dalam lapisan integrasi yang akan memudahkan semua logik komposit ini (memanggil beberapa API, menerangkan laluan permintaan, dll.). Ini ialah perkhidmatan orkestrasi dalam Enterprise Service Mesh.

AI dan ML

Apabila perkhidmatan mikro berkomunikasi melalui satu lapisan penyepaduan, Service Mesh secara semula jadi mengetahui segala-galanya tentang setiap panggilan perkhidmatan. Kami mengumpul telemetri: siapa yang memanggil siapa, bila, berapa lama, berapa kali, dan sebagainya. Apabila terdapat ratusan ribu perkhidmatan ini, dan berbilion panggilan, maka semua ini terkumpul dan membentuk Data Besar. Data ini boleh dianalisis menggunakan AI, pembelajaran mesin, dsb., dan kemudian beberapa perkara berguna boleh dilakukan berdasarkan hasil analisis. Adalah wajar untuk sekurang-kurangnya sebahagiannya menyerahkan kawalan semua trafik rangkaian ini dan panggilan aplikasi yang disepadukan ke dalam Service Mesh kepada kecerdasan buatan.

Perkhidmatan Gateway API

Biasanya, Service Mesh mempunyai proksi dan perkhidmatan yang bercakap antara satu sama lain dalam perimeter yang dipercayai. Tetapi terdapat juga pihak luar. Keperluan untuk API yang terdedah kepada kumpulan pengguna ini adalah lebih teruk. Kami membahagikan tugas ini kepada dua bahagian utama.

  • keselamatan. Isu berkaitan ddos, kerentanan protokol, aplikasi, sistem pengendalian dan sebagainya.
  • Skala. Apabila bilangan API yang perlu disampaikan kepada pelanggan mencecah ribuan atau bahkan ratusan ribu, terdapat keperluan untuk beberapa jenis alat pengurusan untuk set API ini. Anda perlu sentiasa memantau API: sama ada mereka berfungsi atau tidak, status mereka, trafik yang mengalir, statistik apa, dsb. Gerbang API harus mengendalikan tugas ini sambil menjadikan keseluruhan proses boleh diurus dan selamat. Terima kasih kepada komponen ini, Enterprise Service Mesh belajar menerbitkan kedua-dua API dalaman dan luaran dengan mudah.

Perkhidmatan sokongan untuk protokol dan format data tertentu (gateway AS)

Pada masa ini, kebanyakan penyelesaian Service Mesh boleh berfungsi secara asli hanya dengan trafik HTTP dan HTTP2 atau dalam mod yang dikurangkan pada tahap TCP/IP. Mesh Perkhidmatan Perusahaan muncul dengan banyak protokol pemindahan data lain yang sangat khusus. Sesetengah sistem mungkin menggunakan broker mesej, yang lain disepadukan di peringkat pangkalan data. Jika syarikat mempunyai SAP, maka ia juga boleh menggunakan sistem integrasinya sendiri. Selain itu, semua ini berfungsi dan merupakan bahagian penting dalam perniagaan.

Anda tidak boleh hanya berkata: "Mari kita tinggalkan warisan dan buat sistem baharu yang boleh menggunakan Service Mesh." Untuk menyambungkan semua sistem lama dengan yang baharu (pada seni bina perkhidmatan mikro), sistem yang boleh menggunakan Service Mesh memerlukan beberapa jenis penyesuai, perantara, get laluan. Setuju, lebih baik jika ia datang dalam kotak bersama-sama dengan perkhidmatan. Gerbang AC boleh menyokong sebarang pilihan penyepaduan. Bayangkan, anda hanya memasang Enterprise Service Mesh dan ia bersedia untuk berinteraksi dengan semua protokol yang anda perlukan. Pendekatan ini sangat penting bagi kami.

Ini kira-kira bagaimana kita membayangkan versi korporat Service Mesh (Enterprise Service Mesh). Penyesuaian yang diterangkan menyelesaikan kebanyakan masalah yang timbul apabila cuba menggunakan versi sumber terbuka siap sedia bagi platform penyepaduan. Diperkenalkan hanya beberapa tahun yang lalu, seni bina Service Mesh terus berkembang, dan kami teruja untuk dapat menyumbang kepada pembangunannya. Kami berharap pengalaman kami akan berguna kepada anda.

Sumber: www.habr.com

Tambah komen