Repo ini berisi pertanyaan dan latihan tentang berbagai topik teknis, terkadang terkait dengan DevOps dan SRE
Saat ini ada 2624 latihan dan soal
️ Anda dapat menggunakan ini untuk mempersiapkan wawancara tetapi sebagian besar pertanyaan dan latihan tidak mewakili wawancara yang sebenarnya. Silakan baca halaman FAQ untuk lebih jelasnya
? Jika Anda tertarik untuk mengejar karir sebagai insinyur DevOps, mempelajari beberapa konsep yang disebutkan di sini akan berguna, namun Anda harus tahu bahwa ini bukan tentang mempelajari semua topik dan teknologi yang disebutkan dalam repositori ini.
Anda dapat menambahkan lebih banyak latihan dengan mengirimkan permintaan penarikan :) Baca tentang pedoman kontribusi di sini
DevOps | Git | Jaringan | Perangkat keras | Kubernet |
Pengembangan Perangkat Lunak | ular piton | Pergi | Perl | Regex |
Awan | AWS | Biru langit | Google Cloud Platform | OpenStack |
Sistem Operasi | Linux | Virtualisasi | DNS | Skrip Shell |
Basis Data | SQL | mongo | Pengujian | Data Besar |
CI/CD | Sertifikat | Kontainer | Pergeseran Terbuka | Penyimpanan |
terraform | Wayang | Didistribusikan | Pertanyaan yang bisa Anda ajukan | Mungkin |
Observabilitas | Prometheus | Lingkari CI |
| Grafana |
Argo | Keterampilan Lunak | Keamanan | Desain Sistem |
Rekayasa Kekacauan | Lain-lain | Elastis | Kafka | NodeJs |
Jaringan
Secara umum, apa yang Anda perlukan untuk berkomunikasi?
- Bahasa yang sama (untuk dipahami kedua belah pihak)
- Cara untuk menyapa siapa yang ingin Anda komunikasikan dengan
- A Connection (sehingga isi komunikasi dapat sampai ke penerimanya)
Apa itu TCP/IP?
Seperangkat protokol yang menentukan bagaimana dua perangkat atau lebih dapat berkomunikasi satu sama lain.
Untuk mempelajari lebih lanjut tentang TCP/IP, baca di sini
Apa itu Ethernet?
Ethernet hanya mengacu pada jenis Jaringan Area Lokal (LAN) yang paling umum digunakan saat ini. LAN—berbeda dengan WAN (Wide Area Network), yang mencakup wilayah geografis yang lebih luas—adalah jaringan komputer yang terhubung dalam wilayah kecil, seperti kantor, kampus, atau bahkan rumah.
Apa itu alamat MAC? Untuk apa ini digunakan?
Alamat MAC adalah nomor atau kode identifikasi unik yang digunakan untuk mengidentifikasi masing-masing perangkat di jaringan.
Paket yang dikirim di ethernet selalu berasal dari alamat MAC dan dikirim ke alamat MAC. Jika adaptor jaringan menerima paket, ia membandingkan alamat MAC tujuan paket tersebut dengan alamat MAC adaptor itu sendiri.
Kapan alamat MAC ini digunakan?: ff:ff:ff:ff:ff:ff
Saat perangkat mengirimkan paket ke alamat MAC siaran (FF:FF:FF:FF:FF:FF), paket tersebut dikirimkan ke semua stasiun di jaringan lokal. Siaran Ethernet digunakan untuk menyelesaikan alamat IP ke alamat MAC (dengan ARP) pada lapisan data link.
Apa itu alamat IP?
Alamat Protokol Internet (alamat IP) adalah label numerik yang ditetapkan untuk setiap perangkat yang terhubung ke jaringan komputer yang menggunakan Protokol Internet untuk komunikasi. Alamat IP memiliki dua fungsi utama: identifikasi antarmuka host atau jaringan dan pengalamatan lokasi.
Jelaskan subnet mask dan berikan contohnya
Subnet mask adalah nomor 32-bit yang menutupi alamat IP dan membagi alamat IP menjadi alamat jaringan dan alamat host. Subnet Mask dibuat dengan menyetel bit jaringan ke semua "1" dan menyetel bit host ke semua "0". Dalam jaringan tertentu, dari total alamat host yang dapat digunakan, dua alamat selalu dicadangkan untuk tujuan tertentu dan tidak dapat dialokasikan ke host mana pun. Ini adalah alamat pertama, yang dicadangkan sebagai alamat jaringan (alias ID jaringan), dan alamat terakhir yang digunakan untuk siaran jaringan.
Contoh
Apa itu alamat IP pribadi? Dalam skenario/desain sistem apa, seseorang harus menggunakannya?
Alamat IP pribadi ditetapkan ke host di jaringan yang sama untuk berkomunikasi satu sama lain. Seperti namanya "pribadi", perangkat yang memiliki alamat IP pribadi yang ditetapkan tidak dapat dijangkau oleh perangkat dari jaringan eksternal mana pun. Misalnya, jika saya tinggal di asrama dan ingin teman asrama saya bergabung dengan server game yang saya host, saya akan meminta mereka untuk bergabung melalui alamat IP pribadi server saya, karena jaringan tersebut bersifat lokal ke asrama. Apa itu alamat IP publik? Dalam skenario/desain sistem apa, seseorang harus menggunakannya?
Alamat IP publik adalah alamat IP yang dapat dilihat publik. Jika Anda menghosting server permainan yang Anda ingin teman Anda bergabung, Anda akan memberikan alamat IP publik Anda kepada teman Anda agar komputer mereka dapat mengidentifikasi dan menemukan jaringan dan server Anda agar koneksi dapat terjadi. Suatu saat Anda tidak perlu menggunakan alamat IP publik adalah jika Anda bermain dengan teman yang terhubung ke jaringan yang sama dengan Anda, dalam hal ini, Anda akan menggunakan alamat IP pribadi. Agar seseorang dapat terhubung ke server Anda yang terletak secara internal, Anda harus menyiapkan port forward untuk memberi tahu router Anda agar mengizinkan lalu lintas dari domain publik ke jaringan Anda dan sebaliknya. Jelaskan model OSI. Lapisan apa saja yang ada? Apa tanggung jawab setiap lapisan?
- Aplikasi: ujung pengguna (HTTP ada di sini)
- Presentasi: menetapkan konteks antara entitas lapisan aplikasi (Enkripsi ada di sini)
- Sesi: menetapkan, mengelola, dan mengakhiri koneksi
- Transport: mentransfer urutan data dengan panjang variabel dari sumber ke host tujuan (TCP & UDP ada di sini)
- Jaringan: mentransfer datagram dari satu jaringan ke jaringan lainnya (IP ada di sini)
- Data link: menyediakan tautan antara dua node yang terhubung langsung (MAC ada di sini)
- Fisik: spesifikasi listrik dan fisik sambungan data (Bit ada di sini )
Anda dapat membaca lebih lanjut tentang model OSI di penguintutor.com
Untuk masing-masing hal berikut ini menentukan lapisan OSI mana yang dimilikinya:- Koreksi kesalahan
- Perutean paket
- Kabel dan sinyal listrik
- alamat MAC
- alamat IP
- Hentikan koneksi
- jabat tangan 3 arah
Koreksi kesalahan - Perutean paket data link - Kabel Jaringan dan sinyal listrik - Alamat MAC fisik - Alamat IP data link - Koneksi Terminasi Jaringan - Sesi Jabat tangan 3 arah - Transportasi Skema pengiriman apa yang Anda ketahui?
Unicast : Komunikasi satu-ke-satu dimana terdapat satu pengirim dan satu penerima.
Siaran: Mengirim pesan ke semua orang di jaringan. Alamat ff:ff:ff:ff:ff:ff digunakan untuk penyiaran. Dua protokol umum yang menggunakan siaran adalah ARP dan DHCP.
Multicast: Mengirim pesan ke sekelompok pelanggan. Ini bisa berupa satu-ke-banyak atau banyak-ke-banyak.
Apa itu CSMA/CD? Apakah ini digunakan di jaringan ethernet modern?
CSMA/CD adalah singkatan dari Carrier Sense Multiple Access / Collision Detection. Fokus utamanya adalah mengelola akses ke media/bus bersama di mana hanya satu host yang dapat melakukan transmisi pada titik waktu tertentu.
Algoritma CSMA/CD:
Sebelum mengirim frame, ia memeriksa apakah host lain sudah mengirimkan frame.- Jika tidak ada orang yang melakukan transmisi, frame akan mulai ditransmisikan.
- Jika dua host mengirimkan pada saat yang sama, kita mengalami tabrakan.
- Kedua host berhenti mengirimkan frame dan mereka mengirimkan 'sinyal jam' kepada semua orang yang memberitahukan semua orang bahwa tabrakan telah terjadi
- Mereka menunggu waktu acak sebelum mengirimkannya lagi
- Setelah setiap host menunggu dalam waktu yang acak, mereka mencoba mengirim frame lagi dan siklus dimulai lagi
Jelaskan perangkat jaringan berikut dan perbedaannya:
Router, switch, dan hub adalah semua perangkat jaringan yang digunakan untuk menghubungkan perangkat di jaringan area lokal (LAN). Namun, setiap perangkat beroperasi secara berbeda dan memiliki kasus penggunaan spesifiknya sendiri. Berikut penjelasan singkat masing-masing perangkat dan perbedaannya:
Router: perangkat jaringan yang menghubungkan beberapa segmen jaringan secara bersamaan. Ini beroperasi pada lapisan jaringan (Layer 3) model OSI dan menggunakan protokol perutean untuk mengarahkan data antar jaringan. Router menggunakan alamat IP untuk mengidentifikasi perangkat dan merutekan paket data ke tujuan yang benar.- Switch : perangkat jaringan yang menghubungkan beberapa perangkat dalam satu LAN. Ini beroperasi pada lapisan data link (Layer 2) model OSI dan menggunakan alamat MAC untuk mengidentifikasi perangkat dan mengarahkan paket data ke tujuan yang benar. Switch memungkinkan perangkat di jaringan yang sama untuk berkomunikasi satu sama lain dengan lebih efisien dan dapat mencegah tabrakan data yang dapat terjadi ketika beberapa perangkat mengirim data secara bersamaan.
- Hub: perangkat jaringan yang menghubungkan beberapa perangkat melalui satu kabel dan digunakan untuk menghubungkan beberapa perangkat tanpa melakukan segmentasi jaringan. Namun, tidak seperti switch, ia beroperasi pada lapisan fisik (Layer 1) model OSI dan hanya menyiarkan paket data ke semua perangkat yang terhubung dengannya, terlepas dari apakah perangkat tersebut adalah penerima yang dituju atau tidak. Artinya, tabrakan data dapat terjadi, dan akibatnya efisiensi jaringan dapat menurun. Hub umumnya tidak digunakan dalam pengaturan jaringan modern, karena switch lebih efisien dan memberikan kinerja jaringan yang lebih baik.
Apa itu "Domain Tabrakan"?
Collision domain adalah segmen jaringan di mana perangkat berpotensi saling mengganggu dengan mencoba mengirimkan data pada saat yang bersamaan. Ketika dua perangkat mengirimkan data secara bersamaan, hal ini dapat menyebabkan tabrakan yang mengakibatkan data hilang atau rusak. Dalam domain tabrakan, semua perangkat berbagi bandwidth yang sama, dan perangkat apa pun berpotensi mengganggu transmisi data oleh perangkat lain. Apa itu "Domain Siaran"?
Domain siaran adalah segmen jaringan di mana semua perangkat dapat berkomunikasi satu sama lain dengan mengirimkan pesan siaran. Pesan siaran adalah pesan yang dikirim ke semua perangkat di jaringan, bukan ke perangkat tertentu. Dalam domain siaran, semua perangkat dapat menerima dan memproses pesan siaran, terlepas dari apakah pesan tersebut ditujukan untuk mereka atau tidak. tiga komputer terhubung ke switch. Berapa banyak domain tabrakan yang ada? Berapa banyak domain siaran?
Tiga domain tabrakan dan satu domain siaran
Bagaimana cara kerja router?
Router adalah peralatan fisik atau virtual yang meneruskan informasi antara dua atau lebih jaringan komputer packet-switched. Router memeriksa alamat Protokol Internet (alamat IP) tujuan paket data tertentu, menghitung cara terbaik untuk mencapai tujuannya, dan kemudian meneruskannya sesuai dengan itu.
Apa itu NAT?
Network Address Translation (NAT) adalah proses di mana satu atau lebih alamat IP lokal diterjemahkan menjadi satu atau lebih alamat IP Global dan sebaliknya untuk menyediakan akses Internet ke host lokal.
Apa itu proksi? Bagaimana cara kerjanya? Untuk apa kita membutuhkannya?
Server proxy bertindak sebagai pintu gerbang antara Anda dan internet. Ini adalah server perantara yang memisahkan pengguna akhir dari situs web yang mereka jelajahi.
Jika Anda menggunakan server proxy, lalu lintas internet mengalir melalui server proxy menuju alamat yang Anda minta. Permintaan kemudian datang kembali melalui server proxy yang sama (ada pengecualian untuk aturan ini), dan kemudian server proxy meneruskan data yang diterima dari situs web kepada Anda.
Server proxy menyediakan berbagai tingkat fungsionalitas, keamanan, dan privasi tergantung pada kasus penggunaan, kebutuhan, atau kebijakan perusahaan Anda.
Apa itu TCP? Bagaimana cara kerjanya? Apa yang dimaksud dengan jabat tangan 3 arah?
Jabat tangan 3 arah TCP atau jabat tangan tiga arah adalah proses yang digunakan dalam jaringan TCP/IP untuk membuat koneksi antara server dan klien.
Jabat tangan tiga arah terutama digunakan untuk membuat koneksi soket TCP. Ini berfungsi ketika:
Node klien mengirimkan paket data SYN melalui jaringan IP ke server di jaringan yang sama atau eksternal. Tujuan dari paket ini adalah untuk menanyakan/menyimpulkan apakah server terbuka untuk koneksi baru.- Server target harus memiliki port terbuka yang dapat menerima dan memulai koneksi baru. Ketika server menerima paket SYN dari node klien, server merespons dan mengembalikan tanda terima konfirmasi – paket ACK atau paket SYN/ACK.
- Node klien menerima SYN/ACK dari server dan merespons dengan paket ACK.
Apa yang dimaksud dengan penundaan pulang pergi atau waktu pulang pergi?
Dari wikipedia: "lamanya waktu yang diperlukan untuk mengirimkan sinyal ditambah lamanya waktu yang diperlukan agar sinyal tersebut diterima"
Pertanyaan bonus: apa itu RTT LAN?
Bagaimana cara kerja jabat tangan SSL?
Jabat tangan SSL adalah proses yang membuat koneksi aman antara klien dan server. Klien mengirimkan pesan Client Hello ke server, yang mencakup protokol SSL/TLS versi klien, daftar algoritma kriptografi yang didukung oleh klien, dan nilai acak.- Server merespons dengan pesan Server Hello, yang mencakup protokol SSL/TLS versi server, nilai acak, dan ID sesi.
- Server mengirimkan pesan Sertifikat, yang berisi sertifikat server.
- Server mengirimkan pesan Server Hello Done, yang menandakan bahwa server telah selesai mengirimkan pesan untuk fase Server Hello.
- Klien mengirimkan pesan Pertukaran Kunci Klien, yang berisi kunci publik klien.
- Klien mengirimkan pesan Change Cipher Spec, yang memberitahukan server bahwa klien akan mengirim pesan yang dienkripsi dengan spesifikasi cipher baru.
- Klien mengirimkan Pesan Jabat Tangan Terenkripsi, yang berisi rahasia pra-master yang dienkripsi dengan kunci publik server.
- Server mengirimkan pesan Change Cipher Spec, yang memberitahukan klien bahwa server akan mengirim pesan yang dienkripsi dengan spesifikasi cipher baru.
- Server mengirimkan Pesan Jabat Tangan Terenkripsi, yang berisi rahasia pra-master yang dienkripsi dengan kunci publik klien.
- Klien dan server sekarang dapat bertukar data aplikasi.
Apa perbedaan antara TCP dan UDP?
TCP membuat koneksi antara klien dan server untuk menjamin pemesanan paket, sebaliknya UDP tidak membuat koneksi antara klien dan server dan tidak menangani pesanan paket. Hal ini membuat UDP lebih ringan dibandingkan TCP dan merupakan kandidat sempurna untuk layanan seperti streaming.
Penguintutor.com memberikan penjelasan yang bagus.
Protokol TCP/IP apa yang Anda kenal?
Jelaskan "gerbang default"
Gateway default berfungsi sebagai titik akses atau router IP yang digunakan komputer dalam jaringan untuk mengirim informasi ke komputer di jaringan lain atau internet.
Apa itu ARP? Bagaimana cara kerjanya?
ARP adalah singkatan dari Protokol Resolusi Alamat. Saat Anda mencoba melakukan ping ke alamat IP di jaringan lokal Anda, katakanlah 192.168.1.1, sistem Anda harus mengubah alamat IP 192.168.1.1 menjadi alamat MAC. Ini melibatkan penggunaan ARP untuk menyelesaikan alamat, sesuai dengan namanya.
Sistem menyimpan tabel pencarian ARP tempat mereka menyimpan informasi tentang alamat IP yang dikaitkan dengan alamat MAC. Saat mencoba mengirim paket ke alamat IP, sistem akan melihat tabel ini terlebih dahulu untuk melihat apakah sistem sudah mengetahui alamat MAC. Jika ada nilai yang di-cache, ARP tidak digunakan.
Apa itu TTL? Apa yang dapat membantu untuk mencegahnya?
TTL (Time to Live) adalah nilai dalam paket IP (Internet Protocol) yang menentukan berapa banyak hop atau router yang dapat dilalui suatu paket sebelum dibuang. Setiap kali paket diteruskan oleh router, nilai TTL berkurang satu. Ketika nilai TTL mencapai nol, paket akan dibuang, dan pesan ICMP (Internet Control Message Protocol) dikirim kembali ke pengirim yang menunjukkan bahwa paket telah kedaluwarsa.- TTL digunakan untuk mencegah paket beredar tanpa batas waktu di jaringan, yang dapat menyebabkan kemacetan dan menurunkan kinerja jaringan.
- Hal ini juga membantu mencegah paket-paket terjebak dalam routing loop, dimana paket-paket terus menerus melakukan perjalanan antara set router yang sama tanpa pernah mencapai tujuannya.
- Selain itu, TTL dapat digunakan untuk membantu mendeteksi dan mencegah serangan spoofing IP, di mana penyerang mencoba menyamar sebagai perangkat lain di jaringan dengan menggunakan alamat IP palsu atau palsu. Dengan membatasi jumlah hop yang dapat dilalui suatu paket, TTL dapat membantu mencegah paket dirutekan ke tujuan yang tidak sah.
Apa itu DHCP? Bagaimana cara kerjanya?
Itu singkatan dari Dynamic Host Configuration Protocol dan mengalokasikan alamat IP, subnet mask, dan gateway ke host. Begini cara kerjanya:
- Host saat memasuki jaringan menyiarkan pesan untuk mencari server DHCP (DHCP DISCOVER)
- Pesan penawaran dikirim kembali oleh server DHCP sebagai paket yang berisi waktu sewa, subnet mask, alamat IP, dll (DHCP PENAWARAN)
- Bergantung pada tawaran mana yang diterima, klien mengirimkan kembali siaran balasan yang memberi tahu semua server DHCP (DHCP REQUEST)
- Server mengirimkan pengakuan (DHCP ACK)
Baca lebih lanjut di sini
Bisakah Anda memiliki dua server DHCP di jaringan yang sama? Bagaimana cara kerjanya?
Dimungkinkan untuk memiliki dua server DHCP di jaringan yang sama, namun hal ini tidak disarankan, dan penting untuk mengkonfigurasinya dengan hati-hati untuk mencegah konflik dan masalah konfigurasi.
Ketika dua server DHCP dikonfigurasi pada jaringan yang sama, terdapat risiko bahwa kedua server akan menetapkan alamat IP dan pengaturan konfigurasi jaringan lainnya ke perangkat yang sama, yang dapat menyebabkan konflik dan masalah konektivitas. Selain itu, jika server DHCP dikonfigurasi dengan pengaturan atau opsi jaringan yang berbeda, perangkat di jaringan mungkin menerima pengaturan konfigurasi yang bertentangan atau tidak konsisten.- Namun, dalam beberapa kasus, mungkin diperlukan dua server DHCP di jaringan yang sama, misalnya di jaringan besar di mana satu server DHCP mungkin tidak mampu menangani semua permintaan. Dalam kasus seperti ini, server DHCP dapat dikonfigurasi untuk melayani rentang alamat IP yang berbeda atau subnet yang berbeda, sehingga tidak saling mengganggu.
Apa itu terowongan SSL? Bagaimana cara kerjanya?
- Penerowongan SSL (Secure Sockets Layer) adalah teknik yang digunakan untuk membuat koneksi terenkripsi yang aman antara dua titik akhir melalui jaringan yang tidak aman, seperti Internet. Terowongan SSL dibuat dengan merangkum lalu lintas dalam koneksi SSL, yang memberikan kerahasiaan, integritas, dan otentikasi.
Berikut cara kerja terowongan SSL:
Klien memulai koneksi SSL ke server, yang melibatkan proses jabat tangan untuk membuat sesi SSL.- Setelah sesi SSL dibuat, klien dan server menegosiasikan parameter enkripsi, seperti algoritma enkripsi dan panjang kunci, kemudian bertukar sertifikat digital untuk saling mengautentikasi.
- Klien kemudian mengirimkan lalu lintas melalui terowongan SSL ke server, yang mendekripsi lalu lintas dan meneruskannya ke tujuannya.
- Server mengirimkan lalu lintas kembali melalui terowongan SSL ke klien, yang mendekripsi lalu lintas dan meneruskannya ke aplikasi.
Apa itu soket? Di mana Anda dapat melihat daftar soket di sistem Anda?
Soket adalah titik akhir perangkat lunak yang memungkinkan komunikasi dua arah antar proses melalui jaringan. Soket menyediakan antarmuka standar untuk komunikasi jaringan, memungkinkan aplikasi mengirim dan menerima data melalui jaringan. Untuk melihat daftar soket yang terbuka pada sistem Linux: netstat -an- Perintah ini menampilkan daftar semua soket yang terbuka, beserta protokolnya, alamat lokal, alamat asing, dan negara bagiannya.
Apa itu IPv6? Mengapa kami harus mempertimbangkan untuk menggunakannya jika kami memiliki IPv4?
- IPv6 (Internet Protocol versi 6) adalah versi terbaru dari Internet Protocol (IP), yang digunakan untuk mengidentifikasi dan berkomunikasi dengan perangkat di jaringan. Alamat IPv6 adalah alamat 128-bit dan dinyatakan dalam notasi heksadesimal, seperti 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
Ada beberapa alasan mengapa kita harus mempertimbangkan penggunaan IPv6 dibandingkan IPv4:
Ruang alamat: IPv4 memiliki ruang alamat yang terbatas, yang telah habis di banyak belahan dunia. IPv6 menyediakan ruang alamat yang jauh lebih besar, memungkinkan triliunan alamat IP unik.- Keamanan: IPv6 mencakup dukungan bawaan untuk IPsec, yang menyediakan enkripsi dan otentikasi ujung ke ujung untuk lalu lintas jaringan.
- Kinerja: IPv6 mencakup fitur-fitur yang dapat membantu meningkatkan kinerja jaringan, seperti perutean multicast, yang memungkinkan satu paket dikirim ke beberapa tujuan secara bersamaan.
- Konfigurasi jaringan yang disederhanakan: IPv6 menyertakan fitur yang dapat menyederhanakan konfigurasi jaringan, seperti konfigurasi otomatis stateless, yang memungkinkan perangkat mengonfigurasi alamat IPv6 mereka sendiri secara otomatis tanpa memerlukan server DHCP.
- Dukungan mobilitas yang lebih baik: IPv6 mencakup fitur yang dapat meningkatkan dukungan mobilitas, seperti Mobile IPv6, yang memungkinkan perangkat mempertahankan alamat IPv6 saat berpindah antar jaringan yang berbeda.
Apa itu VLAN?
- VLAN (Virtual Local Area Network) adalah jaringan logis yang mengelompokkan sekumpulan perangkat di jaringan fisik, terlepas dari lokasi fisiknya. VLAN dibuat dengan mengkonfigurasi switch jaringan untuk menetapkan ID VLAN tertentu ke frame yang dikirim oleh perangkat yang terhubung ke port tertentu atau sekelompok port pada switch.
Apa itu MTU?
MTU adalah singkatan Unit Transmisi Maksimum. Ini adalah ukuran PDU (Protocol Data Unit) terbesar yang dapat dikirim dalam satu transaksi.
Apa yang terjadi jika Anda mengirimkan paket yang lebih besar dari MTU?
Dengan protokol IPv4, router dapat memfragmentasi PDU dan kemudian mengirimkan semua PDU yang terfragmentasi melalui transaksi.
Dengan protokol IPv6, ia mengeluarkan kesalahan pada komputer pengguna.
Benar atau Salah? Ping menggunakan UDP karena tidak peduli dengan koneksi yang andal
PALSU. Ping sebenarnya menggunakan ICMP (Internet Control Message Protocol) yang merupakan protokol jaringan yang digunakan untuk mengirim pesan diagnostik dan mengontrol pesan yang terkait dengan komunikasi jaringan.
Apa itu SDN?
SDN adalah singkatan dari Software-Defined Networking. Ini adalah pendekatan manajemen jaringan yang menekankan sentralisasi kontrol jaringan, memungkinkan administrator untuk mengelola perilaku jaringan melalui abstraksi perangkat lunak.- Dalam jaringan tradisional, perangkat jaringan seperti router, switch, dan firewall dikonfigurasikan dan dikelola secara individual, menggunakan perangkat lunak khusus atau antarmuka baris perintah. Sebaliknya, SDN memisahkan bidang kendali jaringan dari bidang data, sehingga memungkinkan administrator untuk mengelola perilaku jaringan melalui pengontrol perangkat lunak terpusat.
Apa itu ICMP? Untuk apa ini digunakan?
- ICMP adalah singkatan dari Internet Control Message Protocol. Ini adalah protokol yang digunakan untuk tujuan diagnostik dan kontrol dalam jaringan IP. Ini adalah bagian dari rangkaian Protokol Internet, yang beroperasi pada lapisan jaringan.
Pesan ICMP digunakan untuk berbagai tujuan, termasuk:
Pelaporan kesalahan: Pesan ICMP digunakan untuk melaporkan kesalahan yang terjadi pada jaringan, seperti paket yang tidak dapat terkirim ke tujuannya.- Ping: ICMP digunakan untuk mengirim pesan ping, yang digunakan untuk menguji apakah suatu host atau jaringan dapat dijangkau dan untuk mengukur waktu pulang pergi paket.
- Penemuan MTU Jalur: ICMP digunakan untuk menemukan Unit Transmisi Maksimum (MTU) suatu jalur, yang merupakan ukuran paket terbesar yang dapat ditransmisikan tanpa fragmentasi.
- Traceroute: ICMP digunakan oleh utilitas traceroute untuk melacak jalur yang diambil paket melalui jaringan.
- Penemuan router: ICMP digunakan untuk menemukan router dalam suatu jaringan.
Apa itu NAT? Bagaimana cara kerjanya?
NAT adalah singkatan dari Terjemahan Alamat Jaringan. Ini adalah cara untuk memetakan beberapa alamat pribadi lokal ke alamat publik sebelum mentransfer informasi. Organisasi yang ingin beberapa perangkat menggunakan satu alamat IP menggunakan NAT, seperti halnya kebanyakan router rumah. Misalnya, IP pribadi komputer Anda mungkin 192.168.1.100, namun router Anda memetakan lalu lintas ke IP publiknya (misalnya 1.1.1.1). Perangkat apa pun di internet akan melihat lalu lintas yang berasal dari IP publik Anda (1.1.1.1) dan bukan IP pribadi Anda (192.168.1.100).
Nomor port manakah yang digunakan di masing-masing protokol berikut?:- SSH
- SMTP
- HTTP
- DNS
- HTTPS
- FTP
- SFTP
SSH - 22- SMTP - 25
- HTTP-80
- DNS-53
- HTTPS - 443
- FTP-21
- SFTP - 22
Faktor apa saja yang mempengaruhi kinerja jaringan?
Beberapa faktor yang dapat mempengaruhi kinerja jaringan, antara lain:
Bandwidth: Bandwidth yang tersedia pada koneksi jaringan dapat mempengaruhi kinerjanya secara signifikan. Jaringan dengan bandwidth terbatas dapat mengalami kecepatan transfer data yang lambat, latensi tinggi, dan daya tanggap yang buruk.- Latensi: Latensi mengacu pada penundaan yang terjadi ketika data ditransmisikan dari satu titik dalam jaringan ke titik lainnya. Latensi tinggi dapat mengakibatkan kinerja jaringan menjadi lambat, terutama untuk aplikasi real-time seperti konferensi video dan game online.
- Kemacetan jaringan: Jika terlalu banyak perangkat yang menggunakan jaringan pada saat yang sama, kemacetan jaringan dapat terjadi, yang menyebabkan lambatnya kecepatan transfer data dan kinerja jaringan yang buruk.
- Kehilangan paket: Kehilangan paket terjadi ketika paket data terjatuh selama transmisi. Hal ini dapat mengakibatkan kecepatan jaringan lebih lambat dan menurunkan kinerja jaringan secara keseluruhan.
- Topologi jaringan: Tata letak fisik jaringan, termasuk penempatan switch, router, dan perangkat jaringan lainnya, dapat memengaruhi kinerja jaringan.
- Protokol jaringan: Protokol jaringan yang berbeda memiliki karakteristik kinerja yang berbeda, yang dapat memengaruhi kinerja jaringan. Misalnya, TCP adalah protokol andal yang dapat menjamin pengiriman data, namun juga dapat mengakibatkan kinerja lebih lambat karena overhead yang diperlukan untuk pemeriksaan kesalahan dan transmisi ulang.
- Keamanan jaringan: Tindakan keamanan seperti firewall dan enkripsi dapat memengaruhi kinerja jaringan, terutama jika tindakan tersebut memerlukan kekuatan pemrosesan yang signifikan atau menimbulkan latensi tambahan.
- Jarak: Jarak fisik antar perangkat di jaringan dapat memengaruhi kinerja jaringan, terutama untuk jaringan nirkabel di mana kekuatan sinyal dan interferensi dapat memengaruhi konektivitas dan kecepatan transfer data.
Apa itu APIPA?
APIPA adalah sekumpulan alamat IP yang dialokasikan perangkat ketika server DHCP utama tidak dapat dijangkau
Rentang IP apa yang digunakan APIPA?
APIPA menggunakan rentang IP: 169.254.0.1 - 169.254.255.254.
Bidang Kontrol dan Bidang Data
Apa yang dimaksud dengan "bidang kendali"?
Bidang kendali adalah bagian dari jaringan yang memutuskan bagaimana merutekan dan meneruskan paket ke lokasi berbeda.
Apa yang dimaksud dengan "bidang data"?
Data plane adalah bagian dari jaringan yang meneruskan data/paket.
Apa yang dimaksud dengan "bidang manajemen"?
Hal ini mengacu pada fungsi pemantauan dan manajemen.
Bidang mana (data, kontrol, ...) yang termasuk dalam pembuatan tabel perutean?
Pesawat Kendali.
Jelaskan Spanning Tree Protocol (STP).
Apa itu agregasi tautan? Mengapa ini digunakan?
Apa itu Perutean Asimetris? Bagaimana cara menghadapinya?
Protokol overlay (terowongan) apa yang Anda kenal?
Apa itu GRE? Bagaimana cara kerjanya?
Apa itu VXLAN? Bagaimana cara kerjanya?
Apa itu SNAT?
Jelaskan OSPF.
OSPF (Open Shortest Path First) merupakan protokol routing yang dapat diimplementasikan pada berbagai jenis router. Secara umum, OSPF didukung pada sebagian besar router modern, termasuk router dari vendor seperti Cisco, Juniper, dan Huawei. Protokol ini dirancang untuk bekerja dengan jaringan berbasis IP, termasuk IPv4 dan IPv6. Selain itu, ia menggunakan desain jaringan hierarki, di mana router dikelompokkan ke dalam beberapa area, dengan setiap area memiliki peta topologi dan tabel routingnya sendiri. Desain ini membantu mengurangi jumlah informasi perutean yang perlu dipertukarkan antar router dan meningkatkan skalabilitas jaringan.
OSPF 4 Jenis router adalah:
- Perute Dalaman
- Router Perbatasan Area
- Router Batas Sistem Otonom
- Router Tulang Punggung
Pelajari lebih lanjut tentang jenis router OSPF: https://www.educba.com/ospf-router-types/
Apa itu latensi?
Latensi adalah waktu yang dibutuhkan informasi untuk mencapai tujuannya dari sumbernya.
Apa itu bandwidth?
Bandwidth adalah kapasitas saluran komunikasi untuk mengukur seberapa banyak data yang dapat ditangani selama periode waktu tertentu. Lebih banyak bandwidth berarti lebih banyak penanganan lalu lintas dan dengan demikian lebih banyak transfer data.
Apa itu throughput?
Throughput mengacu pada pengukuran jumlah sebenarnya data yang ditransfer selama periode waktu tertentu melalui saluran transmisi apa pun.
Saat melakukan kueri penelusuran, mana yang lebih penting, latensi atau throughput? Dan bagaimana memastikan bahwa kita mengelola infrastruktur global?
Latensi. Untuk mendapatkan latensi yang baik, permintaan pencarian harus diteruskan ke pusat data terdekat.
Saat mengupload video, mana yang lebih penting, latensi atau throughput? Dan bagaimana cara memastikannya?
Hasil. Untuk mendapatkan throughput yang baik, aliran unggahan harus dialihkan ke tautan yang kurang dimanfaatkan.
Pertimbangan lain apa (kecuali latensi dan throughput) yang ada saat meneruskan permintaan?
- Selalu perbarui cache (artinya permintaan dapat diteruskan bukan ke pusat data terdekat)
Jelaskan Tulang Belakang & Daun
"Spine & Leaf" adalah topologi jaringan yang biasa digunakan di lingkungan pusat data untuk menghubungkan beberapa switch dan mengatur lalu lintas jaringan secara efisien. Ia juga dikenal sebagai arsitektur "tulang belakang" atau topologi "tulang belakang daun". Desain ini memberikan bandwidth tinggi, latensi rendah, dan skalabilitas, sehingga ideal untuk pusat data modern yang menangani data dan lalu lintas dalam jumlah besar. Dalam jaringan Spine & Leaf ada dua tipologi utama switch:
- Sakelar Tulang Belakang: Sakelar tulang belakang adalah sakelar berperforma tinggi yang disusun dalam lapisan tulang belakang. Sakelar ini bertindak sebagai inti jaringan dan biasanya saling terhubung dengan setiap sakelar daun. Setiap saklar tulang belakang terhubung ke semua saklar daun di pusat data.
- Leaf Switch: Leaf switch terhubung ke perangkat akhir seperti server, susunan penyimpanan, dan peralatan jaringan lainnya. Setiap saklar daun terhubung ke setiap saklar tulang belakang di pusat data. Hal ini menciptakan konektivitas full-mesh yang non-blocking antara leaf switch dan spine switch, memastikan setiap leaf switch dapat berkomunikasi dengan leaf switch lainnya dengan throughput maksimum.
Arsitektur Spine & Leaf menjadi semakin populer di pusat data karena kemampuannya menangani tuntutan komputasi awan modern, virtualisasi, dan aplikasi data besar, menyediakan infrastruktur jaringan yang skalabel, berkinerja tinggi, dan andal.
Apa itu Kemacetan Jaringan? Apa yang bisa menyebabkannya?
Kemacetan jaringan terjadi ketika ada terlalu banyak data untuk dikirim pada jaringan dan tidak memiliki kapasitas yang cukup untuk menangani permintaan tersebut.
Hal ini dapat menyebabkan peningkatan latensi dan kehilangan paket. Penyebabnya bisa bermacam-macam, seperti penggunaan jaringan yang tinggi, transfer file yang besar, malware, masalah perangkat keras, atau masalah desain jaringan.
Untuk mencegah kemacetan jaringan, penting untuk memantau penggunaan jaringan Anda dan menerapkan strategi untuk membatasi atau mengelola permintaan.
Apa yang bisa Anda ceritakan tentang format paket UDP? Bagaimana dengan format paket TCP? Apa bedanya?
Apa algoritma backoff eksponensial? Di mana itu digunakan?
Dengan menggunakan kode Hamming, apa kata sandi untuk kata data berikut 100111010001101?
00110011110100011101
Berikan contoh protokol yang terdapat pada lapisan aplikasi
Hypertext Transfer Protocol (HTTP) - digunakan untuk halaman web di internet- Simple Mail Transfer Protocol (SMTP) - transmisi email
- Jaringan Telekomunikasi - (TELNET) - emulasi terminal untuk memungkinkan akses klien ke server telnet
- File Transfer Protocol (FTP) - memfasilitasi transfer file antara dua mesin
- Sistem Nama Domain (DNS) - terjemahan nama domain
- Protokol Konfigurasi Host Dinamis (DHCP) - mengalokasikan alamat IP, subnet mask, dan gateway ke host
- Simple Network Management Protocol (SNMP) - mengumpulkan data pada perangkat di jaringan
Berikan contoh protokol yang terdapat pada Lapisan Jaringan
Internet Protocol (IP) - membantu dalam merutekan paket dari satu mesin ke mesin lainnya- Internet Control Message Protocol (ICMP) - memungkinkan seseorang mengetahui apa yang terjadi seperti pesan kesalahan dan informasi debug
Apa itu HST?
HTTP Strict Transport Security adalah arahan server web yang memberi tahu agen pengguna dan browser web cara menangani koneksinya melalui header respons yang dikirim di awal dan kembali ke browser. Hal ini memaksa koneksi melalui enkripsi HTTPS, mengabaikan panggilan skrip apa pun untuk memuat sumber daya apa pun di domain tersebut melalui HTTP. Baca selengkapnya [di sini](https://www.globalsign.com/en/blog/what-is-hsts-and-how-do-i-use-it#:~:text=HTTP%20Strict%20Transport%20Security %20(HSTS,dan%20kembali%20ke%20the%20browser.)
Jaringan - Lain-lain
Apa itu Internet? Apakah sama dengan World Wide Web?
Internet mengacu pada jaringan jaringan, mentransfer sejumlah besar data ke seluruh dunia.
World Wide Web adalah aplikasi yang berjalan di jutaan server, di atas internet, diakses melalui apa yang disebut browser web.
Apa itu ISPnya?
ISP (Internet Service Provider) adalah perusahaan penyedia internet lokal.
Sistem Operasi
Latihan Sistem Operasi
Nama | Topik | Tujuan & Petunjuk | Larutan | Komentar |
---|
Garpu 101 | Garpu | Link | Link | |
Garpu 102 | Garpu | Link | Link | |
Sistem Operasi - Penilaian Mandiri
Apa itu sistem operasi?
Dari buku "Sistem Operasi: Tiga Potongan Mudah":
"Bertanggung jawab untuk memudahkan menjalankan program (bahkan memungkinkan Anda untuk menjalankan banyak hal pada saat yang sama), memungkinkan program untuk berbagi memori, memungkinkan program untuk berinteraksi dengan perangkat, dan hal -hal menyenangkan lainnya seperti itu".
Sistem Operasi - Proses
Bisakah Anda menjelaskan apa itu prosesnya?
Proses adalah program yang sedang berjalan. Program adalah satu atau lebih instruksi dan program (atau proses) dieksekusi oleh sistem operasi.
Jika Anda harus merancang API untuk proses dalam sistem operasi, seperti apa API ini?
Itu akan mendukung yang berikut:
Buat - Izinkan untuk membuat proses baru- Hapus - Izinkan untuk menghapus/menghancurkan proses
- Negara - Izinkan untuk memeriksa keadaan proses, apakah itu berjalan, berhenti, menunggu, dll.
- Berhenti - Izinkan untuk menghentikan proses berjalan
Bagaimana proses dibuat?
OS adalah kode program membaca dan data tambahan yang relevan- Kode program dimuat ke dalam memori atau lebih khusus lagi, ke ruang alamat proses.
- Memori dialokasikan untuk Stack Program (alias tumpukan run-time). Tumpukan juga diinisialisasi oleh OS dengan data seperti argv, argc dan parameter ke main ()
- Memori dialokasikan untuk tumpukan program yang diperlukan untuk data yang dialokasikan secara dinamis seperti daftar data yang ditautkan dan tabel hash
- Tugas inisialisasi I/O dilakukan, seperti pada sistem berbasis UNIX/Linux, di mana setiap proses memiliki 3 deskriptor file (input, output dan kesalahan)
- OS menjalankan program, mulai dari main ()
Benar atau Salah? Pemuatan program ke dalam memori dilakukan dengan penuh semangat (sekaligus)
PALSU. Itu benar di masa lalu tetapi sistem operasi saat ini melakukan pemuatan malas, yang berarti hanya bagian yang relevan yang diperlukan untuk proses yang dijalankan dimuat terlebih dahulu.
Apa keadaan proses yang berbeda?
Menjalankan - Ini mengeksekusi instruksi- Siap - siap berjalan, tetapi untuk alasan yang berbeda itu ditahan
- Diblokir - menunggu beberapa operasi diselesaikan, misalnya permintaan disk I/O
Apa beberapa alasan untuk proses diblokir?
Operasi I/O (misalnya membaca dari disk)- Menunggu paket dari jaringan
Apa itu Inter Process Communication (IPC)?
Komunikasi antar proses (IPC) mengacu pada mekanisme yang disediakan oleh sistem operasi yang memungkinkan proses untuk mengelola data bersama.
Apa itu "berbagi waktu"?
Bahkan ketika menggunakan sistem dengan satu CPU fisik, dimungkinkan untuk memungkinkan banyak pengguna untuk mengerjakannya dan menjalankan program. Ini dimungkinkan dengan berbagi waktu, di mana sumber daya komputasi dibagi dengan cara yang tampaknya bagi pengguna, sistem memiliki banyak CPU, tetapi sebenarnya itu hanya satu CPU yang dibagikan dengan menerapkan multiprogramming dan multi-tasking.
Apa itu "berbagi ruang"?
Agak kebalikan dari berbagi waktu. Sementara dalam waktu berbagi sumber daya digunakan untuk sementara waktu oleh satu entitas dan kemudian sumber daya yang sama dapat digunakan oleh sumber daya lain, dalam ruang berbagi ruang dibagi oleh banyak entitas tetapi dengan cara di mana ia tidak ditransfer di antara mereka.
Ini digunakan oleh satu entitas, sampai entitas ini memutuskan untuk menyingkirkannya. Ambil contoh penyimpanan. Di penyimpanan, file adalah milik Anda, sampai Anda memutuskan untuk menghapusnya.
Komponen apa yang menentukan proses mana yang berjalan pada saat tertentu?
Penjadwal CPU
Sistem Operasi - Memori
Apa itu "memori virtual" dan tujuan apa yang melayani?
Memori virtual menggabungkan RAM komputer Anda dengan ruang sementara pada hard disk Anda. Ketika RAM berjalan rendah, memori virtual membantu memindahkan data dari RAM ke ruang yang disebut file paging. Memindahkan data ke file paging dapat membebaskan RAM, sehingga komputer Anda dapat menyelesaikan pekerjaannya. Secara umum, semakin banyak RAM yang dimiliki komputer Anda, semakin cepat program berjalan. https://www.minitool.com/lib/virtual-memory.html
Apa itu permintaan paging?
Paging permintaan adalah teknik manajemen memori di mana halaman dimuat ke dalam memori fisik hanya ketika diakses oleh suatu proses. Ini mengoptimalkan penggunaan memori dengan memuat halaman sesuai permintaan, mengurangi latensi startup dan overhead ruang. Namun, itu memperkenalkan beberapa latensi saat mengakses halaman untuk pertama kalinya. Secara keseluruhan, ini adalah pendekatan yang hemat biaya untuk mengelola sumber daya memori dalam sistem operasi.
Apa itu copy-on-write?
Copy-on-Write (COW) adalah konsep manajemen sumber daya, dengan tujuan untuk mengurangi penyalinan informasi yang tidak perlu. Ini adalah konsep, yang diimplementasikan misalnya dalam Syscall Posix Fork, yang menciptakan proses duplikat dari proses panggilan. Idenya:
Jika sumber daya dibagi antara 2 atau lebih entitas (misalnya segmen memori bersama antara 2 proses), sumber daya tidak perlu disalin untuk setiap entitas, tetapi setiap entitas memiliki izin akses operasi baca pada sumber daya bersama. (Segmen bersama ditandai sebagai hanya baca) (pikirkan setiap entitas yang memiliki pointer ke lokasi sumber daya bersama, yang dapat dibaca untuk membaca nilainya)- Jika satu entitas akan melakukan operasi tulis pada sumber daya bersama, masalah akan muncul, karena sumber daya juga akan diubah secara permanen untuk semua entitas lain yang membagikannya. (Pikirkan proses yang memodifikasi beberapa variabel pada tumpukan, atau mengalokasikan beberapa data secara dinamis pada tumpukan, perubahan ini pada sumber daya yang dibagikan ini juga berlaku untuk semua proses lainnya, ini jelas merupakan perilaku yang tidak diinginkan)
- Sebagai solusi saja, jika operasi tulis akan dilakukan pada sumber daya bersama, sumber ini akan disalin terlebih dahulu dan kemudian perubahan diterapkan.
Apa itu kernel, dan apa fungsinya?
Kernel adalah bagian dari sistem operasi dan bertanggung jawab atas tugas -tugas seperti:
Mengalokasikan memori- Jadwal proses
- Kontrol CPU
Benar atau Salah? Beberapa potongan kode dalam kernel dimuat ke area yang dilindungi dari memori sehingga aplikasi tidak dapat menimpa mereka.
BENAR
APA ITU POSIX?
POSIX (antarmuka sistem operasi portabel) adalah serangkaian standar yang menentukan antarmuka antara sistem operasi seperti UNIX dan program aplikasi.
Jelaskan apa itu semaphore dan apa perannya dalam sistem operasi.
Semaphore adalah primitif sinkronisasi yang digunakan dalam sistem operasi dan pemrograman bersamaan untuk mengontrol akses ke sumber daya bersama. Ini adalah tipe data variabel atau abstrak yang bertindak sebagai penghitung atau mekanisme pensinyalan untuk mengelola akses ke sumber daya dengan banyak proses atau utas.
Apa itu cache? Apa itu buffer?
Cache: Cache biasanya digunakan ketika proses membaca dan menulis ke disk untuk membuat proses lebih cepat, dengan membuat data serupa yang digunakan oleh program yang berbeda mudah diakses. Buffer: Tempat yang dipesan dalam RAM, yang digunakan untuk menyimpan data untuk tujuan sementara.
Virtualisasi
Apa itu virtualisasi?
Virtualisasi menggunakan perangkat lunak untuk membuat lapisan abstraksi di atas perangkat keras komputer, yang memungkinkan elemen perangkat keras dari satu komputer - prosesor, memori, penyimpanan, dan lainnya - untuk dibagi menjadi beberapa komputer virtual, yang biasa disebut mesin virtual (VM).
Apa itu hypervisor?
Red Hat: "Hypervisor adalah perangkat lunak yang membuat dan menjalankan mesin virtual (VM). Hypervisor, kadang -kadang disebut monitor mesin virtual (VMM), mengisolasi sistem operasi hypervisor dan sumber daya dari mesin virtual dan memungkinkan pembuatan dan pengelolaan mereka VM. "
Baca lebih lanjut di sini
Jenis hypervisor apa yang ada?
Hipervisor yang di-host dan hypervisor Bare-Metal.
Apa kelebihan dan kekurangan hypervisor telanjang-logam dibandingkan hypervisor yang di-host?
Karena memiliki driver sendiri dan akses langsung ke komponen perangkat keras, hypervisor baremetal akan sering memiliki kinerja yang lebih baik bersama dengan stabilitas dan skalabilitas.
Di sisi lain, mungkin akan ada beberapa batasan mengenai pemuatan (apa pun) driver sehingga hypervisor yang di -host biasanya akan mendapat manfaat dari memiliki kompatibilitas perangkat keras yang lebih baik.
Jenis virtualisasi apa yang ada?
Sistem Operasi Virtualisasi Jaringan Fungsi Virtualisasi Virtualisasi Desktop
Apakah kontainerisasi adalah jenis virtualisasi?
Ya, ini adalah virtualisasi tingkat sistem operasi, di mana kernel dibagikan dan memungkinkan untuk menggunakan beberapa instance ruang pengguna yang terisolasi.
Bagaimana pengenalan mesin virtual mengubah industri dan cara aplikasi digunakan?
Pengenalan mesin virtual memungkinkan perusahaan untuk menggunakan beberapa aplikasi bisnis pada perangkat keras yang sama, sementara setiap aplikasi dipisahkan satu sama lain dengan cara yang diamankan, di mana masing -masing berjalan pada sistem operasinya sendiri yang terpisah.
Mesin virtual
Apakah kita membutuhkan mesin virtual di zaman wadah? Apakah mereka masih relevan?
Ya, mesin virtual masih relevan bahkan di zaman kontainer. Sementara wadah memberikan alternatif yang ringan dan portabel untuk mesin virtual, mereka memang memiliki batasan tertentu. Mesin virtual masih penting karena mereka menawarkan isolasi dan keamanan, dapat menjalankan sistem operasi yang berbeda, dan baik untuk aplikasi lama. Batasan wadah misalnya berbagi kernel host.
Prometheus
Apa itu Prometheus? Apa saja fitur utama Prometheus?
Prometheus adalah sistem open-source populer yang memantau dan memperingatkan toolkit, yang awalnya dikembangkan di SoundCloud. Ini dirancang untuk mengumpulkan dan menyimpan data seri waktu, dan untuk memungkinkan kueri dan analisis data itu menggunakan bahasa kueri yang kuat yang disebut PromQL. Prometheus sering digunakan untuk memantau aplikasi cloud-asli, layanan mikro, dan infrastruktur modern lainnya.
Beberapa fitur utama Prometheus meliputi:
1. Data model: Prometheus uses a flexible data model that allows users to organize and label their time-series data in a way that makes sense for their particular use case. Labels are used to identify different dimensions of the data, such as the source of the data or the environment in which it was collected.
2. Pull-based architecture: Prometheus uses a pull-based model to collect data from targets, meaning that the Prometheus server actively queries its targets for metrics data at regular intervals. This architecture is more scalable and reliable than a push-based model, which would require every target to push data to the server.
3. Time-series database: Prometheus stores all of its data in a time-series database, which allows users to perform queries over time ranges and to aggregate and analyze their data in various ways. The database is optimized for write-heavy workloads, and can handle a high volume of data with low latency.
4. Alerting: Prometheus includes a powerful alerting system that allows users to define rules based on their metrics data and to send alerts when certain conditions are met. Alerts can be sent via email, chat, or other channels, and can be customized to include specific details about the problem.
5. Visualization: Prometheus has a built-in graphing and visualization tool, called PromDash, which allows users to create custom dashboards to monitor their systems and applications. PromDash supports a variety of graph types and visualization options, and can be customized using CSS and JavaScript.
Secara keseluruhan, Prometheus adalah alat yang kuat dan fleksibel untuk memantau dan menganalisis sistem dan aplikasi, dan banyak digunakan dalam industri untuk pemantauan dan observabilitas cloud-asli.
Dalam skenario apa mungkin lebih baik untuk tidak menggunakan Prometheus?
Dari dokumentasi Prometheus: "Jika Anda membutuhkan akurasi 100%, seperti untuk penagihan per-permintaan".
Jelaskan arsitektur dan komponen Prometheus
Arsitektur Prometheus terdiri dari empat komponen utama:
1. Prometheus Server: The Prometheus server is responsible for collecting and storing metrics data. It has a simple built-in storage layer that allows it to store time-series data in a time-ordered database.
2. Client Libraries: Prometheus provides a range of client libraries that enable applications to expose their metrics data in a format that can be ingested by the Prometheus server. These libraries are available for a range of programming languages, including Java, Python, and Go.
3. Exporters: Exporters are software components that expose existing metrics from third-party systems and make them available for ingestion by the Prometheus server. Prometheus provides exporters for a range of popular technologies, including MySQL, PostgreSQL, and Apache.
4. Alertmanager: The Alertmanager component is responsible for processing alerts generated by the Prometheus server. It can handle alerts from multiple sources and provides a range of features for deduplicating, grouping, and routing alerts to appropriate channels.
Secara keseluruhan, arsitektur Prometheus dirancang untuk sangat terukur dan tangguh. Perpustakaan server dan klien dapat digunakan secara terdistribusi untuk mendukung pemantauan di lingkungan skala besar dan sangat dinamis
Bisakah Anda membandingkan Prometheus dengan solusi lain seperti InfluxDB misalnya?
Dibandingkan dengan solusi pemantauan lainnya, seperti influxdb, Prometheus dikenal karena kinerja dan skalabilitasnya yang tinggi. Ini dapat menangani volume data yang besar dan dapat dengan mudah diintegrasikan dengan alat lain di ekosistem pemantauan. InfluxDB, di sisi lain, dikenal karena kemudahan penggunaan dan kesederhanaannya. Ini memiliki antarmuka yang ramah pengguna dan menyediakan API yang mudah digunakan untuk mengumpulkan dan meminta data.
Solusi populer lainnya, Nagios, adalah sistem pemantauan yang lebih tradisional yang bergantung pada model berbasis push untuk mengumpulkan data. Nagios telah ada sejak lama dan dikenal karena stabilitas dan keandalannya. Namun, dibandingkan dengan Prometheus, Nagios tidak memiliki beberapa fitur yang lebih maju, seperti model data multi-dimensi dan bahasa kueri yang kuat.
Secara keseluruhan, pilihan solusi pemantauan tergantung pada kebutuhan dan persyaratan spesifik organisasi. Sementara Prometheus adalah pilihan yang tepat untuk pemantauan dan peringatan skala besar, influxdb mungkin lebih cocok untuk lingkungan yang lebih kecil yang membutuhkan kemudahan penggunaan dan kesederhanaan. Nagios tetap menjadi pilihan yang solid bagi organisasi yang memprioritaskan stabilitas dan keandalan daripada fitur -fitur canggih.
Apa itu peringatan?
Di Prometheus, peringatan adalah pemberitahuan yang dipicu ketika kondisi atau ambang tertentu dipenuhi. Lansiran dapat dikonfigurasi untuk memicu ketika metrik tertentu melintasi ambang batas tertentu atau ketika peristiwa tertentu terjadi. Setelah peringatan dipicu, itu dapat dialihkan ke berbagai saluran, seperti email, pager, atau obrolan, untuk memberi tahu tim atau individu yang relevan untuk mengambil tindakan yang sesuai. Lansiran adalah komponen penting dari sistem pemantauan apa pun, karena mereka memungkinkan tim untuk secara proaktif mendeteksi dan menanggapi masalah sebelum mereka memengaruhi pengguna atau menyebabkan downtime sistem. Apa itu contoh? Apa itu pekerjaan?
Di Prometheus, sebuah contoh mengacu pada target tunggal yang sedang dipantau. Misalnya, satu server atau layanan. Pekerjaan adalah serangkaian contoh yang melakukan fungsi yang sama, seperti satu set server web yang melayani aplikasi yang sama. Pekerjaan memungkinkan Anda untuk mendefinisikan dan mengelola sekelompok target bersama.
Intinya, sebuah contoh adalah target individu yang Prometheus mengumpulkan metrik dari, sementara pekerjaan adalah kumpulan contoh serupa yang dapat dikelola sebagai kelompok.
Jenis metrik inti apa yang didukung Prometheus?
Prometheus mendukung beberapa jenis metrik, termasuk: 1. Counter: A monotonically increasing value used for tracking counts of events or samples. Examples include the number of requests processed or the total number of errors encountered. 2. Gauge: A value that can go up or down, such as CPU usage or memory usage. Unlike counters, gauge values can be arbitrary, meaning they can go up and down based on changes in the system being monitored. 3. Histogram: A set of observations or events that are divided into buckets based on their value. Histograms help in analyzing the distribution of a metric, such as request latencies or response sizes. 4. Summary: A summary is similar to a histogram, but instead of buckets, it provides a set of quantiles for the observed values. Summaries are useful for monitoring the distribution of request latencies or response sizes over time.
Prometheus juga mendukung berbagai fungsi dan operator untuk menggabungkan dan memanipulasi metrik, seperti SUM, MAX, MIN, dan RATE. Fitur -fitur ini menjadikannya alat yang ampuh untuk memantau dan mengingatkan metrik sistem.
Apa itu eksportir? Untuk apa ini digunakan?
Eksportir berfungsi sebagai jembatan antara sistem atau aplikasi pihak ketiga dan Prometheus, memungkinkan Prometheus untuk memantau dan mengumpulkan data dari sistem atau aplikasi tersebut. Eksportir bertindak sebagai server, mendengarkan pada port jaringan tertentu untuk permintaan dari Prometheus untuk mengikis metrik. Ini mengumpulkan metrik dari sistem atau aplikasi pihak ketiga dan mengubahnya menjadi format yang dapat dipahami oleh Prometheus. Eksportir kemudian memaparkan metrik ini ke Prometheus melalui titik akhir HTTP, membuatnya tersedia untuk pengumpulan dan analisis.
Eksportir biasanya digunakan untuk memantau berbagai jenis komponen infrastruktur seperti database, server web, dan sistem penyimpanan. Misalnya, ada eksportir yang tersedia untuk memantau database populer seperti MySQL dan PostgreSQL, serta server web seperti Apache dan Nginx.
Secara keseluruhan, eksportir adalah komponen penting dari ekosistem Prometheus, memungkinkan pemantauan berbagai sistem dan aplikasi, dan memberikan tingkat fleksibilitas dan ekstensibilitas yang tinggi ke platform.
Prometheus praktik terbaik?
Berikut adalah tiga di antaranya: 1. Label carefully: Careful and consistent labeling of metrics is crucial for effective querying and alerting. Labels should be clear, concise, and include all relevant information about the metric. 2. Keep metrics simple: The metrics exposed by exporters should be simple and focus on a single aspect of the system being monitored. This helps avoid confusion and ensures that the metrics are easily understandable by all members of the team. 3. Use alerting sparingly: While alerting is a powerful feature of Prometheus, it should be used sparingly and only for the most critical issues. Setting up too many alerts can lead to alert fatigue and result in important alerts being ignored. It is recommended to set up only the most important alerts and adjust the thresholds over time based on the actual frequency of alerts.
Bagaimana cara mendapatkan total permintaan dalam periode waktu tertentu?
Untuk mendapatkan total permintaan dalam periode waktu tertentu menggunakan Prometheus, Anda dapat menggunakan fungsi * jumlah * bersama dengan fungsi * rate *. Berikut adalah contoh kueri yang akan memberi Anda jumlah total permintaan dalam jam terakhir: sum(rate(http_requests_total[1h]))
Dalam kueri ini, http_requests_total adalah nama metrik yang melacak jumlah total permintaan HTTP, dan fungsi laju menghitung tingkat permintaan per detik selama satu jam terakhir. Fungsi SUM kemudian menambahkan semua permintaan untuk memberi Anda jumlah total permintaan dalam satu jam terakhir.
Anda dapat menyesuaikan rentang waktu dengan mengubah durasi dalam fungsi laju . Misalnya, jika Anda ingin mendapatkan jumlah total permintaan di hari terakhir, Anda dapat mengubah fungsi untuk menilai (http_requests_total [1D]) .
Apa arti ha di prometheus?
HA berarti ketersediaan tinggi. Ini berarti bahwa sistem ini dirancang untuk menjadi sangat dapat diandalkan dan selalu tersedia, bahkan dalam menghadapi kegagalan atau masalah lainnya. Dalam praktiknya, ini biasanya melibatkan pengaturan beberapa contoh Prometheus dan memastikan bahwa mereka semua disinkronkan dan mampu bekerja bersama dengan mulus. Ini dapat dicapai melalui berbagai teknik, seperti penyeimbangan beban, replikasi, dan mekanisme failover. Dengan menerapkan HA di Prometheus, pengguna dapat memastikan bahwa data pemantauan mereka selalu tersedia dan terkini, bahkan dalam menghadapi kegagalan perangkat keras atau perangkat lunak, masalah jaringan, atau masalah lain yang mungkin menyebabkan downtime atau kehilangan data.
Bagaimana Anda bergabung dengan dua metrik?
Di Prometheus, bergabung dengan dua metrik dapat dicapai dengan menggunakan fungsi * gabungan () *. Fungsi * gabung () * menggabungkan dua atau lebih deret waktu berdasarkan nilai labelnya. Dibutuhkan dua argumen wajib: *pada *dan *tabel *. Argumen ON menentukan label untuk bergabung * pada * dan argumen * tabel * menentukan seri waktu untuk bergabung. Berikut adalah contoh cara bergabung dengan dua metrik menggunakan fungsi gabungan () :
sum_series(
join(
on(service, instance) request_count_total,
on(service, instance) error_count_total,
)
)
Dalam contoh ini, fungsi join () menggabungkan seri waktu request_count_total dan error_count_total berdasarkan nilai label layanan dan instance mereka. Fungsi sum_series () kemudian menghitung jumlah dari seri waktu yang dihasilkan
Bagaimana cara menulis kueri yang mengembalikan nilai label?
Untuk menulis kueri yang mengembalikan nilai label di Prometheus, Anda dapat menggunakan fungsi * label_values *. Fungsi * label_values * mengambil dua argumen: nama label dan nama metrik. Misalnya, jika Anda memiliki metrik yang disebut http_requests_total dengan label yang disebut metode , dan Anda ingin mengembalikan semua nilai label metode , Anda dapat menggunakan kueri berikut:
label_values(http_requests_total, method)
Ini akan mengembalikan daftar semua nilai untuk label metode dalam metrik http_requests_total . Anda kemudian dapat menggunakan daftar ini dalam kueri lebih lanjut atau untuk memfilter data Anda.
Bagaimana Anda mengonversi cpu_user_seconds menjadi penggunaan CPU dalam persentase?
To convert *cpu_user_seconds* to CPU usage in percentage, you need to divide it by the total elapsed time and the number of CPU cores, and then multiply by 100. The formula is as follows: 100 * sum(rate(process_cpu_user_seconds_total{job="<job-name>"}[<time-period>])) by (instance) / (<time-period> * <num-cpu-cores>)
Di Sini, adalah nama pekerjaan yang ingin Anda minta, adalah rentang waktu yang ingin Anda minta (misalnya 5m , 1 jam ), dan adalah jumlah inti CPU pada mesin yang Anda tanya.
Misalnya, untuk mendapatkan penggunaan CPU dalam persentase selama 5 menit terakhir untuk pekerjaan bernama my-job yang berjalan di mesin dengan 4 core CPU, Anda dapat menggunakan kueri berikut:
100 * sum(rate(process_cpu_user_seconds_total{job="my-job"}[5m])) by (instance) / (5m * 4)
Pergi
Apa saja karakteristik bahasa pemrograman Go?
- Pengetikan yang kuat dan statis - Jenis variabel tidak dapat diubah dari waktu ke waktu dan mereka harus didefinisikan pada saat kompilasi
- kesederhanaan
- cepat waktu kompilasi
bawaan - bawaan concurrency
- yang dikumpulkan
- kompil independen
- ke biner mandiri - apa pun yang Anda butuhkan untuk menjalankan aplikasi Anda aplikasi Anda akan dikompilasi menjadi satu biner. Sangat berguna untuk manajemen versi dalam run-time.
Go juga memiliki komunitas yang baik.
Apa perbedaan antara var x int = 2
dan x := 2
?
Hasilnya sama, variabel dengan nilai 2.
Dengan var x int = 2
kami mengatur tipe variabel ke integer sementara dengan x := 2
kami melepaskan dengan sendirinya jenisnya.
Benar atau Salah? Di Go We Can Redeclare Variabel dan sekali dinyatakan kita harus menggunakannya.
PALSU. Kami tidak dapat menukar variabel tetapi ya, kami harus menggunakan variabel yang dideklarasikan.
Perpustakaan Go apa yang telah Anda gunakan?
Ini harus dijawab berdasarkan penggunaan Anda tetapi beberapa contoh adalah:
Apa masalah dengan blok kode berikut? Bagaimana cara memperbaikinya? func main() {
var x float32 = 13.5
var y int
y = x
}
Blok kode berikut mencoba untuk mengonversi integer 101 menjadi string tetapi sebaliknya kita mendapatkan "e". Mengapa demikian? Bagaimana cara memperbaikinya? package main
import "fmt"
func main () {
var x int = 101
var y string
y = string ( x )
fmt . Println ( y )
}
Tampaknya nilai Unicode yang ditetapkan pada 101 dan menggunakannya untuk mengubah bilangan bulat menjadi string. Jika Anda ingin mendapatkan "101" Anda harus menggunakan paket "strconv" dan ganti y = string(x)
dengan y = strconv.Itoa(x)
Apa yang salah dengan kode berikut?: package main
func main() {
var x = 2
var y = 3
const someConst = x + y
}
Konstanta dalam Go hanya dapat dinyatakan menggunakan ekspresi konstan. Tetapi x
, y
dan jumlahnya adalah variabel.
const initializer x + y is not a constant
Apa yang akan menjadi output dari blok kode berikut?: package main
import "fmt"
const (
x = iota
y = iota
)
const z = iota
func main () {
fmt . Printf ( "%v n " , x )
fmt . Printf ( "%v n " , y )
fmt . Printf ( "%v n " , z )
}
Pengidentifikasi IOTA Go GO digunakan dalam deklarasi const untuk menyederhanakan definisi angka yang bertambah. Karena dapat digunakan dalam ekspresi, ia memberikan umum di luar enumerasi sederhana.
x
dan y
di grup IOTA pertama, z
di yang kedua.
Halaman iota di go wiki
Untuk apa _ digunakan untuk pergi?
Ini menghindari keharusan mendeklarasikan semua variabel untuk nilai pengembalian. Itu disebut pengidentifikasi kosong.
Jawaban di SO
Apa yang akan menjadi output dari blok kode berikut?: package main
import "fmt"
const (
_ = iota + 3
x
)
func main () {
fmt . Printf ( "%v n " , x )
}
Karena IOTA pertama dinyatakan dengan nilai 3
( + 3
), yang berikutnya memiliki nilai 4
Apa yang akan menjadi output dari blok kode berikut?: package main
import (
"fmt"
"sync"
"time"
)
func main () {
var wg sync. WaitGroup
wg . Add ( 1 )
go func () {
time . Sleep ( time . Second * 2 )
fmt . Println ( "1" )
wg . Done ()
}()
go func () {
fmt . Println ( "2" )
}()
wg . Wait ()
fmt . Println ( "3" )
}
Output: 2 1 3
Aritcle tentang sinkronisasi/waitgroup
Sinkronisasi Paket Golang
Apa yang akan menjadi output dari blok kode berikut?: package main
import (
"fmt"
)
func mod1 ( a [] int ) {
for i := range a {
a [ i ] = 5
}
fmt . Println ( "1:" , a )
}
func mod2 ( a [] int ) {
a = append ( a , 125 ) // !
for i := range a {
a [ i ] = 5
}
fmt . Println ( "2:" , a )
}
func main () {
s1 := [] int { 1 , 2 , 3 , 4 }
mod1 ( s1 )
fmt . Println ( "1:" , s1 )
s2 := [] int { 1 , 2 , 3 , 4 }
mod2 ( s2 )
fmt . Println ( "2:" , s2 )
}
Keluaran:
1 [5 5 5 5]
1 [5 5 5 5]
2 [5 5 5 5 5]
2 [1 2 3 4]
Di mod1
A adalah tautan, dan ketika kami menggunakan a[i]
, kami mengubah nilai s1
menjadi. Tetapi di mod2
, append
membuat irisan baru, dan kami hanya mengubah a
, bukan s2
.
Aritcle tentang array, posting blog tentang append
Apa yang akan menjadi output dari blok kode berikut?: package main
import (
"container/heap"
"fmt"
)
// An IntHeap is a min-heap of ints.
type IntHeap [] int
func ( h IntHeap ) Len () int { return len ( h ) }
func ( h IntHeap ) Less ( i , j int ) bool { return h [ i ] < h [ j ] }
func ( h IntHeap ) Swap ( i , j int ) { h [ i ], h [ j ] = h [ j ], h [ i ] }
func ( h * IntHeap ) Push ( x interface {}) {
// Push and Pop use pointer receivers because they modify the slice's length,
// not just its contents.
* h = append ( * h , x .( int ))
}
func ( h * IntHeap ) Pop () interface {} {
old := * h
n := len ( old )
x := old [ n - 1 ]
* h = old [ 0 : n - 1 ]
return x
}
func main () {
h := & IntHeap { 4 , 8 , 3 , 6 }
heap . Init ( h )
heap . Push ( h , 7 )
fmt . Println (( * h )[ 0 ])
}
Keluaran: 3
Paket Container/Heap Golang
mongo
Apa keuntungan dari MongoDB? Atau dengan kata lain, mengapa memilih MongoDB dan bukan implementasi NoSQL lainnya?
Keuntungan MongoDB adalah sebagai berikut:
- SKEMALESS
- Mudah untuk dikupas
- Tidak ada gabungan kompleks
- Struktur objek tunggal jelas
Apa perbedaan antara SQL dan NoSQL?
Perbedaan utama adalah bahwa database SQL disusun (data disimpan dalam bentuk tabel dengan baris dan kolom - seperti tabel spreadsheet Excel) sementara NoSQL tidak terstruktur, dan penyimpanan data dapat bervariasi tergantung pada bagaimana NOSQL DB diatur, seperti pasangan nilai kunci, berorientasi dokumen, dll.
Dalam skenario apa Anda lebih suka menggunakan NoSQL/Mongo daripada SQL?
Data heterogen yang sering berubah- Konsistensi dan integritas data bukanlah prioritas utama
- Terbaik jika database perlu skala dengan cepat
Apa itu dokumen? Apa itu koleksi?
Dokumen adalah catatan dalam MongoDB, yang disimpan dalam format BSON (Binary JSON) dan merupakan unit dasar data di MongoDB.- Koleksi adalah sekelompok dokumen terkait yang disimpan dalam satu database di MongoDB.
Apa itu agregator?
- Agregator adalah kerangka kerja di MongoDB yang melakukan operasi pada serangkaian data untuk mengembalikan hasil yang dihitung tunggal.
Apa yang lebih baik? Dokumen tertanam atau direferensikan?
- Tidak ada jawaban pasti yang lebih baik, itu tergantung pada kasus penggunaan dan persyaratan spesifik. Beberapa Penjelasan: Dokumen tertanam memberikan pembaruan atom, sedangkan dokumen yang direferensikan memungkinkan normalisasi yang lebih baik.
Sudahkah Anda melakukan optimasi pengambilan data di Mongo? Jika tidak, dapatkah Anda memikirkan cara untuk mengoptimalkan pengambilan data yang lambat?
- Beberapa cara untuk mengoptimalkan pengambilan data di MongoDB adalah: pengindeksan, desain skema yang tepat, optimasi kueri dan penyeimbangan beban basis data.
Kueri
Jelaskan kueri ini: db.books.find({"name": /abc/})
Jelaskan kueri ini: db.books.find().sort({x:1})
Apa perbedaan antara find () dan find_one ()?
find()
mengembalikan semua dokumen yang sesuai dengan kondisi kueri.- find_one () hanya mengembalikan satu dokumen yang cocok dengan kondisi kueri (atau nol jika tidak ada kecocokan yang ditemukan).
Bagaimana Anda bisa mengekspor data dari Mongo DB?
MongoExport- bahasa pemrograman
SQL
Latihan SQL
Nama | Topik | Tujuan & Instruksi | Larutan | Komentar |
---|
Fungsi vs perbandingan | Perbaikan kueri | Latihan | Larutan | |
Penilaian Diri SQL
Apa itu SQL?
SQL (Bahasa Kueri Terstruktur) adalah bahasa standar untuk database relasional (seperti MySQL, Mariadb, ...).
Ini digunakan untuk membaca, memperbarui, menghapus, dan membuat data dalam database relasional.
Bagaimana SQL Berbeda dari NoSQL
Perbedaan utama adalah bahwa database SQL disusun (data disimpan dalam bentuk tabel dengan baris dan kolom - seperti tabel spreadsheet Excel) sementara NoSQL tidak terstruktur, dan penyimpanan data dapat bervariasi tergantung pada bagaimana NoSQL DB diatur, seperti pasangan nilai kunci, berorientasi dokumen, dll.
Kapan yang terbaik untuk menggunakan SQL? NoSQL?
SQL - paling baik digunakan saat integritas data sangat penting. SQL biasanya diimplementasikan dengan banyak bisnis dan area dalam bidang keuangan karena kepatuhan asam.
NoSQL - Hebat jika Anda perlu skala hal -hal dengan cepat. NoSQL dirancang dengan aplikasi web dalam pikiran, jadi berfungsi dengan baik jika Anda perlu dengan cepat menyebarkan informasi yang sama ke beberapa server
Selain itu, karena NoSQL tidak mematuhi tabel ketat dengan kolom dan struktur baris yang dibutuhkan basis data relasional, Anda dapat menyimpan berbagai tipe data bersama -sama.
SQL Praktis - Dasar -dasar
Untuk pertanyaan -pertanyaan ini, kami akan menggunakan tabel pelanggan dan pesanan yang ditunjukkan di bawah ini:
Pelanggan
Customer_id | Customer_name | Item_in_cart | Cash_spent_to_date |
---|
100204 | John Smith | 0 | 20.00 |
100205 | Jane Smith | 3 | 40.00 |
100206 | Bobby Frank | 1 | 100.20 |
PESANAN
Customer_id | Order_id | Barang | Harga | Date_sold |
---|
100206 | A123 | Rubber Ducky | 2.20 | 18-09-2019 |
100206 | A123 | Mandi Busa | 8.00 | 18-09-2019 |
100206 | Q987 | 80-pack tp | 90.00 | 20-09-2019 |
100205 | Z001 | Makanan Kucing - Ikan Tuna | 10.00 | 05-08-2019 |
100205 | Z001 | Makanan Kucing - Ayam | 10.00 | 05-08-2019 |
100205 | Z001 | Makanan Kucing - Daging Sapi | 10.00 | 05-08-2019 |
100205 | Z001 | Makanan Kucing - Kitty Quesadilla | 10.00 | 05-08-2019 |
100204 | X202 | Kopi | 20.00 | 29-04-2019 |
Bagaimana cara memilih semua bidang dari tabel ini?
Pilih *
Dari pelanggan;
Berapa banyak item di kereta John?
Pilih item_in_cart
Dari pelanggan
Where customer_name = "John Smith";
Berapa jumlah dari semua uang yang dihabiskan di semua pelanggan?
Pilih SUM (CASH_SPENT_TO_DATE) sebagai sum_cash
Dari pelanggan;
Berapa banyak orang yang memiliki barang di keranjang mereka?
Pilih Hitung (1) sebagai Number_of_People_W_Items
Dari pelanggan
di mana item_in_cart> 0;
Bagaimana Anda bergabung dengan tabel pelanggan ke tabel pesanan?
Anda akan bergabung dengan mereka di kunci unik. Dalam hal ini, kunci uniknya adalah customer_id di tabel pelanggan dan tabel pesanan
Bagaimana Anda menunjukkan pelanggan mana yang memesan item yang mana?
Pilih c.customer_name, O.Item
Dari pelanggan c
Kiri bergabung dengan pesanan o
Pada c.customer_id = o.customer_id;
Menggunakan pernyataan dengan, bagaimana Anda menunjukkan siapa yang memesan makanan kucing, dan jumlah total uang yang dihabiskan?
dengan cat_food sebagai (
Pilih customer_id, sum (harga) sebagai total_price
Dari pesanan
Di mana item seperti "%makanan kucing%"
Grup dengan customer_id
)
Pilih customer_name, total_price
Dari pelanggan c
Batin bergabung dengan cat_food f
Di c.customer_id = f.customer_id
di mana c.customer_id in (pilih customer_id dari cat_food);
Meskipun ini adalah pernyataan sederhana, klausa "dengan" benar -benar bersinar ketika kueri yang kompleks perlu dijalankan di atas meja sebelum bergabung ke yang lain. Dengan pernyataan itu bagus, karena Anda membuat suhu semu saat menjalankan kueri Anda, alih -alih membuat tabel yang sama sekali baru.
Jumlah dari semua pembelian makanan kucing tidak tersedia, jadi kami menggunakan pernyataan dengan membuat tabel semu untuk mengambil jumlah harga yang dihabiskan oleh setiap pelanggan, kemudian bergabung dengan tabel secara normal.
Manakah dari pertanyaan berikut yang akan Anda gunakan? SELECT count(*) SELECT count(*)
FROM shawarma_purchases FROM shawarma_purchases
WHERE vs. WHERE
YEAR(purchased_at) == '2017' purchased_at >= '2017-01-01' AND
purchased_at <= '2017-31-12'
SELECT count(*) FROM shawarma_purchases WHERE purchased_at >= '2017-01-01' AND purchased_at <= '2017-31-12'
Saat Anda menggunakan fungsi ( YEAR(purchased_at)
), ia harus memindai seluruh database sebagai lawan menggunakan indeks dan pada dasarnya kolom sebagaimana adanya, dalam keadaan alami.
OpenStack
Komponen/proyek OpenStack apa yang Anda kenal?
Bisakah Anda memberi tahu saya apa yang bertanggung jawab atas layanan/proyek masing -masing?:- Baru
- neutron
- Abu
- Lirikan
- Dasar
NOVA - Kelola Virtual Instance- Neutron - Kelola Jaringan dengan Menyediakan Jaringan sebagai Layanan (NAAS)
- Cinder - Penyimpanan Blok
- Pandangan sekilas - Kelola gambar untuk mesin dan wadah virtual (Cari, Dapatkan dan Daftarkan)
- Keystone - Layanan otentikasi di seluruh cloud
Identifikasi layanan/proyek yang digunakan untuk masing -masing berikut:- Instance salin atau snapshot
- GUI untuk melihat dan memodifikasi sumber daya
- Penyimpanan blok
- Mengelola instance virtual
Pandangan sekilas - Layanan gambar. Juga digunakan untuk menyalin atau membuat instance snapshot- Horizon - GUI untuk melihat dan memodifikasi sumber daya
- Cinder - Penyimpanan Blok
- NOVA - Kelola Virtual Instance
Apa itu penyewa/proyek?
Tentukan Benar atau Salah:- OpenStack bebas digunakan
- Layanan yang bertanggung jawab untuk jaringan sekilas
- Tujuan penyewa/proyek adalah untuk berbagi sumber daya antara berbagai proyek dan pengguna OpenStack
Jelaskan secara rinci bagaimana Anda memunculkan instance dengan IP mengambang
Anda mendapat telepon dari pelanggan yang mengatakan: "Saya bisa melakukan ping instance saya tetapi tidak dapat menghubungkan (SSH) itu". Apa masalahnya?
Jenis jaringan apa yang didukung OpenStack?
Bagaimana Anda men -debug masalah penyimpanan OpenStack? (alat, log, ...)
Bagaimana Anda men -debug masalah komputasi OpenStack? (alat, log, ...)
OpenStack Deployment & Tripleo
Sudahkah Anda menggunakan OpenStack di masa lalu? Jika ya, dapatkah Anda menjelaskan bagaimana Anda melakukannya?
Apakah Anda terbiasa dengan Tripleo? Apa bedanya dengan devstack atau packstack?
Anda dapat membaca tentang tripleo di sini
OpenStack Compute
Bisakah Anda menggambarkan nova secara detail?
Digunakan untuk menyediakan dan mengelola instance virtual- Ini mendukung multi-tenancy di berbagai tingkatan-logging, kontrol pengguna akhir, audit, dll.
- Sangat terukur
- Otentikasi dapat dilakukan dengan menggunakan sistem internal atau LDAP
- Mendukung beberapa jenis penyimpanan blok
- Mencoba menjadi perangkat keras dan hypervisor agnostice
Apa yang Anda ketahui tentang arsitektur dan komponen Nova?
NOVA -API - Server yang melayani metadata dan menghitung API- Komponen NOVA yang berbeda berkomunikasi dengan menggunakan antrian (RabbitMQ biasanya) dan database
- Permintaan untuk membuat instance diperiksa oleh nova-scheduler yang menentukan di mana instance akan dibuat dan berjalan
- Nova-Compute adalah komponen yang bertanggung jawab untuk berkomunikasi dengan hypervisor untuk membuat instance dan mengelola siklus hidupnya
OpenStack Networking (Neutron)
Jelaskan neutron secara rinci
Salah satu komponen inti dari OpenStack dan proyek mandiri- Neutron berfokus pada pengiriman jaringan sebagai layanan
- Dengan neutron, pengguna dapat mengatur jaringan di cloud dan mengkonfigurasi dan mengelola berbagai layanan jaringan
- Neutron berinteraksi dengan:
Keystone - Otorize API Calls
- NOVA - NOVA berkomunikasi dengan neutron untuk mencolokkan NIC ke dalam jaringan
- Horizon - Mendukung entitas jaringan di dasbor dan juga menyediakan tampilan topologi yang mencakup detail jaringan
Jelaskan masing -masing komponen berikut:- agen neutron-dhcp
- Neutron-L3-agent
- Agen-Metering-Metering
- Neutron-*-Agtent
- Neutron-Server
Neutron-L3-Agent-L3/NAT Forwarding (menyediakan akses jaringan eksternal untuk VM misalnya)- Neutron-DHCP-Agent-Layanan DHCP
- Neutron-Metering-Agent-L3 Metering Lalu Lintas
- Neutron-*-Agtent-Mengelola konfigurasi vswitch lokal pada setiap komputasi (berdasarkan plugin yang dipilih)
- Neutron -Server - Mengekspos API Jaringan dan Melewati Permintaan ke Plugin Lain Jika Diperlukan
Jelaskan jenis jaringan ini:- Jaringan manajemen
- Jaringan Tamu
- Jaringan API
- Jaringan eksternal
Jaringan Manajemen - Digunakan untuk komunikasi internal antara komponen OpenStack. Alamat IP apa pun dalam jaringan ini hanya dapat diakses di dalam datacetner- Jaringan Tamu - Digunakan untuk Komunikasi Antara Instance/VM
- Jaringan API - Digunakan untuk Komunikasi API Layanan. Alamat IP apa pun di jaringan ini dapat diakses secara publik
- Jaringan Eksternal - digunakan untuk komunikasi publik. Alamat IP apa pun di jaringan ini dapat diakses oleh siapa pun di internet
Dalam urutan mana Anda harus menghapus entitas berikut:- Jaringan
- Pelabuhan
- Perute
- Subnet
- Jaringan
- router
- subnet
- port
Ada banyak alasan untuk itu. Satu misalnya: Anda tidak dapat menghapus router jika ada port aktif yang ditetapkan untuk itu.
Apa itu jaringan penyedia?
Komponen dan layanan apa yang ada untuk L2 dan L3?
Apa plug-in ML2? Jelaskan arsitekturnya
Apa itu agen L2? Bagaimana cara kerjanya dan apa yang bertanggung jawab?
Apa itu agen L3? Bagaimana cara kerjanya dan apa yang bertanggung jawab?
Jelaskan apa yang bertanggung jawab atas agen metadata
Apa yang didukung Neutron Entities Neutron?
Bagaimana Anda men -debug masalah jaringan OpenStack? (alat, log, ...)
OpenStack - pandangan sekilas
Jelaskan pandangannya secara terperinci
Pandangan sekilas adalah Layanan Gambar OpenStack- Itu menangani permintaan yang terkait dengan disk dan gambar
- Glance also used for creating snapshots for quick instances backups
- Users can use Glance to create new images or upload existing ones
Describe Glance architecture
glance-api - responsible for handling image API calls such as retrieval and storage. It consists of two APIs: 1. registry-api - responsible for internal requests 2. user API - can be accessed publicly- glance-registry - responsible for handling image metadata requests (eg size, type, etc). This component is private which means it's not available publicly
- metadata definition service - API for custom metadata
- database - for storing images metadata
- image repository - for storing images. This can be a filesystem, swift object storage, HTTP, etc.
OpenStack - Swift
Explain Swift in detail
Swift is Object Store service and is an highly available, distributed and consistent store designed for storing a lot of data- Swift is distributing data across multiple servers while writing it to multiple disks
- One can choose to add additional servers to scale the cluster. All while swift maintaining integrity of the information and data replications.
Can users store by default an object of 100GB in size?
Not by default. Object Storage API limits the maximum to 5GB per object but it can be adjusted.
Explain the following in regards to Swift:
Container - Defines a namespace for objects.- Account - Defines a namespace for containers
- Object - Data content (eg image, document, ...)
Benar atau Salah? there can be two objects with the same name in the same container but not in two different containers
PALSU. Two objects can have the same name if they are in different containers.
OpenStack - Cinder
Explain Cinder in detail
Cinder is OpenStack Block Storage service- It basically provides used with storage resources they can consume with other services such as Nova
- One of the most used implementations of storage supported by Cinder is LVM
- From user perspective this is transparent which means the user doesn't know where, behind the scenes, the storage is located or what type of storage is used
Describe Cinder's components
cinder-api - receives API requests- cinder-volume - manages attached block devices
- cinder-scheduler - responsible for storing volumes
OpenStack - Keystone
Can you describe the following concepts in regards to Keystone?- Peran
- Tenant/Project
- Melayani
- Titik akhir
- Token
Role - A list of rights and privileges determining what a user or a project can perform- Tenant/Project - Logical representation of a group of resources isolated from other groups of resources. It can be an account, organization, ...
- Service - An endpoint which the user can use for accessing different resources
- Endpoint - a network address which can be used to access a certain OpenStack service
- Token - Used for access resources while describing which resources can be accessed by using a scope
What are the properties of a service? In other words, how a service is identified?
Menggunakan:
Nama- nomor identitas
- Jenis
- Keterangan
Explain the following: - PublicURL - InternalURL - AdminURL
PublicURL - Publicly accessible through public internet- InternalURL - Used for communication between services
- AdminURL - Used for administrative management
What is a service catalog?
A list of services and their endpoints
OpenStack Advanced - Services
Describe each of the following services- Cepat
- Sahara
- Ironis
- Harta karun
- Aodh
- Ceilometer
Swift - highly available, distributed, eventually consistent object/blob store- Sahara - Manage Hadoop Clusters
- Ironic - Bare Metal Provisioning
- Trove - Database as a service that runs on OpenStack
- Aodh - Alarms Service
- Ceilometer - Track and monitor usage
Identify the service/project used for each of the following:- Database as a service which runs on OpenStack
- Bare Metal Provisioning
- Track and monitor usage
- Alarms Service
- Manage Hadoop Clusters
- highly available, distributed, eventually consistent object/blob store
Database as a service which runs on OpenStack - Trove- Bare Metal Provisioning - Ironic
- Track and monitor usage - Ceilometer
- Alarms Service - Aodh
- Manage Hadoop Clusters
- Manage Hadoop Clusters - Sahara
- highly available, distributed, eventually consistent object/blob store - Swift
OpenStack Advanced - Keystone
Can you describe Keystone service in detail?
You can't have OpenStack deployed without Keystone- It Provides identity, policy and token services
- The authentication provided is for both users and services
- The authorization supported is token-based and user-based.
- There is a policy defined based on RBAC stored in a JSON file and each line in that file defines the level of access to apply
Describe Keystone architecture
There is a service API and admin API through which Keystone gets requests- Keystone has four backends:
- Token Backend - Temporary Tokens for users and services
- Policy Backend - Rules management and authorization
- Identity Backend - users and groups (either standalone DB, LDAP, ...)
- Catalog Backend - Endpoints
- It has pluggable environment where you can integrate with:
- KVS (Key Value Store)
- SQL
- PAM
- Memcache
Describe the Keystone authentication process
Keystone gets a call/request and checks whether it's from an authorized user, using username, password and authURL- Once confirmed, Keystone provides a token.
- A token contains a list of user's projects so there is no to authenticate every time and a token can submitted instead
OpenStack Advanced - Compute (Nova)
What each of the following does?:- nova-api
- nova-compuate
- nova-conductor
- nova-cert
- nova-consoleauth
- nova-scheduler
nova-api - responsible for managing requests/calls- nova-compute - responsible for managing instance lifecycle
- nova-conductor - Mediates between nova-compute and the database so nova-compute doesn't access it directly
What types of Nova proxies are you familiar with?
Nova-novncproxy - Access through VNC connections- Nova-spicehtml5proxy - Access through SPICE
- Nova-xvpvncproxy - Access through a VNC connection
OpenStack Advanced - Networking (Neutron)
Explain BGP dynamic routing
What is the role of network namespaces in OpenStack?
OpenStack Advanced - Horizon
Can you describe Horizon in detail?
Django-based project focusing on providing an OpenStack dashboard and the ability to create additional customized dashboards- You can use it to access the different OpenStack services resources - instances, images, networks, ...
- By accessing the dashboard, users can use it to list, create, remove and modify the different resources
- It's also highly customizable and you can modify or add to it based on your needs
What can you tell about Horizon architecture?
API is backward compatible- There are three type of dashboards: user, system and settings
- It provides core support for all OpenStack core projects such as Neutron, Nova, etc. (out of the box, no need to install extra packages or plugins)
- Anyone can extend the dashboards and add new components
- Horizon provides templates and core classes from which one can build its own dashboard
Wayang
What is Puppet? How does it works?
- Puppet is a configuration management tool ensuring that all systems are configured to a desired and predictable state.
Explain Puppet architecture
- Puppet has a primary-secondary node architecture. The clients are distributed across the network and communicate with the primary-secondary environment where Puppet modules are present. The client agent sends a certificate with its ID to the server; the server then signs that certificate and sends it back to the client. This authentication allows for secure and verifiable communication between the client and the master.
Can you compare Puppet to other configuration management tools? Why did you chose to use Puppet?
- Puppet is often compared to other configuration management tools like Chef, Ansible, SaltStack, and cfengine. The choice to use Puppet often depends on an organization's needs, such as ease of use, scalability, and community support.
Explain the following:
Modules - are a collection of manifests, templates, and files- Manifests - are the actual codes for configuring the clients
- Node - allows you to assign specific configurations to specific nodes
Explain Facter
- Facter is a standalone tool in Puppet that collects information about a system and its configuration, such as the operating system, IP addresses, memory, and network interfaces. This information can be used in Puppet manifests to make decisions about how resources should be managed, and to customize the behavior of Puppet based on the characteristics of the system. Facter is integrated into Puppet, and its facts can be used within Puppet manifests to make decisions about resource management.
What is MCollective?
- MCollective is a middleware system that integrates with Puppet to provide orchestration, remote execution, and parallel job execution capabilities.
Do you have experience with writing modules? Which module have you created and for what?
Explain what is Hiera
- Hiera is a hierarchical data store in Puppet that is used to separate data from code, allowing data to be more easily separated, managed, and reused.
Elastis
What is the Elastic Stack?
The Elastic Stack consists of:
- Pencarian elastis
- Kibana
- Logstash
- mengalahkan
- Elastic Hadoop
- APM Server
Elasticsearch, Logstash and Kibana are also known as the ELK stack.
Explain what is Elasticsearch
From the official docs:
"Elasticsearch is a distributed document store. Instead of storing information as rows of columnar data, Elasticsearch stores complex data structures that have been serialized as JSON documents"
What is Logstash?
From the blog:
"Logstash is a powerful, flexible pipeline that collects, enriches and transports data. It works as an extract, transform & load (ETL) tool for collecting log messages."
Explain what beats are
Beats are lightweight data shippers. These data shippers installed on the client where the data resides. Examples of beats: Filebeat, Metricbeat, Auditbeat. There are much more.
What is Kibana?
From the official docs:
"Kibana is an open source analytics and visualization platform designed to work with Elasticsearch. You use Kibana to search, view, and interact with data stored in Elasticsearch indices. You can easily perform advanced data analysis and visualize your data in a variety of charts, tables, and maps."
Describe what happens from the moment an app logged some information until it's displayed to the user in a dashboard when the Elastic stack is used
The process may vary based on the chosen architecture and the processing you may want to apply to the logs. One possible workflow is:
The data logged by the application is picked by filebeat and sent to logstash- Logstash process the log based on the defined filters. Once done, the output is sent to Elasticsearch
- Elasticsearch stores the document it got and the document is indexed for quick future access
- The user creates visualizations in Kibana which based on the indexed data
- The user creates a dashboard which composed out of the visualization created in the previous step
Pencarian elastis
What is a data node?
This is where data is stored and also where different processing takes place (eg when you search for a data).
What is a master node?
Part of a master node responsibilities:
- Track the status of all the nodes in the cluster
- Verify replicas are working and the data is available from every data node.
- No hot nodes (no data node that works much harder than other nodes)
While there can be multiple master nodes in reality only of them is the elected master node.
What is an ingest node?
A node which responsible for processing the data according to ingest pipeline. In case you don't need to use logstash then this node can receive data from beats and process it, similarly to how it can be processed in Logstash.
What is Coordinating only node?
From the official docs:
Coordinating only nodes can benefit large clusters by offloading the coordinating node role from data and master-eligible nodes. They join the cluster and receive the full cluster state, like every other node, and they use the cluster state to route requests directly to the appropriate place(s).
How data is stored in Elasticsearch?
Data is stored in an index- The index is spread across the cluster using shards
What is an Index?
Index in Elasticsearch is in most cases compared to a whole database from the SQL/NoSQL world.
You can choose to have one index to hold all the data of your app or have multiple indices where each index holds different type of your app (eg index for each service your app is running).
The official docs also offer a great explanation (in general, it's really good documentation, as every project should have):
"An index can be thought of as an optimized collection of documents and each document is a collection of fields, which are the key-value pairs that contain your data"
Explain Shards
An index is split into shards and documents are hashed to a particular shard. Each shard may be on a different node in a cluster and each one of the shards is a self contained index.
This allows Elasticsearch to scale to an entire cluster of servers.
What is an Inverted Index?
From the official docs:
"An inverted index lists every unique word that appears in any document and identifies all of the documents each word occurs in."
What is a Document?
Continuing with the comparison to SQL/NoSQL a Document in Elasticsearch is a row in table in the case of SQL or a document in a collection in the case of NoSQL. As in NoSQL a document is a JSON object which holds data on a unit in your app. What is this unit depends on the your app. If your app related to book then each document describes a book. If you are app is about shirts then each document is a shirt.
You check the health of your elasticsearch cluster and it's red. Apa maksudnya? What can cause the status to be yellow instead of green?
Red means some data is unavailable in your cluster. Some shards of your indices are unassigned. There are some other states for the cluster. Yellow means that you have unassigned shards in the cluster. You can be in this state if you have single node and your indices have replicas. Green means that all shards in the cluster are assigned to nodes and your cluster is healthy.
Benar atau Salah? Elasticsearch indexes all data in every field and each indexed field has the same data structure for unified and quick query ability
PALSU. From the official docs:
"Each indexed field has a dedicated, optimized data structure. For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees."
What reserved fields a document has?
Explain Mapping
What are the advantages of defining your own mapping? (or: when would you use your own mapping?)
You can optimize fields for partial matching- You can define custom formats of known fields (eg date)
- You can perform language-specific analysis
Explain Replicas
In a network/cloud environment where failures can be expected any time, it is very useful and highly recommended to have a failover mechanism in case a shard/node somehow goes offline or disappears for whatever reason. To this end, Elasticsearch allows you to make one or more copies of your index's shards into what are called replica shards, or replicas for short.
Can you explain Term Frequency & Document Frequency?
Term Frequency is how often a term appears in a given document and Document Frequency is how often a term appears in all documents. They both are used for determining the relevance of a term by calculating Term Frequency / Document Frequency.
You check "Current Phase" under "Index lifecycle management" and you see it's set to "hot". Apa maksudnya?
"The index is actively being written to". More about the phases here
What this command does? curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'{ "name": "John Doe" }'
It creates customer index if it doesn't exists and adds a new document with the field name which is set to "John Dow". Also, if it's the first document it will get the ID 1.
What will happen if you run the previous command twice? What about running it 100 times?
If name value was different then it would update "name" to the new value- In any case, it bumps version field by one
What is the Bulk API? Untuk apa Anda menggunakannya?
Bulk API is used when you need to index multiple documents. For high number of documents it would be significantly faster to use rather than individual requests since there are less network roundtrips.
Query DSL
Explain Elasticsearch query syntax (Booleans, Fields, Ranges)
Explain what is Relevance Score
Explain Query Context and Filter Context
From the official docs:
"In the query context, a query clause answers the question “How well does this document match this query clause?” Besides deciding whether or not the document matches, the query clause also calculates a relevance score in the _score meta-field."
"In a filter context, a query clause answers the question “Does this document match this query clause?” The answer is a simple Yes or No — no scores are calculated. Filter context is mostly used for filtering structured data"
Describe how would an architecture of production environment with large amounts of data would be different from a small-scale environment
There are several possible answers for this question. One of them is as follows:
A small-scale architecture of elastic will consist of the elastic stack as it is. This means we will have beats, logstash, elastcsearch and kibana.
A production environment with large amounts of data can include some kind of buffering component (eg Reddis or RabbitMQ) and also security component such as Nginx.
Logstash
What are Logstash plugins? What plugins types are there?
Input Plugins - how to collect data from different sources- Filter Plugins - processing data
- Output Plugins - push data to different outputs/services/platforms
What is grok?
A logstash plugin which modifies information in one format and immerse it in another.
How grok works?
What grok patterns are you familiar with?
What is `_grokparsefailure?`
How do you test or debug grok patterns?
What are Logstash Codecs? What codecs are there?
Kibana
What can you find under "Discover" in Kibana?
The raw data as it is stored in the index. You can search and filter it.
You see in Kibana, after clicking on Discover, "561 hits". Apa maksudnya?
Total number of documents matching the search results. If not query used then simply the total number of documents.
What can you find under "Visualize"?
"Visualize" is where you can create visual representations for your data (pie charts, graphs, ...)
What visualization types are supported/included in Kibana?
What visualization type would you use for statistical outliers
Describe in detail how do you create a dashboard in Kibana
Filebeat
What is Filebeat?
Filebeat is used to monitor the logging directories inside of VMs or mounted as a sidecar if exporting logs from containers, and then forward these logs onward for further processing, usually to logstash.
If one is using ELK, is it a must to also use filebeat? In what scenarios it's useful to use filebeat?
Filebeat is a typical component of the ELK stack, since it was developed by Elastic to work with the other products (Logstash and Kibana). It's possible to send logs directly to logstash, though this often requires coding changes for the application. Particularly for legacy applications with little test coverage, it might be a better option to use filebeat, since you don't need to make any changes to the application code.
What is a harvester?
Baca di sini
Benar atau Salah? a single harvester harvest multiple files, according to the limits set in filebeat.yml
PALSU. One harvester harvests one file.
What are filebeat modules?
These are pre-configured modules for specific types of logging locations (eg, Traefik, Fargate, HAProxy) to make it easy to configure forwarding logs using filebeat. They have different configurations based on where you're collecting logs from.
Elastic Stack
How do you secure an Elastic Stack?
You can generate certificates with the provided elastic utils and change configuration to enable security using certificates model.
Didistribusikan
Explain Distributed Computing (or Distributed System)
According to Martin Kleppmann:
"Many processes running on many machines...only message-passing via an unreliable network with variable delays, and the system may suffer from partial failures, unreliable clocks, and process pauses."
Another definition: "Systems that are physically separated, but logically connected"
What can cause a system to fail?
Jaringan- CPU
- Ingatan
- Disk
Do you know what is "CAP theorem"? (aka as Brewer's theorem)
According to the CAP theorem, it's not possible for a distributed data store to provide more than two of the following at the same time:
Availability: Every request receives a response (it doesn't has to be the most recent data)- Consistency: Every request receives a response with the latest/most recent data
- Partition tolerance: Even if some the data is lost/dropped, the system keeps running
What are the problems with the following design? How to improve it?
1. The transition can take time. In other words, noticeable downtime. 2. Standby server is a waste of resources - if first application server is running then the standby does nothing What are the problems with the following design? How to improve it?
Issues: If load balancer dies , we lose the ability to communicate with the application. Cara untuk meningkatkan:
Add another load balancer- Use DNS A record for both load balancers
- Use message queue
What is "Shared-Nothing" architecture?
It's an architecture in which data is and retrieved from a single, non-shared, source usually exclusively connected to one node as opposed to architectures where the request can get to one of many nodes and the data will be retrieved from one shared location (storage, memory, ...).
Explain the Sidecar Pattern (Or sidecar proxy)
Lain-lain
Nama | Topik | Objective & Instructions | Larutan | Komentar |
---|
Highly Available "Hello World" | Latihan | Larutan | | |
What happens when you type in a URL in an address bar in a browser?
- The browser searches for the record of the domain name IP address in the DNS in the following order:
- Browser cache
- Operating system cache
- The DNS server configured on the user's system (can be ISP DNS, public DNS, ...)
- If it couldn't find a DNS record locally, a full DNS resolution is started.
- It connects to the server using the TCP protocol
- The browser sends an HTTP request to the server
- The server sends an HTTP response back to the browser
- The browser renders the response (eg HTML)
- The browser then sends subsequent requests as needed to the server to get the embedded links, javascript, images in the HTML and then steps 3 to 5 are repeated.
TODO: add more details!
API
Explain what is an API
I like this definition from blog.christianposta.com:
"An explicitly and purposefully defined interface designed to be invoked over a network that enables software developers to get programmatic access to data and functionality within an organization in a controlled and comfortable way."
What is an API specification?
From swagger.io:
"An API specification provides a broad understanding of how an API behaves and how the API links with other APIs. It explains how the API functions and the results to expect when using the API"
Benar atau Salah? API Definition is the same as API Specification
PALSU. From swagger.io:
"An API definition is similar to an API specification in that it provides an understanding of how an API is organized and how the API functions. But the API definition is aimed at machine consumption instead of human consumption of APIs."
What is an API gateway?
An API gateway is like the gatekeeper that controls how different parts talk to each other and how information is exchanged between them.
The API gateway provides a single point of entry for all clients, and it can perform several tasks, including routing requests to the appropriate backend service, load balancing, security and authentication, rate limiting, caching, and monitoring.
By using an API gateway, organizations can simplify the management of their APIs, ensure consistent security and governance, and improve the performance and scalability of their backend services. They are also commonly used in microservices architectures, where there are many small, independent services that need to be accessed by different clients.
What are the advantages of using/implementing an API gateway?
Keuntungan:
- Simplifies API management: Provides a single entry point for all requests, which simplifies the management and monitoring of multiple APIs.
- Improves security: Able to implement security features like authentication, authorization, and encryption to protect the backend services from unauthorized access.
- Enhances scalability: Can handle traffic spikes and distribute requests to backend services in a way that maximizes resource utilization and improves overall system performance.
- Enables service composition: Can combine different backend services into a single API, providing more granular control over the services that clients can access.
- Facilitates integration with external systems: Can be used to expose internal services to external partners or customers, making it easier to integrate with external systems and enabling new business models.
What is a Payload in API?
What is Automation? How it's related or different from Orchestration?
Automation is the act of automating tasks to reduce human intervention or interaction in regards to IT technology and systems.
While automation focuses on a task level, Orchestration is the process of automating processes and/or workflows which consists of multiple tasks that usually across multiple systems.
Tell me about interesting bugs you've found and also fixed
What is a Debugger and how it works?
What services an application might have?
Otorisasi- Pencatatan
- Otentikasi
- Pemesanan
- Front-end
- Back-end ...
What is Metadata?
Data about data. Basically, it describes the type of information that an underlying data will hold.
You can use one of the following formats: JSON, YAML, XML. Which one would you use? Mengapa?
I can't answer this for you :)
What's KPI?
What's OKR?
What's DSL (Domain Specific Language)?
Domain Specific Language (DSLs) are used to create a customised language that represents the domain such that domain experts can easily interpret it.
What's the difference between KPI and OKR?
YAML
What is YAML?
Data serialization language used by many technologies today like Kubernetes, Ansible, etc.
Benar atau Salah? Any valid JSON file is also a valid YAML file
BENAR. Because YAML is superset of JSON.
What is the format of the following data? {
applications: [
{
name: "my_app",
language: "python",
version: 20.17
}
]
}
JSON What is the format of the following data? applications:
- app: "my_app"
language: "python"
version: 20.17
YAML How to write a multi-line string with YAML? What use cases is it good for?
someMultiLineString: | look mama I can write a multi-line string I love YAML
It's good for use cases like writing a shell script where each line of the script is a different command.
What is the difference between someMultiLineString: |
to someMultiLineString: >
?
using >
will make the multi-line string to fold into a single line
someMultiLineString: >
This is actually
a single line
do not let appearances fool you
What are placeholders in YAML?
They allow you reference values instead of directly writing them and it is used like this:
username: {{ my.user_name }}
How can you define multiple YAML components in one file?
Using this: ---
For Examples:
document_number: 1
---
document_number: 2
Firmware
Explain what is a firmware
Wikipedia: "In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide hardware abstraction services to higher-level software such as operating systems."
Cassandra
When running a cassandra cluster, how often do you need to run nodetool repair in order to keep the cluster consistent?- Within the columnFamily GC-grace Once a week
- Less than the compacted partition minimum bytes
- Depended on the compaction strategy
HTTP
Apa itu http?
Avinetworks: HTTP stands for Hypertext Transfer Protocol. HTTP uses TCP port 80 to enable internet communication. It is part of the Application Layer (L7) in OSI Model.
Describe HTTP request lifecycle
Resolve host by request to DNS resolver- Client SYN
- Server SYN+ACK
- Client SYN
- HTTP request
- Respons HTTP
Benar atau Salah? HTTP is stateful
PALSU. It doesn't maintain state for incoming request.
How HTTP request looks like?
Ini terdiri dari:
Request line - request type- Headers - content info like length, encoding, etc.
- Body (not always included)
What HTTP method types are there?
MENDAPATKAN- POS
- KEPALA
- MELETAKKAN
- MENGHAPUS
- MENGHUBUNGKAN
- OPSI
- JEJAK
What HTTP response codes are there?
1xx - informational- 2xx - Success
- 3xx - Redirect
- 4xx - Error, client fault
- 5xx - Error, server fault
What is HTTPS?
HTTPS is a secure version of the HTTP protocol used to transfer data between a web browser and a web server. It encrypts the communication using SSL/TLS encryption to ensure that the data is private and secure.
Learn more: https://www.cloudflare.com/learning/ssl/why-is-http-not-secure/
Explain HTTP Cookies
HTTP is stateless. To share state, we can use Cookies.
TODO: explain what is actually a Cookie
What is HTTP Pipelining?
You get "504 Gateway Timeout" error from an HTTP server. Apa maksudnya?
The server didn't receive a response from another server it communicates with in a timely manner.
Apa itu proksi?
A proxy is a server that acts as a middleman between a client device and a destination server. It can help improve privacy, security, and performance by hiding the client's IP address, filtering content, and caching frequently accessed data.
- Proxies can be used for load balancing, distributing traffic across multiple servers to help prevent server overload and improve website or application performance. They can also be used for data analysis, as they can log requests and traffic, providing useful insights into user behavior and preferences.
What is a reverse proxy?
A reverse proxy is a type of proxy server that sits between a client and a server, but it is used to manage traffic going in the opposite direction of a traditional forward proxy. In a forward proxy, the client sends requests to the proxy server, which then forwards them to the destination server. However, in a reverse proxy, the client sends requests to the destination server, but the requests are intercepted by the reverse proxy before they reach the server.
- They're commonly used to improve web server performance, provide high availability and fault tolerance, and enhance security by preventing direct access to the back-end server. They are often used in large-scale web applications and high-traffic websites to manage and distribute requests to multiple servers, resulting in improved scalability and reliability.
When you publish a project, you usually publish it with a license. What types of licenses are you familiar with and which one do you prefer to use?
Explain what is "X-Forwarded-For"
Wikipedia: "The X-Forwarded-For (XFF) HTTP header field is a common method for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer."
Load Balancers
What is a load balancer?
A load balancer accepts (or denies) incoming network traffic from a client, and based on some criteria (application related, network, etc.) it distributes those communications out to servers (at least one).
Why to used a load balancer?
Scalability - using a load balancer, you can possibly add more servers in the backend to handle more requests/traffic from the clients, as opposed to using one server.- Redundancy - if one server in the backend dies, the load balancer will keep forwarding the traffic/requests to the second server so users won't even notice one of the servers in the backend is down.
What load balancer techniques/algorithms are you familiar with?
Usul- Robin Bulat Tertimbang
- Least Connection
- Weighted Least Connection
- Resource Based
- Fixed Weighting
- Weighted Response Time
- Source IP Hash
- URL Hash
What are the drawbacks of round robin algorithm in load balancing?
A simple round robin algorithm knows nothing about the load and the spec of each server it forwards the requests to. It is possible, that multiple heavy workloads requests will get to the same server while other servers will got only lightweight requests which will result in one server doing most of the work, maybe even crashing at some point because it unable to handle all the heavy workloads requests by its own.- Each request from the client creates a whole new session. This might be a problem for certain scenarios where you would like to perform multiple operations where the server has to know about the result of operation so basically, being sort of aware of the history it has with the client. In round robin, first request might hit server X, while second request might hit server Y and ask to continue processing the data that was processed on server X already.
What is an Application Load Balancer?
In which scenarios would you use ALB?
At what layers a load balancer can operate?
L4 and L7
Can you perform load balancing without using a dedicated load balancer instance?
Yes, you can use DNS for performing load balancing.
What is DNS load balancing? What its advantages? When would you use it?
Load Balancers - Sticky Sessions
What are sticky sessions? What are their pros and cons?
Recommended read:
Kekurangan:
Can cause uneven load on instance (since requests routed to the same instances) Pros:- Ensures in-proc sessions are not lost when a new request is created
Name one use case for using sticky sessions
You would like to make sure the user doesn't lose the current session data.
What sticky sessions use for enabling the "stickiness"?
kue. There are application based cookies and duration based cookies.
Explain application-based cookies
Generated by the application and/or the load balancer- Usually allows to include custom data
Explain duration-based cookies
Generated by the load balancer- Session is not sticky anymore once the duration elapsed
Load Balancers - Load Balancing Algorithms
Explain each of the following load balancing techniques- Usul
- Robin Bulat Tertimbang
- Least Connection
- Weighted Least Connection
- Resource Based
- Fixed Weighting
- Weighted Response Time
- Source IP Hash
- URL Hash
Explain use case for connection draining?
To ensure that a Classic Load Balancer stops sending requests to instances that are de-registering or unhealthy, while keeping the existing connections open, use connection draining. This enables the load balancer to complete in-flight requests made to instances that are de-registering or unhealthy. The maximum timeout value can be set between 1 and 3,600 seconds on both GCP and AWS.
Lisensi
Are you familiar with "Creative Commons"? Apa yang kamu ketahui tentang hal itu?
The Creative Commons license is a set of copyright licenses that allow creators to share their work with the public while retaining some control over how it can be used. The license was developed as a response to the restrictive standards of traditional copyright laws, which limited access of creative works. Its creators to choose the terms under which their works can be shared, distributed, and used by others. They're six main types of Creative Commons licenses, each with different levels of restrictions and permissions, the six licenses are:
- Attribution (CC BY): Allows others to distribute, remix, and build upon the work, even commercially, as long as they credit the original creator.
- Attribution-ShareAlike (CC BY-SA): Allows others to remix and build upon the work, even commercially, as long as they credit the original creator and release any new creations under the same license.
- Attribution-NoDerivs (CC BY-ND): Allows others to distribute the work, even commercially, but they cannot remix or change it in any way and must credit the original creator.
- Attribution-NonCommercial (CC BY-NC): Allows others to remix and build upon the work, but they cannot use it commercially and must credit the original creator.
- Attribution-NonCommercial-ShareAlike (CC BY-NC-SA): Allows others to remix and build upon the work, but they cannot use it commercially, must credit the original creator, and must release any new creations under the same license.
- Attribution-NonCommercial-NoDerivs (CC BY-NC-ND): Allows others to download and share the work, but they cannot use it commercially, remix or change it in any way, and must credit the original creator.
Simply stated, the Creative Commons licenses are a way for creators to share their work with the public while retaining some control over how it can be used. The licenses promote creativity, innovation, and collaboration, while also respecting the rights of creators while still encouraging the responsible use of creative works.
More information: https://creativecommons.org/licenses/
Explain the differences between copyleft and permissive licenses
In Copyleft, any derivative work must use the same licensing while in permissive licensing there are no such condition. GPL-3 is an example of copyleft license while BSD is an example of permissive license.
Acak
How a search engine works?
How auto completion works?
What is faster than RAM?
CPU cache. Sumber
What is a memory leak?
A memory leak is a programming error that occurs when a program fails to release memory that is no longer needed, causing the program to consume increasing amounts of memory over time.
The leaks can lead to a variety of problems, including system crashes, performance degradation, and instability. Usually occurring after failed maintenance on older systems and compatibility with new components over time.
What is your favorite protocol?
SSH HTTP DHCP DNS ...
What is Cache API?
What is the C10K problem? Is it relevant today?
https://idiallo.com/blog/c10k-2016
Penyimpanan
What types of storage are there?
Mengajukan- Memblokir
- Obyek
Explain Object Storage
Data is divided to self-contained objects- Objects can contain metadata
What are the pros and cons of object storage?
Kelebihan:
Usually with object storage, you pay for what you use as opposed to other storage types where you pay for the storage space you allocate- Scalable storage: Object storage mostly based on a model where what you use, is what you get and you can add storage as need Cons:
- Usually performs slower than other types of storage
- No granular modification: to change an object, you have re-create it
What are some use cases for using object storage?
Explain File Storage
File Storage used for storing data in files, in a hierarchical structure- Some of the devices for file storage: hard drive, flash drive, cloud-based file storage
- Files usually organized in directories
What are the pros and cons of File Storage?
Kelebihan:
Users have full control of their own files and can run variety of operations on the files: delete, read, write and move.- Security mechanism allows for users to have a better control at things such as file locking
What are some examples of file storage?
Local filesystem Dropbox Google Drive
What types of storage devices are there?
Explain IOPS
Explain storage throughput
What is a filesystem?
A file system is a way for computers and other electronic devices to organize and store data files. It provides a structure that helps to organize data into files and directories, making it easier to find and manage information. A file system is crucial for providing a way to store and manage data in an organized manner.
Commonly used filed systems: Windows:
Mac OS:
Explain Dark Data
Explain MBR
Questions you CAN ask
A list of questions you as a candidate can ask the interviewer during or after the interview. These are only a suggestion, use them carefully. Not every interviewer will be able to answer these (or happy to) which should be perhaps a red flag warning for your regarding working in such place but that's really up to you.
What do you like about working here?
How does the company promote personal growth?
What is the current level of technical debt you are dealing with?
Be careful when asking this question - all companies, regardless of size, have some level of tech debt. Phrase the question in the light that all companies have the deal with this, but you want to see the current pain points they are dealing with
This is a great way to figure how managers deal with unplanned work, and how good they are at setting expectations with projects.
Why I should NOT join you? (or 'what you don't like about working here?')
What was your favorite project you've worked on?
This can give you insights in some of the cool projects a company is working on, and if you would enjoy working on projects like these. This is also a good way to see if the managers are allowing employees to learn and grow with projects outside of the normal work you'd do.
If you could change one thing about your day to day, what would it be?
Similar to the tech debt question, this helps you identify any pain points with the company. Additionally, it can be a great way to show how you'd be an asset to the team.
For Example, if they mention they have problem X, and you've solved that in the past, you can show how you'd be able to mitigate that problem.
Let's say that we agree and you hire me to this position, after X months, what do you expect that I have achieved?
Not only this will tell you what is expected from you, it will also provide big hint on the type of work you are going to do in the first months of your job.
Pengujian
Explain white-box testing
Explain black-box testing
What are unit tests?
Unit test are a software testing technique that involves systimatically breaking down a system and testing each individual part of the assembly. These tests are automated and can be run repeatedly to allow developers to catch edge case scenarios or bugs quickly while developing.
The main objective of unit tests are to verify each function is producing proper outputs given a set of inputs.
What types of tests would you run to test a web application?
Explain test harness?
What is A/B testing?
What is network simulation and how do you perform it?
What types of performances tests are you familiar with?
Explain the following types of tests:- Load Testing
- Stress Testing
- Capacity Testing
- Volume Testing
- Endurance Testing
Regex
Given a text file, perform the following exercises
Ekstrak
Extract all the numbers
Extract the first word of each line
"^w+" Bonus: extract the last word of each line
-
"w+(?=W*$)" (in most cases, depends on line formatting)
Extract all the IP addresses
- "b(?:d{1,3} .){3}d{1,3}b" IPV4:(This format looks for 1 to 3 digit sequence 3 times)
Extract dates in the format of yyyy-mm-dd or yyyy-dd-mm
Extract email addresses
- "b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+ .[A-Za-z]{2,}b"
Mengganti
Replace tabs with four spaces
Replace 'red' with 'green'
Desain Sistem
Explain what a "single point of failure" is.
A "single point of failure", in a system or organization, if it were to fail would cause the entire system to fail or significantly disrupt it's operation. In other words, it is a vulnerability where there is no backup in place to compensate for the failure. What is CDN?
CDN (Content Delivery Network) responsible for distributing content geographically. Part of it, is what is known as edge locations, aka cache proxies, that allows users to get their content quickly due to cache features and geographical distribution.
Explain Multi-CDN
In single CDN, the whole content is originated from content delivery network.
In multi-CDN, content is distributed across multiple different CDNs, each might be on a completely different provider/cloud.
What are the benefits of Multi-CDN over a single CDN?
Resiliency: Relying on one CDN means no redundancy. With multiple CDNs you don't need to worry about your CDN being down- Flexibility in Costs: Using one CDN enforces you to specific rates of that CDN. With multiple CDNs you can take into consideration using less expensive CDNs to deliver the content.
- Performance: With Multi-CDN there is bigger potential in choosing better locations which more close to the client asking the content
- Scale: With multiple CDNs, you can scale services to support more extreme conditions
Explain "3-Tier Architecture" (including pros and cons)
A "3-Tier Architecture" is a pattern used in software development for designing and structuring applications. It divides the application into 3 interconnected layers: Presentation, Business logic and Data storage. PROS: * Scalability * Security * Reusability CONS: * Complexity * Performance overhead * Cost and development time Explain Mono-repo vs. Multi-repo.What are the cons and pros of each approach?
In a Mono-repo, all the code for an organization is stored in a single,centralized repository. PROS (Mono-repo): * Unified tooling * Code Sharing CONS (Mono-repo): * Increased complexity * Slower cloning In a Multi-repo setup, each component is stored in it's own separate repository. Each repository has it's own version control history. PROS (Multi-repo):
Simpler to manage- Different teams and developers can work on different parts of the project independently, making parallel development easier. CONS (Multi-repo):
- Code duplication
- Integration challenges
What are the drawbacks of monolithic architecture?
Not suitable for frequent code changes and the ability to deploy new features- Not designed for today's infrastructure (like public clouds)
- Scaling a team to work monolithic architecture is more challenging
- If a single component in this architecture fails, then the entire application fails.
What are the advantages of microservices architecture over a monolithic architecture?
Each of the services individually fail without escalating into an application-wide outage.- Each service can be developed and maintained by a separate team and this team can choose its own tools and coding language
What's a service mesh?
It is a layer that facilitates communication management and control between microservices in a containerized application. It handles tasks such as load balancing, encryption, and monitoring. Explain "Loose Coupling"
In "Loose Coupling", components of a system communicate with each other with a little understanding of each other's internal workings. This improves scalability and ease of modification in complex systems. What is a message queue? When is it used?
It is a communication mechanism used in distributed systems to enable asynchronous communication between different components. It is generally used when the systems use a microservices approach. Skalabilitas
Explain Scalability
The ability easily grow in size and capacity based on demand and usage.
Explain Elasticity
The ability to grow but also to reduce based on what is required
Explain Disaster Recovery
Disaster recovery is the process of restoring critical business systems and data after a disruptive event. The goal is to minimize the impact and resume normal business activities quickly. This involves creating a plan, testing it, backing up critical data, and storing it in safe locations. In case of a disaster, the plan is then executed, backups are restored, and systems are hopefully brought back online. The recovery process may take hours or days depending on the damages of infrastructure. This makes business planning important, as a well-designed and tested disaster recovery plan can minimize the impact of a disaster and keep operations going.
Explain Fault Tolerance and High Availability
Fault Tolerance - The ability to self-heal and return to normal capacity. Also the ability to withstand a failure and remain functional.
High Availability - Being able to access a resource (in some use cases, using different platforms)
What is the difference between high availability and Disaster Recovery?
wintellect.com: "High availability, simply put, is eliminating single points of failure and disaster recovery is the process of getting a system back to an operational state when a system is rendered inoperative. In essence, disaster recovery picks up when high availability fails, so HA first."
Explain Vertical Scaling
Vertical Scaling is the process of adding resources to increase power of existing servers. For example, adding more CPUs, adding more RAM, etc.
What are the disadvantages of Vertical Scaling?
With vertical scaling alone, the component still remains a single point of failure. In addition, it has hardware limit where if you don't have more resources, you might not be able to scale vertically.
Which type of cloud services usually support vertical scaling?
Databases, cache. It's common mostly for non-distributed systems.
Explain Horizontal Scaling
Horizontal Scaling is the process of adding more resources that will be able handle requests as one unit
What is the disadvantage of Horizontal Scaling? What is often required in order to perform Horizontal Scaling?
A load balancer. You can add more resources, but if you would like them to be part of the process, you have to serve them the requests/responses. Also, data inconsistency is a concern with horizontal scaling.
Explain in which use cases will you use vertical scaling and in which use cases you will use horizontal scaling
Explain Resiliency and what ways are there to make a system more resilient
Explain "Consistent Hashing"
How would you update each of the services in the following drawing without having app (foo.com) downtime?
What is the problem with the following architecture and how would you fix it?
The load on the producers or consumers may be high which will then cause them to hang or crash.
Instead of working in "push mode", the consumers can pull tasks only when they are ready to handle them. It can be fixed by using a streaming platform like Kafka, Kinesis, etc. This platform will make sure to handle the high load/traffic and pass tasks/messages to consumers only when the ready to get them.
Users report that there is huge spike in process time when adding little bit more data to process as an input. What might be the problem?
How would you scale the architecture from the previous question to hundreds of users?
Cache
What is "cache"? In which cases would you use it?
What is "distributed cache"?
What is a "cache replacement policy"?
Coba lihat di sini
Which cache replacement policies are you familiar with?
You can find a list here
Explain the following cache policies:
Read about it here
Why not writing everything to cache instead of a database/datastore?
Caching and databases serve different purposes and are optimized for different use cases. Caching is used to speed up read operations by storing frequently accessed data in memory or on a fast storage medium. By keeping data close to the application, caching reduces the latency and overhead of accessing data from a slower, more distant storage system such as a database or disk.
On the other hand, databases are optimized for storing and managing persistent data. Databases are designed to handle concurrent read and write operations, enforce consistency and integrity constraints, and provide features such as indexing and querying.
Migrasi
How you prepare for a migration? (or plan a migration)
Anda dapat menyebutkan:
roll-back & roll-forward cut over dress rehearsals DNS redirection
Explain "Branch by Abstraction" technique
Design a system
Can you design a video streaming website?
Can you design a photo upload website?
How would you build a URL shortener?
More System Design Questions
Additional exercises can be found in system-design-notebook repository.
Perangkat keras
What is a CPU?
A central processing unit (CPU) performs basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions in the program. This contrasts with external components such as main memory and I/O circuitry, and specialized processors such as graphics processing units (GPUs).
Apa itu RAM?
RAM (Random Access Memory) is the hardware in a computing device where the operating system (OS), application programs and data in current use are kept so they can be quickly reached by the device's processor. RAM is the main memory in a computer. It is much faster to read from and write to than other kinds of storage, such as a hard disk drive (HDD), solid-state drive (SSD) or optical drive.
What is a GPU?
A GPU, or Graphics Processing Unit, is a specialized electronic circuit designed to expedite image and video processing for display on a computer screen.
What is an embedded system?
An embedded system is a computer system - a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts.
Can you give an example of an embedded system?
A common example of an embedded system is a microwave oven's digital control panel, which is managed by a microcontroller.
When committed to a certain goal, Raspberry Pi can serve as an embedded system.
What types of storage are there?
There are several types of storage, including hard disk drives (HDDs), solid-state drives (SSDs), and optical drives (CD/DVD/Blu-ray). Other types of storage include USB flash drives, memory cards, and network-attached storage (NAS).
What are some considerations DevOps teams should keep in mind when selecting hardware for their job?
Choosing the right DevOps hardware is essential for ensuring streamlined CI/CD pipelines, timely feedback loops, and consistent service availability. Here's a distilled guide on what DevOps teams should consider:
Understanding Workloads :
- CPU : Consider the need for multi-core or high-frequency CPUs based on your tasks.
- RAM : Enough memory is vital for activities like large-scale coding or intensive automation.
- Storage : Evaluate storage speed and capacity. SSDs might be preferable for swift operations.
Expandability :
- Horizontal Growth : Check if you can boost capacity by adding more devices.
- Vertical Growth : Determine if upgrades (like RAM, CPU) to individual machines are feasible.
Connectivity Considerations :
- Data Transfer : Ensure high-speed network connections for activities like code retrieval and data transfers.
- Speed : Aim for low-latency networks, particularly important for distributed tasks.
- Backup Routes : Think about having backup network routes to avoid downtimes.
Consistent Uptime :
- Plan for hardware backups like RAID configurations, backup power sources, or alternate network connections to ensure continuous service.
System Compatibility :
- Make sure your hardware aligns with your software, operating system, and intended platforms.
Power Efficiency :
- Hardware that uses energy efficiently can reduce costs in long-term, especially in large setups.
Safety Measures :
- Explore hardware-level security features, such as TPM, to enhance protection.
Overseeing & Control :
- Tools like ILOM can be beneficial for remote handling.
- Make sure the hardware can be seamlessly monitored for health and performance.
Budgeting :
- Consider both initial expenses and long-term costs when budgeting.
Support & Community :
- Choose hardware from reputable vendors known for reliable support.
- Check for available drivers, updates, and community discussions around the hardware.
Planning Ahead :
- Opt for hardware that can cater to both present and upcoming requirements.
Operational Environment :
- Temperature Control : Ensure cooling systems to manage heat from high-performance units.
- Space Management : Assess hardware size considering available rack space.
- Reliable Power : Factor in consistent and backup power sources.
Cloud Coordination :
- If you're leaning towards a hybrid cloud setup, focus on how local hardware will mesh with cloud resources.
Life Span of Hardware :
- Be aware of the hardware's expected duration and when you might need replacements or upgrades.
Optimized for Virtualization :
- If utilizing virtual machines or containers, ensure the hardware is compatible and optimized for such workloads.
Adaptability :
- Modular hardware allows individual component replacements, offering more flexibility.
Avoiding Single Vendor Dependency :
- Try to prevent reliance on a single vendor unless there are clear advantages.
Eco-Friendly Choices :
- Prioritize sustainably produced hardware that's energy-efficient and environmentally responsible.
In essence, DevOps teams should choose hardware that is compatible with their tasks, versatile, gives good performance, and stays within their budget. Furthermore, long-term considerations such as maintenance, potential upgrades, and compatibility with impending technological shifts must be prioritized.
What is the role of hardware in disaster recovery planning and implementation?
Hardware is critical in disaster recovery (DR) solutions. While the broader scope of DR includes things like standard procedures, norms, and human roles, it's the hardware that keeps business processes running smoothly. Here's an outline of how hardware works with DR:
Storing Data and Ensuring Its Duplication :
- Backup Equipment : Devices like tape storage, backup servers, and external HDDs keep essential data stored safely at a different location.
- Disk Arrays : Systems such as RAID offer a safety net. If one disk crashes, the others compensate.
Alternate Systems for Recovery :
- Backup Servers : These step in when the main servers falter, maintaining service flow.
- Traffic Distributors : Devices like load balancers share traffic across servers. If a server crashes, they reroute users to operational ones.
Alternate Operation Hubs :
- Ready-to-use Centers : Locations equipped and primed to take charge immediately when the main center fails.
- Basic Facilities : Locations with necessary equipment but lacking recent data, taking longer to activate.
- Semi-prepped Facilities : Locations somewhat prepared with select systems and data, taking a moderate duration to activate.
Power Backup Mechanisms :
- Instant Power Backup : Devices like UPS offer power during brief outages, ensuring no abrupt shutdowns.
- Long-term Power Solutions : Generators keep vital systems operational during extended power losses.
Networking Equipment :
- Backup Internet Connections : Having alternatives ensures connectivity even if one provider faces issues.
- Secure Connection Tools : Devices ensuring safe remote access, especially crucial during DR situations.
On-site Physical Setup :
- Organized Housing : Structures like racks to neatly store and manage hardware.
- Emergency Temperature Control : Backup cooling mechanisms to counter server overheating in HVAC malfunctions.
Alternate Communication Channels :
- Orbit-based Phones : Handy when regular communication methods falter.
- Direct Communication Devices : Devices like radios useful when primary systems are down.
Protection Mechanisms :
- Electronic Barriers & Alert Systems : Devices like firewalls and intrusion detection keep DR systems safeguarded.
- Physical Entry Control : Systems controlling entry and monitoring, ensuring only cleared personnel have access.
Uniformity and Compatibility in Hardware :
- It's simpler to manage and replace equipment in emergencies if hardware configurations are consistent and compatible.
Equipment for Trials and Upkeep :
- DR drills might use specific equipment to ensure the primary systems remain unaffected. This verifies the equipment's readiness and capacity to manage real crises.
In summary, while software and human interventions are important in disaster recovery operations, it is the hardware that provides the underlying support. It is critical for efficient disaster recovery plans to keep this hardware resilient, duplicated, and routinely assessed.
What is a RAID?
RAID is an acronym that stands for "Redundant Array of Independent Disks." It is a technique that combines numerous hard drives into a single device known as an array in order to improve performance, expand storage capacity, and/or offer redundancy to prevent data loss. RAID levels (for example, RAID 0, RAID 1, and RAID 5) provide varied benefits in terms of performance, redundancy, and storage efficiency.
What is a microcontroller?
A microcontroller is a small integrated circuit that controls certain tasks in an embedded system. It typically includes a CPU, memory, and input/output peripherals.
What is a Network Interface Controller or NIC?
A Network Interface Controller (NIC) is a piece of hardware that connects a computer to a network and allows it to communicate with other devices.
What is a DMA?
Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).DMA enables devices to share and receive data from the main memory in a computer. It does this while still allowing the CPU to perform other tasks.
What is a Real-Time Operating Systems?
A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which manages the sharing of system resources with a scheduler, data buffers, or fixed task prioritization in a multitasking or multiprogramming environment. Processing time requirements need to be fully understood and bound rather than just kept as a minimum. All processing must occur within the defined constraints. Real-time operating systems are event-driven and preemptive, meaning the OS can monitor the relevant priority of competing tasks, and make changes to the task priority. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock interrupts.
List of interrupt types
There are six classes of interrupts possible:
Luar- Machine check
- masukan/keluaran
- Program
- Mulai ulang
- Supervisor call (SVC)
Data Besar
Explain what is exactly Big Data
As defined by Doug Laney:
Volume: Extremely large volumes of data- Velocity: Real time, batch, streams of data
- Variety: Various forms of data, structured, semi-structured and unstructured
- Veracity or Variability: Inconsistent, sometimes inaccurate, varying data
What is DataOps? How is it related to DevOps?
DataOps seeks to reduce the end-to-end cycle time of data analytics, from the origin of ideas to the literal creation of charts, graphs and models that create value. DataOps combines Agile development, DevOps and statistical process controls and applies them to data analytics.
What is Data Architecture?
An answer from talend.com:
"Data architecture is the process of standardizing how organizations collect, store, transform, distribute, and use data. The goal is to deliver relevant data to people who need it, when they need it, and help them make sense of it."
Explain the different formats of data
Structured - data that has defined format and length (eg numbers, words)- Semi-structured - Doesn't conform to a specific format but is self-describing (eg XML, SWIFT)
- Unstructured - does not follow a specific format (eg images, test messages)
What is a Data Warehouse?
Wikipedia's explanation on Data Warehouse Amazon's explanation on Data Warehouse
What is Data Lake?
Data Lake - Wikipedia
Can you explain the difference between a data lake and a data warehouse?
What is "Data Versioning"? What models of "Data Versioning" are there?
What is ETL?
Apache Hadoop
Explain what is Hadoop
Apache Hadoop - Wikipedia
Explain Hadoop YARN
Responsible for managing the compute resources in clusters and scheduling users' applications
Explain Hadoop MapReduce
A programming model for large-scale data processing
Explain Hadoop Distributed File Systems (HDFS)
Distributed file system providing high aggregate bandwidth across the cluster.- For a user it looks like a regular file system structure but behind the scenes it's distributed across multiple machines in a cluster
- Typical file size is TB and it can scale and supports millions of files
- It's fault tolerant which means it provides automatic recovery from faults
- It's best suited for running long batch operations rather than live analysis
What do you know about HDFS architecture?
HDFS Architecture
Master-slave architecture- Namenode - master, Datanodes - slaves
- Files split into blocks
- Blocks stored on datanodes
- Namenode controls all metadata
Ceph
Explain what is Ceph
Ceph is an Open-Source Distributed Storage System designed to provide excellent performance, reliability, and scalability. It's often used in cloud computing environments and Data Centers. Benar atau Salah? Ceph favor consistency and correctness over performances
BENAR Which services or types of storage Ceph supports?
Object (RGW)- Block (RBD)
- File (CephFS)
What is RADOS?
Reliable Autonomic Distributed Object Storage- Provides low-level data object storage service
- Strong Consistency
- Simplifies design and implementation of higher layers (block, file, object)
Describe RADOS software components
Memantau- Central authority for authentication, data placement, policy
- Coordination point for all other cluster components
- Protect critical cluster state with Paxos
- Manajer
- Aggregates real-time metrics (throughput, disk usage, etc.)
- Host for pluggable management functions
- 1 active, 1+ standby per cluster
- OSD (Object Storage Daemon)
Stores data on an HDD or SSD
- Services client IO requests
What is the workflow of retrieving data from Ceph?
The work flow is as follows: - The client sends a request to the ceph cluster to retrieve data:
Client could be any of the following
- Ceph Block Device
- Ceph Object Gateway
- Any third party ceph client
- The client retrieves the latest cluster map from the Ceph Monitor
- The client uses the CRUSH algorithm to map the object to a placement group. The placement group is then assigned to a OSD.
- Once the placement group and the OSD Daemon are determined, the client can retrieve the data from the appropriate OSD
What is the workflow of writing data to Ceph?
The work flow is as follows: - The client sends a request to the ceph cluster to retrieve data
- The client retrieves the latest cluster map from the Ceph Monitor
- The client uses the CRUSH algorithm to map the object to a placement group. The placement group is then assigned to a Ceph OSD Daemon dynamically.
- The client sends the data to the primary OSD of the determined placement group. If the data is stored in an erasure-coded pool, the primary OSD is responsible for encoding the object into data chunks and coding chunks, and distributing them to the other OSDs.
What are "Placement Groups"?
Describe in the detail the following: Objects -> Pool -> Placement Groups -> OSDs
What is OMAP?
What is a metadata server? Bagaimana cara kerjanya?
pengepak
What is Packer? Untuk apa ini digunakan?
In general, Packer automates machine images creation. It allows you to focus on configuration prior to deployment while making the images. This allows you start the instances much faster in most cases.
Packer follows a "configuration->deployment" model or "deployment->configuration"?
A configuration->deployment which has some advantages like:
Deployment Speed - you configure once prior to deployment instead of configuring every time you deploy. This allows you to start instances/services much quicker.- More immutable infrastructure - with configuration->deployment it's not likely to have very different deployments since most of the configuration is done prior to the deployment. Issues like dependencies errors are handled/discovered prior to deployment in this model.
Melepaskan
Explain Semantic Versioning
This page explains it perfectly:
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backwards compatible manner
PATCH version when you make backwards compatible bug fixes
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Sertifikat
If you are looking for a way to prepare for a certain exam this is the section for you. Here you'll find a list of certificates, each references to a separate file with focused questions that will help you to prepare to the exam. Semoga beruntung :)
AWS
- Cloud Practitioner (Latest update: 2020)
- Solutions Architect Associate (Latest update: 2021)
- Cloud SysOps Administration Associate (Latest update: Oct 2022)
Biru langit
- AZ-900 (Latest update: 2021)
Kubernet
- Certified Kubernetes Administrator (CKA) (Latest update: 2022)
Additional DevOps and SRE Projects
Kredit
Thanks to all of our amazing contributors who make it easy for everyone to learn new things :)
Logos credits can be found here
Lisensi