Rumah Perniagaan Microservices: apa yang mereka dan kenapa perniagaan anda patut dijaga

Microservices: apa yang mereka dan kenapa perniagaan anda patut dijaga

Video: Microservices Design Patterns | Microservices Architecture Patterns | Edureka (November 2024)

Video: Microservices Design Patterns | Microservices Architecture Patterns | Edureka (November 2024)
Anonim

Landskap perisian perusahaan dipenuhi dengan teknologi buzzy. Kami telah menulis banyak tentang mereka, sama ada blockchain, pembangunan kod yang rendah, atau trend baru lain yang mengubah cara kami bekerja. Satu kata kunci baru yang anda tidak pernah dengar sebelum ini adalah "microservices."

Itulah reka bentuk. Microservices adalah cara yang berbeza untuk perisian arkitek berdasarkan satu set komponen modular yang dipertandingkan dan bukannya idea tradisional aplikasi "monolit" yang terdiri daripada satu gunung kod yang semakin berkembang. Apl berasaskan mikroservis tidak kelihatan berbeza dari sisi antara muka pengguna (UI), sama ada dalam apl pusat data kompleks atau aplikasi web atau mudah alih yang dihoskan pada infrastruktur awan berskala.

Sebab perniagaan perlu mengambil berat tentang mikroservis adalah, di belakang tabir, senibina dapat membantu perkembangan anda dan pasukan IT bekerja dan berinovasi lebih cepat, menguruskan infrastruktur, dan mengurangkan kos dan kerumitan menambahkan ciri-ciri baru dan fungsi ke aplikasi. Al Hilwa, Pengarah Program Penyelidikan Perisian Pembangunan Aplikasi di IDC, menjelaskan bagaimana beliau akan melancarkan microservices kepada eksekutif sambil mengingati cabaran kebudayaan dan teknologi.

"Apabila membina sistem baru, mungkin titik utama adalah untuk mengenali bahawa mikroservice tunggal perlu dibina oleh pasukan kecil, " kata Hilwa. "Kedua, toleransi kepelbagaian dalam bahasa pengaturcaraan dan alur kerja pemaju sering disiratkan oleh sifat bebas dari budaya mikroservis secara keseluruhan. Lapangan utama untuk seorang eksekutif adalah untuk membina perisian secara bertahap menggunakan pasukan kecil, dengan masing-masing membina satu modul yang koheren dengan diterbitkan Antara kelebihannya adalah bahawa modul bebas boleh berkembang pada kadar yang lebih cepat secara bebas selagi API yang diterbitkan diuruskan dengan cara teratur."

Apakah Microservices, Betul?

Hilwa menulis sebuah laporan IDC 2015 yang bertajuk, "Kemunculan Microservices sebagai Pendekatan Senibina Baru untuk Membangun Sistem Perisian Baru." Dalam laporan itu, beliau mentakrifkan mikroservis sebagai seni bina perisian granular di mana komponen apl direka dan berkembang secara bebas untuk memenuhi keperluan interoperabiliti yang ditakrifkan API (bermakna, diikat semula ke dalam aplikasinya secara keseluruhan). Microservices tidak wujud dalam vakum, walaupun. Senibina baru memerlukan sokongan organisasi yang kuat dan peralihan dalam budaya IT.

Microservices juga tidak ditakrifkan oleh mana-mana satu teknologi tertentu tetapi sebagai evolusi konsep seni bina yang berorientasikan perkhidmatan (SOA) lama yang bertambah dengan kemunculan kontena dan kebangkitan automasi melalui pendekatan pembangunan seperti penghantaran berterusan (CD) dan integrasi berterusan (CI).

"Organisasi yang menggunakan microservices hari ini biasanya termotivasi oleh keinginan untuk mempercepat evolusi perkhidmatan, " kata Hilwa. "Oleh itu, dalam kebanyakan kes, microservices menggunakan automasi CI / CD ke tahap yang besar, namun kadar penggunaan sebenar mungkin berbeza antara perkhidmatan. Saya fikir pentingnya untuk melihat dengan baik budaya dalaman dan pastikan anda sanggup bertolak ansur dengan lebih banyak desentralisasi dan kepelbagaian dalam timbunan teknologi."

Dengan "budaya dalaman" Hilwa sebahagian besarnya merujuk kepada DevOps, falsafah yang menggabungkan pembangunan perisian, operasi IT, dan jaminan kualiti (QA) menjadi alur kerja tunggal yang tunggal. Permulaan perisian DevOps HashiCorp dan pengasasnya telah lama menjadi penyokong mikroservis. Syarikat itu, yang baru-baru ini memperoleh pusingan dana berjumlah $ 24 juta, mengira syarikat seperti Cisco, DigitalOcean, Mozilla, dan Stripe di kalangan pengguna sumber terbuka dan pelanggan perusahaannya.

Microservices adalah teras kepada bagaimana HashiCorp mendekati pembangunan infrastruktur DevOps dan alur kerja aplikasi merentas alat sumber terbuka yang popular dan suite produk perusahaan yang semakin berkembang. Armon Dadgar, CTO dan pengasas bersama HashiCorp, merosakkan perbezaan antara monolit dan microservices dengan menggunakan analogi mudah: Amazon dan eBay.

"Fikirkan tentang Amazon dan eBay sebagai aplikasi tunggal. Dari perspektif pengguna akhir, mereka kelihatan serupa tetapi, di belakang tabir, syarikat mengambil pendekatan bertentangan bagaimana mereka membina dan memahatkan aplikasi mereka, " kata Dadgar. "Amazon dari permulaan telah menjadi satu mikroservis yang berfungsi sebagai aplikasi tunggal tetapi jika anda melakukan carian, katalog produk, keranjang belanja, invois, arus pesanan, dan memecah fungsi tersebut, kedua aplikasi berjalan pada mesin."

Analogi Amazon juga memanjangkan bagaimana Amazon sendiri tersusun. Dadgar menerangkan pendekatan teknologi seperti microservices sebagai alat untuk menyokong pergerakan proses yang lebih besar ke arah DevOps. "Dua Pizza Peraturan Jeff Bezos" berfungsi supaya hanya antara lima dan lapan orang berada di mana-mana pasukan Amazon. Jika pasukan menjadi lebih besar, maka ia berpecah menjadi dua.

Hierarki organisasi Amazon mula memetakan ke arah apa yang dikatakan Dadgar sebagai "penguraian fungsi." Diasingkan pada kedua-dua aras binaan organisasi dan aras modular, setiap pasukan kemudian mempunyai keupayaan untuk mengembangkan dan mencuba lebih bebas, tanpa keperluan untuk menyelaraskan pada setiap perubahan-sementara masih berfungsi sebagai sebahagian daripada aplikasi tunggal yang padu.

"eBay mengambil pendekatan monolitik, mereka membina semua eBay sebagai garis panjang, 50 juta permohonan kod, " kata Dadgar. "Pendekatan microservices lebih menyakitkan pada awalnya kerana masalah modularity dan interoperability adalah yang tidak wujud dalam monolit.Tetapi perkara-perkara mula memecahkan apabila aplikasi tumbuh terlalu besar.Dalam monolit, tidak ada penguraian.

"Berfikir tentang beratus-ratus atau ribuan pemaju yang berkolaborasi di satu pangkalan data tunggal dan cuba menyelaras. Pasukan QA menambah kefungsian pada satu sisi aplikasi boleh memecahkan sesuatu di pihak lain kerana tidak ada pemisahan yang jelas mengenai peranan dan tanggungjawab. Anda mula memerlukan lebih banyak penyelarasan antara pengurus projek dan proses QA yang boleh mengambil masa beberapa minggu dan perkembangan kesesakan, tidak kira seberapa pantas pasukan itu berfungsi. Ia terlalu banyak tukang masak di dapur."

Kontena dan Mikroservis Dalam Dunia DevOps

Cara di mana perniagaan anda melaksanakan seni bina mikroservis akan pergi jauh ke arah menentukan sama ada atau tidak pelaburan akan dibayar. Microservices adalah banyak kerja di muka, terutamanya dalam integrasi API yang diperlukan untuk memastikan semua perkhidmatan bercakap antara satu sama lain. Hilwa menjelaskan bahawa ia lebih rumit apabila cuba mengintegrasikan microservices ke dalam sistem yang sedia ada; dia mengesyorkan agar perusahaan membina sistem baru bila mungkin, bukannya mengulangi semula aplikasi monolit warisan untuk mikroservis.

"Senibina sistem tradisional biasanya melibatkan rekod sistem pangkalan data yang besar dan rumit dengan skema normal yang rumit, " kata Hilwa. "Memfaktorkan sistem sedemikian ke dalam komponen yang lebih kecil dengan sistem bebas mereka sendiri memerlukan banyak kerja reka bentuk pangkalan data dan berkesan menulis semula sebahagian besar logik aplikasi teras. Ini biasanya kos dan masa larangan dalam kebanyakan kes."

Sekiranya anda membuat arkitek semula aplikasi warisan, maka Hilwa menyarankan anda melakukan secara bertahap. Walaupun lebih penting daripada integrasi API, microservices tidak berfungsi tanpa budaya DevOps di belakangnya. Dadgar berkata HashiCorp, apabila ia datang kepada payung DevOps yang lebih besar, mikroservis menjadi alat untuk memudahkan peralihan proses yang lebih besar ke arah fundamental mengubah alur kerja yang kami hantar aplikasi. Dia menunjuk kepada Tao HashiCorp yang diletakkan ketika dia dan pengasas bersama Mitchell Hashimoto memulakan syarikat itu: mudah, modular, dan komposit.

"DevOps dalam keadaan tertentu adalah istilah yang lebih besar daripada microservices, " kata Dadgar. "Tetapi perniagaan terdiri daripada orang-orang yang mempunyai pengetahuan khusus: pemaju, pengusaha, pegawai keselamatan, dan kemudian anda mempunyai proses, cara anda mengatur orang-orang itu, maka anda mempunyai alat untuk menyokong proses itu, di mana microservices dan kontainer masuklah."

Kontena, yang dipopulerkan oleh letupan sumber terbuka Docker, jauh dari satu-satunya perusahaan alat yang boleh digunakan untuk memudahkan microservices. IDC's Hilwa berkata bekas digunakan dalam aplikasi moden sebagai sebahagian daripada aliran kerja CI / CD dan, dalam beberapa kes, semasa digunakan untuk pengeluaran. Tetapi katanya microservices boleh memanfaatkan mesin maya (VMs) juga, tanpa memerlukan bekas.

Katanya, ketika datang kepada cara-cara di mana awan perniagaan berkembang, kontainer Docker dan microservices adalah kombinasi perkakas yang kuat yang dipeluk oleh perniagaan dari semua bentuk dan saiz-dari startups seperti HashiCorp kepada syarikat-syarikat gergasi seperti Oracle. Dadgar HashiCorp mengatakan kontena adalah cara yang mudah di mana Dev dan Ops (dan, oleh persatuan, pasukan dan perkhidmatan yang berbeza) berkomunikasi antara satu sama lain.

"Apakah artifak yang kami lalui di antara pemaju dan pengendali? Apa yang kami mengalir dengan teliti dan membina? Kontena adalah satu unit mudah untuk dilalui, " kata Dadgar. "Pikirkan tentang produk perkapalan perusahaan di seluruh dunia, sama ada kapal kargo, kereta kargo, atau trak, unit yang sama mengalir ke seluruh sistem."

DevOps dan microservices masih jauh dari penggunaan perusahaan yang meluas tetapi pasaran hanya berkembang. Mengikut laporan IDC, seni bina mikroservis akan memasuki fasa pematangan dalam tempoh lima tahun akan datang. Kematangan ini akan berlaku pada budaya DevOps yang mencapai 50 peratus organisasi menjelang 2020, evolusi berterusan alat automasi perisian, dan penguasaan infrastruktur awan yang murah dan boleh skala yang disediakan oleh orang-orang seperti Amazon Web Services (AWS) dan Microsoft Azure.

Dadgar berkata, walaupun dengan sebahagian kecil daripada perusahaan yang merangkumi DevOps dan microservices pada masa ini, HashiCorp sudah terlalu terlebih langganan. Ia mencapai pendapatan tujuh angka pertama selepas hanya sembilan bulan jualan perusahaan, di atas komuniti sumber terbuka di GitHub beberapa juta pengguna aktif bulanan. Microservices hanyalah sebahagian daripada perancangan alat alir kerja HashiCorp dan perancangan jalan infrastruktur DevOps yang lebih besar. Tetapi modularity dan interoperability di bawah segala-galanya yang dibina oleh syarikat telah memacu kenaikan meteorik salah satu daripada permulaan perisian paling hangat di Silicon Valley.

"Empat tahun yang lalu apabila kita mula, kita akan pergi ke mesyuarat dan mengalihkan pandangan kita tentang bagaimana infrastruktur akan diuruskan, " kata Dadgar. "Kami tidak benar-benar tertawa keluar dari bilik, kami tahu sudah mula-mula. Tetapi sekarang alat kami seperti Terraform sedang dalam perjalanan untuk menjadi standard industri. Apa yang kita lihat adalah kesan domino tekanan kompetitif dan, dalam jangka panjang, peranan kami akan bekerja dengan CIO dan CTO untuk memahami peralihan proses yang mereka perlukan.

"Pikirkan Toyota pada hari itu, " Dadgar meneruskan. "Anda mempunyai sekumpulan produk kereta syarikat bangunan tetapi kos lebih tinggi daripada yang sepatutnya. Toyota tidak mencipta semula apa yang kereta itu, mereka hanya lebih ketat dan bertambah banyak tentang proses itu, dan pergi dari ketawa ke powerhouse, memaksa Sebilangan besar industri untuk mengamalkan amalan yang sama untuk terus berdaya saing.Sekarang, kami mempunyai pemimpin industri bertanya bagaimana mereka boleh mendapatkan daya saing, dan jawapan mereka adalah untuk mengamalkan amalan Googles dan Amazons pasaran. titik, ia akan memukul massa kritikal."

Microservices: apa yang mereka dan kenapa perniagaan anda patut dijaga