Thursday, June 11, 2020

Architecture Microservices


 

Microservice merupakan pengembangan dari Monolitik Arsitektur. Microservice ini merupakan kumpulan proses independen dan kecil yang berkomunikasi antara satu dengan lainnya untuk membentuk aplikasi kompleks yang agnostik terhadap bahasa API apa pun. Servis-servis ini terdiri dari blok-blok kecil, terpisah, dan fokus pada tugas-tugas ringan untuk memfasilitasi metode modular dalam pembangunan sistem. Arsitektur bergaya microservice mulai menjadi standar dalam pembangunan sistem yang dinamis dan konstan berkembang.

Microservices dikenal sebagai membagi aplikasi menjadi layanan yang lebih kecil dan saling terhubung. Lain halnya jika dibandingkan dengan monolitik yang merupakan kebalikan dari Microservices. Monolitik memiliki arti satu. Arsitektur monolitik merupakan sebuah arsitektur dalam pembuatan aplikasi dimana semua komponen menjadi satu kesatuan.

Setiap Microservices merupakan aplikasi kecil yang memiliki arsitektur heksagonal sendiri yang terdiri dari logika beserta berbagai adapternya (bahasa pemrograman, dan lain-lain).

Meskipun pendekatan monolitik berfungsi dengan baik untuk beberapa organisasi dan beberapa aplikasi, namun Microservices menjadi populer dengan perusahaan yang membutuhkan kelincahan dan skalabilitas yang lebih besar.

infrastruktur microService membagi layanan-layanan yang ada menjadi bagian-bagian yang lebih kecil. Misalkan ada server khusus untuk memproses layanan antrian, layanan hosting khusus untuk antarmuka pengguna, server khusus untuk manajemen database, dan sebagainya.



Microservice architecture

  • Aplikasi scalable, secure dan reliable
  • Setiap layanan memiliki infrastruktur sendiri
  • Karena setiap layanan memiliki infrastruktur sendiri, bisa dengan mudah membuat aplikasi tanpa memikirkan hubungan / ketergantungan module dengan layanan yang lain. misalkan kamu bisa membuat aplikasi dengan beberapa bahasa pemrograman.
  • Proses update aplikasi hanya melingkupi layanan yang terkait.
  • Codenya berbasis layanan. Kamu harus memiliki dokumentasi yang lebih dari pada infrastruktur Monolithic
  • Proses Scalingnya bisa menggunakan beberapa metode, scaling up dan scaling side
  • Ada kemungkinan komunikasi antar modulenya mengalami kegagalan. Untuk itu kamu harus selalu mempersiapkan cara handlenya.

Kenapa Microservices sangat diperlukan ?
  1. Dapat lebih responsif terhadap kebutuhan pelanggan, Perusahaan yang mengadopsi arsitektur microservices dapat dengan cepat mengirimkan kapabilitas ketika pelanggan membutuhkan.
  2. Microservices dibangun di atas prinsip-prinsip Agile dan DevOps, dan membantu tim-tim software untuk berjalan secara paralel sementara iterasi secara cepat pada kemampuan diskrit.
  3. Sistem Arsitektur microservicesI ni sangat bergantung pada otomatisasi yang dapat diulang, mendukung skala layanan, dan menggunakan pola yang dirancang untuk menjaga sistem tetap berjalan bahkan ketika komponen individual gagal.



Pola arsitektur Microservice secara signifikan mempengaruhi hubungan antara aplikasi dan database. Alih-alih berbagi skema database tunggal dengan services lainnya, masing-masing services memiliki skema database tersendiri. Di satu sisi, pendekatan ini bertentangan dengan gagasan model data enterprise-wide. Selain itu, sering kali menghasilkan duplikasi beberapa data. Namun, memiliki skema database per service sangat penting jika ingin mendapatkan keuntungan dari layanan microservice. Masing-masing service memiliki database sendiri. Selain itu, services dapat menggunakan jenis database dan bahasa pemrograman yang paling sesuai dengan kebutuhannya.




Kelebihan Microservice
  • Aplikasi scalabale, secure dan reliable
  • Setiap service berdiri sendiri
  • Maintence-nya lebih mudah
  • Tidak ada hambatan dalam menggunakan teknologi baru
  • Setiap tim developer dapat mengembangkan setiap services-nya tanpa ada mengganngu services yang lain

Kekurangan
  • Ketika satu entity pada database berubah maka setiap entity yang sama di setiap database service harus diubah
  • Untuk beberapa kasus , sulit untuk menerapkan perubahan services jadi perlu perancangan yang matang.
  • Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbebda, tidak seperti aplikasi monolitik tinggal upload , deploy dan beres.
  • Perlu automation yang tinggi dalam melakukan deployment.


Thursday, April 9, 2020

specialized cloud mechanism

pada kesempatan kali ini saya akan memberikan penjelasan mengenai specialized cloud mechanism. Ada beberapa karateristik dari cloud mechanism ini, diantaranya adalah failover system, hypervisor, resource cluster, multi-device broker, dan state management database.


Failover System

Mekanisme sistem failover digunakan untuk meningkatkan keandalan dan ketersediaan sumber daya TI dengan menggunakan teknologi clustering yang mapan untuk menyediakan implementasi yang berlebihan. Sistem failover dikonfigurasikan untuk secara otomatis beralih ke instance sumber daya TI yang redundan atau siaga setiap kali sumber daya TI yang saat ini aktif tidak tersedia.

Sistem kegagalan biasanya digunakan untuk program misi kritis atau untuk layanan yang dapat digunakan kembali yang dapat memperkenalkan satu titik kegagalan untuk beberapa aplikasi. Sistem failover dapat menjangkau lebih dari satu wilayah geografis sehingga setiap lokasi menampung satu atau lebih implementasi berlebihan dari sumber daya TI yang sama.

Mekanisme ini mungkin bergantung pada mekanisme replikasi sumber daya untuk memasok contoh sumber daya TI yang berlebihan, yang secara aktif dimonitor untuk mendeteksi kesalahan dan kondisi tidak tersedianya.

Sistem Failover datang dalam dua konfigurasi dasar:

- Active-Active


pada Sistem failover ini memantau status operasional Layanan Cloud A.


pada gambar diatas ketika kegagalan terdeteksi dalam satu implementasi Layanan Cloud, sistem failover memerintahkan penyeimbang beban untuk mengalihkan beban kerja ke implementasi Layanan Cloud A yang berlebihan.


jiika layanan Cloud yang gagal Implementasi dipulihkan atau direplikasi menjadi layanan cloud operasional. Sistem failover sekarang memerintahkan penyeimbang beban untuk mendistribusikan kembali beban kerja.


- Active-Passive

Dalam konfigurasi aktif-pasif, siaga atau implementasi tidak aktif diaktifkan untuk mengambil alih pemrosesan dari sumber daya TI yang menjadi tidak tersedia, dan beban kerja yang sesuai dialihkan ke instance mengambil alih operasi.


pada gambar diatas sistem failover memantau status operasional Layanan Cloud A. Implementasi Layanan Cloud yang bertindak sebagai instance aktif menerima permintaan konsumen layanan cloud.


Implementasi Layanan Cloud A yang bertindak sebagai instance aktif menemukan kegagalan yang terdeteksi oleh sistem failover, yang kemudian mengaktifkan implementasi Layanan Cloud A yang tidak aktif dan mengalihkan beban kerja ke arahnya. Implementasi Layanan Cloud A yang baru dipanggil sekarang mengasumsikan peran instance aktif.


Implementasi Layanan Cloud yang gagal dipulihkan atau direplikasi ke dalam layanan cloud operasional, dan sekarang diposisikan sebagai mesin virtual siaga, sementara Layanan Cloud A yang sebelumnya digunakan tetap berfungsi sebagai mesin virtual yang aktif.


Hypervisor

Hypervisor adalah sebuah teknik virtualisasi yang memungkinkan beberapa operating system untuk berjalan bersamaan pada sebuah host. Dikatakan teknik virtualisasi karena OS yang ada bukanlah sebuah OS yang sesungguhnya, hanya sebuah virtual machine saja. Tugas dari hypervisor adalah untuk mengatur setiap operating system tersebut sesuai dengan gilirannya agar tidak mengganggu satu dengan yang lainnya. Terkadang, hypervisor juga disebut sebagai Virtual Machine Management (VMM), sesuai dengan tugasnya dalam mengatur beberapa virtual machine.

Hypervisor di bagi menjadi 2 jenis yaitu: Baremetal Architecture dan Hosted Architecture

- Hypervisor Baremetal Architecture :


Hypervisor tipe ini berjalan langsung diatas perangkat keras server, artinya tidak di perlukan sistem operasi lain untuk menjalankan hypervisor tipe 1 ini . dengan begitu hypervisor memiliki akses langsung ke hardware tanpa harus melewati OS.Contoh hypervisor tipe 1 adalah VMware ESXi. Kalau dilihat dari teknik virtualisasi yang digunakan, jenis satu ini adalah jenis hardware assisted.

- Hypervisor Hosted Architecture :



Hypervisor tipe ini berperan sebagai software untuk menjalankan dan mengatur virtual machine. Akses resource hardware yang dibutuhkan oleh virtual machine harus melewati OS.Contoh hypervisor tipe 2 adalah VMware Server. Berbeda dengan tipe 1, tipe 2 ini lebih cenderung ke OS assisted hypervisor (para virtualization) dan juga full virtualization.


Resource Cluster 

Resource Cluster merupakan resource berbasis cloud yang dapat digabungkan ke dalam kelompok untuk meningkatkan alokasi dan penggunaannya. Mekanisme resource cluster digunakan untuk mengelompokkan beberapa resource sehingga dapat dioperasikan sebagai resource yang tunggal. Hal tersebut dapat meningkatkan kombinasi dari kapasitas komputasi, load balancing, dan ketersediaan dari resource cluster.

Cluster management platform dijalankan sebagai middleware terdistribusi di semua node cluster yang biasanya bertanggung jawab untuk aktivitas ini.

Jenis resource cluster secara umum antara lain :


  1. Server Cluster – server fisik dan virtual berkerumun untuk meningkatkan kinerja. Server dapat hidup bermigrasi dari satu ke yang lain.
  2. Database Cluster – dirancang untuk meningkatkan ketersediaan data.
  3. Large Dataset Cluster – partisi dan distribusi data diimplementasikan sehingga dataset target dapat dipartisi secara efisien tanpa mengorbankan integritas data atau akurasi komputasi.
Jenis resource cluster secara basic antara lain :
  1. Load Balanced Cluster – cluster resource ini berspesialisasi dalam mendistribusikan workload di antara node-nodecluster untuk meningkatkan kapasitas resource sambil mempertahankan sentralisasi manajemen resource.
  2. HA Cluster – sistem high-availability untuk mempertahankan ketersediaan sistem jika terjadi kegagalan beberapa node, dan memiliki implementasi berlebihan dari sebagian besar atau semua resource cluster. HA cluster ini mengimplementasikan mekanisme sistem failover yang memantau kondisi kegagalan dan secara otomatis mengalihkan workload dari node yang gagal.
Contoh load balancing dan replikasi resource yang diimplementasikan melalui hypervisor berkemampuan cluster.


terlihat dari gambar diatas penyeimbangan beban dan replikasi sumber daya diimplementasikan melalui hypervisor yang diaktifkan cluster. Jaringan area penyimpanan khusus digunakan untuk menghubungkan penyimpanan berkerumun dan server berkerumun, yang dapat berbagi perangkat penyimpanan cloud yang umum. Ini menyederhanakan proses replikasi penyimpanan, yang dilakukan secara independen di cluster penyimpanan.

Contoh loosely-coupled server cluster



dari gambar diatas cluster server yang digabungkan secara longgar yang menggabungkan load balancer. Tidak ada penyimpanan bersama. Replikasi sumber daya digunakan untuk mereplikasi perangkat penyimpanan cloud melalui jaringan oleh perangkat lunak cluster.


Multi-device Broker

Multi-device broker digunakan untuk memfasilitasi transformasi data runtime sehingga membuat layanan cloud dapat diakses oleh berbagai program dan perangkat konsumen layanan cloud.


Multi-device broker biasanya tersedia sebagai gateway atau memasukkan komponen gateway, seperti:


  • XML gateway – transmits dan memvalidasi data XML
  • Cloud Storage Gateway – transforms cloud storage protocols dan mengencode storage devices untuk memfasilitasi transfer storage
  • Mobile Device Gateway – transforms the communication protocols digunakan oleh perangkat mobile ke dalam protokol yang kompatibel dengan layanan cloud


State Management Database

Basis data manajemen negara adalah perangkat penyimpanan yang digunakan untuk sementara mempertahankan data status untuk program perangkat lunak. Sebagai alternatif untuk caching data keadaan dalam memori, program perangkat lunak dapat membongkar data keadaan ke database untuk mengurangi jumlah memori run-time yang mereka konsumsi. Dengan demikian, program perangkat lunak dan infrastruktur di sekitarnya lebih terukur. Basis data manajemen negara umumnya digunakan oleh layanan cloud, terutama yang terlibat dalam aktivitas runtime yang berjalan lama.


Penjelasan dari gambar diatas, selama jangka waktu instance layanan cloud, mungkin diperlukan untuk tetap stateful dan menyimpan data state di-cache dalam memori, bahkan ketika idle.


Dari gambar diatas terlihat apabila dengan menunda data negara ke repositori negara, layanan cloud dapat beralih ke kondisi tanpa status (atau kondisi sebagian tanpa status), dengan demikian untuk sementara membebaskan sumber daya sistem.

sekian untuk pembahasan mengenai judul ini, semoga bermanfaat!!!!


Thursday, April 2, 2020

Component Vue.js

kali ini saya akan membahas mengenai component pada vue.js. Terdapat 2 cara untuk meregistrasi component pada vue.js yaitu dengan global component, dan local component.

Global Component

Global Component yaitu cara meregistrasi komponen di dalam vue.js yang digunakan di dalam template dari semua root instance vue (new Vue). Global component ini dapat digunakan setelah di registrasi terlebih dahulu dengan syntax :

Vue.component(‘nama-komponen-saya’, {

          // … pilihan …

})

Scriptnya seperti dibawah ini



Pada script di atas component di registrasi terlebih dahulu dengan mendefinisikan <component-a> menjadi template ‘<p>Component A</p>’ begitupun dengan <component-b> dan <component-c>.

Setelah diregistrasi, kita tinggal instasiasi objek vue dibawahnya dengan syntax :

new Vue({

           //…

})

ini juga berlaku kepada semua sub komponen, dengan kata lain tiga komponen tersebut juga tersedia di dalam satu sama lain. Untuk mencoba nya kita bisa jalankan pada browser maka hasilnya akan seperti berikut.

Kita bisa menambahkan secara langsung componen baru pada setiap objek vue.


setelah ditambahkan, mari kita coba jalankan pada browser maka hasilnya seperti berikut




Local Component

implementasinya, global component jarang menjadi ideal. Sebagai contoh, ketika kita menggunakan build system seperti Webpack, jika menggunakan global component, apabila kita berhenti menggunakan sebuah komponen, itu masih termasuk di final build kita.

Maka dengan local component kita bisa mendefinisikan pada suatu objek dan hanya bisa digunakan pada objek tersebut saja. Untuk mendefinisikannya hanya dengan objek javascript biasa.

seperti pada script dibawah ini.




kemudain kita coba jalankan pada browser, maka hasilnya seperti berikut


Jika kita tambahkan component baru secara langsung, maka tidak akan terjadi hal apapun. contohnya seperti berikut


maka jika dijalankan pada broser hasilnya tetap sama tidak ada perubahan seberti berikut

Itu dikarenakan komponen yang diregistrasi secara local dan harus kita definisikan lagi pada instance objek vue nya agar komponen nya bisa digunakan, seperti berikut,


maka sekarang terlihat perubahaannya seperti berikut


Mixins

Mixins merupakan suatu cara yang flexible untuk mendistribusikan beberapa fungsi yang bisa dipakai di semua komponen vue. Objek pada mixin bisa berisi beberapa option di komponen. Ketika sebuah komponen menggunakan mixin, maka semua option yang ada di dalam mixin akan di “mix” (digabungkan) dengan option komponen itu sendiri.

Kenapa harus menerapkan Mixins ? karena ketika sistem yang kita bangun terbilang besar, maka kita harus copy and paste code yang bersifat reusable di banyak component.


Data, mounted, created, update dan yang lain akan di-mix di berbagai component. Component-component tersebut akan mengakses jika mereka mendeklarasikannya di dalamnya.

Contoh kasus mixins

Pada contoh kasus kali ini hanya contoh kasus sederhana bagaimana kita bisa membedakan antara komponen yang di definisikan dari mixins atau bukan. Scriptnya seperti berikut.


Pada component-a, kita memanggil mixins, sehingga text yang muncul berasal dari objek mixins yang dibuat, sementara component-b berasar dari component itu sendiri. Jika dijalankan pada browser maka akan seperti berikut.


sekian untuk pembahasan mengenai component pada vue.js
semoga bermanfaat!!!!

Friday, March 27, 2020

Form dan Filtering Vue.js


Kali ini saya akan melanjutkan tentang Vue.Js dan akan membuat tutorial membuat form dan filtering. Form ini nantinya akan menampilkan inputan ker server.

Form Input


Pertama kita buat file baru dengan nama form.html, seperti biasa import terlebih dahulu library vue js nya pada tag script di header. Dalam mendesign form ini kita buat tampilannya agar terlihat lebih menarik dengan menggunakan library bootstrap, agar tidak perlu mendownload terlebih dahulu kita import saja librarynya via link cdn yang bisa di dapat pada dokumentasi bootstrap.



Tambahkan pada tag header project kita seperti berikut (dengan catatan harus terkoneksi internet).




Selanjutnya masukan kode berikut untuk membuat form yang sudah terhubung dengan variable-variable dari fungsi vuenya.









 maka hasilnya akan  tampil seperti pada gambar berikut:



Lanjut tambahkan kode berikutnya dari gambar di bawah ini.
kode di bawah ini adalah untuk output yang terpilih dari inputan form di atas


Jika berhasik maka hasilnya akan seperti gambar dibwah ini.


Selanjutya tambahkan kode dibwah ini. Kode dibawah ini adalah untk penginputan ke kode output, dan pengiriman ke server.




Selanjutnya buat file baru dengan nama proes.php dan masukan kode berikut:


sekarang kita lohat hasilnya, jalankan pada browser maka tampilannya akan seperti berikut


kemudian jika form tersebut kita isi secara manual maka akan terinput secara otomatis seperti gambar dibawah ini




Selanjutnya klik kanan dan pilih inspect dan di tab console. Lanjut kira klik kirim di form dan hasilnya akan terkirim ke server seperti pada gambar berikut:


Filtering

Selanjutnya kita akan membuat filtering, dimana ada inputan berupa searching produk-produk yang ada.

Seperti sebelumnya diatas kita juga menggunakan Boostrap untuk tampilan kita, masukan kode berikut untuk tampilan card.


Selanjutnya masukan kode berikut untuk mengisi data-data dari tampilan card tersebut dengan kode vuenya.



jika sudah, maka hasilnya akan seperti berikut






sekian untuk tutorial kali ini, semoga bermanfaat !!!!!

Architecture Microservices

  Microservice merupakan pengembangan dari Monolitik Arsitektur. Microservice ini merupakan kumpulan proses independen dan kecil yang ...