Ti monoliths mun microservices: pangalaman M.Video-Eldorado na MegaFon

Ti monoliths mun microservices: pangalaman M.Video-Eldorado na MegaFon

Dina 25 April, kami di Mail.ru Group ngayakeun konperénsi ngeunaan awan sareng sabudeureun - mailto: CLOUD. Sababaraha sorotan:

  • Utamana panyadia Rusia - Mail.ru Cloud Solutions, #CloudMTS, SberCloud, Selectel, Rostelecom Data Center sareng Yandex.Cloud nyarioskeun ngeunaan spésifik pasar awan kami sareng jasana;
  • Kolega ti Bitrix24 nyarios kumaha aranjeunna sumping ka multicloud;
  • Leroy Merlin, Otkritie, Burger King jeung Schneider Electric disadiakeun metot pintonan ti pamakéna awan - naon tugas bisnis maranéhanana disetél pikeun IT na naon téknologi, kaasup awan, aranjeunna ningali salaku paling ngajangjikeun.

Anjeun tiasa ningali sadaya pidéo tina konperénsi mailto:CLOUD link, sarta di dieu anjeun bisa maca kumaha sawala ngeunaan microservices indit. Alexander Deulin, kapala puseur panalungtikan sarta pamekaran sistem bisnis MegaFon, sarta Sergey Sergeev, diréktur téhnologi informasi tina grup M.Video-Eldorado, dibagikeun kasus suksés maranéhanana meunang leupas tina monoliths. Urang ogé ngabahas masalah patali strategi IT, prosés komo HR.

Panelis

  • Sergey Sergeev, Grup CIO "M.Video-Eldorado";
  • Alexander Deulin, kapala puseur pikeun panalungtikan sarta pamekaran sistem bisnis MegaFon;
  • Moderator - Dmitry Lazarenko, Kapala arah PaaS Mail.ru Cloud Solutions.

Saatos biantara Alexander Deulin "Kumaha MegaFon ngalegaan bisnisna ngaliwatan platform microservice" anjeunna ngagabung pikeun sawala ku Sergey Sergeev ti M.Video-Eldorado jeung moderator diskusi Dmitry Lazarenko, Mail.ru Cloud Solutions.

Di handap ieu kami parantos nyiapkeun transkrip diskusi pikeun anjeun, tapi anjeun ogé tiasa ningali pidéo:

Transisi ka microservices mangrupikeun réspon kana kabutuhan pasar

Dmitriy:

Dupi anjeun ngagaduhan pangalaman suksés migrasi ka microservices? Sareng sacara umum: dimana anjeun ningali kauntungan bisnis anu paling ageung tina ngagunakeun jasa mikro atanapi pindah tina monoliths ka microservices?

Sergey:

Kami parantos sumping sababaraha cara dina transisi ka microservices sareng parantos ngagunakeun pendekatan ieu langkung ti tilu taun. Kabutuhan munggaran anu diyakinkeun kabutuhan microservices nyaéta integrasi sajajalan tina rupa-rupa produk hareup-tungtung sareng kantor tukang. Sareng unggal waktos urang kapaksa ngalakukeun integrasi sareng pamekaran tambahan, ngalaksanakeun aturan urang sorangan pikeun operasi ieu atanapi jasa éta.

Dina sababaraha waktos, urang sadar yén urang kedah nyepetkeun operasi sistem sareng kaluaran fungsionalitas. Dina waktos éta, konsep sapertos microservices sareng pendekatan microservice parantos aya di pasar, sareng kami mutuskeun pikeun nyobian éta. Ieu dimimitian dina 2016. Teras platformna dipasang sareng 10 jasa munggaran dilaksanakeun ku tim anu misah.

Salah sahiji jasa anu pangheulana, anu paling beurat dimuat, nyaéta jasa itungan harga. Unggal waktos Anjeun datang ka channel mana wae, ka grup M.Video-Eldorado pausahaan, jadi éta ramatloka atawa toko ritel, pilih produk aya, tingali harga dina ramatloka atawa dina "Basket", biaya otomatis. diitung ku hiji layanan. Naha ieu diperlukeun: sateuacan ieu, unggal sistem miboga prinsip sorangan pikeun gawé bareng promosi - kalawan diskon jeung saterusna. Kantor tukang kami nanganan harga; fungsionalitas diskon dilaksanakeun dina sistem anu sanés. Ieu diperlukeun pikeun jadi terpusat sarta unik, layanan misah dijieun dina wangun prosés bisnis nu bakal ngidinan urang pikeun nerapkeun ieu. Éta pisan kumaha urang ngamimitian.

Nilai hasil munggaran éta pisan hébat. Anu mimiti, urang tiasa nyiptakeun éntitas anu tiasa dipisahkeun anu ngamungkinkeun urang damel nyalira sareng sacara agrégat. Kadua, kami parantos ngirangan biaya kapamilikan tina segi integrasi sareng langkung seueur sistem.

Salila tilu taun katukang, kami parantos nambihan tilu sistem garis payun. Hese pikeun ngajaga aranjeunna kalayan jumlah sumber daya anu sami anu mampuh perusahaan. Ku alatan éta, tugas timbul pikeun néangan toko anyar, ngarespon kana pasar dina watesan speed, dina watesan waragad internal tur efisiensi.

Kumaha ngukur kasuksésan migrasi ka microservices

Dmitriy:

Kumaha kasuksésan dina migrasi ka microservices ditangtukeun? Naon "saméméh" di unggal parusahaan? Métrik naon anu anjeun anggo pikeun nangtukeun kasuksésan transisi, sareng saha anu leres-leres nangtukeun éta?

Sergey:

Anu mimiti, éta dilahirkeun dina IT salaku enabler - "muka konci" kamampuan anyar. Urang kedah ngalakukeun sadayana langkung gancang pikeun artos anu sami, ngaréspon kana tantangan pasar. Ayeuna kasuksésan dinyatakeun dina jumlah jasa anu dianggo deui ku sistem anu béda, ngahijikeun prosés diantara aranjeunna. Ayeuna éta, tapi dina momen éta kasempetan pikeun nyieun platform sarta mastikeun hipotesa yén urang tiasa ngalakukeun ieu, éta bakal masihan pangaruh jeung ngitung kasus bisnis.

Alexander:

Kasuksésan rada rasa internal. Usaha sok hoyong langkung seueur, sareng jerona backlog kami mangrupikeun bukti kasuksésan. Sigana mah kitu.

Sergey:

Sumuhun, abdi satuju. Dina tilu taun, urang geus boga leuwih ti dua ratus jasa jeung backlog. Kabutuhan sumber daya dina tim ngan ukur ningkat - ku 30% taunan. Ieu kajantenan kusabab jalma ngarasa: éta langkung gancang, éta béda, aya téknologi anu béda, sadayana ieu ngembang.

Microservices bakal datang, tapi inti bakal tetep

Dmitriy:

Éta sapertos prosés anu teu aya tungtungna dimana anjeun investasi dina pangwangunan. Naha transisi ka microservices pikeun bisnis parantos réngsé atanapi henteu?

Sergey:

Gampang pisan ngajawabna. Kumaha saur anjeun: ngagentos telepon mangrupikeun prosés anu henteu terbatas? Urang sorangan meuli telepon unggal taun. Sareng ieu: salami aya kabutuhan pikeun gancang, pikeun adaptasi kana pasar, sababaraha parobihan bakal diperyogikeun. Ieu lain hartosna yén urang abandon hal baku.

Tapi urang teu bisa nutupan jeung redo sagalana sakaligus. Kami ngagaduhan warisan, jasa integrasi standar anu aya sateuacanna: beus perusahaan sareng saterasna. Tapi aya backlog a, sarta aya ogé anu peryogi. Jumlah aplikasi sélulér sareng fungsionalitasna ningkat. Dina waktu nu sarua, teu saurang ogé nyebutkeun yén anjeun bakal dibéré 30% leuwih duit. Hartina, sok aya kabutuhan dina hiji sisi, sareng milarian efisiensi di sisi sanésna.

Dmitriy:

Kahirupan aya dina kaayaan alus. (Seuri)

Alexander:

Sacara umum, enya. Kami henteu gaduh pendekatan revolusioner pikeun ngaleungitkeun bagian inti tina bentang. Karya sistematis keur dijalankeun pikeun decompose sistem ambéh maranéhanana leuwih konsisten jeung arsitéktur microservice, pikeun ngurangan pangaruh sistem dina unggal lianna.

Tapi kami ngarencanakeun pikeun ngajaga bagian inti, sabab dina bentang operator bakal aya sababaraha platform anu kami mésér. Sakali deui, urang peryogi kasaimbangan anu séhat: urang henteu kedah buru-buru motong inti. Kami nempatkeun sistem sisi-sisi, sareng ayeuna tétéla yén kami parantos aya di luhur seueur bagian inti. Salajengna, ngamekarkeun pungsionalitasna, urang nyiptakeun perwakilan anu dipikabutuh pikeun sadaya saluran anu tiasa dianggo sareng jasa komunikasi urang.

Kumaha ngajual jasa mikro ka usaha

Dmitriy:

Abdi ogé kabetot - pikeun anu henteu acan ngalih, tapi ngarencanakeun: kumaha gampangna ngajual ide ieu pikeun bisnis sareng éta petualangan, proyék investasi? Atanapi éta strategi sadar: ayeuna urang badé microservices sareng éta, teu aya anu bakal ngeureunkeun urang. Kumaha éta pikeun anjeun?

Sergey:

Kami henteu ngajual pendekatan, tapi kauntungan bisnis. Aya masalah dina bisnis, sarta kami diusahakeun pikeun ngajawab eta. Dina momen éta, éta dinyatakeun dina kanyataan yén saluran béda dipaké prinsip béda pikeun ngitung harga - misah pikeun promosi, keur promosi, jeung saterusna. Éta hésé ngajaga, kasalahan lumangsung, sarta kami listened keluhan customer. Nyaéta, kami ngajual solusi pikeun masalah, tapi kami sumping sareng kanyataan yén kami peryogi artos pikeun nyiptakeun platform. Sareng aranjeunna nunjukkeun kasus bisnis nganggo conto tahapan investasi anu munggaran: kumaha urang bakal teras-terasan ngabalikeun deui sareng naon anu bakal urang laksanakeun.

Dmitriy:

Naha anjeun kumaha waé ngarékam waktos tahap kahiji?

Sergey:

Sumuhun, pasti. Kami nyayogikeun 6 bulan pikeun nyiptakeun inti salaku platform sareng nguji pilot. Antukna, urang diusahakeun nyieun platform on nu skates pilot. Lajeng hipotesa ieu dikonfirmasi, sarta saprak gawéna, hartina urang bisa neruskeun. Aranjeunna mimiti ngayakeun réplikasi sareng nguatkeun tim - aranjeunna mindahkeun kana divisi anu misah anu ngalakukeun éta.

Salajengna asalna karya sistematis dumasar kana kabutuhan bisnis, kasempetan, kasadiaan sumberdaya jeung sagalana nu ayeuna aya dina karya.

Dmitriy:

OKÉ. Alexander, naon anu anjeun nyarios?

Alexander:

Layanan mikro kami dilahirkeun tina "busa laut" - kusabab ngahémat sumber daya, kusabab sababaraha sésa-sésa dina bentuk kapasitas pangladén sareng redistribusi kakuatan dina tim. Mimitina, urang henteu ngajual proyék ieu pikeun bisnis. Ieu mangrupikeun proyék dimana urang duanana ditaliti sareng dikembangkeun sasuai. Kami ngamimitian dina awal 2018 sareng ngan ukur ngembangkeun arah ieu kalayan sumanget. Penjualan nembé dimimitian sareng kami nuju prosés.

Dmitriy:

Naha aya usaha anu ngamungkinkeun anjeun ngalakukeun hal sapertos Google - dina hiji dinten gratis saminggu? Naha anjeun gaduh arah sapertos kitu?

Alexander:

Dina waktos anu sami sareng panalungtikan, kami ogé ngurus masalah bisnis, ku kituna sadaya jasa mikro kami mangrupikeun solusi pikeun masalah bisnis. Ngan dina awal urang ngawangun microservices nu nutupan sabagian leutik tina basa palanggan, sarta ayeuna urang hadir dina ampir kabéh produk andalannya.

Sareng dampak materialna parantos jelas - urang parantos tiasa diitung, laju peluncuran produk sareng kaleungitan pendapatan tiasa diperkirakeun upami urang ngiringan jalan anu lami. Ieu naon urang ngawangun kasus on.

Microservices: hype atanapi kabutuhan?

Dmitriy:

Angka téh angka. Jeung panghasilan atawa duit disimpen pohara penting. Kumaha lamun nempo sisi séjén? Sigana microservices mangrupikeun tren, hype sareng seueur perusahaan anu nyiksa éta? Kumaha jelas anjeun ngabédakeun naon anu anjeun lakukeun sareng henteu narjamahkeun kana jasa mikro? Upami warisan ayeuna, naha anjeun masih gaduh warisan dina 5 taun? Sabaraha umur sistem inpormasi anu dianggo di M.Video-Eldorado sareng MegaFon dina 5 taun? Naha bakal aya sistem inpormasi sapuluh taun, lima belas taun atanapi bakal janten generasi énggal? Kumaha anjeun ningali ieu?

Sergey:

Sigana mah hese mikir jauh pisan. Upami urang ningal deui, saha anu ngabayangkeun yén pasar téknologi bakal ngembangkeun cara ieu, kalebet mesin diajar sareng idéntifikasi pangguna ku raray? Tapi upami anjeun ningali taun-taun anu bakal datang, sigana kuring yén sistem inti, sistem kelas ERP perusahaan di perusahaan - aranjeunna parantos lami damel.

Perusahaan kami sacara koléktif 25 taun, kalayan ERP klasik anu jero pisan dina bentang sistem. Ieu jelas yén urang nyokot sababaraha lembar kaluar ti dinya sarta nyoba agrégat kana microservices, tapi inti bakal tetep. Hésé pikeun kuring ayeuna ngabayangkeun yén urang bakal ngagentos sadaya sistem inti di dinya sareng gancang ngalih ka sisi anu sanés tina sistem énggal.

I am a supporter kanyataan yén sagalana nu ngadeukeutan ka klien tur konsumen nyaeta dimana kauntungan bisnis greatest jeung nilai, dimana adaptability sarta fokus kana speed, on robah, dina "coba, ngabolaykeun, make deui, ngalakukeun hal béda" nyaeta. diperlukeun "-éta dimana bentang bakal robah. Sareng produk kotak henteu pas pisan di dinya. Sahenteuna urang teu ningali eta. Solusi panggampangna, pangbasajanna diperyogikeun di dinya.

Kami ningali perkembangan ieu:

  • sistem informasi inti (lolobana back office);
  • lapisan tengah dina bentuk microservices nyambungkeun inti, agrégat, nyieun cache, jeung saterusna;
  • Sistem garis hareup ditujukeun ka konsumen;
  • hiji lapisan integrasi nu umumna terpadu kana marketplaces, sistem sejen tur ékosistem. Lapisan ieu salaku hampang, basajan, sareng ngandung minimum logika bisnis.

Tapi dina waktos anu sareng, Kami a supporter neraskeun ngagunakeun prinsip heubeul lamun aranjeunna dipaké appropriately.

Anggap anjeun gaduh sistem perusahaan klasik. Hal ieu lokasina di bentang hiji vendor sarta diwangun ku dua modul nu gawéna saling. Aya ogé antarmuka integrasi standar. Naha redo deui jeung mawa microservice a?

Tapi lamun aya 5 modul di kantor tukang, ti mana potongan informasi dikumpulkeun kana prosés bisnis, nu lajeng dipaké ku 8-10 sistem hareup-garis, kauntungan langsung noticeable. Anjeun nyandak tina lima sistem kantor tukang sareng nyiptakeun jasa, anu terasing, anu difokuskeun kana prosés bisnis. Jantenkeun jasana sacara téknologis maju - supados nyimpen inpormasi sareng toleran kasalahan, sareng ogé tiasa dianggo sareng dokumén atanapi badan usaha. Sareng anjeun ngahijikeun éta dumasar kana prinsip tunggal sareng sadaya produk garis payun. Aranjeunna ngabatalkeun produk hareup - aranjeunna ngan saukur mareuman integrasi. Isukan anjeun kedah nyerat aplikasi sélulér atanapi ngadamel halaman wéb alit sareng nempatkeun ngan hiji bagian kana fungsionalitas - sadayana saderhana: anjeun ngarakit sapertos konstruktor. Kuring ningali langkung seueur pamekaran arah ieu - sahenteuna di nagara urang.

Alexander:

Sergey lengkep ngajelaskeun pendekatan kami, hatur nuhun. Kuring ngan bakal nyarios dimana urang pasti moal angkat - ka bagian inti, kana topik tagihan online. Hartina, rating jeung ngecas bakal tetep, kanyataanna, a thresher "badag" nu reliably bakal nulis kaluar duit. Sareng sistem ieu bakal terus disertipikasi ku otoritas pangaturan urang. Sagalana sejenna nu kasampak arah klien, tangtosna, nyaeta microservices.

Dmitriy:

Di dieu sertifikasi hiji carita. Meureun leuwih ngarojong. Upami anjeun nyéépkeun sakedik kana dukungan atanapi sistemna henteu ngabutuhkeun dukungan sareng modifikasi, langkung saé henteu nyabak éta. A kompromi lumrah.

Kumaha carana ngamekarkeun microservices dipercaya

Dmitriy:

muhun. Tapi kuring tetep resep. Ayeuna anjeun nyarioskeun carita anu suksés: sadayana saé, kami ngalih ka microservices, ngabéla ideu pikeun bisnis, sareng sadayana beres. Tapi kuring geus ngadéngé carita séjén.

Sababaraha taun ka pengker, perusahaan Swiss anu parantos investasi dua taun pikeun ngembangkeun platform microservice énggal pikeun bank ahirna nutup proyék éta. Sapinuhna rubuh. Seueur jutaan franc Swiss diséépkeun, sareng tungtungna tim bubar - éta henteu hasil.

Naha anjeun ngagaduhan carita anu sami? Naha atanapi aya kasusah? Contona, ngajaga microservices sarta ngawaskeun ogé mangrupa lieur dina kagiatan operasional parusahaan. Barina ogé, jumlah komponén naek puluhan kali. Kumaha anjeun ningali éta, naha aya conto investasi anu henteu suksés di dieu? Sareng naon anu anjeun tiasa mamatahan ka jalma supados aranjeunna henteu mendakan masalah sapertos kitu?

Alexander:

Conto anu henteu suksés kalebet usaha ngarobih prioritas sareng ngabatalkeun proyék. Nalika dina tahap kesiapan anu saé (nyatana, MVP parantos siap), usahana nyarios: "Kami ngagaduhan prioritas énggal, kami nuju ka proyék anu sanés, sareng urang nutup ieu."

Kami henteu ngagaduhan kagagalan global sareng microservices. Urang bobo damai, urang boga shift tugas 24/7 nu ngalayanan sakabéh BSS [sistem rojongan bisnis].

Sareng hiji deui - kami nyéwa jasa mikro numutkeun aturan anu berlaku pikeun produk kotak. Konci pikeun kasuksesan nyaéta anjeun kedah, mimitina, pikeun ngumpul tim anu bakal pinuh nyiapkeun microservice pikeun produksi. Pangwangunan sorangan, saratna, 40%. Sésana nyaéta analytics, metodologi DevSecOps, integrasi anu leres sareng arsitéktur anu leres. Urang nengetan husus ka prinsip ngawangun aplikasi aman. Perwakilan kaamanan inpormasi ilubiung dina unggal proyék boh dina tahap perencanaan arsitéktur sareng nalika prosés palaksanaan. Éta ogé ngatur sistem pikeun nganalisis kode pikeun kerentanan.

Anggap urang nyebarkeun jasa stateless kami - kami ngagaduhan di Kubernetes. Hal ieu ngamungkinkeun sadayana saré kalayan damai kusabab skala otomatis sareng ningkatkeun jasa otomatis, sareng pergeseran tugas nyandak kajadian.

Dina sakabéh ayana microservices urang, ngan aya hiji atawa dua kajadian anu geus ngahontal garis kami. Ayeuna teu aya masalah sareng operasi. Urang, tangtosna, teu boga 200, tapi ngeunaan 50 microservices, tapi aranjeunna dipaké dina produk andalannya. Upami aranjeunna gagal, urang bakal anu pangheulana terang ngeunaan éta.

Microservices sarta HR

Sergey:

Kuring satuju sareng batur sapagawean kuring ngeunaan transfer pikeun ngadukung - yén padamelan kedah diatur leres. Tapi kuring bakal nyarioskeun ka anjeun ngeunaan masalah anu, tangtosna, aya.

Anu mimiti, téknologi anyar. Ieu hype dina cara anu saé, sareng milarian spesialis anu bakal ngartos sareng tiasa nyiptakeun ieu mangrupikeun tantangan anu ageung. Kompetisi pikeun sumber daya gélo, janten para ahli patut beuratna dina emas.

Kadua, kalayan nyiptakeun bentang-bentang anu tangtu sareng jumlah jasa anu ningkat, masalah pamakean deui kedah direngsekeun terus-terusan. Salaku pamekar resep ngalakukeun: "Hayu urang nulis loba hal metot dieu ayeuna ..." Kusabab ieu, sistem tumuwuh sarta leungit efektivitas na dina watesan duit, biaya kapamilikan, jeung saterusna. Nyaéta, anjeun kedah ngalebetkeun deui dina arsitéktur sistem, kalebet kana peta jalan pikeun ngenalkeun jasa sareng nransferkeun warisan ka arsitéktur énggal.

Masalah anu sanés - sanaos ieu saé dina cara sorangan - nyaéta kompetisi internal. "Oh, lalaki modis anyar parantos muncul di dieu, aranjeunna nyarios basa énggal." Jalma, tangtu, béda. Aya anu biasa nulis dina Java, sareng anu nyerat sareng nganggo Docker sareng Kubernetes. Ieu jalma sagemblengna béda, maranéhna nyarita béda, ngagunakeun istilah béda jeung kadang teu ngarti unggal lianna. Kamampuhan atawa henteu mampuh babagi prakték, babagi pangaweruh, dina harti ieu ogé masalah.

Muhun, sumberdaya skala. “Hebat, hayu! Sareng ayeuna urang hoyong langkung gancang, langkung seueur. Naon, anjeun teu tiasa? Naha teu mungkin pikeun nganteurkeun dua kali langkung seueur dina sataun? Jeung naha?" Nyeri ngembang sapertos kitu sigana standar pikeun seueur hal, seueur pendekatan, sareng anjeun tiasa ngaraosan.

Ngeunaan pangawasan. Sigana mah jasa atanapi alat ngawaskeun industri parantos diajar atanapi tiasa damel sareng Docker sareng Kubernetes dina modeu anu henteu standar. Ku kituna, contona, anjeun teu mungkas nepi ka 500 mesin Java ngabawah sadayana ieu ngajalankeun, nyaéta, aggregates. Tapi produk ieu masih kurang kematangan; aranjeunna kedah ngaliwat ieu. Topik anu énggal, éta bakal terus mekar.

Dmitriy:

Sumuhun, pisan metot. Sareng ieu manglaku ka HR. Panginten prosés HR anjeun sareng merek HR parantos robih sakedik salami 3 taun ieu. Anjeun mimiti recruit jalma séjén kalawan kompetensi béda. Jeung meureun aya duanana pro jeung kontra. Saméméhna, blockchain sareng élmu data mangrupikeun hype, sareng spesialis di antarana jutaan hargana. Ayeuna biaya turun, pasar janten jenuh, sareng aya tren anu sami dina jasa mikro.

Sergey:

Sumuhun, leres pisan.

Alexander:

HR naroskeun patarosan: "Dimana unicorn pink anjeun antara backend sareng frontend?" HR henteu ngartos naon microservice. Urang ngawartoskeun aranjeunna rusiah sarta ngawartoskeun aranjeunna yen backend nu ngalakukeun sagalana, tur euweuh unicorn. Tapi SDM robih, diajar gancang sareng ngarekrut jalma anu gaduh pangaweruh dasar IT.

Évolusi microservices

Dmitriy:

Upami anjeun ningali arsitéktur target, microservices sapertos monster sapertos kitu. Perjalanan anjeun nyandak sababaraha taun. Lain geus sataun, batur tilu taun. Naha anjeun ngaramalkeun sadaya masalah, arsitéktur target, naha aya anu robih? Contona, dina kasus microservices, gateways na meshes jasa ayeuna muncul deui. Naha anjeun nganggo aranjeunna dina awal atanapi anjeun ngarobih arsitéktur sorangan? Naha anjeun gaduh tantangan sapertos kitu?

Sergey:

Kami parantos nyerat deui sababaraha protokol komunikasi. Mimitina aya hiji protokol, ayeuna urang ngalih ka anu sanés. Urang ningkatkeun kaamanan jeung reliabilitas. Urang mimitian ku téknologi perusahaan - Oracle, Web Logic. Ayeuna urang ngajauhan produk perusahaan téknologi dina microservices sareng pindah ka open source atanapi téknologi kabuka lengkep. Urang abandon basis data sarta pindah ka naon gawéna leuwih éféktif pikeun urang dina modél ieu. Kami henteu peryogi deui téknologi Oracle.

Urang dimimitian saukur salaku layanan a, tanpa mikir ngeunaan sabaraha urang diperlukeun cache a, naon anu bakal urang pigawé lamun euweuh sambungan kalawan microservice a, tapi data diperlukeun, jsb Ayeuna urang nuju ngembangkeun hiji platform supados arsitektur bisa digambarkeun. henteu dina basa jasa, sareng dina basa bisnis, nyandak logika bisnis ka tingkat salajengna nalika urang ngamimitian nyarios dina kecap. Ayeuna urang diajar nyarios dina hurup, sareng tingkat salajengna nyaéta nalika jasa bakal dikumpulkeun kana sababaraha jinis agrégat, nalika ieu mangrupikeun kecap - contona, kartu produk sadayana. Hal ieu dirakit ti microservices, tapi mangrupa API diwangun dina luhureun ieu.

Kasalametan penting pisan. Pas anjeun mimiti jadi diaksés jeung anjeun boga layanan ngaliwatan nu bisa meunang loba hal metot, sarta gancang pisan, dina hiji pamisah detik, lajeng aya kahayang pikeun meunangkeun eta dina cara teu paling aman. Pikeun ngajauhan ieu, urang kedah ngarobih pendekatan pikeun nguji sareng ngawaskeun. Urang kedah ngarobih tim, struktur manajemén pangiriman, CI / CD.

Ieu évolusi - kawas telepon, ngan leuwih gancang: mimitina aya telepon push-tombol, lajeng smartphone mucunghul. Aranjeunna rewrote na redesigned produk sabab pasar miboga kabutuhan béda. Ieu kumaha urang mekar: kelas kahiji, kelas kasapuluh, gawé.

Iteratively, hal anu diteundeun kaluar per taun ti sudut pandang téhnologi, hal sejenna tina sudut pandang backlog jeung kabutuhan. Urang nyambungkeun hiji hal ka nu sejen. Tim éta nyéépkeun 20% kanggo hutang téknis sareng dukungan téknis pikeun tim, 80% pikeun badan usaha. Sarta kami mindahkeun kalawan pamahaman naha urang ngalakukeun eta, naha urang nyieun perbaikan téhnologis ieu, naon maranéhna bakal ngakibatkeun. Sapertos kitu.

Dmitriy:

Tiis. Naon anu aya dina MegaFon?

Alexander:

Tangtangan utama nalika urang sumping ka microservices éta teu digolongkeun kana rusuh. Kantor arsitéktur MegaFon langsung ngagabung sareng kami, bahkan janten inisiator sareng supir - ayeuna kami ngagaduhan arsitéktur anu kuat. Tugasna nyaéta ngartos naon modél target anu urang badé angkat sareng téknologi naon anu kedah diuji. Kalayan arsitéktur, urang ngalaksanakeun pilot ieu nyalira.

Patarosan salajengna nyaéta: "Lajeng kumaha mangpaatkeun sadayana ieu?" Sareng hiji deui: "Kumaha carana mastikeun interaksi transparan antara jasa mikro?" Service bolong mantuan kami ngajawab patarosan panungtungan. Urang piloted Istio tur resep hasilna. Ayeuna urang dina tahap rolling kaluar kana zona produktif. Simkuring boga sikep positif kana sagala tantangan - kanyataan yén urang kudu terus ngarobah tumpukan, diajar hal anyar. Kami kabetot dina ngamekarkeun, teu ngamangpaatkeun solusi heubeul.

Dmitriy:

Kecap emas! Tantangan sapertos kitu ngajaga tim sareng bisnis dina jari kaki sareng nyiptakeun masa depan. GDPR nyiptakeun perwira panyalindungan data kapala, sareng tantangan ayeuna nyiptakeun patugas microservices sareng arsitéktur. Sarta eta pleases.

Urang bahas pisan. Hal utama nyaéta yén desain microservice anu saé sareng arsitéktur sorangan ngamungkinkeun anjeun pikeun nyingkahan seueur kasalahan. Tangtosna, prosésna nyaéta iteratif sareng évolusionér, tapi éta masa depan.

Hatur nuhun ka sadaya pamilon, hatur nuhun ka Sergei jeung Alexander!

Patarosan ti panongton

Patarosan ti panongton (1):

Sergey, kumaha manajemén IT parantos robih di perusahaan anjeun? Kuring ngarti yén nalika aya tumpukan ageung tina sababaraha sistem, kumaha éta diurus nyaéta prosés anu cukup jelas sareng logis. Kumaha anjeun ngawangun deui manajemén komponén IT saatos sajumlah ageung microservices diintegrasikeun dina waktos anu singget?

Sergey:

Kuring satuju sareng batur sapagawean kuring yén arsitéktur penting pisan salaku panggerak parobahan. Urang mimitian ku ngabogaan division arsitéktur. Arsiték sakaligus nu gaduh distribusi fungsionalitas sareng sarat pikeun kumaha éta bakal muncul dina bentang. Janten aranjeunna ogé janten koordinator parobahan ieu. Hasilna, aya parobahan husus ka prosés pangiriman husus nalika urang nyieun CI / platform CD.

Tapi standar, prinsip dasar pangwangunan, analisa bisnis, uji sareng pamekaran henteu acan dibatalkeun. Urang ngan nambahan speed. Saméméhna, siklus nyandak jadi loba, instalasi dina lingkungan test nyandak jadi leuwih. Ayeuna bisnis ningali kauntungan sareng nyarios: "Naha urang henteu tiasa ngalakukeun anu sami di tempat sanés?"

Éta sapertos, dina cara anu saé, suntikan dina bentuk vaksin anu nunjukkeun: anjeun tiasa ngalakukeun ku cara ieu, tapi anjeun tiasa ngalakukeun ku cara anu sanés. Tangtosna, aya masalah dina tanaga, dina kompetensi, dina pangaweruh, dina résistansi.

Patarosan ti panongton (2):

Kritikus arsitéktur microservice nyarios yén tés sareng pamekaran sesah. Ieu logis dimana hal jadi pajeulit. Tantangan naon anu disanghareupan ku tim anjeun sareng kumaha anjeun ngatasina? Patarosan pikeun sadayana.

Alexander:

Aya kasusah nalika mindahkeun tina microservices ka platform, tapi maranéhna bisa direngsekeun.

Contona, urang nyieun hiji produk nu diwangun ku 5-7 microservices. Urang kudu nyadiakeun tés integrasi sakuliah sakabéh microservices tumpukan méré lampu héjo pikeun pindah ka cabang master. Tugas ieu sanés énggal pikeun kami: kami parantos lami ngalakukeun ieu di BSS, nalika vendor nyayogikeun solusi anu parantos dikirimkeun.

Jeung masalah urang ngan dina tim leutik. Hiji insinyur QA diperlukeun pikeun hiji produk kondisional. Janten, kami ngirimkeun produk tina 5-7 microservices, dimana 2-3 tiasa dikembangkeun ku pihak katilu. Salaku conto, urang gaduh produk dina pamekaran dimana vendor sistem tagihan urang, Mail.ru Group sareng MegaFon R&D milu. Urang kedah nutupan ieu ku tés sateuacan dikirim ka produksi. Insinyur QA parantos ngusahakeun produk ieu salami sasih satengah, sareng sesa tim ditinggalkeun tanpa dukungan na.

Pajeulitna ieu ngan disababkeun ku skala. Urang ngarti yén microservices teu bisa aya dina vakum; isolasi mutlak teu aya. Nalika ngarobah hiji layanan, urang salawasna coba pikeun ngawétkeun kontrak API. Upami aya anu robih handapeun tiung, jasa payun tetep. Upami parobihan éta fatal, sababaraha jinis transformasi arsitéktur lumangsung sareng urang ngalih ka metamodel data anu béda-béda, anu henteu cocog - ngan lajeng urang ngobrol ngeunaan spésifikasi API layanan v2 anu muncul. Urang ngarojong versi kahiji jeung kadua sakaligus, sarta sanggeus kabeh pamakéna pindah ka versi kadua, urang ngan nutup hiji munggaran.

Sergey:

Abdi hoyong nambihan. Abdi satuju pisan ngeunaan komplikasi - éta kajadian. Lanskapna janten langkung kompleks, sareng biaya overhead naék, khususna pikeun tés. Kumaha carana nungkulan ieu: pindah ka nguji otomatis. Leres, anjeun kedah investasi tambahan dina nyerat autotes sareng tés unit. Sangkan pamekar teu bisa ngalakukeun tanpa lulus ujian, aranjeunna teu bisa ngarobah kodeu. Ku kituna sanajan tombol push teu jalan tanpa autotest, Unit test.

Kadé ngajaga pungsionalitas saméméhna, sarta ieu overhead tambahan. Upami anjeun nyerat deui téknologi kana protokol anu sanés, teras anjeun nyerat deui dugi ka anjeun nutup sadayana lengkep.

Urang kadang teu ngalakukeun tés tungtung-to-tungtung dina Tujuan, sabab urang teu hayang ngeureunkeun ngembangkeun, sanajan urang ogé boga hiji hal sanggeus sejen. Bentang pisan ageung, kompleks, seueur sistem. Kadang-kadang ngan saukur rintisan - enya, anjeun nurunkeun margin kaamanan, langkung seueur résiko muncul. Tapi dina waktos anu sareng anjeun ngaleupaskeun suplai.

Alexander:

Leres, tes otomatis sareng tes unit ngamungkinkeun anjeun nyiptakeun jasa anu kualitas luhur. Kami pikeun pipa anu teu tiasa diliwatan tanpa tes unit sareng integrasi. Urang mindeng kudu nyered emulators sarta sistem komérsial kana zona test jeung lingkungan ngembangkeun, sabab teu sakabeh sistem bisa ditempatkeun dina zona test. Sumawona, aranjeunna henteu ngan ukur baseuh - kami ngahasilkeun réspon lengkep tina sistem. Ieu bagian serius tina gawé bareng microservices, sarta kami ogé investasi di dinya. Tanpa ieu, rusuh bakal ensue.

Patarosan ti panongton (3):

Sajauh anu kuring ngartos, microservices mimitina tumbuh tina tim anu misah sareng ayeuna aya dina modél ieu. Naon pro jeung kontra na?

Kami ngan ukur gaduh carita anu sami: jenis pabrik microservices timbul. Ayeuna urang sacara konseptual dugi ka titik yén urang ngalegaan pendekatan ieu pikeun produksi ku aliran sareng sistem. Kalayan kecap sanésna, urang nuju ngajauhan pamekaran terpusat tina microservices, modél microservice, sareng janten langkung caket kana sistem.

Sasuai, operasi kami ogé nuju ka sistem, nyaéta, urang desentralisasi topik ieu. Naon pendekatan anjeun sareng naon carita udagan anjeun?

Alexander:

Anjeun ngaleungitkeun nami "pabrik jasa mikro" langsung tina sungut anjeun - kami ogé hoyong skala. Anu mimiti, urang ayeuna gaduh hiji tim. Kami hoyong nyayogikeun sadaya tim pangembangan anu MegaFon gaduh kasempetan pikeun damel di ékosistem umum. Kami henteu hoyong leres-leres nyandak sadaya fungsi pangwangunan anu ayeuna urang gaduh. Tugas lokal nyaéta skala, tugas global nyaéta mingpin pangwangunan ka sadaya tim dina lapisan microservice.

Sergey:

Kuring gé ngabejaan Anjeun jalan nu geus kami nyokot. Kami leres-leres ngamimitian damel salaku hiji tim, tapi ayeuna urang henteu nyalira. I am a proponent tina handap: kudu aya nu boga prosés. Aya anu kedah ngartos, ngatur, ngontrol sareng ngawangun prosés pangembangan microservices. Anjeunna kedah gaduh sumber daya sareng kalibet dina manajemén sumberdaya.

Sumberdaya ieu, anu terang téknologi, spésifik sareng ngartos kumaha ngawangun microservices, tiasa aya dina tim produk. Kami gaduh campuran dimana jalma ti platform microservice aya dina tim produk anu ngadamel aplikasi mobile. Éta aya, tapi aranjeunna tiasa dianggo dumasar kana prosés departemén manajemén platform microservice sareng manajer pangembanganana. Dina divisi ieu aya tim anu misah anu ngurus téknologi. Nyaéta, urang nyampur sumber daya umum di antara urang sareng ngabagi aranjeunna, masihan ka tim.

Dina waktos anu sami, prosésna tetep umum, dikontrol, éta lumangsung dumasar kana prinsip téknologi umum, kalayan uji unit sareng saterasna - sadayana anu diwangun di luhur. Bisa jadi aya kolom dina bentuk sumberdaya dikumpulkeun ti departemén béda tina pendekatan produk.

Alexander:

Sergey, anjeun sabenerna nu boga prosés, katuhu? Dupi tugas backlog dibagikeun? Saha anu tanggung jawab distribusina?

Sergey:

Tingali: ieu campuran deui. Aya backlog anu dibentuk dumasar kana perbaikan téknologi - ieu mangrupikeun carita. Aya backlog, anu dirumuskeun tina proyék, sareng aya backlog tina produk. Tapi runtuyan bubuka kana unggal produk jasa atawa kreasi jasa ieu dikembangkeun ku spesialis produk. Anjeunna henteu di diréktur IT; anjeunna sacara khusus dikaluarkeun tina éta. Tapi jalma-jalma mah pasti dianggo nurutkeun prosés anu sami.

Nu boga backlog dina arah béda - backlog of parobahan - bakal jalma béda. Sambungan jasa téknologi, prinsip pangaturna - sadayana ieu bakal aya dina IT. Abdi gaduh platform sareng sumberna ogé. Di luhur aya naon masalah backlog sareng parobihan fungsional, sareng arsitéktur dina hal ieu.

Sebutkeun usaha nyarios: "Kami hoyong fungsi ieu, kami hoyong nyiptakeun produk énggal - remake a loan." Kami ngajawab: "Leres, kami bakal ngulang deui." Arsitek nyarios: "Hayu urang pikir: dimana injeuman urang bakal nyerat microservices sareng kumaha urang bakal ngalakukeunana?" Teras kami ngarobih kana proyék, produk atanapi tumpukan téknologi, nempatkeun kana tim sareng ngalaksanakeunana. Naha anjeun parantos nyiptakeun produk sacara internal sareng mutuskeun pikeun ngagunakeun jasa mikro dina produk ieu? Kami nyarios: "Ayeuna sistem warisan anu urang gaduh, atanapi sistem garis payun, kedah ngalih ka microservices ieu." Arsiték nyarios: "Jadi: dina backlog téknologi di jero produk garis hareup - transisi ka microservices. Indit". Sareng spesialis produk atanapi pamilik usaha ngartos sabaraha kapasitas anu dialokasikeun, iraha éta bakal dilakukeun sareng kunaon.

Tungtung sawala, tapi teu kabeh

Konperénsi mailto:CLOUD diayakeun Mail.ru Cloud Solutions.

Urang ogé ngalakukeun acara séjén - misalna. @Kubernetes Meetup, dimana urang salawasna pilari speaker hébat:

  • Tuturkeun @Kubernetes sareng warta @Meetup anu sanés dina saluran Telegram kami t.me/k8s_mail
  • Kabetot nyarios dina salah sahiji @Meetups? Ninggalkeun pamundut pikeun mcs.mail.ru/speak

sumber: www.habr.com

Tambahkeun komentar