Slide 1

Slide 1 text

Microservice: Revolusi Arsitektur Software Yang Mengubah Cara Kita Bekerja

Slide 2

Slide 2 text

Microservice: Revolusi Arsitektur Software Yang Mengubah Cara Kita Bekerja Medan Fikih Firmansyah Backend Engineer, Xtend Indonesia Google Developer Groups Medan

Slide 3

Slide 3 text

Introduction ● Backend Engineer at Xtend Indonesia ● CTO TestMate ● Member of Masyarakat Bioinformatika dan Biodiversitas Indonesia ● Google Developer Groups Medan ● Open source enthusiast and Communities Fellow ● Tech Background: Backend stuff, IaaS & PaaS Cloud, DevOps, more at https://fikihfirmansyah.my.id

Slide 4

Slide 4 text

Prinsip Dasar 02 . Solusi dan Best Practices TABLE OF CONTENTS Definisi Microservice 01 Tantangan dalam Mengadopsi Microservice 05 04 Arsitektur Microservice 03 Studi Kasus 06 Kesimpulan 07

Slide 5

Slide 5 text

Pendahuluan Latar Belakang ● Perkembangan teknologi informasi telah mengubah paradigma dalam pengembangan perangkat lunak. ● Arsitektur monolitik mulai dihadapkan pada keterbatasan dalam mengakomodasi kebutuhan aplikasi yang semakin kompleks dan skalabilitas yang dinamis. ● Microservice muncul sebagai alternatif yang menjanjikan dalam mengatasi tantangan tersebut, dengan menawarkan pendekatan yang terdistribusi dan modular. Tujuan ● Memperkenalkan konsep dan prinsip dasar dari arsitektur microservice. ● Membandingkan arsitektur microservice dengan pendekatan monolitik untuk memahami perbedaan, kelebihan, dan kekurangannya. ● Menyoroti tantangan dan solusi dalam mengadopsi arsitektur microservice, serta praktik terbaik yang dapat membantu kesuksesan implementasi. ● Melakukan analisis studi kasus implementasi microservice untuk memperkuat pemahaman peserta.

Slide 6

Slide 6 text

MICROSERVICE Definisi Microservice Microservices adalah metode secara khusus untuk membuat suatu aplikasi yang terdiri atas sejumlah unit layanan/service dan saling terhubung. Di setiap unit layanan pada aplikasi ini menjalankan fungsi yang berbeda, namun mendukung satu dengan lainnya. Microservices memiliki interface dan juga operasi yang sudah terdefinisi dengan baik.

Slide 7

Slide 7 text

Konsep Monolitik ● Arsitektur monolitik adalah pendekatan tradisional dalam pengembangan perangkat lunak di mana seluruh aplikasi dibangun sebagai satu entitas tunggal. ● Aplikasi monolitik terdiri dari komponen-komponen yang saling terhubung dan tergantung satu sama lain, seringkali dengan kode yang besar dan kompleks. Pendahuluan

Slide 8

Slide 8 text

Kelebihan Monolitik ● Mudah dipahami dan diimplementasikan, terutama untuk aplikasi kecil. ● Tidak memerlukan kompleksitas tambahan dalam manajemen, pemantauan, dan orkestrasi. ● Performa yang lebih baik untuk aplikasi dengan skala kecil hingga menengah. Pendahuluan

Slide 9

Slide 9 text

Kekurangan Monolitik ● Kesulitan dalam memperbaiki dan memelihara aplikasi karena segala perubahan harus dilakukan pada satu kode sumber. ● Tidak fleksibel dalam mengadopsi teknologi baru karena semua komponen terkait satu sama lain. ● Rentan terhadap kegagalan sistem karena satu kesalahan dapat mempengaruhi keseluruhan aplikasi. Pendahuluan

Slide 10

Slide 10 text

Kelebihan Microservice ● Skalabilitas yang lebih baik karena setiap layanan dapat diperbesar secara independen. ● Pembaruan dan pengembangan yang lebih cepat karena setiap layanan dapat dikembangkan, diuji, dan di deploy secara terpisah. ● Fleksibilitas dalam pemilihan teknologi karena setiap layanan dapat menggunakan teknologi yang paling sesuai dengan kebutuhan spesifiknya. Pendahuluan

Slide 11

Slide 11 text

Kekurangan Microservice ● Kompleksitas tambahan dalam manajemen, pemantauan, dan orkestrasi layanan-layanan yang terpisah. ● Memerlukan infrastruktur yang lebih canggih untuk otomatisasi, penyusunan ulang, dan orkestrasi layanan. ● Memerlukan kerja sama dan koordinasi yang baik antara tim pengembangan untuk memastikan integrasi yang lancar antara layanan-layanan yang berbeda. Pendahuluan

Slide 12

Slide 12 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees

Slide 13

Slide 13 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees /attendance requested!

Slide 14

Slide 14 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees Ok! (Saving..)

Slide 15

Slide 15 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees Return success.

Slide 16

Slide 16 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees Publish Data attendance

Slide 17

Slide 17 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees Subscribe event attendance

Slide 18

Slide 18 text

API Gateway user service.leave Message broker service.overtime service.payroll service.attendances service.employees triggered.. (Updating data…)

Slide 19

Slide 19 text

PRINSIP DASAR Skalabilitas Independen Terdistribusi MICRO -services Tidak ada yang REQUEST apapun ke satu service. Service tidak REQUEST apapun service yang lain Service tidak kenal service yang lain.

Slide 20

Slide 20 text

Microservice

Slide 21

Slide 21 text

● Fleksibilitas dan Skalabilitas. ● Kemudahan Maintenance. ● Resiliensi Terhadap Kesalahan. ● Development Sistem yang Efisien. Karakteristik & Manfaat Utama

Slide 22

Slide 22 text

Microservice Scalability

Slide 23

Slide 23 text

Microservice Portability

Slide 24

Slide 24 text

Microservice Portability

Slide 25

Slide 25 text

Microservice Availability

Slide 26

Slide 26 text

Arsitektur Microservice Microservice Public Interface

Slide 27

Slide 27 text

Tantangan dalam Mengadopsi Microservice Monitoring & troubleshooting Testing dan CI/CD Kompleksitas Konsistensi Data

Slide 28

Slide 28 text

JADI BAGAIMANA?

Slide 29

Slide 29 text

Tergantung Orangnya

Slide 30

Slide 30 text

Kapan sebaiknya kita menggunakan Microservices?

Slide 31

Slide 31 text

Solusi dan Best Practices Domain-Driven Design (DDD) Dokumentasi Single Responsibility Principle (SRP)

Slide 32

Slide 32 text

Solusi dan Best Practices CQRS (Command Query Responsibility Segregation) Logging Containersiasi

Slide 33

Slide 33 text

Solusi dan Best Practices Perbaiki kode sebaik mungkin terlebih dahulu

Slide 34

Slide 34 text

Solusi dan Best Practices Programming language doesn’t matter

Slide 35

Slide 35 text

Demo, sederhana https://github.com/fikihfirmansyah/attendance-user-microservices

Slide 36

Slide 36 text

KESIMPULAN Arsitektur microservice telah membawa revolusi dalam pengembangan perangkat lunak, menawarkan manfaat seperti skalabilitas, pembaruan cepat, dan fleksibilitas teknologi Sementara juga memunculkan tantangan seperti kompleksitas manajemen dan konsistensi data yang perlu diatasi dengan solusi dan praktik terbaik. end

Slide 37

Slide 37 text

Terima kasih

Slide 38

Slide 38 text

Microservice: Revolusi Arsitektur Software Yang Mengubah Cara Kita Bekerja Medan Fikih Firmansyah Backend Engineer, Xtend Indonesia Google Developer Groups Medan