Tugas PPL 3

Nama: Gabriella Natasya Br Ginting

NRP: 5025211081

Kelas: Perancangan Perangkat Lunak (A)


Software Architecture

Arsitektur perangkat lunak (software architecture) adalah struktur atau kerangka kerja fundamental dari suatu sistem perangkat lunak. Arsitektur ini mencakup keputusan tingkat tinggi tentang desain sistem dan komponen-komponennya, serta bagaimana komponen-komponen tersebut berinteraksi satu sama lain dan dengan sistem eksternal.

Prinsip-prinsip utama dalam arsitektur perangkat lunak meliputi separation of concerns, modularity, abstraction, reusability, scalability, dan performance. Proses pengembangan arsitektur perangkat lunak melibatkan analisis kebutuhan, desain arsitektur, dokumentasi, evaluasi, validasi, implementasi, dan pemeliharaan. Dengan desain yang baik, arsitektur perangkat lunak memastikan sistem memenuhi kebutuhan pengguna dan mudah dikelola serta dikembangkan di masa depan.

Lalu, mari kita lihat bagaimana software architecture Uber bekerja. Uber adalah platform teknologi global yang menghubungkan pengemudi dan penumpang melalui aplikasi seluler, memungkinkan perjalanan yang efisien dan nyaman. Sejak didirikan, Uber telah berkembang pesat dan kini beroperasi di ratusan kota di seluruh dunia, mengangkut jutaan penumpang setiap harinya. Untuk mendukung operasinya yang luas dan kompleks, Uber mengandalkan arsitektur perangkat lunak yang canggih dan skalabel. Sekarang, mari kita lihat lebih dalam bagaimana arsitektur perangkat lunak Uber dirancang dan diimplementasikan untuk memenuhi tuntutan operasionalnya yang tinggi.

Microservices

Pada tahun 2014, Uber beralih ke "service-oriented architecture" atau model arsitektur mikroservis, yang kini memungkinkan Uber untuk menangani pengiriman makanan dan kargo.

Arsitektur ini terdiri dari layanan-layanan kecil yang independen, masing-masing menjalankan fungsi bisnisnya sendiri. Setiap layanan bisnis dibangun di atas tumpukan teknologi (tech stack) yang paling sesuai untuk fungsinya.

Semua aplikasi tersedia melalui jaringan via antarmuka yang sesuai (API). Karena arsitektur mikroservis memungkinkan penerapan kode baru secara independen, sistem ini dapat lebih mudah ditingkatkan skalanya.


Doma (Domain-Oriented System Architecture)

Meskipun arsitektur mikroservis sudah sukses besar, diputuskan untuk melangkah lebih jauh dengan menerapkan pendekatan baru yang disebut DOMA (Arsitektur Sistem Berorientasi Domain). Pendekatan ini, seperti yang ditunjukkan dalam diagram arsitektur Uber, berbeda dari arsitektur sebelumnya karena desain sistem di sini berorientasi pada kumpulan layanan dasar yang disebut domain. Berikut penjelasan DOMA lebih detail:

  1. Domain: Dalam pendekatan DOMA, sistem dibagi menjadi beberapa domain, yang merupakan kumpulan layanan yang memiliki fungsi tertentu. Setiap domain dirancang untuk memiliki logikanya sendiri dan tidak bergantung pada domain lain.

  2. Lapisan (Layers): Domain-domain ini kemudian dikelompokkan ke dalam berbagai lapisan. Lapisan-lapisan ini mendefinisikan ketergantungan yang diperbolehkan antara domain-domain mikroservis yang berbeda. Ini membantu dalam mengatur bagaimana domain-domain berinteraksi satu sama lain.

  3. Desain Berlapis (Layered Design): Hierarki komponen arsitektur mikroservis Uber ini disebut desain berlapis. Dengan menggunakan Gateway API, pengembang membuat setiap domain independen satu sama lain, memungkinkan mereka memiliki logika yang unik dan tidak terkait dengan domain lainnya.

  4. Arsitektur Ekstensi: Untuk memungkinkan setiap domain tumbuh dan berkembang, pengembang menciptakan arsitektur ekstensi untuk setiap domain. Ini membuat arsitektur mikroservis menjadi kurang rumit dengan membaginya menjadi bagian-bagian yang lebih kecil, yang lebih fleksibel, berlapis, dan dapat digunakan kembali.

Dengan pendekatan DOMA, arsitektur mikroservis menjadi lebih terstruktur dan fleksibel, memungkinkan pengembangan yang lebih mudah dan skalabilitas yang lebih baik.



UI Framework

Uber terus berkembang dengan penambahan fitur-fitur baru secara terus-menerus, sehingga ada kebutuhan konstan untuk mengubah desain aplikasi dan mikroservis Uber. Mengedit tampilan aplikasi membutuhkan banyak waktu dan usaha, sehingga para desainer menggunakan Base Web React UI framework. Berikut penjelasan lebih lengkap:

  1. Base Framework: Uber menggunakan kerangka UI React yang disebut Base. Ini membantu dalam mempercepat proses desain dengan menyediakan elemen-elemen aplikasi Uber yang telah dirancang sebelumnya seperti tipografi, warna, grid, tombol, daftar, dan ikon.

  2. Elemen yang Siap Digunakan: Semua elemen ini tersedia di satu tempat dan siap digunakan, yang membuat proses desain sistem Uber menjadi lebih cepat dan lebih efisien dalam mengimplementasikan fitur-fitur baru. Dengan adanya elemen-elemen ini, para desainer tidak perlu khawatir bahwa beberapa elemen tidak akan mempertahankan standar UI/UX atau tidak memenuhi persyaratan Uber.

  3. Efisiensi dan Standarisasi: Dengan menggunakan Base, proses desain menjadi lebih efisien karena desainer tidak perlu merancang ulang elemen-elemen dasar setiap kali ada perubahan. Selain itu, penggunaan elemen-elemen yang sudah terstandarisasi memastikan bahwa tampilan dan fungsionalitas aplikasi tetap konsisten dan sesuai dengan standar yang ditetapkan oleh Uber.

Dengan demikian, penggunaan Base sebagai kerangka UI membantu Uber dalam menjaga konsistensi desain, mempercepat proses pengembangan, dan memastikan bahwa semua elemen UI/UX memenuhi standar yang ditetapkan.



Komentar

Postingan populer dari blog ini

ETS

Tugas PPL 2

Tugas PPL 1