‫Sekarang Anda mungkin masih bertanya-tanya, bahkan setelah mempelajari beberapa fitur utama Docker.
‫Mengapa Docker perlu ada?
‫Jelas kami telah mengemas perangkat lunak selama beberapa dekade dengan banyak manajer paket lain yang menyebarkan perangkat lunak ke
‫server.
‫Jadi mari kita bicarakan.
‫Video ini akan fokus pada tiga hal seputar mengapa Docker dan mengapa sekarang?
‫Dan pada saat diciptakan, ada gesekan.
‫Ada hal-hal yang menghalangi kami menuju tingkat kecepatan dan kemudahan penggunaan berikutnya dari siklus hidup perangkat lunak, terutama seputar pengemasan,
‫pendistribusian, dan menjalankan semua perangkat lunak yang kami buat.
‫Dan saya suka daftar tiga, saya kira.
‫Jadi ini daftar utama lingkungan dan kecepatan isolasi.
‫Ketiga bidang itulah yang ingin saya bicarakan sebagai tiga alasan keseluruhan.
‫Saya merasa wadah itu sendiri harus ada dan mengapa mereka begitu populer saat ini.
‫Pertama, masalah isolasi.
‫Dan jika kita kembali ke awal karir saya di tahun sembilan puluhan, kita bisa mulai berbicara
‫tentang server apa dulu sebelum kita memiliki kontainer.
‫Jika kita kembali lebih jauh dari hanya 2013, sebelum Docker dibuat dan kita berbicara tentang awal 2000-an di
‫tahun sembilan puluhan ketika kita pindah dari mainframe ke PC, ini mungkin seperti apa tampilan admin biasa.
‫Saya memiliki beberapa server per perusahaan.
‫Anda tahu, kami tidak akan benar-benar dapat mengelola 100 server per orang.
‫Sekali lagi, ini seperti, Anda tahu, 2000.
‫Jadi kami akan memiliki server besar yang sangat mahal ini sehingga jarang menghabiskan semua sumber daya mereka dengan
‫satu aplikasi.
‫Jadi, Anda akan berakhir dengan semua aplikasi ini semuanya disatukan di server yang sama.
‫Dan server menjadi rapuh.
‫Menjadi sulit untuk dikelola karena Anda mungkin perlu mengubah satu hal untuk satu aplikasi, dan kemudian aplikasi lain membutuhkan
‫hal yang berbeda.
‫Dan kemudian Anda harus mengelola versi Python mereka yang berbeda atau versi Apache Anda yang berbeda di
‫server yang berbeda hanya untuk menyeimbangkan semuanya pada saat yang sama, Anda ingin menempatkan lebih banyak barang di setiap
‫server.
‫Tetapi tidak ada yang diisolasi, jadi semua aplikasi ini berbagi sistem file yang sama.
‫Mereka biasanya tidak dapat menjadi beberapa versi aplikasi itu tanpa banyak peretasan yang rumit.
‫Dan itu adalah masalah besar.
‫Kemudian datang VM.
‫Jadi, begitu VM menjadi sangat populer, bahkan sebelum cloud, kami dapat mengabstraksi semua aplikasi kami dan
‫mulai menempatkan lebih sedikit aplikasi pada VM yang lebih kecil, semuanya menulis di host besar yang sama.
‫Jadi mungkin terlihat seperti ini dan kita mungkin mulai dengan Chef atau Puppet sebagai cara untuk
‫mengelola semua server yang jumlahnya terus bertambah ini.
‫Faktanya, kami akan memiliki begitu banyak server pada awal 20-an sebelum pembuatan Dockers sehingga menjadi
‫sangat sulit untuk mengelola semuanya sekaligus.
‫Anda adalah satu admin tunggal, mungkin mencoba mengelola lusinan, jika bukan ratusan server, bahkan dengan
‫cloud membantu kami menjalankan mesin lebih cepat, menghancurkannya lebih cepat.
‫Itu banyak.
‫Sangat banyak yang harus dikelola sehingga menjadi terlalu banyak bagi banyak dari kita.
‫Dan cloud, menurut saya, membuatnya lebih baik, tetapi juga lebih buruk karena membuatnya lebih mudah untuk berputar
‫lebih banyak.
‫Jadi bagaimana Docker dapat membantu dengan itu?
‫Bagaimana ini dapat membantu kami mengurangi jumlah infrastruktur yang harus dikelola sekaligus memastikan isolasi beban kerja kami sehingga segala
‫sesuatunya tidak menjadi rapuh atau sulit untuk dikelola?
‫Nah, jika ini adalah pengaturan kami 20 tahun yang lalu, alih-alih menyebarkan semua VM ini dengan jumlah OS
‫yang tidak perlu.
‫Apa yang container lakukan adalah memberi kita isolasi seperti VM.
‫Ini tidak persis sama, tetapi kami hanya akan berdebat untuk saat ini bahwa itu adalah lapisan isolasi di mana mereka mendapatkan alamat
‫IP mereka sendiri, mereka mendapatkan sistem file mereka sendiri, mereka mendapatkan ruang proses mereka sendiri.
‫Jadi sepertinya hampir VM penuh, tetapi Anda tidak memerlukan semua sistem operasi yang berbeda sehingga kami dapat
‫mengurangi sistem operasi kami, menghitung jumlah host fisik kami.
‫Anda tidak lagi harus menggunakan VM sebagai lapisan isolasi, dan mungkin akan terlihat seperti ini.
‫Alih-alih menggunakan S-H, Anda akan menggunakan Docker.
‫Seelye Atau jika Anda beralih ke Kubernetes, Anda dapat menggunakan AI segel Kubernetes dan semua
‫aplikasi Anda diisolasi dalam wadahnya sendiri.
‫Ini memberi Anda banyak manfaat, termasuk menjalankan beberapa versi aplikasi yang sama pada sistem yang sama
‫tanpa konflik apa pun.
‫Selanjutnya, masalah lingkungan.
‫Dan jelas kami menjalankan banyak OS seperti yang saya bicarakan, tetapi jumlah jenis lingkungan yang
‫berbeda juga meningkat.
‫Apakah Anda pernah mendengar karya di Mesin saya?
‫Itu dibuat terkenal sebagai lelucon oleh Jeff Atwood, salah satu pendiri StackOverflow, dan posting
‫blog terkenal sejak dulu.
‫Tapi ini bekerja pada mesin saya, idenya agak aneh, tapi leluconnya adalah seringkali tugas
‫pengembang untuk memastikan aplikasi bekerja dengan benar.
‫Tetapi mereka tidak memiliki semua lingkungan yang diperlukan untuk menjalankan aplikasi ini.
‫Jadi mereka hanya menjalankannya di mesin mereka, mereka menguji di mesin mereka, dan kemudian ketika itu tidak
‫bekerja di tempat lain, mereka berkata, itu bekerja di mesin saya.
‫Ini benar-benar menantang ketika kita memiliki semua OS yang berbeda dan Docker menciptakan The Matrix from Hell ini,
‫yang pada dasarnya berarti untuk setiap bagian dari aplikasi Anda, yang ada di atas saya, dan
‫kemudian untuk setiap jenis lingkungan di sini di sisi ini, Anda memiliki konfigurasi yang berbeda.
‫Mungkin Anda harus menginstal dependensi dengan cara yang berbeda.
‫Mungkin dependensinya sedikit berbeda karena yang satu memiliki versi yang berbeda di yang lain.
‫Anda memiliki semua jenis lingkungan yang berbeda ini dan Anda mungkin harus membaca atau menulis dokumentasi tentang bagaimana
‫aplikasi yang digunakan pengembang di Mac perlu diinstal secara berbeda di Windows, yang perlu diinstal secara berbeda
‫di server Linux dan di dan terus dan terus.
‫Kini image container dan container itu sendiri menjadi fundamental.
‫Mental, abstrak, atau kontrak antara tempat dijalankan dan apa yang dijalankan di dalamnya, seperti wadah fisik di dunia nyata
‫yang memungkinkan kita mengirim barang ke seluruh dunia dari desain hampir seratus tahun
‫yang lalu.
‫Tujuannya agar orang-orang yang mengantarkan peti kemas fisik tidak perlu tahu apa yang ada di dalamnya,
‫dan orang-orang yang memasukkan barang-barang mereka ke dalam peti kemas tidak perlu tahu atau peduli bagaimana peti kemas
‫secara fisik sampai ke tujuannya.
‫Itu adalah abstraksi proporsi epik dari jutaan kontainer di seluruh dunia yang sedang dikirim.
‫Dan hampir semua barang di rumah Anda mungkin pernah berada dalam wadah selama masa hidupnya.
‫Hal yang sama berlaku untuk gambar dalam wadah Docker sekarang.
‫Mereka adalah format standar yang konsisten yang sekarang dikenal sebagai standar OCI.
‫Itu memastikan bahwa di mana pun Anda menjalankan wadah itu akan dijalankan dengan cara yang sama konsisten dengan dependensi yang
‫sama persis dengan yang dibuatnya.
‫Selanjutnya, masalah kecepatan.
‫Sekarang, yang saya maksud di sini bukan kecepatan CPU atau kecepatan memori.
‫Hal-hal itu secara alami menjadi lebih cepat dari waktu ke waktu.
‫Tapi saya benar-benar berbicara tentang kecepatan bisnis.
‫Dan ketika kita berbicara tentang aku. T. dan perangkat lunak dan siklus
‫hidup perangkat lunak, kita benar-benar berbicara tentang kemampuan bisnis dan organisasi untuk mengeksekusi ide-ide mereka, untuk menyampaikan ide-ide
‫perangkat lunak mereka kepada pelanggan secepat mungkin.
‫Dan itu bagian dari siklus hidup perangkat lunak.
‫Ternyata industri telah mengubah infrastruktur dan arsitektur sejak awal
‫komputasi.
‫Untuk alasan yang tepat ini, saya membuat grafik kecil yang bagus ini karena Anda dapat memulai dari atas.
‫Jauh di tahun sembilan puluhan di mana saya memulai dan kami memiliki mainframe yang pindah ke PC
‫dalam arsitektur terdistribusi yang sebagian besar tentang kecepatan untuk dapat menerapkan perubahan.
‫Anda sekarang dapat menginstal DOS pada satu mesin tanpa harus menunggu mainframe diperbarui
‫ke versi Unix berikutnya.
‫Kami tidak lagi bisa bergerak sekaligus.
‫Kami membutuhkan bagian yang berbeda dari organisasi kami untuk bergerak ke arah yang berbeda dengan kecepatan yang berbeda, oleh karena
‫itu merupakan awal dari komputasi terdistribusi.
‫Kemudian kami beralih dari bare metal, virtual, karena kami lelah menunggu pemesanan perangkat keras dan menunggu
‫untuk diimplementasikan di pusat data.
‫Kami ingin mempercepat dan memanfaatkan sumber daya kami dengan lebih baik.
‫Virtualisasi dan mesin virtual menjadi sangat populer karena alasan tersebut.
‫Kemudian pusat data ke cloud adalah langkah berikutnya, karena kami sekarang perlu menyebarkan ide lebih cepat daripada yang dapat dilakukan oleh
‫perangkat keras dan pusat data kami sendiri.
‫Kami ingin menjalankan server yang saat ini tidak kami miliki dalam hitungan menit, bukan hari atau
‫minggu, dan cloud memberi kami akses ke sumber daya Near-Instant, yang jelas merupakan alasan mengapa cloud begitu besar saat ini.
‫Dan akhirnya, kami berada di langkah berikutnya dari perjalanan itu, bergerak dari ekspansi host besar-besaran yang kami miliki di mana kami
‫memiliki terlalu banyak host dan kernel serta sistem operasi.
‫Dan sekarang kami akan dapat mengurangi jumlah tersebut karena kami sekarang dapat mengisolasi beban kerja di
‫dalamnya dan menjalankannya dengan aman bersama di kernel yang sama.
‫Omong-omong, saya menyertakan tanpa server di sini, karena jika Anda benar-benar menggali sebagian besar platform tanpa server, mereka
‫sebenarnya hanya menjalankan kontainer di latar belakang.
‫Ini mungkin wadah yang Anda kirimkan sebagai gambar atau mungkin hanya wadah tempat mereka menjalankan
‫fungsi Anda, tetapi mereka masih berjalan dalam wadah.
‫Dan inilah mengapa saya suka berbicara tentang lebih cepat, lebih cepat, lebih cepat.
‫Pada dasarnya, apa yang diberikan oleh Containers dan Docker kepada Anda adalah kemampuan untuk berkembang lebih cepat, membangun aplikasi
‫Anda lebih cepat, mengujinya lebih cepat, dan menyebarkannya ke server Anda lebih cepat.
‫Sekarang, apakah kamu masih bersamaku?
‫Aku masih memiliki perhatianmu.
‫Mari kita rekap itu dengan cepat.
‫Jadi alasan keberadaan container adalah tiga alasan utama, menurut pendapat saya, isolasi yang lebih baik di dalam satu OS
‫menghemat waktu dan OS dan manajemen ketergantungan, tetapi juga memberi kita isolasi yang kita butuhkan untuk
‫melindungi aplikasi kita.
‫Kemudian kami telah mengurangi varians lingkungan.
‫Jadi perbedaan antara setiap lingkungan yang dijalankannya sangat minim.
‫Sekali lagi, biasanya hanya pengaturan koneksi Anda untuk database, mungkin beberapa jalur URL, hal-hal seperti itu,
‫port, dan kemudian sisanya sama persis seperti yang Anda buat dan uji.
‫Dan akhirnya, meningkatkan kecepatan perubahan kami, tidak hanya untuk perangkat lunak itu sendiri, tetapi juga untuk bisnis yang
‫ingin mengimplementasikan perangkat lunak tersebut.
‫Kami sekarang dapat mengembangkan lebih cepat, membangunnya lebih cepat, menyebarkannya ke server lebih cepat dan mengujinya lebih cepat,
‫semua karena gambar wadah ini dan wadah itu sendiri sangat mudah untuk dibangun, disebarkan dan diterapkan kembali dan dijalankan kembali
‫dan semua itu.
‫Jadi saya harap ini masuk akal.
‫Sampai jumpa di video selanjutnya.