Kelas : 2C TKJ
Tugas : RPL
Semester : 4
Agile Ekosistem
1. Software Development
Tribes adalah tim otonom di mana terdapat semua spesialis berbeda yang
diperlukan untuk membuat suatu produk.
Squad adalah tim yang akan melaksanakan agile management. Squad terdiri dari
PO (Product Owner), Tim Development, dan QA.
Chapter adalah tim yang mempunyai kesamaan pekerjaan, seperti Chapter
Frontend Developer, Chapter Backend Dev, Chapter QA.
Guild adalah kelompok yang terbentuk dengan kesamaan minat. Misal kelompok
tim Developer, tim Produksi.
5. Development Agile
a. Git Repository
Contoh :
b. Frontend Development
Teknologi :
a. Teknologi PWA
b. Local Database
c. Video & Audio
d. Canvas
e. Web Assembly
f. Mobile Development
Contohnya:
c. Backend Development
Teknologi :
a. Push Notification
b. Web Socket
c. RESTfull API
d. GraphQL
e. API Gateway
f. User Authentication
Contohnya :
6. Platform Agile
a. Container vs Virtual Machine
Pada mulanya didefenisikan oleh Gerard J. Popek dan Robert P. Goldberg pada
tahun 1974
Docker Pertama Kali dibuat oleh Solomon Hykes bersama Andrea Luzzardi
dan Francois-Xavier Bourlet sebagai project internal di dotCloud. Docker
dirilis sebagai open source pada bulan Maret 2013.
Perbedaannya :
Alokasi resource pada Container dan Virtual Machine berbeda
Virtual Machine mengambil resource berdasarkan pengaturan yang
sudah ditentukan saat instalasi. Alokasi ini bersifat terisolasi. Sebagai
contohnya VM 1 memiliki pengaturan RAM 2 GB dan kapasitas HDD 120
GB. Saat VM 1 dijalankan. VM 1 hanya bisa menggunakan RAM maksimal
sebanyak 2 GB. Ketika VM 1 hanya menggunakan sedikit penggunaan RAM
(misalnya hanya 512 MB). Resource sisa dari penggunaan tersebut tetap
menjadi milik VM 1 dan tidak dapat digunakan dengan VM lainnya. Hal ini
berbeda dengan container. Container memiliki alokasi resource yang dapat
dibagi langsung oleh Host Server itu sendiri. Container akan mengambil
alokasi resource yang ada di Hardware sesuai dengan yang container butuhkan.
VM Membutuhkan Hypervisor sedangkan Container Tidak
VM hanya dapat berjalan pada hypervisor. Sedangkan Container tidak.
Hal inilah yang menjadi perbedaan dasar dari arsitektur VM dan Container.
Container dapat berjalan langsung diatas Sistem Operasi. Sedangkan VM tidak.
Penggunaan Kernel
Pada dasarnya VM menggunakan kernel tersendiri untuk menjalankan
aplikasi didalamnya. Sedangkan container tidak diizinkan untuk mengakses
kernel.
b. Microservices vs Monolytic
Contohnya :
Perbedaannya :
Monolithic
1. Low Cost
2. Satu server untuk handle semua layanan
3. Tidak bisa menggunakan module module yang tidak terinstall pada server
utama. misalkan mau menggunakan no-sql atau sql, nodejs atau php
4. Proses update aplikasi akan berimbas ke seluruh aplikasi.
5. Seluruh Code atau component menjadi 1 server. bisa di bayangkan jika
aplikasi sudah kompleks
6. Untuk scalling hanya bisa mengupgrade resource server saja.
7. Latency komunikasi antar modulenya sangat cepat, karena berada di
dalam sebuah server.
MicroService
1. Hight Cost
2. Setiap layanan memiliki infrastruktur sendiri.
3. Karena setiap layanan memiliki infrastruktur sendiri, kamu bisa dengan
mudah membuat aplikasi tanpa memikirkan hubungan / ketergantungan
module dengan layanan yang lain. misalkan kamu bisa membuat aplikasi
dengan beberapa bahasa pemrograman.
4. Proses update aplikasi hanya melingkupi layanan yang terkait.
5. Codenya berbasis layanan. Kamu harus memiliki dokumentasi yang lebih
dari pada infrastruktur Monolithic
6. Proses Scallingnya bisa menggunakan beberapa metode, scaling up dan
scaling side
7. Ada kemungkinan komunikasi antar modulenya mengalami kegagalan.
Untuk itu kamu harus selalu mempersiapkan cara handlenya.
c. NoSQL vs RDB
Penjelasan :
- Mysql / RDB merupakan aplikasi pengolah database yang bersifat open source,
dikembangkan oleh Oracle (sebelumnya Sun dan MySQL AB). MySQL adalah sebuah
perangkat lunak sistem manajemen basis data SQL . Contoh aplikasi pada Sql
adalahOracle, MS-SQL, Sqlite, dan Postgres .
- NoSql merupakan sistem manajemen basis data yang di identifikasikan dengan tidak
mematuhi aturan pada model sistem manajemen basis data.
NOSQL adalah database generasi terbaru yang mengarahkan kepada database yang
tidak berelasi (non-relational), dapat disebarkan kepada siapapun (open-source) dan
berskala horisontal (horizontal scale).Sedangkan pada NoSQL adalah MongoDB,
HBase, Redis, Bigtable, RavenDb, CouchDB, Cassandra, dan Neo4j.
Perbedaannya: