Pada artikel sebelumnya Belajar Membuat Cluster Apache Cassandra Dengan Docker Swarm, penulis telah membahas mengenai tentang cluster pada apache cassandra dengan menggunakan docker swarm. Untuk dapat membuat cluster pada apache cassandra, kita juga dapat menggunakan kubernetes sebagai penganti dari docker swarm. Jika docker swarm merupakan bawaan dari docker maka kubernetes perlu dilakukan instalasi dan setup. Pada artikel ini, penulis akan membahas bagaimana cara instalasi, setup kubernetes dan membuat cluster apache cassandra pada kubernetes.
Apa Itu Kubernetes ?
Kubernetes adalah salah satu produk open source untuk sistem manajemen container
Sama seperti docker swarm, kubernetes dapat melakukan manajemen container, akan tetapi kubernetes merupakan produk yang akan terus berkembang dan akan lebih banyak digunakan dibandingkan dengan docker swarm. Salah satu kelebihan dari kubernetes adalah kita dapat menggunakan kubernetes dashboard untuk memonitoring container, kita dapat melakukan deployment melalui dashboard dan pastinya struktur yang diusulkan oleh kubernetes dan docker swarm sangatlah berbeda. Berikut adalah struktur yang biasanya digunakan di dalam kubernetes.
Berikut adalah penjelasan nya
Node : biasanya sebagai server, bisa sebagai server fisik atau virtual server sehingga node ini juga dapat berupa sebuah server yang berjalan diatas virtual machine seperti VMWare atau virtualbox.
Deployment : biasanya berfungsi untuk mengontrol dari sebuah pods, misalnya adanya update dari sebuah pods, adanya penambahan replikasi pada pods dan lain sebagainya.
Service : berfungsi untuk mengexpose pods, tujuan nya adalah agar client dapat mengakses service yang terdapat di dalam sebuah pods.
Pods : di dalam sebuah deployment terdapat beberapa pods, biasanya pods ini terdapat 1 container atau lebih. Pods ini biasanya akan dilakukan replikasi sesuai dengan kebutuhan.
Container : container ini mewakili dari 1 aplikasi, misalnya database postgresql atau web server apache tomcat.
Instalasi Kubernetes
Pada artikel ini, kita akan menggunakan 2 buat vm yaitu :
VM Master : berfungsi sebagai node master, master disini berfungsi untuk mendeploy container ke dalam node worker kubernetes.
VM Worker : berfungsi sebagai node worker.
Requirment Node Master
Adapun kebutuhan untuk node master adalah :
Ram 3 GB
Disk 10 GB
Bridge Network
IP 192.168.88.100
Ubuntu 16.04 Server
Requirment Node Worker
Adapun kebutuhan untuk node worker adalah :
Ram 2 GB
Disk 10 GB
Bridge Network
IP 192.168.88.101
Ubuntu 16.04 Server
Dengan requirment diatas, silahkan lakukan instalasi ubuntu server pada 2 vm tersebut yaitu pada vm master dan vm worker. IP yang digunakan disini adalah IP static, sehingga anda perlu melakukan sedikit konfigurasi pada jaringan ubuntu server.
Untuk melakukan instalasi kubernetes, anda wajib melakukan instalasi docker terlebih dahulu, bagi yang belum mengerti docker, silahkan baca artikel Belajar Docker. Hal yang pertama dilakukan adalah lakukan update dan upgrade ubuntu server dengan perintah.
Lalu update certificate dan kebutuhan untuk kubernetes dengan perintah
Lalu tambahkan key untuk kubernetes dengan perintah
Lalu tambahkan repository kubernetes untuk ubuntu dengan perintah
Lalu lakukan update kembali dengan perintah
Dan lakukan instalasi dengan perintah
Setup Kubernetes
Setelah selesai melakukan instalasi kubernetes, tahapan selanjutnya adalah kita akan melakukan setup kubernetes. Setup kubernetes akan dilakukan secara bertahap, yaitu dilakukan pada node master terlebih dahulu kemudian akan dilakukan pada node worker.
Setup Kubernetes Master
Silahkan login ke node master, lalu aktifkan bridged IPv4 traffic dengan perintah
Lalu jalankan perintah berikut untuk disable swap pada ubuntu
Setelah selesai, jalankan perintah berikut untuk inisialisasi kubernetes pada node master.
Jika berhasil maka akan muncul output seperti berikut.
Perintah kubeadm join nantinya akan kita gunakan untuk melakukan registrasi dari node worker ke node master.
Lalu jalankan perintah berikut agar kubectl dapat diakses tanpa perlu menggunakan user root.
Setelah selesai, jika kita melakukan setup kubernetes cluster maka dibutuhkan network overlay seperti docker swarm yang dapat menyambung pods yang berbeda node. Jika kita menggunakan kubernetes, maka ada beberapa opsi network pod plugin yang dapat kita gunakan yaitu :
Pada artikel ini, penulis akan menggunakan flannel sebagai network plugin. Untuk melakukan setup flannel pada kubernetes, silahkan jalankan perintah berikut.
Jika telah selesai, silahkan lakukan pengecekan pods dengan perintah
Jika beberapa pods masih dalam proses creating / prosess pull image maka akan muncul seperti berikut.
Jika semua pods telah berjalan maka akan muncul seperti berikut.
Setup Kubernetes Worker
Silahkan login ke node worker lalu aktifkan bridged IPv4 traffic dengan perintah
Lalu jalankan perintah berikut untuk disable swap pada ubuntu
Setelah selesai, jalankan perintah berikut untuk inisialisasi kubernetes pada node worker dengan melakukan register ke node master.
Setelah selesai, silahkan login kembali ke node master, lalu jalankan perintah berikut untuk melihat node yang berhasil melakukan register.
Jika berhasil maka akan muncul seperti berikut.
Dan berikut jika kedua node telah siap untuk digunakan.
Setup Kubernetes Dashboard
Secara default, kubernetes tidak memiliki dashboard akan tetapi kita dapat melakukan setup untuk kubernetes dashboard. Yang pertama kali dilakukan adalah kita akan membuat sebuah file yaitu admin.yaml lalu isikan dengan source berikut.
Konfigurasi diatas berfungsi untuk user authentication pada kubernetes dashboard. Lalu jalankan perintah berikut untuk menambahkan user tersebut.
Setelah selesai, silahkan buat sebuah file dashboard.yaml lalu isikan source berikut.
Lalu jalankan dashboard tersebut dengan perintah
Setelah selesai, tunggu hingga pods tersebut berjalan. Jika pods telah berjalan, silahkan lakukan pengecekan services dengan perintah.
Dan berikut adalah hasilnya
Dari konfigurasi diatas, dapat dilihat bahwa kubernetes dashboard jalan pada port 31601, lalu silahkan akses kubernetes dashboard di https://<ip>:31601 seperti berikut.
Lalu pilih menu skip dan akan muncul halaman seperti berikut.
Arsitektur Cluster Apache Cassandra Pada Kubernetes
Arsitektur yang akan kita gunakan pada kubernetes tidak jauh berbeda dengan docker swarm. Pada kubernetes, kita akan melakukan deployment container pada sebuah deployment. Setiap 1 deployment akan mewakili 1 cassandra. Berikut adalah arsitektur yang akan digunakan.
Silahkan buat sebuah file yaml cassandra-service.yaml lalu isikan dengan source berikut.
Kemudian kembali ke menu dashboard, pilih menu create lalu isikan source diatas pada form seperti berikut.
Silahkan buat sebuah file yaml cassandra-deployment.yaml lalu isikan dengan source berikut.
Kemudian kembali ke menu dashboard, pilih menu create lalu isikan source diatas pada form, Berikut adalah jika pods dalam keadaan creating atau pull images.
Dan berikut ketika seluruh pods telah berjalan.
Lalu pada kubernetes dashboard, silahkan klik di salah satu pods, misalnya penulis ingin memilih pods cassandra-dc-1-<code>, contohnya cassandra-dc-1-8f6fdf494-w247g, maka akan muncul halaman seperti berikut.
Lalu pilih menu exec dan akan muncul halaman seperti berikut.
Pada halaman tersebut, kita dapat mengakses terminal yang terdapat pada pods tersebut. Lalu jalankan perintah berikut untuk melihat topology cassandra cluster yang telah terbentuk.
Jika berhasil maka akan muncul seperti ini
Atau jika dalam bentuk bash
Sekian artikel mengenai Instalasi Dan Setup Kubernetes Cluster dan terima kasih :).
Pada artikel sebelumnya, penulis telah menjelaskan bagaimana cara melakukan deployment docker ke heroku, akan tetapi cara tersebut bisa dibilang sangat melelahkan ketika kita harus memanage banyak service. Untuk dapat melakukan otomatisasi keseluruhan service maka kita akan menggunakan bantuan CI/CD yang ditawarkan oleh gitlab. Untuk penjelasan mengenai CI/CD, anda dapat membaca artikel Belajar Melakukan Integrasi Jenkins Dan Gitlab Pada Docker. Pada artikel ini, kita akan mencoba membuat CI/CD untuk kebutuhan deployment service yang terdapat pada artikel Belajar Deployment Docker Pada Heroku.
Arsitektur Deployment Dengan Gitlab CI/CD
Berikut adalah arsitektur yang akan kita gunakan untuk CI/CD pada gitlab.
Berikut adalah penjelasan dari gambar diatas.
Developer akan melakukan pull code terlebih dahulu yang berasal dari gitlab
Jika telah selesai mengubah atau menambahkan code, maka developer melakukan push code ke gitlab
Jika terdapat perubahan, gitlab akan melakukan build source code lalu melakukan testing, biasanya trigger perubahan ini dapat dilakukan pada branch tertentu.
Jika proses build source code dan testing berhasil maka gitlab akan melakukan build docker image, lalu docker image ini akan di push ke docker hub.
Setelah selesai melakukan push ke docker hub, gitlab akan melakukan deployment ke heroku. Pada saat proses deployment, gitlab akan melakukan pull image terlebih dahulu dari docker hub, lalu image terebut nantinya akan di push ke registry heroku.
Jika proses push docker image ke registry heroku berhasil, maka heroku akan menjalankan image tersebut.
Import Project Dari Github Ke Gitlab
Salah satu alasan menggunakan gitlab adalah gitlab memberikan banyak fitur terutama untuk penggunaan devops. Untuk melakukan import project dari github ke gitlab, silahkan lakukan langkah - langkah berikut.
Silahkan login pada website gitlab. Lalu silahkan buat sebuah project, lalu pilih tab import project seperti gambar berikut.
Lalu pilih import dari github, maka akan muncul output seperti berikut.
Lalu klik authorize sehingga gitlab dapat mengakses repo anda yang ada di github.
Lalu pilih repo seperti berikut.
Setelah selesai, silahkan clone kembali repo Heroku-Container yang berasal dari gitlab seperti berikut
Membuat Unit Test Pada Spring Boot
Silahkan buka class HerokuContainerApplicationTests yang terdapat di dalam package org.rizki.mufrizal.heroku.container. Kemudian silahkan ubah source code nya menjadi seperti berikut untuk kebutuhan testing.
Lalu buat sebuah file application.properties di dalam folder resources, lalu tambahkan konfigurasinya seperti berikut.
Maka struktur project akan berubah menjadi seperti berikut.
Setup CI/CD Gitlab
Pada tahapan ini, kita akan mencoba setup CI/CD pada gitlab. Untuk membuat CI/CD pada gitlab sangatlah mudah yaitu dengan membuat sebuah file di dalam root project dengan nama .gitlab-ci.yml, lalu tambahkan source code berikut
Pada konfigurasi diatas terdapat 3 proses yang akan dijalankan oleh gitlab yaitu
build yaitu proses test dan build project menjadi file jar, nantinya kita dapat mendownload file jar yang telah dibuild oleh gitlab.
publish-image yaitu proses test build dan juga sekaligus proses push docker image ke docker hub.
deploy-heroku-container yaitu proses deployment docker image ke heroku.
Setelah selesai, tahap selanjutnya adalah kita perlu melakukan konfigurasi Variables yang dibutuhkan. Berikut adalah variabel yang dibutuhkan untuk konfigurasi gitlab diatas.
DOCKER_USERNAME yaitu username docker hub
DOCKER_PASSWORD yaitu password docker hub
HEROKU_USERNAME yaitu username heroku biasanya menggunakan email
HEROKU_API_KEY yaity api key sebagai pengganti password heroku
Untuk melakukan konfigurasi variabel diatas, silahkan akses project di gitlab anda. Lalu pilih menu setting dan pilih menu CI / CD. Lalu expand Secret variables dan isikan konfigurasi nya seperti berikut.
Untuk melihat API Key nya heroku, silahkan buka dashboard heroku, klik profile lalu pilih menu account settings, lalu scroll kebawah sehingga akan muncul menu API Key seperti berikut.
Silahkan pilih menu reveal untuk melihat API Key tersebut.
Mengecek Hasil Deployment
Setelah konfigurasi diatas selesai, silahkan commit lalu push source code anda, jika berhasil maka muncul proses pipeline yang sedang berjalan pada project gitlab anda seperti berikut.
Lalu silahkan pilih menu CI / CD di menu project anda, nantinya akan muncul pipeline yang sedang berjalan seperti berikut.
Jika ingin lebih detail, silahkan klik menu jobs, maka akan muncul seperti berikut.
Pada gambar diatas dapat dilihat bahwa jobs yang pertama yaitu build telah berhasil dikerjakan dan anda dapat melakukan download artifact jar melalui menu berikut.
Berikut adalah gambar jika pipeline nya berhasil dijalankan
Dan berikut adalah gambar jika semua jobs berhasil dijalankan
Bagi anda yang ingin melihat source code codingan, silahkan lihat di Heroku-Container. Sekian artikel mengenai Belajar Gitlab Continuous Integration Dan Continuous Deployment dan terima kasih :).
Apache Cassandra adalah salah satu database yang banyak digunakan, terutama jika anda adalah developer API Gateway. Beberapa product API Gateway seperti axway dan kong menggunakan database Apache Cassandra untuk menyimpan seluruh konfigurasi API Gateway. Agar data lebih aman ketika terjadi sesuatu yang tidak diinginkan pada database Apache Cassandra maka dibutuhkan suatu proses replication pada database tersebut. Secara default, Apache Cassandra mendukung replication dimana replication yang ditawarkan dari Apache Cassandra adalah master - master, sehingga kita tidak perlu membuat 2 konfigurasi seperti konfigurasi master - slave pada MySQL atau mariadb. Pada artikel ini, penulis akan membahas mengenai bagaimana cara membuat replication di dalam 1 cluster apache cassandra dengan menggunakan docker swarm.
Arsitektur Cluster Apache Cassandra
Arsitektur cluster Apache Cassandra yang akan kita gunakan adalah sebagai berikut
Pada gambar diatas terdapat :
6 Node Apache Cassandra, node disini adalah satu instalasi Apache Cassandra, dimana 1 node hanya dipasang pada 1 server, maka seharusnya kita menggunakan 6 server.
3 Rack, rack disini untuk menentukan replication akan dilakukan secarah horizontal
2 Data Center (data center dan data recovery), di dalam cassandra biasanya penulis menentukan 2 data center sehingga data center pertama adalah sebagai data center pada umumnya dan data ceter kedua sebagai data recovery.
1 Cluster
Apa Itu Docker Swarm
Sebelum membahas tentang arsitektur nya, kita akan membahas terlebih dahulu mengenai docker swarm.
Docker Swarm adalah Salah satu product nya docker untuk dapat mendeploy container pada multihost.
Multihost disini adalah di banyak server. Misalnya kita mempunyai 2 server, misalnya server A dan server B. Masing - masing server akan dilakukan instalasi docker, dan masing - masing docker mempunyai 1 container yang sedang berjalan. Bagaimana caranya agar container yang terdapat pada server A dan melakukan komunikasi dengan container yang ada pada server B, sedangkan jaringan yang terdapat pada server berbeda dengan jaringan yang terdapat di dalam masing - masing container. Jawaban nya adalah dengan menggunakan docker swarm, dengan menggunakan docker swarm maka docker yang yang terdapat di dalam beberapa host dapat kita lakukan cluster sehingga seakan - akan docker tersebut terdapat pada 1 host. Dengan menggunakan docker swarm, kita bebas menetukan container tersebut ingin di deploy ke host yang diinginkan.
Arsitektur Cluster Apache Cassandra Pada Docker Swarm
Berikut adalah arsitektur yang akan digunakan.
Pada gambar diatas terdapat
2 server yaitu dengan IP 192.168.50.2 dan 192.168.50.3
3 container di masing - masing server, di dalam 1 container terdapat 1 node cassandra
Dari gambar diatas dapat kita lihat bahwa antar server, terdapat jaringan fisik misalnya LAN dan sebagainya, sedangkan di dalam docker container terdapat jaringan tersendiri, sehingga untuk menyambungkan container antar server/host maka digunakan jaringan overlay.
Jaringan Overlay adalah jaringan komputer virtual yang dibangun di atas jaringan lain.
Jaringan overlay ini nantinya akan dibuatkan oleh docker swarm sehingga kita tidak perlu melakukan konfigurasi secara manual, sehingga setiap container yang berbeda host dapat berkomunikasi pada 1 jaringan overlay.
Setup Centos 7 Dengan Vagrant
Pada artikel ini, penulis akan menggunakan vagrant untuk virtualisasi 2 server, bagi yang belum paham vagrant, silahkan simak artikel Belajar Vagrant. Silahkan buat sebuah file Vagrantfile lalu masukkan code berikut.
Dari konfigurasi diatas, kita membuat 2 server dengan masing - masing ip yaitu 192.168.50.2 dan 192.168.50.3. Sistem operasi yang kita gunakan adalah centos 7. Setelah selesai, silahkan jalankan perintah berikut untuk menjalankan kedua server tersebut.
Setelah selesai, silahkan akses kedua vagrant tersebut dengan perintah
Lakukan perintah berikut pada kedua server diatas. Silahkan login dengan user dengan perintah.
Kemudian jalankan perintah berikut untuk menghapus docker versi lama
Jalankan perintah berikut untuk instalasi config manager yum
Lalu tambahkan repo docker pada centos dengan perintah berikut.
Lalu lakukan update dengan perintah
Setelah selesai, lakukan instalasi docker dengan perintah
Setelah selesai, silahkan jalankan docker dengan perintah
Setup Docker Swarm
Silahkan akses server master, lalu jalankan perintah berikut untuk inisialisasi docker swarm
IP diatas adalah IP dari server master, jika berhasil maka akan muncul output seperti berikut.
Lalu silahkan akses server worker lalu jalankan perintah join seperti berikut
Perintah join tersebut berfungsi untuk mendaftarkan server/host pada docker swarm master. Setelah selesai, silahkan akses server master kembali lalu jalankan perintah berikut untuk melihat node / host / server apa saja yang telah terdaftar.
Dan berikut adalah outputnya.
Setelah selesai, langkah berikut nya yaitu kita akan memberikan penamaan kepada setiap node / host / server agar nantinya kita dapat menentukan sebuah container dapat di deploy pada node / host / server yang mana. Silahkan jalankan perintah berikut untuk melakukan penamaan label pada node / host / server master dan worker.
ID diatas dapat dilihat dengan perintah menampilkan semua node yang telah kita lakukan sebelumnya.
Membuat Compose Cassandra Untuk Docker Swarm
Langkah selanjutnya, kita akan membuat sebuah file yaitu docker-compose.yml, isinya sama seperti konfigurasi docker compose hanya saja terdapat penambahan untuk kebutuhan docker swarm, silahkan buat file docker-compose.yml di dalam server master, lalu tambahkan code berikut.
Setelah selesai, silahkan jalankan perintah berikut untuk melakukan pull image cassandra terlebih dahulu.
Setelah selesai, silahkan jalankan semua cassandra dengan perintah berikut
Jika berhasil, silahkan cek service nya dengan perintah
Maka akan muncul output seperti berikut
Silahkan cek container yang sudah jalan dengan perintah
Maka akan muncul output seperti berikut
Cari NAMES yang memiliki nama cassandra_cassandra_dc_1, misalnya jika dilihat dari atas, kita menemukan nya di cassandra_cassandra_dc_1.1.qj4nikx2x9qweqrjp5h2i644a. Lalu silahkan akses container tersebut dengan perintah.
Lalu jalankan perintah berikut untuk mengecek cluster cassandra
Jika berhasil maka akan muncul output seperti berikut.
Sekian artikel mengenai Belajar Membuat Cluster Apache Cassandra Dengan Docker Swarm dan terima kasih :).
Setelah sekian lama tidak aktif untuk menulis artikel, akhirnya hari ini penulis menyempatkan waktu untuk menulis artikel baru :D. Pada artikel ini, penulis akan membahas mengenai bagaimana teknik deployment docker pada heroku. Secara default, heroku sebenarnya mendukung deploment untuk docker akan tetapi hanya sedikit artikel dan tutorial mengenai deployment pada heroku.
Mungkin ada yang bertanya, mengapa kita menggunakan heroku untuk melakukan deployment docker ? sebenarnya untuk melakukan deployment docker dapat menggunakan provider lain misalnya google cloud, akan tetapi google cloud mewajibkan kita menggunakan kartu kredit untuk menggunakan versi free :(, untuk mengatasi hal tersebut, kita dapat menggunakan heroku :D. Proses deployment ini juga penulis gunakan untuk deployment aplikasi - aplikasi microservice yang penulis bangun untuk kebutuhan tesis :), jadi dapat dipastikan bahwa deployment docker pada heroku merupakan alternative yang tepat bagi developer yang ingin mencoba teknologi docker.
Setup Project Spring Boot
Pada artikel ini, penulis akan membuat sebuah project spring boot dengan bahasa pemrograman kotlin yang nantinya akan di deploy ke container. Silahkan akses start.spring.io, lalu isi seperti berikut.
Silahkan download lalu extract project tersebut dan import ke dalam IDE Intellij IDEA. Lalu silahkan buka file build.gradle dan ubah menjadi seperti berikut.
Dapat dilihat pada bagian berikut.
merupakan konfigurasi plugin docker pada gradle yang nantinya kita gunakan untuk melakukan proses pembuatan image. rizkimufrizal adalah nama dari account docker hub. Langkah selanjutnya silahkan buka file application.properties di dalam folder src/main/resources lalu ubah konfigurasinya menjadi seperti berikut.
${DATABASE_URL} merupakan variabel yang ada pada heroku, variabel ini nantinya kita gunakan untuk mengambil url database. Lalu silahkan buat sebuah package configuration di dalam package org.rizki.mufrizal.heroku.container lalu buatlah sebuah class kotlin DataSourceConfiguration untuk keperluan konfigurasi datasource, dan ubah codingan nya seperti berikut.
Langkah selanjutnya silahkan buat package domain pada package org.rizki.mufrizal.heroku.container lalu buat sebuah class kotlin dengan nama Barang lalu masukkan codingan seperti berikut.
Setelah selesai silahkan buat package repository di dalam package org.rizki.mufrizal.heroku.container lalu buat sebuah class kotlin dengan nama BarangRepostory lalu ubah codingan menjadi seperti berikut.
Lalu ubah main class HerokuContainerApplication menjadi seperti berikut.
Langkah selanjutnya silahkan buat file Dockerfile pada root project lalu tambahkan codingan berikut.
Setelah selesai, selanjutnya kita akan membuat image berdasarkan project tersebut, silahkan jalankan command berikut untuk login ke docker hub.
Setelah selesai login, lalu jalankan perintah gradle berikut.
Jika telah selesai, maka anda dapat melihat image anda telah tersedia di docker hub seperti berikut.
Deploy Docker Container Ke Heroku
Silahkan buat sebuah folder di dalam root project dengan nama heroku-docker lalu buat sebuah file Dockerfile di dalamnya dan tambahkan konfigurasi docker seperti berikut.
Container yang ada pada heroku wajib menggunakan perintah CMD untuk menjalankan service nya, dikarenakan ini adalah project java maka penulis menggunakan command java untuk menjalankan aplikasi web tersebut. -Xmx300m -Xss512k merupakan perintah untuk membatasi penggunaan memory dikarenakan memory untuk heroku versi gratis dibatasi hanya sampai 512 MB.
Silahkan login pada web heroku di https://dashboard.heroku.com, lalu buat sebuah aplikasi dengan nama heroku-docker, untuk nama silahkan gunakan nama yang anda inginkan. Setelah selesai, silahkan masuk ke dalam detail aplikasi tersebut lalu pilih menu resources, lalu pada bagian add-ons silahkan ketika postgres maka akan muncul seperti berikut.
Nantinya akan muncul seperti gambar berikut dan pilih provision
Nantinya akan muncul seperti berikut.
Lalu silahkan akses folder heroku-docker melalui terminal lalu jalankan perintah berikut untuk melakukan login ke heroku.
silahkan isikan email dan password anda, lalu login ke registry docker heroku dengan perintah
Kemudian untuk melakukan deploy ke heroku, silakan jalankan perintah berikut. Perintah berikut menggunakan heroku-cli, silahkan lihat cara instalasi heroku-cli di heroku-cli.
heroku-docker silahkan gunakan nama aplikasi yang anda buat di heroku. Jika berhasil maka akan muncul output seperti berikut pada terminal anda.
Test REST API Spring Boot
Untuk melakukan test terhadap REST API yang telah kita bangun, silahkan jalankan command berikut untuk melakukan proses save data.
Lalu silahkan akses data dengan command berikut
Untuk mematikan container pada heroku, anda dapat melakukan scale down menjadi 0 dengan perintah
Bagi anda yang ingin melihat source code codingan, silahkan lihat di Heroku-Container. Sekian artikel mengenai Belajar Deployment Docker Pada Heroku dan terima kasih :).
Pada artikel sebelumnya, penulis telah membahas mengenai bagaimana cara setup project angular 4. Pada artikel ini, penulis akan membahas mengenai bagaimana cara membuat routing pada angular 4.
Apa Itu Routing ?
Routing adalah salah satu fitur angular dimana routing ini biasanya digunakan untuk navigasi sebuah web.
Dalam melakukan development sebuah web, biasanya arsitektur yang digunakan adalah membuat sebuah web dengan full fitur angular, sehingga untuk urusan routing dan navigasi juga akan dihandle oleh angular. Untuk mengakses data ke bagian server, angular dapat menggunakan fungsi http bawaan. Pada artikel ini, kita akan mencoba membuat 2 routing, akan tetapi sebelum membuat routing, kita akan melakukan konfigurasi bootstrap terlebih dahulu.
Setup Bootstrap
Untuk menambah dependency library bootstrap silahkan jalankan perintah berikut.
pada artikel ini,kita akan menggunakan library ng-bootstrap. Setelah selesai melakukan instalasi dependency, selanjutnya kita akan mendaftarkan library bootstrap pada file .angular-cli.json yang berada pada root project. Silahkan buka file .angular-cli.json lalu ubah seperti berikut.
Setelah selesai, silahkan buka app.module.ts di dalam folder src/app, lalu tambahkan main module dari angular bootstrap seperti berikut.
Lalu kita memerlukan import pada bagian annotation @NgModule, maka hasilnya akan seperti berikut.
Langkah selanjutnya kita akan coba membuat 2 component, dimana nanti 2 component ini yang akan kita gunakan untuk kebutuhan routing. Disini penulis akan mencoba membuat 2 component yaitu not-found dan dashboard. Untuk membuat component silahkan jalankan perintah berikut.
Untuk melakukan setting routing, silahkan buat sebuah file di dalam folder src/app dengan nama app.routing.module.ts. Lalu silahkan masukkan codingan seperti berikut.
Nah kemudian silahkan buka file app.module.ts, silahkan ubah codingan menjadi seperti berikut.
Nah dapat dilihat pada source code diatas, bahwa component yang tadi nya telah diregister telah dipindahkan ke file app.routing.module.ts. Langkah selanjutnya kita harus mendeklarasikan routing nya pada file app.component.html, silahkan ubah codingan nya menjadi seperti berikut.
Agar halaman nya tampil maka dibutuhkan css tambahan,silahkan buka file index.html di dalam folder src lalu silahkan ubah seperti berikut.
Jika berhasil maka outputnya akan seperti berikut.