EP 77

Ngobrolin Kontainer - Ngobrolin WEB

Bagikan:

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb ----------------------------------------------------------------------------------- Bergabung menjadi anggota elit di kanal ini: https://www.youtube.com/channel/UCHhAlFGFCGgIusQkQIqJLYw/join Donasi dapat meningkatkan kualitas kanal ini: 💰 https://karyakarsa.com/rizafahmi/tip 💸 https://saw Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Ringkasan Episode

Bantu Koreksi

Episode Ngobrolin Web ini membahas teknologi containerization, khususnya Docker, sebagai solusi modern untuk masalah kompatibilitas dan dependency management yang telah menjadi tantangan sejak lama dalam pengembangan aplikasi. Diskusi dimulai dengan sejarah perkembangan environment development dari era XAMPP yang all-in-one, masalah versi yang berbeda-beda antar developer, hingga munculnya solusi version manager seperti NVM untuk Node.js. Para host menjelaskan evolusi dari virtual machine yang berat namun powerful, hingga lahirnya teknologi container yang lebih efisien dengan konsep layer-based dan image sharing. Diskusi mendalam mengurai perbedaan antara VM dan Container, di mana VM membutuhkan OS lengkap sementara container hanya membutuhkan library dan komponen yang spesifik, membuatnya jauh lebih ringan dan cepat. Episode ini juga membahas Docker Hub sebagai registry untuk berbagai image siap pakai, konsep image vs container, serta Docker Compose untuk mengelola multi-container application. Para host mendemonstrasikan penggunaan Portainer sebagai container management tool yang production-ready, serta membahas konsep Dev Container untuk development environment yang konsisten. Episode ini menutup dengan contoh praktis deployment Next.js tanpa terikat pada Vercel, menunjukkan fleksibilitas yang ditawarkan oleh Docker.

Poin-poin Utama

  • Docker adalah teknologi containerization yang menghilangkan masalah "it works on my machine" dengan konsistensi environment
  • Perbedaan utama VM dan Container: VM butuh OS lengkap sementara container hanya butuh library spesifik yang lebih efisien
  • Docker menggunakan sistem layer-based di mana layer yang sama bisa di-share antar container, menghemat storage dan build time
  • Docker Hub adalah registry berisi ribuan image siap pakai dari PHP, MySQL, Node.js, hingga kombinasi custom
  • Image adalah blueprint/template aplikasi sedangkan Container adalah instance yang sedang running dari image tersebut
  • Docker Compose memudahkan mengelola multi-container application dengan menentukan urutan start dan dependency antar service
  • Portainer adalah container management tool yang production-ready dengan UI untuk deploy dan monitor container
  • Dev Container memungkinkan development environment yang konsisten, bahkan bisa dijalankan di GitHub Codespace
Transkrip Bantu Koreksi

0:11[Menelefon]

0:14Halo, halo, halo. Selamat malam.

0:18Bertemu lagi bersama kita bertiga. Ada saya Rizza, ada Eka dan juga ada Ivan.

0:25Seperti biasa di Selasa Malam.

0:28- Waktunya kita mau rolling web. - Mau rolling web.

0:32Mungkin waktu kita live ini sudah waktunya lebaran ya, jadi mohon maaf lah ya.

0:36- Hampir lebaran ya, besok lebaran. Besok lebaran ya. - Besok, besok.

0:38- Minta maaf lah ya, batin. - Minta maaf lah ya, batin.

0:42- Iya. - Mohon maaf lah ya dan batin.

0:44Iya, siapa tahu kita pernah menyampaikan informasi yang salah, jadi mohon maaf ya.

0:48- Mohon dikoreksi. - Menyesatkan.

0:50- Lebih tepatnya. - Menyesatkan.

0:52- Mudah-mudahan enggak ya, mudah-mudahan enggak. - Atau bercandanya enggak, co.

0:56- Membingungkan. - Atau hot take-nya kurang hot.

1:00- Biasanya Ivan tuh punya hot take tapi kurang hot. - Bisa terlalu hot?

1:05Ternyata enggak hot, ternyata banyak orang mikir begitu juga.

1:09Tapi privacy-nya teranjur bilang, "Mungkin spicy opinion."

1:12Ya, ekspetasinya terlalu tinggi ya.

1:15Kirain se-kontroversial apa, taunya pasti sampai yang kita, "Oh iya, iya."

1:19- "Oh gitu, iya sama." Atau, "Ya, gitu doang." - "Ya, gitu doang."

1:24Ya. Berhubung sudah hampir lebaran, jadi malam ini kita tidak live dulu.

1:31Jadi kita ini edisi rekaman.

1:33Ini rekaman buat nanti dipublikasi di tanggal 9 April 2024.

1:40Jadi ada kemungkinan besok tanggal 10 atau tanggal 11-nya dua hari lagi lebaran.

1:45- Pasti lagi pada lihat hilal malam ini. - Iya, lagi siap-siap.

1:52Apakah besok mau, apa, mau masak atau mau lanjut puasa ya?

1:57- Iya, iya, iya. Nah, malam hari ini... - Liburan ke mana?

2:00- Huh? - Liburan ke mana, Mas Riza?

2:02Liburan? Liburan di sini aja.

2:05Nanti abis lebaran baru dicari waktu liburan.

Lihat transkrip lengkap

2:09- Yang tidak diurus sama-sama. - Oh iya, selalu anti-mainstream ya.

2:11Anti-mainstream.

2:13- Soalnya tidak, apa ya, tidak menikmati... - Macet.

2:20...tradisi kemacetan, rebut-rebutan, dan harga tiket yang melambung tinggi.

2:27Kita tunggu dari work trip saja.

2:31Setuju, setuju.

2:35Enggak, enggak.

2:36Ya, cuman kan, ya itulah faktor ekonomi kan kalau dulu waktu masih single, ya hitungannya cuma satu.

2:42Misalkan dulu masih sama orang tua, pokoknya terserah mau tiket berapa juga harus pulang.

2:48Oh ya udah, udah dibayarin orang tua sendiri, aman kan.

2:52Sekarang kalau mikir mau pulang kampung, di kali empat.

2:56Sekarang apa? Itu ya, oh pangkat N.

3:00Iya, eksponensial, di kali empat ya kalau tiketnya yang normal 700-800 aja, di kali empat, ya kan.

3:13Belum lagi penginapan dan lain-lain.

3:15Jadi ya, pulang kampungnya nanti-nanti aja.

3:19Mudah-mudahan kalau ada libur long weekend atau anak-anak libur sekolah baru begitu.

3:28Oke, topik kita malam ini apa? Topik kita malam ini adalah tentang container.

3:35Atau yang populernya, salah satu teknologi yang populernya adalah docker ya.

3:40- Docker, produk populernya. - Dokernya namanya docker. Teknologinya namanya container.

3:46Tapi itu sama web container, web container API.

3:52Web container API itu apa ya?

3:56Oh, web assembly kan ya?

4:00Yang kayak stack boots itu loh.

4:02- Iya, iya, iya. - Dia pakai web assembly. - Iya, dia jalanin mesin di browser.

4:11Mesinnya sendiri, titol memori nya sendiri dan segala macamnya.

4:16Itu bisa kita lakukan nanti.

4:18Nah, itu bisa besok-besok, tapi docker itu adalah container.

4:23Container yang dimaksud di sini ya apanya untuk sekarang bedain aja konsep web container yang satu frase.

4:30C-nya besar gitu, web container, sama konsep container ala si docker ini.

4:38Nah, bingung-bingung ya.

4:40Ini sebenarnya kalau mau dikategorisasikan itu masuknya sebenarnya ke arah ke ranah cloud atau ke ranah DevOps kali ya.

4:50Semakin kesini, semakin kesini kayaknya kita web developer atau developer pada umumnya juga semakin terekspos nih sama tools-tools seperti ini.

5:02Nah, mungkin sebelum kita mulai gali lebih dalam tentang docker dan container, kita bahas dulu kali ya sejarah perkembangan gimana kita develop aplikasi.

5:12- Kenapa sampai ada container-containeran ya? - Betul.

5:16Nah, awalnya kan umpangan aplikasi di lokal server gitu ya, di lokal environment.

5:22- Lokal host. - Lokal host.

5:24Pertama kali teman-teman di sini yang develop pertama kali Hello World-nya itu menggunakan tools apa untuk lokal host?

5:33Saya pakai ASP. ASP itu berarti apa ya?

5:38- Windows, eh, Microsoft. - IES, IES.

5:42- IES, IES. - Iya itu web server-nya ya?

5:47- Web server, iya web server. - Apache yang alternatifnya Apache ya, Apache.

5:52- Iya, web server itu kan? - Nginx.

5:54Apache, Nginx, kalau Java.

6:00- Tomcat. - Tomcat.

6:02- Tomcat. - Iya, Tomcat.

6:04Kalau Windows, IES ya.

6:07Kalau Hello World ke dulu nggak pakai server, karena HTML, CSS.

6:13Front-end banget ya udah file-nya langsung dibuka aja, file system.

6:17Cuma pertama kali pakai server udah XAMPP.

6:21Oh, udah sama, iya. Sama sih, awal-awal.

6:27Versi berapa ya? IES versi 5 gitu ya.

6:31IES itu bawaan dari Windows kan, nggak perlu diinstall kan, tinggal jalanin servisnya kan ya.

6:36Udah ada dia di Windows kan. Eh kalau Windows Pro ya, Pro.

6:41- Jadi waktu itu masih XP ya, masih XP. Sampai serialkinya juga dihapal.

6:50- FG KGW. - XP Ultimate.

6:54- Nah itu... - Eh bang, serialkinya sama gitu buat semua?

7:00- Sama, banyakan sama sumbernya. - Ada di Gejaya, ada di Gejaya itu.

7:05Banyak.

7:10Ya, hidupin IES itu hanya dari klik-klik aja sih.

7:16- Karena environment-nya si Microsoft jadi lebih gampang ya.

7:24Kalau saya, ya dari XAMPP dulu memang, mulainya dari XAMPP.

7:28Terus pas skripsi itu kebetulan nggak pakai MySQL.

7:33Kan XAMPP itu kan ada MySQL-nya kan ya.

7:36Nah pas skripsi itu diminta pakai Postgre.

7:39Jadi XAMPP-nya tetap dinyalain, MySQL-nya dimatiin, Postgre-nya di install sendiri.

7:45- Tinggal install extent-nya kan. - Iya betul.

7:48- Ya installasi, ya jadi diinstall di host ya.

7:52- Kenapa dulu pakai XAMPP nggak kita install sendiri agak ribet ya?

7:56- Karena ribet install satu-satu. Udah pernah nyobain juga sih.

7:59Berusaha kan dulu buat belajar WordPress, terus kek install.

8:03Kan Windows kan nggak ada apasai server-nya ya?

8:07- Iya. - Ya, ribet lah.

8:09- Hmm. - MySQL-nya sih relatif gampang ya.

8:12Ada executable-nya. Yang ribet itu ngegabungin semuanya.

8:16Yang ribet itu sebenarnya adalah PHP mining-nya.

8:22Coba install PHP mining sendiri. Coba deh. Itu susah.

8:30- Susahnya apa konfigurasinya? - Konfigurasinya susah.

8:34- Konfigurasinya. - Karena dia kan PHP mining kan aplikasi PHP.

8:39Terus kemudian harus connect. - Iya.

8:42- Berarti kan install, jadi ibaratnya dia cuma file aja ya file.

8:46Terus kemudian .conf-nya, .conf-nya harus sesuaiin.

8:50Terus harus kemudian buat lagi user yang punya permisi untuk bisa connect ke MySQL-nya.

8:56Dan segala macamnya lah. Dan cache-nya di mana, terus kemudian .conf-nya di mana.

9:03Konfig-nya juga nggak cuma di satu tempat. Nah, pusing.

9:08Makanya pakai XMPP itu gampang banget jadinya semua PHP mining-nya udah disiapin.

9:15PHP-nya, executable-nya sudah disiapin. Tinggal pencet, localhost jalan.

9:26- Yang menarik adalah kan di Windows memang agak ribet ya.

9:32Karena command line tools-nya kan tidak se-powerful Unix-based kan yang Linux atau Mac OS gitu kan.

9:42Tapi yang menariknya, ketika saya berpindah dari Windows ke Linux waktu udah kerja,

9:49tetap yang dicari SAM juga ada ternyata.

9:52Padahal di Linux Ubuntu itu tinggal apt-get install apache-2, apt-get install php.

10:00Terus php-mode-nya juga diinstall sama terakhir MySQL atau Postgre kan.

10:05Sebenarnya kan sederhana itu. Cuman karena udah terbiasa, cari juga yang seperti itu.

10:10Ternyata ada. - Itu kan memudahkan dan streamline.

10:14Maksudnya streamline experience buat orang yang mau pakai Windows, mau pakai Linux.

10:18Nah, ini kan mindset-nya prinsipnya yang nanti sekian tahun kemudian diterapin di dokter juga kan.

10:25Yang penting kalau kita bahas.

10:27- Dan parahnya ketika pindah ke Mac OS juga nyari juga ada yang namanya MAM, M-A-M-P.

10:33- Bayar kan tapi ya, MAM. - Iya, berbayar. Yang pro-nya berbayar.

10:40Jadi experience yang menarik karena kita nggak perlu install macem-macem.

10:45Cukup install satu executable, kemudian udah terima.

10:49Jadi dia ada di kanan bawah, tinggal kita klik mau di-start atau di-stop gitu kan.

10:54Walaupun kalau starting Windows-nya jadi lebih lambat karena dia harus start beberapa service tambahan.

11:00Nah, dari some kemudian udah mulai kan, udah mulai belajar-belajar akhirnya bisa install sendiri.

11:11Apache-nya udah bisa di-install sendiri, PHP-nya udah bisa di-install sendiri.

11:17Terus MySQL dan lain-lain udah bisa install sendiri karena kemudahan pada saat menggunakan Linux terutama ya.

11:25Terus ada masalah lagi, masalahnya adalah ketika kita bekerja di team itu biasanya masing-masing device itu punya versi sendiri-sendiri.

11:42Misalkan saya developnya pakai PHP versi berapa dulu ya? 3.5 gitu kan.

11:49Ivan udah versi 6 misalkan atau versi berapa gitu. Jauh banget kan.

11:55Sementara ketika di-clone repo-nya nggak bisa jalan karena beda versi.

12:01Ya kan, baik itu PHP, Apache, mungkin juga database-nya berbeda versi akhirnya.

12:09Kenapa sudah pakai repo-repoan dulu? Pakai SVN gitu?

12:12Ada, ada SVN, CVS.

12:16- Udah ada package manager-nya juga? - Udah ada, eh package manager? Belum, belum ada.

12:23Berarti beli versi berapa dong masing-masing dependensinya?

12:28- Semuanya di-include monolitik. - Iya, di-include semua.

12:32- Kan belum ada komputer. - Jadi kayak di-zip gitu kan, terus di-unzip.

12:37- Tapi... - Terus ada ritminya gitu, silakan install php5 gitu. MySQL.

12:46Jadi kita asumsi bahwa semua orang punya versi yang sama kadang-kadang ya.

12:51Tapi kalau yang apa, ritminya orang yang apa, package-nya bagus ya ada.

12:56Lebih masalahnya kalau di pengalaman saya itu biarpun misalnya sama-sama PHP versiannya sama lah.

13:04Misalnya 5.5 atau 5.6 jaman itu ya.

13:07- Tetapi ada extension yang nggak ada. - Oh iya benar.

13:11Ada extension yang kita butuhkan di komputer lain nggak ada extension php-nya itu nggak di-install.

13:17Contohnya PHP yang untuk image-image itu, image magic, atau iron cube, loader segala macem itu kan.

13:41Itu kan PHP extension yang jarang dipakai, tetapi ternyata kita pakai itu dan nggak bisa.

13:47Jadi sering terjadi masalah kompatibilitas seperti itu yang meributkan,

13:56"Oh ini saya keluar kenapa nggak jalan, atau senapa saya pakai nggak jalan, nggak bisa stay set up di lokal."

14:02Akhirnya ya kayak gitu kelamaan.

14:06- Terlalu banyak troubleshooting ya. - Betul.

14:11- Nah yang di front-end lebih parah lagi. - Susah ya.

14:13Developer jaman sekarang kalau sekarang aja udah banyak complain.

14:17- Kalau ngalamin yang.. - Pokoknya kalau jaman dulu lebih susah lagi.

14:20Kalau di front-end beda lagi.

14:23Kalau jQuery, masing-masing plugin bisa punya jQuery versi sendiri.

14:27Oh itu entry point gue ke dalam web development yang serius.

14:35Maksudnya yang total dulu-dulu kan kelihatannya cuma iseng-iseng doang, freelancen,

14:40cuma bisa HTML, CSS, sama JavaScript yang client-side.

14:44Karena mikir nggak diseriusin lama-lama, makin banyak di upwork tuh yang murah-murah, job yang kecil-kecil.

14:51Itu yang kayak gitu-gitu tuh error kan dulu nggak tahu sekarang mungkin udah dihandle.

14:57Kemana dulu semua plugin WordPress bawa jQuery sendiri-sendiri.

15:01Terus ya udah sosokan webbing, tapi sebenarnya sambil masih baca-baca,

15:05sebenarnya nggak worth it sama bayaran yang didapet.

15:12Tapi karena ternyata penasaran, ya udah.

15:15Terus malah dapet ilmu, "Oh ini race condition, oh gini caranya."

15:19"JQuery-nya jadi jQuery 2, jadi jQuery 3."

15:23Terus ditumbung beneran deh jadi WordPress.

15:26Jadi ada apa ya?

15:29Ada lucu-lucuannya juga, maksudnya lucu-lucuannya.

15:33Mungkin siapa tahu kenapa sampai sekarang jQuery point-nya tinggi, pemakaiannya usage-nya.

15:42Salah satunya karena satu web bisa jadi dipakai dua versi jQuery.

15:48Jadi keitungnya dua jQuery versi 2 sama jQuery versi 3.

15:52Karena ada satu plugin yang tidak update, jadi dia tetap pakai jQuery versi 2 misalkan.

15:58Terus sementara yang website di komponen yang lain itu semuanya versi 3.

16:04Jadi tetap harus ada dua versi jQuery dalam satu aplikasi.

16:08- Cuma itu masuk akal sih.

16:10Maksudnya itu kalau udah ternyur kayak gitu dan udah lama developer aslinya nggak ada yang megang,

16:16pasti nggak ada yang mau benerin kan, ya udah selama masih jalan biarin aja,

16:20di alias atau apalah biar nggak tabrakan atau isu-isu lainnya.

16:26- Mereka pakai jQuery No Conflict.

16:29- Oh iya, ada ya.

16:31- Ini jQuery No Conflict, iya nggak ada.

16:34- Jadi mengalias, sebenarnya dia kayak cuma nunggu,

16:39dia nunggu ada, mungkin nggak tahu pakai timeout atau pakai apa,

16:44dia nunggu setiap jQuery baru datang di alias, ya semacam gitu lah nggak tahu.

16:50- Nah pada saat perpedaan versi ini, ada solusi yang ditawarkan sama developer.

16:58Yang paling populer adalah version manager.

17:02Biasanya kalau Node itu ada namanya NVM, Node Version Manager.

17:08Kalau Ruby ada Ruby Version Manager.

17:11Ada RBA NV juga.

17:14Terus kalau Python itu ada macem-macem, ada PIP, ada...

17:17- Krokodaya.

17:18- Krokodaya lagi, konda anak konda.

17:22- Konda.

17:23- Apa lagi?

17:25Ada virtual ENV, ya.

17:30Jadi kita bisa definisikan, wah saya mau install Node versi 14,

17:36padahal sekarang yang terbaru adalah versi 21 atau 18 gitu kan.

17:40Kita bisa install yang versi 14 khusus untuk project ini aja.

17:45Tapi masalah yang database-nya beda versi itu nggak bisa disolving di sana.

17:53Karena nggak ada database version manager kayaknya nggak ada.

17:56- Iya itu sempat masalah juga kan dari MySQL 5, MySQL 5 loncat ke-8 kan.

18:05- Wah jauh ya loncatnya.

18:07- Iya.

18:08- Itu kenapa?

18:09- Nggak tahu.

18:10- Konflikt.

18:11- MySQL, MySQL 5...

18:13- Pak Angkasir 657.

18:15- Keluar MariaDB, MariaDB sebagai fortnya.

18:20Terus itu yang MySQL, Oracle apa Sun ya?

18:30- Sun.

18:31Sun abis itu dibeli Oracle.

18:34- Ya oke, berarti begitu. Jadi MySQL, apa sekarang kan sudah MySQL 8 kan?

18:40- Ya, MySQL dibeli Sun, Sun dibeli Oracle.

18:44Jadi semua yang barangnya Sun jadi punya Oracle, termasuk MySQL.

18:51Itu juga susah tuh kompatibilitasnya tuh kayak kalau misalnya mau convert dari MySQL 5 ke MariaDB,

19:06engine-nya kan beda. Ada yang kan kalau MySQL kan bawa engine MySQL sama InnoDB.

19:14Kalau MariaDB beda lagi. Ada tetap bawa itu tapi ada tambah ketambahan lain.

19:21Terus nanti naik ke MySQL 8, ada lagi itu, ada sedikit kompatibilitas isu.

19:28Nah itu terlibat.

19:30- Terlibat ya.

19:31- Selain versi itunya sendiri, kadang antar OS juga kan.

19:34Kalau misalnya Windows harus install apalagi kayak ada driver atau apa,

19:40dependensi sih library bawaan yang ternyata nggak ada kalau kita mau install apalah MySQL atau PHP.

19:50- Ya, ya, ya, ya. Terutama yang Windows ya agak berbeda ya.

19:56- Redis juga akan menuju hal yang sama nanti lagi.

20:00- Apa tuh?

20:01- Dengar nggak?

20:02- Dengar, dengar, dengar.

20:03- Dibeli?

20:04- Licensing ya? Itu harusnya kita bawa topik tentang licensing.

20:08- Iya. Licensingnya Redis baru aja berubah.

20:12- Oh nggak MIT lagi.

20:14- BSD. Dia BSD license sebelumnya.

20:17- BSD? Litang selalu.

20:20- Iya.

20:22- Iya. Nah, dari situ kita bisa solving satu, apa ya?

20:29Programming line juice-nya bisa ada versinya atau platform kayak Node.js, PHP, Ruby, Python itu bisa.

20:35Tapi database nggak bisa. Akhirnya muncul ide menarik gimana kalau kita running-nya di virtual machine.

20:44Muncul lah.

20:46- Itu karena teknologi Hyper-VM mulai...

20:49- Mulai berkembang ya.

20:51- Mulai muncut.

20:52- Hyper-VM apa tuh? Nggak nyamain.

20:56- Hyper-VM.

20:58- Ingat nggak jamanya Intel mulai mengeluarkan Hyper-V atau Hyper-VM?

21:08- Hyper-VM kan? Kayaknya maksudnya ini deh yang di private chat.

21:14- Coba.

21:16- Yang saya maksud itu mulai, prosesor itu mulai, ya itu ada open PC, Hyper-VM ada open PC sama send virtualization.

21:30- Oh iya, iya, iya.

21:32- Ingat nggak jamanya prosesor, ini Intel ya, jadi mulai mengeluarkan yang namanya multi-treading.

21:43Jadi core-nya 2, tetapi trade-nya bisa 4.

21:48- Oke.

21:50- Atau mulai lah itu i3, i5, i7, i9.

21:57Jadi dengan teknologi hyper-trading itu mulai lah muncul virtualization seperti ini.

22:10Di perakarsai, yang paling gede itu kan, ininya, engine-nya itu kan open PC sama send virtualization.

22:18Kalau ininya VMware, pernah dengar nggak?

22:22- VMware, VMware iya.

22:24- Enggak juga. Gila semua ini nggak ngerti gitu.

22:27- Itu berbayar ya?

22:30- Ada yang gratisnya.

22:33- Oke.

22:34- Dan yang free itu adalah VirtualBox.

22:36- VirtualBox.

22:38- Ya, VirtualBox itu free.

22:40Jadi ibaratnya kita bisa menjalankan OS lain apapun di atas OS kita dengan teknologi virtualization.

22:52Virtualization ya.

22:55- Jadi virtual itu sebenarnya lawan katanya real machine ya.

22:59Real machine itu maksudnya lokal machine kita.

23:03- Host, kalau disebutnya host.

23:05- Untuk yang kita pakai sekarang itu adalah host.

23:08Tapi bukan dual boot ya.

23:10- Bukan.

23:11- Kalau pernah dual boot, misalnya kalau mau booting itu, booting ke Windows apalagi.

23:16Bootloader-nya bisa pilih pakai Group, ya.

23:20Pakai Group ke Linux.

23:24Kalau ini bukan.

23:26- Kita di dalam Windows.

23:29- Di atas Windows bisa jalanin Linux.

23:33- Ya, begitu juga sebaliknya.

23:36- Karena itu tersimpan sih, itu virtualnya.

23:40- Ya, anak jaman sekarang taunya WSL.

23:43Tetapi bukan, WSL beda teknologi.

23:45- Beda lagi.

23:46- Itu subsystem kan.

23:48Kalau HPM ini benar-benar dibooting.

23:52Jadi dia nyalak, nge-booting, dan pakai memory, pakai disk, storage, pakai CPU.

24:01- Ya, virtual semua.

24:04- Jadi kayak bikin mesin di atas mesin gitu nggak sih kalau istilah yang sudut teknis.

24:11- Bikin OS di atas OS.

24:14- Menjalankan OS di atas OS.

24:17Prosesornya itu virtual, memori-nya virtual.

24:21Semua hardware-nya itu virtual.

24:25Itu teknologi virtual mesin.

24:28Dan itu solving problem ketika kita jalankan kita develop di dalam OS yang guest itu kan.

24:43OS yang di dalam OS gitu kan.

24:46Di dalam virtual.

24:47Ya, OS virtual itulah ya, OS virtual.

24:49Jadi kita developnya antara kita masuk ke OS yang kita inginkan itu.

25:01Dalam hal ini misalkan Linux.

25:03Atau kita konekin.

25:05Bisa pakai FTP.

25:06Jadi kita kayak remote ke dalam OS itu.

25:09Jadi modingnya tetap pakai...

25:11- Atau bisa share folder.

25:12- Iya, share folder.

25:13- Bisa share folder tapi network ya.

25:15- Network.

25:16- Network set.

25:19- Jadi kita nggak langsung moding di Ubuntu.

25:21Nggak perlu install editor.

25:23Kita cukup install editor-nya di Windows kita.

25:26Atau dimana kita connect-nya atau share folder ke OS tersebut.

25:30Cuman problemnya adalah berat.

25:35- Iya.

25:36- Iya berat makan space.

25:39- Ya berat lah satu OS saja jaman dulu.

25:41Udah pemain berat.

25:43- Iya berat sekali gitu kan.

25:46- Not aja, sampai sekarang virtual ini masih dipakai loh.

25:49- Masih masih.

25:50- Kalau misalnya pernah denger kata VPS, Virtual Private Server, ya kan?

25:54Sewa VPS, ya itu teknologinya ini virtualization.

26:00- Tapi berarti dia server yang khusus, server yang khusus bikin banyak kayak virtual system kan?

26:08- Iya, satu hardware bisa dibagi-bagi ke banyak mesin.

26:13- Contohnya kalau di Google Cloud, buka satu kalau di Amazon kan EC2 atau EC2.

26:20Kalau di Google Cloud apa ya?

26:22VM.

26:23VM ya namanya.

26:25- Virtual Machine ya.

26:27Compute Machine, Compute Engine.

26:29- Compute Engine.

26:30Kalau jalanin satu Compute Engine, kayak gini, sama.

26:34Jadi OS gede-nya kan ada sendiri.

26:37Nah, saya ingat zaman ini waktu virtualization ini pakai yang namanya Vagran.

26:46Itu Vagran itu yang buat Hasicore.

26:50Hasicore itu yang bikin Ansible.

26:53- Oh iya benar.

26:57Jadi sebelum ke Vagran, kayaknya kita lebih ke Ansible dulu nggak sih?

27:06- Iya, Ansible dulu ada.

27:09- Papet, papet.

27:12- Papet, papet.

27:13- Papet ya.

27:14Safe.

27:16Yang buku Kukuk kan, namanya Kukuk ya.

27:19- Kukuk.

27:20Safe ya, safe.

27:22- Safe kan.

27:23- Ya.

27:24- Untuk runner-nya.

27:27- Apa namanya ya?

27:30- Untuk ya Kukuk, Vagran.

27:33- Ini Vagran, ini kan problemnya tadi kan berat, satu berat.

27:39Kedua, misalkan nih, saya punya satu project, Node.js-nya versi 14,

27:46mungkin Postgreene-nya versi 9.

27:49Terus abis itu selang beberapa bulan saya punya project, Node.js versi 18,

27:55Postgreene-nya versi 10.

27:57Itu kan setiap kali ada project, itu berarti kita harus punya satu VM kan.

28:03Dan kita harus klik di GUI-nya, harus bikin dulu pilih OS-nya.

28:11- Space-nya bakal besar banget ya.

28:13- Betul.

28:14Nah, munculah Vagran ini, tujuannya untuk bisa kita definisikan pakai script kan.

28:20Saya pengen Ubuntu-nya versi sekian, Node.js-nya versi sekian,

28:26Postgreene-nya versi sekian, terus kita bisa running.

28:30- Dia yang set up sama Ribut, dia, si Vagran-nya itu ya.

28:34- Istilahnya Headless.

28:37- Selama ini tuh sering banyak Vagran tangga, dari mana?

28:40Dari Laravel kan punya, Laravel kan banyak produknya tuh yang waktu itu kita bahas.

28:44Ada produknya namanya Homestead.

28:46Homestead itu, jadi kalau buat orang yang nggak terbiasa install,

28:51set up Laravel, Composer, apa sih kan harus PHP, artisan, blablabla, Composer kan agak ribet.

28:59Kalau pengen yang langsung jadi, itu pakenya Laravel Homestead.

29:03Nah, itu di Vagran Box, tapi kayaknya berbayar deh.

29:06Ya gitu, cuma sering baca karena itu, cuma nggak pernah ada kebutuhan pakai, jadi belum pernah coba.

29:13Nah, ini salah satu server development yang untuk WordPress development dan PHP.

29:21- Khusus untuk WordPress ya, berarti ini ya?

29:23- Iya, Community Build untuk WordPress jaman itu ya, 10 tahun lalu kayaknya.

29:27Jadi caranya, tekniknya di sini tuh sudah disiapin semua untuk template-template-nya

29:36untuk bisa buat sebuah local machine yang sudah optimize untuk WordPress atau PHP.

29:46- Tanpa harus install PHP kan? Bahkan nggak ada, kita nggak install PHP manualnya kan?

29:51- Tapi harus install Virtual Box ya, dan Vagran.

29:54- Iya, harus install.

29:56- Jadi Virtual Box dan Vagran nanti dia yang akan create Virtual Box-nya,

30:00berapa disk-nya, segala macam, dan software-software apa yang dibutuhkan dari Apache Engine X,

30:08terus kemudian PHP-nya, versi berapa didefinisikan, PHP admin,

30:14- Composer? - Composer, NPM, segala macam, sudah ada di sini semua.

30:21Di-maintain komunitas, dan dulu saya suka pakai ini. Ini cuma kayak kalau mau naikin Vagran Up, Vagran Down, Vagran Destroy,

30:33- Ini mirip Docker ya, konsepnya. - Iya, ini cikal bakal-nya.

30:37- Cikal bakal-nya, Vagran, dan Ansible. Jadi script-nya ini Ansible sebenarnya dia untuk nge-generate.

30:45- Script-nya Ansible. Untuk otomasi kan, otomasi deployment kan sebenarnya awalnya ya.

30:50Si Ansible ini kan. - Lebih tepat, dia cuma runner ya.

30:56Jadi mau pakai buat deployment bisa, mau pakai buat development bisa, bahasanya profisioning bisa.

31:06- Profisioning, oke. Nah, habis dari sini baru muncul Docker.

31:12- Iya. - Docker. Docker ini adalah salah satu.

31:20- Jadi kenapa muncul teknologi ini? Karena untuk profisioning sebuah virtual environment, lama.

31:28Butuh download, butuh setup, segala macam. - Betul.

31:33Sedangkan teknologi container ini, dia nggak lama, karena dia cuma application, dia nggak virtualization.

31:42Beda ya? - Iya.

31:45Jadi kembali lagi ya, diingatkan Docker ini adalah nama produk, teknologinya adalah container.

31:52Jadi apa yang membedakan antara container dengan VM, ya ini.

31:58Jadi kalau VM kan semua, satu OS-nya dibuat, di-load oleh OS.

32:07Sementara kalau Docker, dia bisa numpang sama OS kita sekarang,

32:12hanya menginstall library-library atau komponen-komponen yang tidak ada di OS ini aja.

32:21- Punya kita di tempat kita yang asli. - Iya, jadi bisa dibilang loading-nya itu bisa lebih cepat setengah atau lebih dari VM.

32:33Dan ukurannya ya lebih kecil tentunya, karena nggak perlu.

32:37Kalau misalkan kita punya 5 VM, ya berarti 1 VM misalkan 1 GB, ya jadi 5 GB, kan.

32:43Sedangkan container ini dia ada, apa ya, ada kayak div-nya, kayak div gitu.

32:49- Jadi misalkan kita udah... - Lebih tepatnya layer-layer.

32:53Jadi si Docker ini punya layer, layer-layer OS, layer aplikasi, layer komen apa gitu, layer-layer.

33:02Jadi kalau misalnya aplikasi kita, sorry, Docker application-nya ya, application yang dijelankan di atas Docker.

33:11- Yang dijelankan di Docker. - Bins sama lips-nya itu, layer-nya sama dengan up, misalnya up-bis, bins-dama-lips, sama up-c, ternyata ada 3 layer yang sama.

33:22- Bisa kayak di-share gitu. - Bisa di-share, nggak perlu di-download lagi, jadi dia di-share aja.

33:27- Betul. - Yang di-download hanya yang perbedaannya aja yang berbeda.

33:32- Library-library yang berbeda. - Kemona repo ya?

33:35- Kemona repo tapi buat totalization. - Betul. - Jadi indahnya adalah kalau misalnya kita nge-build application B berulang-ulang,

33:45yang berubah itu hanya layer yang di-build itu hanya layer yang berbeda aja.

33:51Layer yang sama nggak di-build ulang, maka bisa cepat banget.

33:55- Betul. Dan Docker ini yang cukup terkenal adalah dia menghilangkan memes, it works on my machine.

34:05- On my machine nih. Karena semua jadi pakai machine yang sama.

34:11- Termasuk sampai deployment. Di-deployment-nya bisa pakai service-service ya Docker image-nya.

34:20- Iya portability ya. - Iya portable.

34:25- Karena layer yang sama, mau di-local, mau di-server, di-staging, production, dan development itu sama semua.

34:31- Sama semua. - Sehingga menghilangkan asumsi karena perbedaan environment.

34:40- Itu susah ngedebug-nya kalau beda.

34:50- Jadi mungkin ya buat teman-teman web-dev sekarang kayaknya udah mulai relevan untuk belajar Docker ya.

35:01Mungkin beberapa tahun yang lalu kayaknya masih ngapain, masih pakai NVM, masih oke lah gitu.

35:05Atau pakai version manager lain masih oke. Kalau sekarang kayaknya udah lebih apa ya.

35:12Resource-nya udah banyak, tempat belajarnya udah banyak.

35:17Dan di beberapa perusahaan yang saya tahu juga menggunakan Docker untuk onboarding.

35:24Jadi ketika kita baru masuk langsung dikasih ini Docker image-nya, silahkan langsung kalau mau ngerjain ya tinggal Docker up atau something gitu.

35:35Kayak docker-compose-up gitu kan, udah semua docker-compose-up.

35:38- Minimal bisa DCUPD itu. Shortcut-nya DCUPD itu kalau pakai CSH.

35:44- Iya sih, minimal. Kita sebagai web developer, seawam apapun kita kan adalah user-nya dari Docker itu.

35:55Maksudnya kita yang dimudahkan misalnya kita punya project fleet atau orang DevOps, atau orang infra, atau apalah.

36:02Sekan tim kita yang lebih puasain soal ini, udah dibikin disepakatin ada Docker image-nya.

36:09Minimal kita harus tahu kalau misalnya kita nge-fork repo yang ada Docker image-nya itu cara pakainya gimana.

36:16Minimal banget kan pertama bisa menggunakan.

36:19Pasti lebih ideal lagi kalau kita bisa bikin image-nya juga, bisa nge-deploy, dan lain-lain.

36:25Tapi pertama kita minimal mulai sebagai pengguna, yaitu DCUPD.

36:31- Apa itu DCUPD? - Itu kalau pakai alias.

36:37- Alias ini CSH. - CSH ya. Udah bawaannya ya.

36:42- Iya. - Docker Compose App D-nya itu sebagai diamond.

36:48- Diamond. - Jadi di background.

36:51- Oke. Tadi kan sempat ngomongin tentang image. Nah, ini kayaknya harus kita klarifikasi.

36:56Kita jelasin dulu Docker image itu apa, container itu apa.

37:02- Kalau image-nya itu blueprint. Image-nya itu udah seperti blueprint aplikasi yang kita,

37:14yang akan kita jalankan contoh dalam hal ini. Anggap aja PHP.

37:21- Server PHP MySQL. - Iya. Jadi MySQL itu blueprint-nya, sudah ada image-nya.

37:28Jadi bisa blueprint-nya untuk image-nya itu bisa buka di hub.docker.com.

37:35- Oke. Nah, ini ada registry ya. Istilahnya yang ini ya. Registry ya.

37:41- Iya. Registry betul. - Registry itu adalah kumpulan Docker image yang bisa kita gunakan.

37:46- Iya. Ini public ya. Ada private-nya juga. Dan kita bisa bikin private repository juga bisa.

37:55- Betul. - Nah, ini PHP official image.

37:58- Official. - Dan kalau misalnya dari tag-nya itu bisa ke tag di atas.

38:05Nah, ada macam-macam tag-nya. - Ada letters.

38:09- Mau dia pakai gitu. Yang OSR-nya itu segala macam kan ada tuh.

38:15Ada 5 more. Nah, ada macam-macam ini-nya. Tagging-nya dan target arsitekturnya.

38:30Jadi bisa dipakai sesuai dengan kebutuhan. Itu kayak contohnya di scroll sedikit.

38:37Nah, Docker pull-up itu ZTS bullseye. Itu artinya dia di debian dan dia itu trade safety.

38:49Jadi ada PHP yang trade safety, ada PHP yang dibuild non-trade safety.

38:55Jadi bisa dipilih apa itu trade safety atau tidak. Itu bisa nanti jadi kita punya bahasan selanjutnya.

39:00- Kapan-kapan? - Ini kan image-nya, image-nya itu di tagging.

39:10Dan kita mau pakai image-nya mana. Nah, container itu adalah aplikasi sudah berjalan.

39:16Jadi image yang kita tarik tadi ke lokal dan image itu dijalankan sebagai sebuah proses.

39:25- Server, kayak sudah server jalan kan? - Ya, service. Jadi sebuah service.

39:31- Oh ya, service. - Dan itu service itu jadinya namanya container.

39:36Dan itu satu service pasti satu image ya. - Gak bisa kita jalanin multi-HP sama MySQL, gak bisa ya?

39:46Kecuali dalam image-nya, image itu mau expose dua service itu. Bisa juga kalau kita bikin.

39:56Jadi kalau kalian mau bikin custom image yang di dalamnya itu sudah ada langsung apa aja.

40:00Ada kok kalau misalnya Mastiza naik ke satu level ini, ada PHP yang sudah, bukan, bukan, di overview aja.

40:09Ada enggak? - Official image.

40:16- Overview? - Ya, turun, turun, turun, turun.

40:24Itu kan ada PHP 82 CLI. Yang CLI saja. Ada yang sudah dibang, sudah dibungkus dengan apa sih.

40:32- Oh, sudah dibanding sama yang lain. - Ya, coba turun, turun, turun, turun.

40:37- Nah ini dibanding. - Karena itu dependensinya sih PHP.

40:41- Oh, macam-macam variasi dependensi. - Ada variannya. Turun lagi.

40:45Turun lagi. Atau sobat search Apache misalnya.

40:53Nah, ini dia ada yang sudah dibungkus sama Apache. Ini dia contohnya.

41:02PHP 782 Apache. Berarti dia sudah dibungkus sama apa. Jadi dia sudah running di port 80.

41:13Sedangkan kalau tadi kita runningnya di PHP FPM, berarti dia runningnya di port 9000.

41:19Satu service pasti satu image. Dan satu image bisa dijalankan lebih dari satu service.

41:31- Iya. - Iya, misalnya image-nya tetap sama MySQL.

41:36Tetapi kalian mau pakai MySQL untuk yang aplikasi A, aplikasi B, aplikasi C, terserah.

41:43Tetapi harus kalau jalan bersamaan port yang di-expose waktu di mapping berbeda karena dia koneksinya ke port.

41:53Contohnya di sini docker file itu kan docker run minde portnya yang dari host 80 di mapping ke 80 yang ada di dalam service.

42:06- Kita tempat kita. - Iya.

42:08Kalau mau dibikin yang service yang kedua, berarti nggak boleh 80 lagi. Berarti 81.2.80.

42:19Artinya di mapping. Jadi nanti localhost 81. Tapi nggak bisa sih, 81 sudah dipakai. Jadi bisa 88.1.

42:28- 88, ya di atas ribuan ya. - Di atas 1024.

42:34- 1028, gitu. - Iya.

42:39- Tapi pada umumnya kita ngerunning satu image untuk satu container nggak sih? Nggak juga?

42:50- Satu image untuk, nggak juga. Contohnya yang saya bilang tadi. - Nggak juga ya. Bisa aja.

42:55- Saya nge-develop saat ini ya di company yang saya kerja, menjalankan 3 project, ya kan?

43:03- 3 project ini tentunya my scale-nya sama image-nya. Kan masih satu. - Iya, karena versinya sama.

43:11Harus versinya sama. - Iya, butuhnya masih scale 8, gitu ya.

43:15Jadi sama aja. Jadi satu image kan. Tetapi waktu saya kompos up masing-masing, ya dia...

43:23- Harus ada id-nya masing-masing ya? - Nanti kan volume-nya beda, volume-nya beda.

43:29Jadi volume yang untuk ngehost data my scale-nya bin file-nya itu kan berbeda.

43:39Jadi service-nya tetap bisa jalan. Port-nya beda.

43:44- Coba balik ke artikel yang tadi deh. Ternyata ada penjelasan juga tentang image.

43:52- Scroll up dikit, itu menarik tuh. Eh, scroll down dikit. Kalau di sini dia analogikan sebagai photocopy.

44:00- Mesin photocopy ya? - Mesin photocopy template yang berisi aplikasi dan dependensi.

44:08Seperti kode, library, termasuk config-config-nya. - Blueprint benar.

44:13- Bisa di-copy ke image tersebut. Yang di-deploy adalah image-nya.

44:20Jadi misalkan image yang kita pakai adalah, anggaplah kalau tadi kan PHP, kita pakai Ubuntu.

44:26Terus di Ubuntu ini kita bisa customize lagi kan. Kita mau tambahin note versi 18,

44:33Postgre version 12, nginx-nya versi berapa gitu kan.

44:39Abis itu udah di-install, abis itu di-jalanin masing-masing service-nya.

44:45Terus abis itu, apa perintahnya, kopi lokal folder yang ada aplikasi kita ke folder-nya si misalkan nginx.

44:57Nginx itu misalkan di far www atau di tempat lain. Gitu kan. Dan seterusnya, dan seterusnya kan.

45:06Jadi istilahnya itu infrastructure as code kan. - Oh iya ya.

45:15Infrastructure tapi disimpan dan di-deploy sebagai kode. - Bukan ya, beda ya.

45:20Ini bukan infrastruktur kan. Termasuk infrastruktur juga sih ya.

45:24- Kalau udah di-deploy ke server, itu udah jadi infrastruktur buat aplikasi-nya.

45:31- Bisa jalan di lokal, bisa jalan di server, bisa jalan di CI.

45:36- Di mana aja. Selama ada docker service-nya, itu udah bisa jalan.

45:41- Bisa jalan di atas docker juga. - Iya, docker jalan di atas docker.

45:46- Mana tau gak? - Bisa tau tau.

45:51Salah satunya, kalau temen-temen tadi kan Ivan sempet bilang di awal kan ada WSL, Windows Subsystem Linux.

45:58Nah itu docker. Dan di dalam WSL itu kita bisa jalanin docker lagi.

46:02- Bisa install docker. Dalam docker-nya, install docker lagi.

46:08- Coba balik ke hub docker, misalnya cari Alpine atau Debian.

46:16- Alpine itu OS kan ya. - Iya, Debian deh. Alpine juga boleh lah.

46:21- Debian yang lebih terkenal. - Jadi docker pull Debian, jalanin,

46:29terus CLI ke Debian-nya atau connect ke CLI-nya itu sudah OS sendiri.

46:35- Betul. - Dan di dalam Debian-nya, install aja container.

46:39- Tapi ini walaupun OS-nya, meskipun ini ditulis Debian, tapi ini tidak full OS ya.

46:49Yang ada di docker hub ini, registry, tidak full OS. Jadi jangan harap bisa jalanin Windows ini-nya.

46:59Aplikasi desktop-nya. - Xorg-nya.

47:03- Aplikasi desktop-nya. - Ini nggak bisa, tapi kalau buat service,

47:09kayak buat kebutuhan service aja ya server. - Untuk development lah.

47:13- Untuk development. Agablah kita install versi Debian yang hanya bisa jalan di terminal.

47:19Gitu lah kira-kira. Nah kalau Alpine tadi, Alpine ya.

47:25Alpine ini juga OS Linux, tapi khusus dibuat untuk docker image.

47:38Jadi dia optimize. - Cukup 5 MB. Wow.

47:44- 5 MB itu yang... - OS-nya.

47:49- Bukan OS. - Apa?

47:52- 5 MB itu kayak bin-nya si Alpine sendiri, tapi kalau OS-nya itu kan...

48:00- Oh iya, iya. - Kalau gede install, ngelar ya.

48:02- Gede juga. - Iya.

48:04- Nggak kecil. Tapi ini salah satu yang paling kecil kan Alpine, yang paling sering dipakai juga ya.

48:09Karena memang dia tujuannya adalah dibuat untuk docker ini kan ya.

48:16- Dan kelebihan-nya berarti itu ya, portability kan. - Portability.

48:20- Jadi yang dideploy, yang di-share ke mesin, local mesin kita masing-masing,

48:28kan image-nya, walaupun nanti pasti jalanin di-install bin-nya melar.

48:34Tapi ini portability tadi kan? - Iya. Betul.

48:40Nah, tadi kan pertanyaan saya apakah satu image, satu container hanya berisi satu image atau nggak?

48:47Jawabannya bisa ya, bisa tidak kan?

48:50Maksud saya adalah biasanya kalau misalkan kita mau install Node.js sama Postgre dan sama Engine X,

49:01biasanya itu kan masing-masing ada, kita menjalankan dokeran masing-masing kan dari 3 itu.

49:09Abis itu kita bisa gunakan daripada capek-capek kita harus, oh, sebelum kita jalanin Engine X dan Node.js,

49:19kita harus jalanin service database-nya dulu, karena si Node.js-nya akan connect ke database kan.

49:26Kalau Node.js-nya duluan, database-nya belum jalan, maka akan error kan.

49:31Nah, ini bisa kita akalin dengan tools yang namanya Docker Compose, benar nggak sih?

49:37- Betul. - Buat menjadikan satu ya?

49:40- Untuk menjadikan satu.

49:43- Karena ribet juga kan, jalanin satu-satu service, nge-define port-nya,

49:49terus kemudian nge-link antar container, nge-link antar container, susah ya.

49:56- Ya, jadi contohnya ini kayak gini nih, kita definisikan service-nya dalam format YAML,

50:03kita kasih tahu service web ini akan dibuild di local directory, port-nya 5000,

50:12volume-nya di sini, kemudian ada service kedua, database, dalam hal ini Redis,

50:17menggunakan image yang namanya Redis.

50:20Jadi kita punya dua container nih ya, berarti ya?

50:27Satu yang untuk web, satu untuk database.

50:30- Caching. - Iya, caching atau apapun.

50:34Jadi kita nggak perlu Docker run web, kemudian Docker run Redis, kita tinggal jalankan Docker Compose up.

50:43Atau sebelumnya Docker Compose build dulu, abis itu baru di up ya?

50:47- Sekarang sudah jadi sub-comment, kalau dulu Docker-DashCompose.

50:53- Ya. - Oke, nah lanjut dari containerization dari aplikasi yang udah kita bikin satu-satu ini,

51:04baik itu web, database, mungkin nginx atau proxy, gitu kan?

51:09Itu kan satu container, maksudnya cuma satu kan?

51:15Kalau misalkan nanti kita bawa comproduction dan butuh diskaling, baru kita butuh yang namanya orchestration.

51:22Jadi itu yang membedakan antara containerization sama orchestration.

51:27Dalam hal ini kubernets, kubernets itu adalah?

51:31- Docker Swarm. - Docker Swarm juga, ya.

51:35- Itu adalah? - Kalau di Amazon.

51:38Kalau di Amazon namanya AWS itu?

51:44- EKS. - EKS, kalau di Google Cloud namanya ECS.

51:51- Cloud Engine apa? ECS? - Cloud.

51:55- Container Engine. - Google Container gitu namanya.

52:00- Google Container Engine. - Google Container Engine.

52:06Google Kubernetes Engine GKE.

52:10- Oh ada ya GKE. - Iya.

52:13Ya intinya orchestration. Nah kalau udah orchestration ngomongnya sudah harus ada kayak namanya load balancer,

52:21ada yang namanya service legislation, ada health check, scale up, scale down, segala macem.

52:33- Kita undang nanti. - Iya, kalau udah ngomongin orchestration kita nggak bisa ngomong banyak-banyak karena kita nggak ngerti.

52:46Jadi harus mengundang orang yang lebih mengerti.

52:49Jadi kita batasi obrolan kita di containerization aja. Sekedar pengetahuan aja ya kalau kubernets itu sekedar pengetahuan.

52:59Apa sih bedanya containerization sama kubernets gitu kan atau docker?

53:02Nah docker sendiri kan tadi produk, tapi kan ada alternatifnya kan, ada alternatifnya.

53:09Docker itu alternatifnya ada yang namanya portman. Portman ini API-nya atau CLI-nya itu mirip.

53:16Jadi kita bisa alias, alias docker sama dengan portman buat ganti in gitu.

53:22- Cuma susahnya sama? - Sama.

53:26- Kalau command lainnya sama? - Sama. - Memang docker itu logonya ikan paus ya tadi.

53:32Sekarang ini singa laut. Ada-ada aja.

53:36- Kelebihan si portman ini setau saya ya, tolong koreksi kalau salah.

53:40Jadi kalau docker itu kan kalau kita mau jalanin kan harus ada docker service yang berjalan kan.

53:45- Iya kita install aplikasinya. - Iya kita install aplikasinya.

53:50Baik itu docker desktop atau yang lain ya.

53:54- Nah kalau portman ini... - Nah desktop itu nggak gratis ya.

53:57- Kalau untuk komersial? - Iya.

54:01- Apa itu nggak gratis? - Gratis dipake untuk personal use.

54:05Kalau untuk komersial up to sekian juta dolar itu harus beli license.

54:11- Kalau disusia up to sekian juta dolar. - Kalau disusia up to sekian juta dolar.

54:15- Harus ada kalau udah pake beberapa kali sebetulnya harus beli.

54:19- Nggak ada orang yang pernah beli. - Ada alternatifnya.

54:24Ada alternatifnya kok. Nanti kita akan bahas juga.

54:27Portman ini dia stand alone. Jadi nggak perlu ada daimernya, nggak perlu ada servisnya.

54:32Bisa langsung jalan. - Oh nice.

54:35- Jadi tinggal jalanin dari CLI aja gitu dari terminal di ketik komennya.

54:40Asal di direktori yang ada file-file itunya portmannya jalan.

54:45Salah satu yang menariknya itu.

54:49- Compose juga berarti ya? - Compose nggak kayaknya nggak deh.

54:53Nggak tahu deh. Portman desktop. Oh ada portman desktop.

54:57- Manage container dalam burung not just portman.

55:01Podify. Ini namanya podify into pods.

55:05- Itu. Portman run, portman build. Nggak ada sih.

55:10Kayaknya nggak ada. Compose itu beda deh kayaknya.

55:13- Wah kalau nggak ada susah. - Ada buku mu warnanya ya ampun.

55:18- Iseng amat. - Bece juga ya.

55:21Orang investor kresi.

55:25- Gua yakin nanti muncul lagi nih. - Portman.

55:28- Port apa namanya? Portwoman. - Portman compost.

55:32- Ini ada portman compost. Oh ada berarti ada. - Portperson ada, ada.

55:37- Ini kisahnya sama kayak postman. - Postman.

55:40- Oh kita juga bikin postwoman ada juga. - Oh iya.

55:44- Postwoman bener bener bener. - Tapi udah ganti nama kayaknya.

55:48- Iya. - Iya.

55:50- Udah dibeli. - Tadi kita mau bahas alternatif dari docker compost.

55:54E docker desktop. Alternatif.

55:58Ada yang namanya apa ya? Cholima kalau nggak salah. Bener nggak?

56:02- Iya kolima. Iya betul betul. - Oh bacanya kolima ya.

56:06Kolima eh ini mana isinya? Oh belum.

56:10Ada video version. Nah ini portman.

56:14Alternatifnya portman karena ada portman desktop, ada kolima.

56:18- Ada ranger. - Kolima.

56:20- Ini only available for Linux sama Mac OS. - Iya nggak ada Windows ya.

56:25- Sayangnya. - Kolima ku udah punya, kok nggak salah.

56:29Itu alternatifnya. Jadi kalau misalkan temen-temen mau pakai docker desktop tapi komersial.

56:36Dipakai untuk kerja, untuk kantor. Coba cari alternatifnya jangan pakai docker desktop karena itu berbayar.

56:42Kalau bisnisnya di atas jutaan dolar, berapa juta dolar gitu.

56:46- Oke. - Oke.

56:48Jadi kalau misalnya pokok ijo misalnya ya. Itu kan udah lebih tuh ya.

56:54Itu sebenernya nggak boleh pakai docker desktop. Oh sebetulnya.

56:59Oh iya ya. Harusnya kita tanya ya sama developer toko ijo ya.

57:02Kalian pakai desktop docker desktop atau nggak ya?

57:05Tapi mereka udah bayar lah. Masa sih.

57:08- Portman. - Harus kerelan.

57:11- Iya. - Buildah.

57:13Buildah.

57:15- Buildah. - Ada.

57:18Run C. Ada build kit. Banyak ya sekarang ya.

57:22LXD. Ini lumayan jadul juga nih.

57:28Terus mesos juga ya. Apa aja mesos baru tau nih.

57:32- Container D. - Ternyata ini semua nggak one-on-one comparison sama docker.

57:37Tapi ya. Maksudnya ada hal yang bisa digantiin.

57:40Ada yang nggak kayaknya.

57:42Iya, iya, iya. Benar, benar.

57:44Gitu.

57:46Nah untuk informasi atau untuk teman-teman belajar gimana caranya,

57:52bisa langsung ke dokumentasinya docker langsung.

57:55- Dokumentasi resminya udah sangat lengkap. - Dokumentasi resminya udah sangat lengkap.

57:59Apa, dokumentasi tutorialnya juga ada?

58:02Tutorialnya juga udah lengkap. Mau pilih bahasa apa atau itu.

58:06Ada semua di sini.

58:08Teman-teman tinggal ikutin aja.

58:10Ini udah lengkap. Udah nggak perlu ke tempat yang lain kayaknya ya.

58:13Tinggal ngikutin, benar-benar ngikutin. Udah, bisa.

58:16Dan paling reliable kan. Karena dari pihak apa, offisial dokernya.

58:21Langsung offisial. Jadi kalau ada update, udah langsung.

58:23Bahkan most likely, kalau misalnya kalian bukan solo developer

58:27atau posisinya bukan intra atau devops atau apa,

58:31paling baru baca satu-dua halaman, udah nemu yang dibutuhin,

58:35udah ngerti, udah bisa pakai, abis itu nggak pernah baca sisanya gitu.

58:41Karena sangking lengkap dan jelasnya.

58:44Tapi ya, kalau pengen belajar secara lengkap, ya itu tinggal dibaca aja, udah satu-satu.

58:49Di sini ada konsepnya. Apa itu, container, image, registry, sama docker, compose.

58:54Terus ada language specific guide. Mau node.js, ada.

58:58Sampai C# juga ada. PHP juga ada.

59:01Misalkan ini, PHP. Kita kan tadi ngomongin PHP, misalkan gimana caranya.

59:05Ini dikasih contoh projeknya, kemudian kita init.

59:09Init ini bikin sendiri ya, jarang ya, kecuali kalau kita yang setup.

59:14Ya ini, kalau kita mau belajar setup, in case kita harus meng setup.

59:20Kenapa?

59:22Saya barusan tutup koneksinya.

59:24Oh, tapi sekarang udah nyambung lagi. Kayak nggak ada ini.

59:28Dari kita kelihatan, maksudnya, aman aja, nggak ilang.

59:31Oh, gara-gara tadi nggak ngomong kali, jadi kita nggak jadar.

59:35Dari docker init, nanti dia bikinin compose yaml, compose json, docker ignore, dan lain-lain.

59:44Pasti udah bisa nebak apa itu docker ignore.

59:47Terus kita bisa jalankan docker compose up.

59:51Kalau misalkan baru ya pakai build.

59:53Kalau -d artinya diamond.

59:56Jadi di belakang layar atau background.

59:59Kalau udah selesai, kita compose down, selesai.

1:00:02Mungkin di awal agak merasa ribet, susah, gitu kan.

1:00:10Tapi ya, ini sebagai mana tools baru yang dipelajari akan mudah.

1:00:16Konceptnya sih yang susah adalah koncept awalnya.

1:00:20Tapi kalau udah jalanin semua, terus pasti yang, oh gitu maksudnya.

1:00:25Sambil banget ranggut gitu, oh gitu.

1:00:28Ya biasanya gitu. Biasanya konceptnya dulu yang harus kita pahamin benar-benar baru kita pakai.

1:00:37Kalau kita konceptnya belum ngerti tapi udah pakai, biasanya ada missing link biasanya.

1:00:42Begitu.

1:00:45Ada lagi tuh yang dockercurriculum.com. Buat belajar docker.

1:00:49Oh iya ini juga bagus nih. Ini juga bagus. dockercurriculum.com.

1:00:53Sama satu lagi mau bagi pengalaman. Jangan push ke docker hub

1:01:00kalau aplikasi image yang kalian buat itu ada API key.

1:01:06Aduh sama ya.

1:01:09Saya melakukannya. Paniknya kayak panik banget itu pasti.

1:01:15Oh shoot gitu ya. Oh no, langsung hapus. Langsung hapus.

1:01:20Ya ngomongin registri, kita bisa publish registri bukan hanya di docker hub ya.

1:01:28Service cloud masing-masing baik GCP, AWS, dan lain-lain itu ada semua kan ya.

1:01:34Menyediakan registri kan.

1:01:37GitHub ya kalau mau free ya. GitHub nggak ada?

1:01:41Gak ada.

1:01:44Masalahnya nggak ada.

1:01:47GitLab yang ada?

1:01:50Oh canggih juga GitLab ya.

1:01:55Oke. Ini ada docker-curriculum.com. Tadi dokumentasinya teman-teman bisa cari juga.

1:02:01Rasanya dari situ aja udah cukup dan langsung praktek.

1:02:06Gak lebih dari cukup sih. Gak usah cari-cari tutorial lainnya lagi.

1:02:10Ada project baru atau project yang udah jalan, sekalian dicatat kan, butuh.

1:02:18Kadang-kadang kita bikin project tapi kita lupa.

1:02:24Apalagi project pribadi gitu kan.

1:02:27Kita mau publish lah pakai GitHub atau pakai apa.

1:02:32Tapi kita lupa kan, mencantumkan versinya.

1:02:35Terus tiba-tiba ada yang klon, kok nggak bisa ya?

1:02:38Nah itu waktunya. Waktunya kita nyetet-nyetet, oh saya jalanin di PHP versi sekian, Node.js versi sekian.

1:02:46Ya udah dicatat sekalian dibikin docker file-nya atau docker compose-nya.

1:02:52Udah membantu teman-teman yang lain juga untuk belajar.

1:02:57Ada satu lagi yang docker ini apa namanya?

1:03:01Kayak, saya nggak tahu, mungkin bukan container-management.

1:03:08Itu ada juga seperti portainer.

1:03:10Apalagi tuh.

1:03:12Portainer.

1:03:14Portainer.

1:03:16Portainer.

1:03:18Portainer.

1:03:20Oh, portainer.

1:03:22Ini kayak docker.

1:03:24Atau container-management.

1:03:26Container-management.

1:03:28Untuk membantu kita memanage, jadi kita bisa nge-deploy container di mana server juga bisa.

1:03:37Untuk IoT device kita bisa nge-deploy bermacam-macam sesuka hati kita.

1:03:43Container-management software that simplifies secure adoption of containers with remarkable speed.

1:03:51Ini mau demo-in nggak?

1:03:58Boleh, boleh, boleh.

1:04:00Mau dong.

1:04:02Ini demo-in apa?

1:04:06Portainer, portainer.

1:04:08Portainer.

1:04:10Oh, kirain mau demo-in docker dulu?

1:04:12Portainer-nya aja udah.

1:04:16Portainer, coba ya.

1:04:20Bisa nggak ya? Bisa nggak ya?

1:04:25Udah.

1:04:31Share screen, share screen.

1:04:33Oke, udah.

1:04:35Sudah, sudah.

1:04:37Nah, ini kan saya jalaninya di, apa namanya, di Raspberry Pi.

1:04:42Portainer-nya.

1:04:44Ini apa nih?

1:04:46Ini Raspberry Pi.

1:04:48Terus, portainer-nya itu.

1:04:53Zoom in, zoom in.

1:04:55Portainer, ini kan.

1:05:00Nah, jadi saya buat itu semua, ini aplikasi ini sendiri ya.

1:05:05Ini aplikasi portainer sendiri.

1:05:07Aplikasi yang jalan di atas docker sendiri.

1:05:10Saya lupa namanya apa.

1:05:12Terus, ini portainer.

1:05:14Ada 2 server, satu yang di sana, satu lagi Open Media Vault.

1:05:25Contohnya, ada jalanin 5 container.

1:05:28Oh, itu namanya Homer.

1:05:30Untuk tampilan ini namanya Homer.

1:05:36Terus, satu aplikasi sendiri.

1:05:42Terus, saya ada engine exposure.

1:05:44Jadi, lihat ya, kan ada portainer, pi, port, ika2.org, kan?

1:05:50Ini hanya jalan di lokal network-nya saya.

1:05:54- Alias doang.

1:05:56- Nggak, dia jalan dari pi-hole.

1:05:59Jadi pakai DNS.

1:06:01DNS-nya sendiri itu punya lokal DNS.

1:06:08- Oh, bagus.

1:06:10Terus, kemudian dari...

1:06:15Terus saya punya engine exposure manager.

1:06:18Ini untuk jadi hub-nya.

1:06:22Jadi, supaya bisa kayak engine x54, terus kemudian DNS 54, portainer 54.

1:06:29Ini semuanya jadi gate-nya lewat engine x.

1:06:32Dan itu semua di dalam container.

1:06:37Dari di-host sama portainer.

1:06:40Nah, ini kan jalannya di port.

1:06:45Jadi, portainer ini yang memanage container-container-nya saya.

1:06:55Jadi, kalau saya mau hidupin satu aplikasi baru,

1:07:02tinggal stack-nya apa, tinggal add stack,

1:07:05mau taro komposernya di sini bisa, mau...

1:07:08- Eh, enak banget.

1:07:10Ada GUI-nya gitu.

1:07:13- Oh, ini GUI buat docker kompos gitu ya kira-kira ya?

1:07:16- Iya.

1:07:17- Segerananya.

1:07:19- Aplikasi template itu udah banyak.

1:07:21Contohnya mau jalanin apa?

1:07:23Bind, mau jalanin caddy,

1:07:26atau calibre,

1:07:29cloudplay,

1:07:31- Codeserver.

1:07:33- Codespotetolah, deluge.

1:07:38Apalagi, file browser, kalau mau ada filezilla.

1:07:42Yang server ini filezilla server.

1:07:45- Iya, iya.

1:07:47- Git-tea, git-tea juga ini kayak, apa?

1:07:50- Kayak GitLab.

1:07:52- Kayak GitLab.

1:07:54Ada Grafana, macem-macem ini banyak banget nih.

1:07:56Jellyfin, kalau mau denger lagu.

1:07:59- Oh, menarik ya.

1:08:01Media server.

1:08:06- Jadi kita gak perlu bikin docker kompos yaml sendiri ya?

1:08:12Kita tinggal pilih dari template ini ya?

1:08:14- Mau jalanin piehole nih.

1:08:16Select.

1:08:18Advance portnya.

1:08:22Ini kan belum play komposnya saja.

1:08:26Kita deploy.

1:08:31Nanti kan dia bakal jalan di port berapa nih?

1:08:35Kelihatan nih portnya berapa.

1:08:37Kalau mau mengunjungi langsung begini juga bisa nih.

1:08:42Jalanin sini.

1:08:45Berarti dia jalanin di sini.

1:08:47Jalan kan?

1:08:49- Oh, wow.

1:08:52- Kalau homework-nya saya jalanin di sini ya, jalan tuh 192 skin-skin.

1:08:57Cuma karena saya gak suka pakai IP,

1:09:00saya tambahin Engine Explosive Manager di proxy.

1:09:04- Oh, supaya namanya ada namanya.

1:09:07- Jadi saya bisa punya nama, dan nama ini saya registrekan ke Cloudflare.

1:09:13Di Cloudflare-nya saya.

1:09:16Saya bisa kunjungi ini dari seperti ini deh.

1:09:20Kayak kunjungi biasa.

1:09:23Tapi ini hanya bisa di rumah saya.

1:09:26Nah, satu.

1:09:28Terus saya, kan ada dua portainer.

1:09:30Satu lagi portainer, dia bisa nge-manage satu.

1:09:35Jadi ada portainer yang bahasanya "host",

1:09:43satu lagi "satellite" atau "agent".

1:09:46Kalau gak salah "agent"nya itu yang di OMV ini "agent" deh.

1:09:50Kalau gak salah saya.

1:09:52Jadi kalau saya bisa punya lebih dari 10 atau 100,

1:09:56bisa pakai portainer.

1:09:58Jadi saya bisa, ini saya contohnya mau masuk ke portainernya si OMV ini.

1:10:02Saya bisa manage.

1:10:04Jadi dari tampilan portainer host saya yang di Raspberry Pi A,

1:10:10saya bisa nge-manage yang di Open Media Fold.

1:10:14Ada dua transmission sama portainer "agent" jalan.

1:10:18Itu Open Media Fold-nya sendiri kan,

1:10:23Debian ditambahin aplikasi OMV.

1:10:28Jadi ya saya punya, OMV saya ini kan punya hard disk gede banget nih.

1:10:37Sampai berapa? 7GB.

1:10:417GB tapi dia di "memory".

1:10:46Kalau ini sih 4.5TB.

1:10:53Dan ini di "mirror".

1:11:00Dan ini SSD di "mirror" juga, 500GB untuk backup.

1:11:05Jadi kayak time machine saya selalu backup ke Open Media Fold secara otomatis.

1:11:16Ya 3TB lah, 4TB kalau gak salah hard disk-nya.

1:11:23Di RAID 1.

1:11:25Yang lain di RAID juga ini.

1:11:29Apa lagi ya? Itu portainer jadi bisa virtual container management software.

1:11:41Bisa produksi, ini produksi ready ya.

1:11:49Jadi bukan cuma buat mainan-mainan di rumah doang.

1:11:52- Tinggal di deploy ke remote. - Di deploy ke mana gitu ya.

1:11:59Contohnya di situs www.id.org.

1:12:04Ini kita pakai container base.

1:12:07Dan kita pakai portainer untuk ini.

1:12:14Untuk handle service-service-nya.

1:12:21- Satu VPS doang sih itu. - Oke.

1:12:25- Begitulah kira-kira. - Menarik.

1:12:29- Terakhir. - Contoh lain yang gak terlalu wow tadi.

1:12:37Itu sih yang simpel, Next.js.

1:12:40Selama ini orang mikir ada asumsi bahwa dimonopoly oleh Vercel.

1:12:47Karena kalau kita deploy ke Vercel kan gampang.

1:12:51Tinggal ketik saja, deploy, udah langsung semua server-site-nya diurus sama Vercel semua.

1:12:57Ya karena itu punya Vercel dan kalau usage-nya udah besar, kita harus bayar ke Vercel.

1:13:08Tapi sebetulnya Next.js-nya sendiri itu gak log in, gak terikat, gak kekunci sama Vercel.

1:13:15Karena bisa dideploy sendiri.

1:13:18Tapi orang kan selama ini asumsinya ribet ya kalau nge-deploy Next.js sendiri.

1:13:23Terutama buat server-site sama ISR dan blablabla.

1:13:30Nah biasanya orang solusinya pakai docker file, jadi ya udah itu tinggal ikutin.

1:13:36Iya ini contohnya ya, node versi 18, terus kita mau taruh file-nya di folder apa, kita copy package JSON-nya,

1:13:45termasuk package log-nya ke slash, kemudian jalanin npm install,

1:13:53copy semua source code-nya, buka port 3000, jalanin npm run dev.

1:14:00Udah, jalan untuk development ya, ini khusus untuk development ya docker file-nya ya.

1:14:04Iya ada lagi, turun-turun.

1:14:07Nah untuk menjalankan pakai ini kan.

1:14:12Tapi kan ini buat itu doang.

1:14:17Buat development ya.

1:14:21Kalau ini multi-stage, multi-stage itu maksudnya?

1:14:26Bisa membedakan, membedakan dengan development.

1:14:31Jadi kalau misalkan kita yang mau jalanin yang production,

1:14:36dia akan jalanin yang ini sampai ke mana, sampai sini ya npm run start ya.

1:14:43Terus kalau mau ini untuk yang dev tadi ya sama ya, untuk yang dev kurang lebih sama.

1:14:50Jadi memudahkan kita untuk nggak perlu install-install ya, nggak perlu install macem-macem di laptop kita,

1:15:01bisa pakai docker bergantung kepada kebutuhan atau dependensi dari proyek kita.

1:15:08Jadi maksudnya kita nggak terkunci harus pakai Fairsell.

1:15:12Jadi misalnya kita di tempat kerja atau kita sendiri udah punya pakai layanan lain, ya udah.

1:15:18Asal bisa deploy Docker Image, sebetulnya relatif, nggak sesulit yang dibayangkan.

1:15:25Oke, kalau begitu sebelum mudahan kita kesimpulan dulu kali ya.

1:15:32Docker itu apa? Docker itu adalah teknologi containerization untuk memudahkan semua dependensi,

1:15:42konfigurasi, versi-versi dan settingan-settingan dalam suatu proyek.

1:15:50Bisa dipakai di local machine, bisa di deploy ke server.

1:15:54Bahkan kita nggak perlu install macem-macem di laptop baru, misalkan dapet laptop baru dari kantor nih,

1:16:00baru masuk kantor, dapet laptop, nggak perlu install macem-macem, pakai docker aja udah.

1:16:04Iya, tinggal install docker sih ya, bener. Terus abis itu masuk ke folder proyeknya,

1:16:13ada docker file, tinggal docker build dan docker compose-up dan lain-lain.

1:16:19Jadi kemudian ketika kita masuk ke proyek yang beda dengan dependensi yang beda juga,

1:16:27misalkan tadi PHP, terus sekarang ke Node.js, juga bisa switch nggak perlu install Node.js dan lain-lain versi berapa,

1:16:35udah tinggal menggunakan spesifikasi yang sudah disediakan sama docker file.

1:16:40Itu kalau proyeknya sudah ada docker file, kalau belum ada ya kita buat.

1:16:44- Ya, bikin sendiri kayak tadi tuh contohnya. - Bikin sendiri kayak tadi contohnya.

1:16:48Sumber belajarnya langsung ke dokumentasi dockernya, itu sudah sangat lengkap.

1:16:54Sama yang tadi docker-curriculum.com, itu juga menarik.

1:16:58Ada lagi yang terlewat? Alternatifnya ada portman, kemudian tadi kita sudah bahas beberapa tools seperti docker compose,

1:17:07terus tadi ada port container, container management.

1:17:13Dan terakhir kita belum bahas dev container yang bisa dijalankan di Codespace.

1:17:21- Oh Codespace nya GitHub? - Iya. Atau bisa dijalankan di VS Code.

1:17:28- Jadi kalau ada, mau di demoin sebentar? - Boleh, boleh, boleh dong.

1:17:35Demo dulu, kayak memasak.

1:17:45- Atau seorang demonstran, demonstran kode? - Ini contohnya di web web passkey di GitHub.

1:17:53- Zoom in, zoom in. - Kan ada dev container nih.

1:17:57Ada note, dev container. Dengan adanya ini saja, dari si GitHub nya itu bisa jalanin.

1:18:06- Oh dia otomatis baca ya? Otomatis ngerti? - Iya, otomatis baca bahwa ada Codespace.

1:18:11- Oh, dependensinya apa aja, konfigurasinya gimana? - Kita klik aja.

1:18:15Biar nanti sambil ngomong dia selesai ininya. - Oh, jadi dia akan install dependensi yang dibutuhkan?

1:18:22- Iya. Tuduh, kok dia ngefreeze?

1:18:31Definisinya kan ada di devcontainer.json. Definisi untuk CPS Code sih sebenarnya lebih tepatnya.

1:18:41VS Code. Dan akan menjalankan Docker Compose YAML.

1:18:47- Oke. - Dimana Docker Compose YAML ini dia akan...

1:19:01Docker Compose YAML ini menjalankan dua service, WordPress dan database-nya.

1:19:10Pakai MariaDB, lalu apa masalahnya dia nge-build. Build titik ya. Build titik artinya mencari Docker File.

1:19:19Docker File-nya ini. WordPress php81 kalau nggak salah pakai Debian, kalau nggak salah.

1:19:27Atau bisa macam-macam yang nggak tahu. Dan terakhir di devcontainer itu saya post create comment-nya itu ngejalanin setup.sh.

1:19:36- Setup. - Jadi saya butuh kayak nge-setup.

1:19:41NPM brand build, dan nge-setting database WordPress-nya. Install WordPress-nya lah gitu ya.

1:19:50Dan activate plugin-nya. Udah selesai. Oh, masih belum.

1:19:54Jadi dia otomatis build kan nih. Image file, terus build container.

1:20:00Ini Docker Compose-nya udah jalan tuh. Udah selesai. Tadah! Sudah jadi.

1:20:08- Wow! - Sudah jadi. Lalu file-nya masih belum muncul. Sabar.

1:20:19Lalu, ini harusnya dia muncul sesuatu di terminalnya. Masih di barang-barang siang kali ya.

1:20:30Nah, udah selesai. Saya, webp, option, get site url.

1:20:39- Oke. - Not initialize. - Oh, dia belum selesai jalanin saya.

1:20:51- Oh, port-nya udah jalan tuh. - Iya, port-nya udah jalan nih.

1:20:55- Oh, sudah. Ini aja ini. - Langsung.

1:20:59- Saya click. - Langsung bisa diakses?

1:21:02- Wow! - Langsung bisa diakses.

1:21:05- Dan dia... - Kira ini saving time sama energy.

1:21:15Berapa banyak ya? Kayak jaman itu nih harus satu-satu di install.

1:21:19- Oh, ini dia jalanin post komen-nya saya nih yang setup.essa nih.

1:21:23- Iya. - Dan, selesai. Ini baru selesai.

1:21:30- Baru bisa... - Udah, udah selesai. Mungkin kalau saya refresh.

1:21:35- Saya reload. - Udah, install. Tinggal login ya.

1:21:39- Login pakai sampel. - Iya, udah jalan tuh paskinnya tuh.

1:21:43- Oh, iya tadi kelihatan.

1:21:52- Tadah! - Oke, mantap.

1:21:54- Wah! - Mantap sekali.

1:21:57- Jadi bisa pakai dev container. Nah, cara yang sama.

1:22:02Misalnya saya, misalnya Mas Riza atau Mbak Eka nge-clone.

1:22:08Ini, nge-clone repo ini ke lokal, buka di VS Code,

1:22:17nanti VS Code bilang, "Eh ada dev container, mau di-running nggak?"

1:22:21Kalau di-running, kalau ada docker atau container-nya di lokal terinstall,

1:22:28dia akan setup, dan langsung remote ke container itu.

1:22:33VS Code-nya akan ngebuka di remote, di dalam container.

1:22:37Dan langsung bisa moding. Saat itu juga.

1:22:41- Mantap. - Ya, butuh.

1:22:45Kalau kecepatan internet-nya oke, 10 menit.

1:22:52- Tadi nggak nyampe? 5 menit? - Iya.

1:22:57- Kecepatan si GitHub-nya kan kencang banget dia, nyedot image.

1:23:01Kalau dari lokal, terasa. Kalau dari 4G.

1:23:05- Intinya docker itu memudahkan ya, memudahkan kita untuk kerja sama,

1:23:13untuk deployment juga. Walaupun mungkin awalnya di ranah DevOps,

1:23:19tapi kita sebagai web developer, sebagai anak front-end, juga tetap butuh ya.

1:23:24Karena masing-masing library atau masing-masing platform, kita butuh

1:23:29spesifik versi, kadang-kadang ada versi yang bahkan breaking chains ya.

1:23:34Jadi dengan adanya docker ini, bisa solving problem yang tadi kita udah bahas.

1:23:38Dari mulai localhost, VM, dan lain-lain akhirnya sampai ke sini,

1:23:43teknologi container masih akan relevan dalam beberapa tahun ke depan,

1:23:50kecuali ada yang... - Malah tambah relevan mungkin.

1:23:54- Iya, malah tambah relevan. - Malah tambah relevan karena

1:23:56set-up makin ribet, versi-versi makin banyak.

1:23:59Ya, dokernya sendiri mungkin bisa aja digantiin sama produk lain ya.

1:24:03Tapi kalau prinsipnya kan tetap... - Prinsipnya sama, tetap sama.

1:24:07- Oke itu aja untuk malam ini. Terima kasih teman-teman yang sudah nonton.

1:24:15Kalau ada saran atau ada topik, silahkan kesana.in/ngobrolin.

1:24:23- Salah itu ngobrolin web, kesana.in/ngobrolinweb.

1:24:29- Iya, langsung hotfix ngobrolin web. - Udah hotfixen web.

1:24:34- Hotfixen, sepi ya. - Eh ternyata salah.

1:24:38- Selama ini, oh jangan-jangan sepi gara-gara salah ya.

1:24:42Nggak ada yang nyoba sih.

1:24:45Ya sudah kalau gitu, kalau ada sumur di ladang, boleh kita menumpang mandi?

1:24:50- Karena air mati. Ternyata bukan bantun, air mati.

1:24:57- Siapa yang masih mandi di sumur?

1:25:02- Iya. - Kita ketemu lagi.

1:25:08Jangan, kalau ada sumur di ladang, mari kita menumpang mandi.

1:25:12Gimana yang mungkin sampai jumpa minggu depan ya.

1:25:16Kalau ada umur panjang, hari selasa depan kita ketemu lagi.

1:25:20Sampai jumpa, bye bye.

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Ngobrolin Astro - Ngobrolin WEB
EP 131

4 Jun 2025

Ngobrolin Astro - Ngobrolin WEB

🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita kembali akan membahas Astro, fokusnya di sisi server. Masih b...

Ngobrolin NextJS - Ngobrolin WEB
EP 85

4 Jun 2024

Ngobrolin NextJS - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Ngobrolin Elixir - Ngobrolin WEB
EP 89

2 Jul 2024

Ngobrolin Elixir - Ngobrolin WEB

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...

Komentar