Tugas : Mengenai Microservices
Microservice
Microservice adalah metode khusus untuk mengembangkan sistem perangkat lunak yang mencoba fokus pada pembuatan modul fungsi tunggal dengan antarmuka dan operasi yang terdefinisi dengan baik. Microservice ini diyakini mampu memberikan pilihan solusi dalam membangun sebuah aplikasi yang efisien pada proses dan efektif dalam pengembangan. Terlebih lagi harus mampu tetap berfungsi baik pada saat mendapatkan lonjakan pengunjung. Microservices adalah spesialisasi pendekatan implementasi untuk arsitektur berorientasi layanan (SOA) yang digunakan untuk membangun sistem perangkat lunak yang fleksibel dan dapat digunakan sendiri . Pendekatan layanan-mikro adalah realisasi pertama SOA yang mengikuti pengenalan DevOps dan menjadi lebih populer untuk membangun sistem yang digunakan secara terus menerus .
Sebelum adanya terknologi canggih pengembangan sistem microservice terdapat layanan yang sama yang bernama monolithic. Titik awal yang baik adalah pola Arsitektur Monolitik , yang merupakan gaya arsitektur tradisional yang masih merupakan pilihan yang baik untuk banyak aplikasi. Namun, ia memiliki banyak keterbatasan dan masalah sehingga pilihan yang lebih baik untuk aplikasi besar / kompleks adalah pola arsitektur Microservice. Monolitik arsitektur merupakan sebuah arsitektur dimana dalam pembuatan aplikasi semua komponen menjadi satu kesatuan. Dalam hal ini satu kesatuan berarti menyatukan antara front-end dan backend dalam satu aplikasi yang sama. Arsitektur aplikasi monolitik ini menggunakan kode sumber dan teknologi yang serupa untuk menjalankan semua tugas-tugasnya.
Microservices memiliki banyak manfaat untuk tim Agile dan DevOps. Teknologi web yang populer telah berevolusi dari monolitik menjadi arsitektur layanan mikro. Tidak seperti layanan mikro, aplikasi monolith dibangun sebagai unit tunggal yang otonom. Ini membuat perubahan pada aplikasi lambat karena mempengaruhi seluruh sistem. Modifikasi yang dibuat untuk bagian kecil dari kode mungkin memerlukan membangun dan menggunakan versi perangkat lunak yang sama sekali baru. Melakukan penskalaan fungsi aplikasi tertentu, juga berarti Anda harus mengukur seluruh aplikasi.
Dengan pemisahan aplikasi berdasarkan fungsi-nya ini, pada akhirnya kita akan menemui keragaman teknologi dalam sebuah satu layanan digital. Misalkan dari layanan blog yang telah dicontohkan diatas, kita bisa coba pecahkan aplikasi blog tersebut menjadi fungsi konten, user management, komentar, rangking, search dan lainnya.
Pada bagian fungsi konten mungkin kita menggunakan PHP dan mysql, tetapi pada komentar kita menggunakan Python dan Mongodb, sedangkan di search menggunakan nodejs dan elasticsearch untuk penyimpanan datanya. Disini terlihat bahwa setiap fungsi / permasalahan teknis dapat diselesaikan dengan cara dan teknologi yang berbeda-beda.
Dalam konsep microservices, kita tidak hanya melalukan pemisahan di level aplikasi saja, tetapi dari sisi infrastruktur pula. Kita akan menemukan keragaman arsitektur infra, konfigurasi dan optimalisasi sistem yang berbeda, dan sering pula ditemukan jumlah dan spesifikasi server yang tidak sama antara service yang satu dengan yang lain.
Layanan Mikro - juga dikenal sebagai arsitektur layanan mikro - adalah gaya arsitektur yang menyusun aplikasi sebagai kumpulan layanan yang
- Sangat dapat dirawat dan diuji
- Hubungan renggang
- Dapat digunakan secara independen
- Diatur di sekitar kemampuan bisnis
- Dimiliki oleh tim kecil
Arsitektur microservice memungkinkan pengiriman aplikasi yang besar dan kompleks dengan cepat, sering, dan andal. Ini juga memungkinkan suatu organisasi untuk mengembangkan tumpukan teknologinya.
Arsitektur microservice bukan peluru perak. Ini memiliki beberapa kelemahan. Selain itu, ketika menggunakan arsitektur ini ada banyak masalah yang harus Anda atasi.
Bahasa pola arsitektur microservice adalah kumpulan pola untuk menerapkan arsitektur microservice. Ini memiliki dua tujuan:
- Bahasa pola memungkinkan Anda untuk memutuskan apakah layanan microsoft cocok untuk aplikasi Anda.
- Bahasa pola memungkinkan Anda untuk menggunakan arsitektur microservice dengan sukses.
Manfaat Layanan Microservice
- Lebih mudah digunakan
- Lebih mudah dipahami
- Dapat digunakan kembali pada seluruh bisnis
- Meminimalkan risiko perubahan
- Modularitas, membuat aplikasi lebih mudah untuk dipahami, dikembangkan, diuji, dan menjadi lebih tahan terhadap erosi arsitektur. Manfaat ini sering diperdebatkan dibandingkan dengan kompleksitas arsitektur monolitik.
- Skalabilitas, karena layanan mikro diimplementasikan dan digunakan secara independen satu sama lain, yaitu dijalankan dalam proses independen, mereka dapat dimonitor dan diskalakan secara independen.
- Integrasi sistem heterogen dan warisan : layanan microser dianggap sebagai sarana yang layak untuk memodernisasi aplikasi perangkat lunak monolitik yang ada. Ada laporan pengalaman beberapa perusahaan yang telah berhasil mengganti (sebagian) perangkat lunak yang ada dengan layanan-layanan microser, atau sedang dalam proses melakukannya. Proses modernisasi Perangkat Lunak untuk aplikasi warisan dilakukan dengan menggunakan pendekatan inkremental.
- Pengembangan terdistribusi: memaralelkan pembangunan dengan memungkinkan tim otonom kecil untuk mengembangkan, menyebarkan , dan meningkatkan skala layanan mereka masing-masing secara mandiri. Ini juga memungkinkan arsitektur layanan individual muncul melalui refactoring berkelanjutan . Arsitektur berbasis microservice memfasilitasi integrasi , pengiriman, dan penyebaran berkelanjutan.
Karakteristik Microservices
1) Banyak Komponen
Perangkat lunak yang dibangun sebagai layanan microser dapat, menurut definisi, dipecah menjadi beberapa layanan komponen. Mengapa? Sehingga masing-masing layanan ini dapat digunakan, tweak, dan kemudian dipekerjakan kembali secara mandiri tanpa mengorbankan integritas aplikasi. Akibatnya, Anda mungkin hanya perlu mengubah satu atau beberapa layanan berbeda daripada harus memindahkan kembali seluruh aplikasi. Tetapi pendekatan ini memang memiliki kelemahan, termasuk panggilan jarak jauh yang mahal (alih-alih panggilan dalam proses), API jarak jauh berbutir kasar, dan meningkatnya kompleksitas ketika mendistribusikan kembali tanggung jawab antar komponen.
2) Dibangun Untuk Bisnis
Gaya layanan-mikro biasanya disusun berdasarkan kemampuan dan prioritas bisnis. Tidak seperti pendekatan pengembangan monolitik tradisional — di mana masing-masing tim memiliki fokus spesifik, misalnya, UI, basis data, lapisan teknologi, atau logika sisi server — arsitektur layanan mikro menggunakan tim lintas fungsi. Tanggung jawab masing-masing tim adalah membuat produk spesifik berdasarkan satu atau lebih layanan individu yang berkomunikasi melalui bus pesan. Dalam layanan microser, sebuah tim memiliki produk untuk masa pakainya, seperti dalam pepatah Amazon yang sering dikutip, “ Anda membangunnya, Anda menjalankannya .
3) Routing Sederhana
Layanan Microsoft bertindak agak seperti sistem UNIX klasik: mereka menerima permintaan, memprosesnya, dan menghasilkan respons yang sesuai. Ini berlawanan dengan berapa banyak produk lain seperti ESB (Enterprise Service Buses) yang berfungsi, di mana sistem teknologi tinggi untuk perutean pesan, koreografi, dan penerapan aturan bisnis digunakan. Anda dapat mengatakan bahwa layanan microser memiliki titik akhir yang cerdas yang memproses info dan menerapkan logika, dan membodohi pipa melalui mana info mengalir.
4) Terdesentralisasi
Karena layanan mikro melibatkan beragam teknologi dan platform, metode tata kelola terpusat lama tidak optimal. Tata pemerintahan yang terdesentralisasi disukai oleh komunitas layanan-mikro karena pengembangnya berusaha untuk menghasilkan alat yang bermanfaat yang kemudian dapat digunakan oleh orang lain untuk memecahkan masalah yang sama. Sama seperti pemerintahan yang terdesentralisasi, arsitektur layanan mikro juga mendukung manajemen data yang terdesentralisasi. Sistem monolitik menggunakan database logis tunggal di berbagai aplikasi. Dalam aplikasi microservice, setiap layanan biasanya mengelola basis datanya yang unik.
5) Tahan Kegagalan
Seperti seorang anak yang berpengetahuan luas, layanan-layanan mikro dirancang untuk mengatasi kegagalan. Karena beberapa layanan unik dan beragam berkomunikasi bersama, sangat mungkin bahwa suatu layanan dapat gagal, karena satu dan lain hal (misalnya, ketika pemasok tidak tersedia). Dalam hal ini, klien harus membiarkan layanan tetangganya berfungsi sementara ia membungkuk dengan cara yang seanggun mungkin. Namun, pemantauan layanan mikro dapat membantu mencegah risiko kegagalan. Untuk alasan yang jelas, persyaratan ini menambah kompleksitas pada layanan microser dibandingkan dengan arsitektur sistem monolitik.
6) Evolusi
Arsitektur Microservices adalah desain evolusioner dan, sekali lagi, sangat ideal untuk sistem evolusi di mana Anda tidak dapat sepenuhnya mengantisipasi jenis perangkat yang mungkin suatu hari mengakses aplikasi Anda. Banyak aplikasi yang mulai didasarkan pada arsitektur monolitik, tetapi karena beberapa persyaratan tak terduga muncul ke permukaan. , dapat secara perlahan dirubah ke layanan microser yang berinteraksi melalui arsitektur monolitik yang lebih tua melalui API.


Komentar
Posting Komentar