‫Baiklah, sekarang kita telah mempelajari semua tentang penskalaan Swarm dengan jaringan overlay dan perutean jala, saya ingin
‫Anda benar-benar melalui proses menciptakan aset, atau objek, yang perlu Anda gunakan dalam
‫skenario Swarm.
‫Jadi kita tidak lagi menggunakan perintah run docker, tetapi jaringan dan
‫volumenya sama tetapi sedikit berbeda.
‫Saya ingin memberi Anda skenario dunia nyata dari aplikasi multi-tier, dan kami akan menggunakan Aplikasi Voting Terdistribusi
‫Docker.
‫Ini sebenarnya disebut Contoh Aplikasi Voting.
‫Anda mungkin telah melihatnya di keynote Docker, atau di lab lain atau tutorial.
‫Ini cukup umum, dan saya pikir, aplikasi yang hebat, karena setidaknya ada lima peran di dalamnya, atau wadah
‫berbeda yang perlu Anda gunakan.
‫Dan mereka semua melayani fungsi khusus dan mereka benar-benar melakukan hal-hal yang benar-benar berfungsi, benar-benar melakukan apa
‫yang seharusnya dilakukan.
‫Jadi Anda dapat bermain dengannya dan memiliki komponen arsitektur yang sangat umum dan terdistribusi
‫seperti frontend web dan
‫backend pekerja, serta nilai kunci dalam database. Saya pikir ini sangat membantu untuk dilakukan. Dalam hal ini, Anda akan
‫menggunakan direktori swarm-app-1. Ini sebenarnya dalam repo kursus kami. Di sana tidak
‫ada apa-apa selain readme dan gambar. Dari readme itu, Anda perlu membuat volume dan beberapa jaringan dan
‫lima layanan yang diperlukan agar aplikasi ini berfungsi penuh.
‫Ini dapat membantu Anda untuk mencoba beberapa perintah ini secara lokal, atau benar-benar menulisnya di editor teks Anda dan menyusunnya,
‫karena akan sedikit rumit, benar. Saat Anda membuat layanan
‫buruh pelabuhan itu, Anda harus menghubungkannya ke jaringan tertentu, dan membuka porta, dan
‫menyebutnya nama tertentu, dan menggunakan gambar tertentu. Jadi, mungkin lebih mudah untuk mengeditnya secara lokal dan kemudian hanya memotong
‫dan menempelkan ke shell Anda, di mana pun Swarm Anda berada.
‫Tapi itu hanya aku.
‫Semuanya akan menggunakan gambar Docker Hub karena dalam produksi Swarm Anda tidak ingin membangun.
‫Itu bukan proses yang Anda inginkan pada Swarm produksi Anda, biasanya.
‫Biasanya, Anda ingin melakukan bangunan Anda baik melalui beberapa layanan online otomatis seperti Docker Hub
‫atau Docker Cloud, atau di suatu tempat di pipa CI / CD Anda yang tidak memakan sumber daya pada Swarm produksi Anda.
‫Dalam skenario ini, kita dapat membayangkan bahwa gambar kita sedang dibangun di tempat lain dan
‫disimpan di Docker Hub dan kita hanya perlu menariknya ke bawah, apa pun versi terbaru, ke Swarm kita.
‫Dan saya hanya akan mengatakan ini, seperti banyak hal dalam Ilmu Komputer, ini adalah setengah ilmu, setengah bentuk seni.
‫Perintah Anda bisa dalam pesanan yang sangat berbeda, atau memiliki pesanan opsi yang sama sekali berbeda dari pesanan saya.
‫Anda mungkin menyebut jaringan Anda hal yang berbeda.
‫Tidak apa-apa.
‫Pada hasil akhirnya adalah aplikasi berfungsi, mereka dapat saling berbicara dengan cara yang
‫benar, bahwa Anda telah menerbitkan semua port dan bahwa data Anda dilindungi dalam volume.
‫Mari kita lihat apa yang Anda hadapi.
‫Bayangkan Anda harus mendesain perintah dan arsitektur untuk ini.
‫Dan inilah yang akan diberikan pengembang kepada Anda yang menulis aplikasi ini.
‫Nah dalam hal ini, mungkin banyak pengembang yang menulis aplikasi ini, kan?
‫Karena kita benar-benar punya web frontend yang menggunakan Python, kita punya web backend yang berjalan
‫di Node.
‫Kami memiliki proses pekerja yang sedang berjalan. NET dan kemudian kita punya toko nilai
‫kunci Redis dan database PostgreSQL.
‫Ini sebenarnya adalah sesuatu yang saya lihat lebih dan lebih sering, di mana tim yang berbeda menulis
‫bagian solusi yang berbeda, dan mereka dapat memilih bahasa yang mereka anggap terbaik untuk skenario itu.
‫Dan di dunia kontainer, aplikasi semacam ini benar-benar bersinar. Karena semua aplikasi kami tersegmentasi, mereka masih
‫dapat berjalan
‫secara teknis di mesin yang sama tetapi semuanya dilindungi satu sama lain sehingga Anda
‫tidak berakhir dengan Node yang bertentangan dengan ketergantungan pada Python atau apa pun.
‫Anda juga akan melihat di sini arus lalu lintas, dan aplikasi pemungutan suara tidak memilikinya, tetapi harus memiliki
‫panah kecil yang masuk bahwa ini adalah tempat pengguna akan masuk pada bagian aplikasi
‫pemungutan suara.
‫Dan Anda dapat melihat bahwa aplikasi pemungutan suara sebenarnya harus mendorong suara Anda untuk aplikasi ini yang, omong-omong, Anda akan
‫memberikan suara untuk kucing dan anjing.
‫Ini akan mendorong itu ke Redis dan kemudian pekerja akan benar-benar memeriksa sistem Redis
‫untuk apa pun dalam antrian dan kemudian mendorong hasilnya ke Postgres yang kemudian akan ditampilkan pada backend
‫WebSockets yang sebenarnya memperbarui langsung saat Anda sedang pemungutan suara.
‫Jika kita lompat ke Direktori dengan sangat cepat, saya telah menaruh beberapa catatan di sini untuk membantu Anda
‫karena ada beberapa hal yang sedikit berbeda dan baru.
‫Tapi, area layanan akan ditulis seperti itu dari seseorang yang tahu aplikasi mereka tetapi tidak
‫tahu bagaimana menerapkannya di Docker. Dan itu adalah skenario yang cukup umum.
‫Anda dapat melihat bahwa di layanan saya sudah mencantumkan gambar mana yang perlu Anda sebarkan,
‫nama sebenarnya yang perlu Anda berikan, karena itu penting.
‫Sayangnya, ini adalah gambar yang diberi kode keras untuk nama apa yang akan mereka cari di jaringan.
‫Idealnya, Anda ingin aplikasi yang dapat Anda konfigurasi dengan cepat untuk apa yang harus mereka lakukan untuk nama, tetapi,
‫dalam hal ini, pemilihan akan secara khusus mencari catatan DNS yang disebut redis. Anda dapat melihat bahwa sebenarnya ada dua
‫jaringan di sini. Kami memiliki jaringan frontend dan backend. Itu cukup khas juga
‫dari aplikasi yang lebih besar di mana Anda mungkin ingin melindungi database Anda di jaringan backend
‫sehingga aplikasi pengguna frontend tidak memiliki akses langsung ke sana.
‫Dan itulah yang kami tunjukkan di sini dan Anda akan melihat bahwa pekerja itu sebenarnya terhubung ke dua jaringan.
‫Jadi, ketika Anda menggunakan perintah create Anda, ingat Anda menggunakan layanan buruh pelabuhan buat bukan pekerja pelabuhan.
‫Jadi ketika Anda menggunakan layanan buruh pelabuhan Anda membuat perintah, Anda perlu menentukan
‫--network dua kali, sekali untuk frontend, dan sekali untuk backend.
‫Jelas, Anda tahu cara membuat jaringan Anda terlebih dahulu.
‫Jadi beberapa yang ditentukan di sini. Dan jika Anda memerlukan gambar itu lagi, diagram arsitektur
‫juga ada di sini, untuk berjaga-jaga jika secara konseptual membantu bagaimana Anda akan menggunakan ini.
‫Dan, tentu saja, Anda akan memiliki dokumentasi Docker. Anda mungkin perlu menggunakan --help pada perintah
‫create service yang akan memberi Anda semua berbagai opsi yang mungkin Anda butuhkan.
‫Anda hanya akan membutuhkan tiga atau empat dari itu. Jika Anda terjebak dengan perintah itu sendiri,
‫Anda mungkin ingin meninjau dokumentasi yang sebenarnya, yang akan saya masukkan ke sumber daya bagian ini.
‫Tetapi dokumen khusus ini di bawah Swarm sebenarnya digunakan untuk menciptakan layanan dan mengkonfigurasi layanan.
‫Jadi, ini sedikit bertele-tele, tetapi ada banyak informasi di dalamnya yang mungkin membantu Anda jika Anda terjebak di
‫sini.
‫Video berikutnya saya benar-benar akan menjalankan semua ini sendiri seolah-olah saya adalah Anda.
‫Semoga beruntung dan bersenang-senanglah.