Monolithic to Cloud Native – Microservices Migration Strategy

Cloud Native, dockers, container, microservices, Kubernetes, Agile, DevOps, CI/CD

Langkah yang harus di ambil untuk bisa memigrasikan Monolitik aplikasi ke Cloud Native arsitektur.

Sebelum memulai dalam memodernisasi aplikasi Monolithic anda yang lama, sebaiknya anda memulai dulu dari mendalami lebih detail permasalahan yang sedang anda coba untuk selesaikan.

Digital Transformation mengharuskan para pemimpin perusahaan untuk meluncurkan aplikasi baru secara cepat untuk memajukan kelangsungan bisnis mereka.

Di era digital seperti sekarang ini, software aplikasi sudah bukan lagi hanya sebuah alat bantu tetapi merupakan alat pendukung untuk melakukan bisnis itu sendiri. Kesuksesan dari bisnis ditentukan dari keberhasilan perusahaan tersebut dalam mengembangkan aplikasi.

Perusahaan yang menerapkan Cloud Native dan Microservices Architecture dapat memperoleh keuntungan sebagait berikut: kecepatan, kehandalan dan kelincahan. Perjalanan ini dimulai dengan pemilihan bagian dari aplikasi lama yang dapat di migrasikan menjadi aplikasi yang modern.  

Satu-persatu aplikasi yang lama harus di evaluasi berdasarkan 6 kriteria. Tiga di antaranya merupakan kriteria dari sudut pandang IT : Technology, Architecture & Functionality.

Sedangkan tiga kriteria lagi berasal dari perspektif bisnis : Business Fit, Business Value dan Business Agility.

Setelah ditentukan pemilihan dari aplikasi yang harus di modernisasi, kita bisa memakai salah satu dari enam opsi yang bisa di terapkan:

Aplikasi Monolithic yang telah terseleksi berdasarkan kriteria di atas, bisa kita transform melalui salah satu strategy di bawah ini: 

  • Retire: Berdasarkan hasil evaluasi, aplikasi tidak akan terpakai lagi
  • Remain: Aplikasi ini tidak akan di modernisasi, melainkan akan lanjut dipakai apa adanya.
  • Rehost: Memindahkan aplikasi dan komponennya ke infrastruktur lain seperti: fisik, virtual, atau cloud, tanpa mengubah kode, fitur, atau fungsinya
  • Replatform: Memindahkan aplikasi ke runtime platform yang baru, bisa membuat sedikit perubahan pada kode, tetapi tidak pada structural code, fitur, atau fungsi.
  • Reimagine: Mengubah aplikasi untuk menggunakan Architecture yang baru, sehingga dapat memanfaatkan fitur, kapabilitas dan kapasitas yang baru. Aplikasi bisa didesain dan ditulis ulang tetapi masih mempertahankan cakupan dan spesifikasi dari aplikasi tersebut.

Apa yang bisa di dapat dengan mempergunakan Container dan Microservices?

Containerization meningkatkan portabilitas dari aplikasi sehingga memudahkan untuk memindahkan container dari satu environment ke environment lainnya seperti dari lokal ke cloud. Sehingga hal ini bisa dilakukan tanpa menulis ulang aplikasi.

Microservices meningkatkan kelincahan yang berarti sebagian dari aplikasi dapat dimodifikasi tanpa harus mengubah terlalu banyak dari aplikasi tersebut. Selain itu, Microservices menciptakan peluang untuk mengadopsi continuous development berbasis DevOps di mana pengembang perangkat lunak dapat menambahkan fitur baru dengan cepat, berulang-ulang, dan secara otomatis.

Sebelum perjalanan transforamsi dari aplikasi biisa dimulai, kebanyakan aplikasi terletak di on-premise datacenter yang telah mempergunakan Virtualisasi. Step-step perjalanan ini bisa di ikuti didalam diagram di bawah ini.

Monolitich Architecture

Microservices Architecture

Hasil transformasi dari aplikasi dari Monolithic Architecture ke Microservices Architecture adalah Aplikasi Cloud-Native

Cloud-native

Pembuatan aplikasi cloud-native, baik dengan merancang ulang aplikasi yang sudah ada atau mengembangkan yang baru. Aplikasi cloud-native menggunakan beberapa Microservices independen, yang memungkinkan menjalankan model Continuous Development (DevOps). Aplikasi cloud-native juga memberikan keuntungan beragam dari cloud, mulai dari skalabilitas dan fleksibilitas secara geografis hingga pembayaran bedasarkan permakaian.