Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Josh Evans nyarioskeun ngeunaan dunya microservices Netflix anu kacau sareng warni, dimimitian ku dasar-dasarna - anatomi microservices, tantangan anu aya hubunganana sareng sistem anu disebarkeun, sareng mangpaatna. Ngawangun dina yayasan ieu, anjeunna explores prakték budaya, arsitéktur, jeung operasional nu ngakibatkeun penguasaan microservice.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 1
Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 2
Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 3

Beda sareng drift operasional, ngenalkeun basa anyar pikeun internasionalisasi jasa sareng téknologi anyar sapertos wadah mangrupikeun kaputusan sadar pikeun nambihan pajeulitna anyar kana lingkungan. Tim operasi kuring ngabakukeun dina peta jalan téknologi anu pangsaéna pikeun Netflix, anu dipanggang kana prakték pangsaéna anu tos siap-siap dumasar kana Java sareng EC2, tapi nalika bisnisna tumbuh, pamekar mimiti nambihan komponén énggal sapertos Python, Ruby, Node-JS, sareng Docker.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Abdi reueus pisan yén kami anu pangheulana ngajengkeun produk urang tiasa dianggo saé tanpa ngantosan keluhan pelanggan. Sadayana dimimitian cukup saderhana - kami ngagaduhan program operasi dina Python sareng sababaraha aplikasi back-office di Ruby, tapi hal-hal janten langkung narik nalika pamekar wéb kami ngumumkeun yén aranjeunna badé ngaleungitkeun JVM sareng badé mindahkeun wéb. aplikasi kana platform software Node.js. Saatos ngenalkeun Docker, hal-hal janten langkung rumit. Kami nuturkeun logika sareng téknologi anu kami hasilkeun janten kanyataan nalika kami ngalaksanakeunana pikeun para palanggan sabab seueur akal. Kuring gé ngabejaan Anjeun naha ieu jadi.

API Gateway sabenerna mibanda kamampuhan pikeun ngahijikeun Aksara hébat nu bisa meta salaku titik tungtung pikeun pamekar UI. Aranjeunna ngarobih unggal skrip ieu ku cara anu saatos parobihan aranjeunna tiasa nyebarkeun kana produksi teras ka alat pangguna, sareng sadaya parobihan ieu disingkronkeun sareng titik tungtung anu dijalankeun dina gateway API.

Sanajan kitu, ieu ngulang masalah nyieun hiji monolith anyar dimana ladenan API ieu overloaded ku kode dina cara sapertos nu sagala rupa skenario gagalna lumangsung. Contona, sababaraha titik tungtung dihapus, atawa Aksara dihasilkeun sacara acak jadi loba versi ngeunaan hiji hal anu versi nyandak sakabeh memori sadia tina layanan API.

Éta logis nyandak titik tungtung ieu sareng tarik kaluar tina jasa API. Jang ngalampahkeun ieu, kami nyiptakeun komponén Node.js anu dijalankeun salaku aplikasi leutik dina wadah Docker. Ieu ngamungkinkeun urang pikeun ngasingkeun masalah sareng kacilakaan anu disababkeun ku aplikasi titik ieu.

Biaya parobihan ieu lumayan ageung sareng diwangun ku faktor-faktor ieu:

  • Alat produktivitas. Ngatur téknologi anyar merlukeun parabot anyar sabab tim UI, ngagunakeun Aksara pohara alus pikeun nyieun hiji model efisien, teu kudu méakkeun loba waktu pikeun ngatur infrastruktur, maranéhanana ngan kudu nulis naskah jeung pariksa pungsionalitasna.
    Insight Opportunity and Sorting - Conto konci nyaéta alat anyar anu diperyogikeun pikeun mendakan inpormasi supir kinerja. Ieu diperlukeun uninga sabaraha processor ieu nempatan, kumaha memori ieu dipaké, sarta ngumpulkeun informasi ieu diperlukeun parabot béda.
  • Fragméntasi gambar dasar - dasar AMI basajan geus jadi leuwih fragmented tur husus.
  • Manajemén titik. Henteu aya arsitéktur atanapi téknologi anu teu aya anu ngamungkinkeun anjeun ngatur titik-titik dina méga, ku kituna kami ngawangun Titus, platform manajemén wadah anu nyayogikeun panyebaran wadah anu tiasa skala sareng dipercaya sareng integrasi awan sareng Amazon AWS.
  • Duplikasi perpustakaan atanapi platform. Nyayogikeun téknologi anyar sareng fungsionalitas inti anu sami dina platform anu peryogi duplikat kana alat pamekar Node.js berbasis awan.
  • Kurva diajar sareng pangalaman industri. Perkenalan téknologi anyar pasti nyiptakeun tantangan anyar anu kedah diatasi sareng diajar.

Ku kituna, urang teu bisa ngawatesan diri ka hiji "jalan diaspal" sarta kudu terus ngawangun cara anyar pikeun kamajuan téhnologi urang. Pikeun ngirangan biaya, kami ngawatesan dukungan terpusat sareng fokus kana JVM, titik énggal, sareng Docker. Urang prioritas dampak éféktif, informed tim ngeunaan biaya kaputusan maranéhanana, sarta ajak aranjeunna pikeun néangan cara ngagunakeun deui solusi dampak luhur aranjeunna geus dimekarkeun. Kami nganggo pendekatan ieu nalika narjamahkeun jasa kana basa asing pikeun nganteurkeun produk ka klien internasional. Conto kaasup perpustakaan klien kawilang basajan nu bisa dihasilkeun sacara otomatis, meh gampang nyieun versi Python, versi Ruby, versi Java, jsb.

Kami terus-terusan milarian kasempetan pikeun ngagunakeun téknologi anu kabuktian anu parantos ngabuktikeun diri di hiji tempat sareng dina kaayaan anu sami.

Hayu urang ngobrol ngeunaan unsur panungtungan - parobahan, atawa variasi. Tingali kumaha konsumsi produk urang henteu rata dina dinten minggu sareng jam sapopoe. Anjeun tiasa nyarios yén jam 9 énjing mangrupikeun waktos anu paling hese pikeun Netflix, nalika beban dina sistem ngahontal maksimal.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Kumaha urang bisa ngahontal speed tinggi palaksanaan inovasi software, nyaeta, terus nyieun parobahan anyar dina sistem, tanpa ngabalukarkeun interruptions dina pangiriman jasa sarta tanpa nyieun kasulitan pikeun konsumén urang? Netflix ngahontal ieu ku ngagunakeun Spinnaker, platform manajemén dumasar-awan global sareng pangiriman kontinyu (CD).

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Sacara kritis, Spinnaker dirarancang pikeun ngahijikeun prakték pangsaéna urang ku kituna nalika urang nyebarkeun komponén kana produksi, urang tiasa ngahijikeun kaluaran langsung kana téknologi pangiriman média urang.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Kami parantos tiasa ngalebetkeun dua téknologi kana pipa pangiriman anu kami hargana pisan: analisis kanari otomatis sareng panyebaran bertahap. Analisis Kanaria ngandung harti yén urang ngarahkeun hiji trickle lalulintas keur versi anyar kode, sarta lulus sesa lalulintas produksi ngaliwatan versi heubeul. Teras we pariksa kumaha kodeu anyar copes sareng tugas - langkung saé atanapi langkung goréng tibatan anu tos aya.

A rollout staggered hartina lamun rollout di hiji wewengkon boga masalah, urang pindah ka rollout di wewengkon séjén. Dina hal ieu, daptar pariksa anu disebatkeun di luhur kedah dilebetkeun kana pipa produksi. Kuring bakal ngahemat waktos anjeun sareng nyarankeun anjeun pariksa omongan kuring sateuacana, Téknik Operasi Global Netflix dina Awan, upami anjeun resep nyilem langkung jero kana topik ieu. Rekaman pidéo pidato tiasa ditingali ku nuturkeun tautan di handapeun slide.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Dina ahir ceramah, kuring bakal ngobrol sakeudeung ngeunaan organisasi sareng arsitéktur Netflix. Dina awal pisan kami boga skéma disebut Electronic Delivery, nu éta versi mimiti NRDP 1.x média streaming. Istilah "backstream" tiasa dianggo di dieu sabab mimitina pangguna ngan ukur tiasa ngaunduh kontén pikeun playback engké dina alat. Platform pangiriman digital anu munggaran Netflix, dina taun 2009, katingali sapertos kieu.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Alat pangguna ngandung aplikasi Netflix, anu diwangun ku antarmuka UI, modul kaamanan, aktivasina jasa sareng playback, dumasar kana platform NRDP - Platform Alat Netflix Siap.

Waktu éta antarbeungeut pangguna saderhana pisan. Ieu ngandung naon disebut Queque Reader, sarta pamaké bakal buka loka pikeun nambahkeun hiji hal ka Queque lajeng nempo eusi ditambahkeun dina alat maranéhanana. Positip nyaéta yén tim tungtung hareup sareng tim tungtung tukang milik organisasi Pangiriman Elektronik anu sami sareng gaduh hubungan kerja anu caket. Payload dijieun dumasar kana XML. Dina waktos anu sami, API Netflix pikeun bisnis DVD diciptakeun, anu ngadorong aplikasi pihak katilu pikeun ngarahkeun lalu lintas kana jasa kami.

Tapi, Netflix API ieu ogé disiapkeun pikeun mantuan kami kalawan panganteur pamaké inovatif, ngandung metadata sadaya eusi, informasi ngeunaan naon pilem éta sadia, nu nyiptakeun kamampuhan pikeun ngahasilkeun daptar lalajo. Éta ngagaduhan API REST umum dumasar kana skéma JSON, Kode Tanggapan HTTP, anu sami dianggo dina arsitéktur modéren, sareng modél kaamanan OAuth, anu diperyogikeun dina waktos éta pikeun aplikasi hareup. Ieu ngamungkinkeun pikeun ngalih tina modél umum pangiriman kontén streaming ka anu pribadi.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Masalah sareng transisi éta fragméntasi, saprak ayeuna sistem kami dioperasikeun dua jasa dumasar kana prinsip operasi lengkep beda - hiji on Rest, JSON na OAuth, nu sejenna dina RPC, XML sarta mékanisme kaamanan pamaké dumasar kana sistem token NTBA. Ieu mangrupikeun arsitéktur hibrida munggaran.

Dasarna aya firewall antara dua tim urang sabab mimitina API henteu skala pisan sareng NCCP sareng ieu nyababkeun gesekan antara tim. Bedana aya dina jasa, protokol, sirkuit, modul kaamanan, sareng pamekar sering kedah ngalih antara kontéks anu béda-béda.

Konférénsi QCon. Mastering Chaos: The Netflix Guide to Microservices. Bagian 4

Dina hal ieu, kuring ngobrol sareng salah sahiji insinyur senior perusahaan, anu kuring naroskeun patarosan: "Naon anu kedah janten arsitéktur jangka panjang anu leres?" Sareng anjeunna naroskeun patarosan kontra: "Anjeun sigana langkung prihatin. ngeunaan konsékuansi organisasi - naon anu lumangsung lamun urang ngahijikeun hal ieu, sarta aranjeunna megatkeun naon geus urang diajar ngalakukeun ogé? Pendekatan ieu relevan pisan sareng Hukum Conway: "Organisasi anu ngadesain sistem dibatesan ku desain anu ngayakeun réplikasi struktur komunikasi organisasi éta." Ieu mangrupikeun definisi anu abstrak pisan, janten kuring langkung milih anu langkung spésifik: "Sakur sapotong parangkat lunak ngagambarkeun struktur organisasi anu nyiptakeunana." Ieu mangrupikeun cutatan karesep kuring ti Eric Raymond: "Upami anjeun gaduh opat tim pamekar anu damel dina kompiler, anjeun bakal ditungtungan ku kompiler opat-pass." Nya, Netflix gaduh kompiler opat pass, sareng éta kumaha urang damel.

Urang bisa disebutkeun yen dina hal ieu buntut wagging anjing. Prioritas kahiji urang sanes solusi, tapi organisasi; éta organisasi anu nyorong arsitéktur anu urang gaduh. Saeutik demi saeutik, tina hodgepodge jasa, urang ngalih ka arsitéktur anu kami sebut Blade Runner, sabab di dieu urang ngobrol ngeunaan jasa ujung sareng kamampuan NCCP dipisahkeun sareng diintegrasikeun langsung kana proxy Zuul, gateway API, sareng fungsi anu saluyu. "Potongan" geus robah jadi microservices anyar kalawan kaamanan leuwih canggih, replay, asihan data, jsb fitur.

Ku kituna, bisa disebutkeun yen struktur departemén jeung dinamika parusahaan maénkeun peran penting dina shaping desain sistem sarta mangrupakeun faktor anu promotes atanapi impedes parobahan. Arsitéktur Microservices rumit sarta organik, sarta kaséhatan na dumasar kana disiplin tur ngawanohkeun rusuh.

Iklan saeutik

Hatur nuhun pikeun tetep sareng kami. Naha anjeun resep artikel kami? Hoyong ningali eusi anu langkung narik? Dukung kami ku cara nempatkeun pesenan atanapi nyarankeun ka babaturan, cloud VPS pikeun pamekar ti $4.99, analog unik tina server tingkat éntri, anu diciptakeun ku kami pikeun anjeun: Sakabeh bebeneran ngeunaan VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ti $ 19 atanapi kumaha babagi server a? (sadia kalawan RAID1 na RAID10, nepi ka 24 cores sarta nepi ka 40GB DDR4).

Dell R730xd 2 kali langkung mirah dina puseur data Equinix nagara golongan IV di Amsterdam? Ngan di dieu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ti $199 di Walanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ti $99! Baca ngeunaan Kumaha ngawangun Infrastruktur Corp. kelas kalawan pamakéan Dell R730xd E5-2650 v4 server patut 9000 euro pikeun Penny a?

sumber: www.habr.com

Tambahkeun komentar