Python untuk insinyur - kursus 65.000 gosok. dari Slurm, pelatihan 3 bulan, Tanggal 15 Januari 2024.
Miscellanea / / November 27, 2023
Techlead, Insinyur Data di Skyeng / ex Slurm, ISPsystem, Grid Dynamics
Sr. Insinyur perangkat lunak di Test, Auriga, ex sistem ISP
#1: Sintaks dan Struktur Dasar Python
Alasannya: belajar memahami logika program Python, serta menulis program sederhana, adalah tugas yang paling penting. “Hebat” jika Anda tidak terbiasa dengan sintaksis Python.
- Tipe data dan variabel, tipe data yang dapat berubah/tidak dapat diubah dan sederhana/komposit, teknik debugging.
- Pernyataan bersyarat - operator logika, kondisi sederhana, kondisi bersarang, dan penggantian pernyataan saklar.
- Perulangan dasar - perulangan while dan for, iterator, interupsi perulangan.
- Fungsi, metode string, daftar dan kamus.
- Menghasilkan dan menangani pengecualian.
Latihan: serangkaian tugas mikro kecil untuk setiap pelajaran.
#2: Peningkatan Kemahiran Python: Optimasi dan OOP
Mengapa: Mari kita kuasai fitur-fitur Python - karena fitur-fitur tersebut sangat sederhana dan praktis. Kami juga akan mengungkap arti ketiga huruf tersebut (kita berbicara tentang OOP) tanpa teori akademis dan dengan tujuan yang jelas
- Pekerjaan tingkat lanjut dengan loop - pernyataan hasil dan generator, wawasan tentang loop dengan Python, pernyataan else dalam satu loop, optimalisasi loop pemahaman, dll.
- Jenis struktur khusus: frozendict, defaultdict, dll.
- Konsep dasar OOP: kelas, instance kelas, enkapsulasi, pewarisan, dan polimorfisme.
- Membuat pengelola konteks untuk tipe Anda: konstruksi with.
Latihan: serangkaian tugas mikro kecil untuk setiap pelajaran.
Praktek Lanjutan: Audit Penggunaan Layanan.
CTO mulai curiga bahwa beberapa layanan tidak lagi digunakan oleh tim. Masalahnya adalah modul untuk memantau layanan yang digunakan belum diperbarui selama sepuluh tahun terakhir: memang tidak dapat mengunggah data gabungan, dan format nilai yang dikembalikan tidak sesuai dengan yang diterima secara umum standar. Anda telah dipilih untuk mengekstrak metrik yang diambil, menggabungkannya berdasarkan jenis dan tim, dan memberikan informasi ini kepada CTO untuk penilaian awal terhadap cakupan masalah.
#3: Koneksi jaringan
Mengapa: Hampir setiap layanan memiliki antarmuka untuk terhubung melalui beberapa protokol jaringan. Dan tanpa koneksi, interaksi tidak mungkin terjadi. Untungnya, ekosistem Python memiliki modul klien untuk hampir semua protokol.
- Paket pip dan pemasangan modul pihak ketiga.
- Modul Paramiko untuk menjalankan perintah melalui ssh.
- Modul permintaan untuk membuat permintaan HTTP.
- Ikhtisar modul untuk bekerja dengan database dan perantara pesan.
Praktik. Tim pengembangan memperkenalkan metodologi baru: Jika Anda mengizinkan peringatan terjadi, Anda akan menerima tugas. Subsistem analitik hanya mencari kesalahan yang dipilih dan mengirimkan pesan tentang kesalahan tersebut ke perantara pesan Kafka. Tugas Anda adalah menyelesaikan siklus pengembalian bug ke pengembang: konsumen Anda akan secara otomatis membuat tugas dengan deskripsi dan prioritas yang diperlukan di Trello.
No 4: Bekerja dengan teks dalam berbagai format
Mengapa: Menghubungkan ke layanan hanyalah setengah dari perjuangan. Separuh lainnya adalah berbagi informasi. Dan informasi seringkali berupa sekumpulan karakter teks dalam format tertentu. Modul akan membantu Anda memecahkan kode dan menyandikan. Tidak memerlukan semua informasi? Ekspresi reguler akan membantu Anda mengekstrak hal-hal penting dan membuang sisanya.
- Modul re dan ekspresi reguler.
- Modul untuk bekerja dengan data dalam format berbeda: nilai terpisah, json, yaml, xml.
- Menggunakan argumen baris perintah: modul argparse.
Latihan: Membuat sumber data penggunaan layanan.
Selama audit penggunaan layanan, Anda mengidentifikasi informasi penting untuk bisnis, bahkan CEO pun tertarik. Diputuskan untuk menganalisis uang yang hilang dan tidak membiarkan situasi seperti itu terjadi lagi. Untuk melakukan ini, Anda perlu memberikan alat akuisisi data kepada analis sehingga mereka dapat menyiapkan laporan. Masalahnya adalah modul pemantauan mengembalikan batas layanan untuk permintaan terpisah dalam format yaml, dan harga layanan dikembalikan oleh sistem penagihan dalam format xml. Penting untuk menggabungkan data tentang beban saat ini dengan batasan dan harga. Departemen analitik meminta informasi agregat dalam format JSON dengan kemampuan untuk menentukan interval waktu dan langkah agregasi.
No 5: Interaksi dengan sistem operasi
Mengapa: Pentingnya berinteraksi dengan sistem operasi tidak perlu dijelaskan lebih lanjut. Cara menghubungkannya dengan Python ada di pelajaran ini.
- Membaca dan menulis file.
- modul os - membaca variabel lingkungan, bekerja dengan direktori dan hak, bekerja dengan proses.
- Modul subproses untuk interaksi interaktif dengan proses.
Praktek: penyediaan akses otomatis ke server.
Selama kampanye untuk meninggalkan layanan yang tidak digunakan, situasi aneh muncul: server toko kelontong tim ditutup, tetapi tim infrastruktur secara berkala menggunakannya sebagai tuan rumah memanggungkan. Ternyata tim produk tidak menggunakannya karena secara berkala ada yang menimpa pengaturannya dengan pengaturannya sendiri. Diputuskan bahwa sekarang sumber daya hanya akan diberikan kepada anggota satu tim, dan otomatisasi akan membantu menghindari kesalahan. Anda, sebagai orang yang memulai kekacauan ini, perlu menulis agen yang secara berkala akan melakukan polling terhadap sistem manajemen hak dan membuat perubahan pada konfigurasi hak dalam layanan yang diinstal dan, jika perlu, berikan perintah kepada layanan untuk membaca ulang konfigurasi.
Nomor 6: Operator K8S dengan Python (aliran pengkodean langsung)
13 Oktober pukul 19:00
Alasannya: mari kembangkan kemampuan K8S agar sesuai dengan tugas Anda.
No.7: Menulis modul kita sendiri untuk Ansible
Mengapa: Ansible adalah sistem manajemen konfigurasi yang kuat, dan bahkan dapat diperluas dengan modulnya sendiri. Suatu kebetulan bahwa modul itu sendiri dan sebagian besar modulnya ditulis dengan Python.
- Menulis modul Anda sendiri untuk Ansible.
Praktek: menulis modul manajemen hak.
Dahulu kala, di galaksi yang sangat jauh sekali, Anda sudah menulis agen untuk mengeluarkan hak atas layanan tertentu. Saatnya mengubah tarikan menjadi dorong dan Ansible akan membantu dalam hal ini. Yang Anda butuhkan hanyalah sebuah modul.
No.8: Pembuatan dan kasus penggunaan API Anda
Alasannya: Mempersiapkan kode untuk penerapan adalah salah satu tugas terpenting. Skrip kami sendiri untuk alur tahapan membantu menjadikan proses ini lebih fleksibel dan nyaman.
- Membuat REST API di Flask.
- Membuat eksportir prometheus Anda sendiri dengan Prometheus Python Client dan Flask.
Latihan: mengunggah data ke sistem pemantauan pihak ketiga.
Biaya peralatan yang tidak terpakai bahkan melebihi perkiraan pesimistis. Sekarang tim teknik memiliki tanggung jawab lain - memantau layanan yang tidak digunakan. Untuk melakukan ini, Anda perlu melakukan polling sistem penagihan secara berkala melalui skrip Anda dan meneruskan datanya ke Prometheus. Format data yang diterima masih belum sesuai. Anda perlu menerapkan konektor. Dan pada saat yang sama menulis titik akhir sehingga departemen analitik selalu memiliki informasi terkini dalam format JSON.
Sesi AMA + Pertemuan INFORMAL dengan pembicara kursus
28 Oktober pukul 19:00
Kami bertemu untuk mendiskusikan kekhawatiran peserta kursus.
#9: Menguji API aplikasi Anda
Mengapa: Terkadang lebih baik tidak memiliki kode daripada kode yang tidak stabil. Agar tidak takut melanggar kode Anda, Anda perlu menulis tes.
- Jenis pengujian: unit, integrasi, dan ujung ke ujung.
- Ikhtisar modul pyhamcrest dan pencocokannya.
- Arsitektur dan kemampuan pytest.
- Menggunakan pytest dan pyhamcrest untuk menulis pengujian unit.
Latihan: menulis tes menggunakan pytest dan pyhamcrest untuk API Anda.
No 10: Interaksi dengan sistem CVS dan DevOps
- Menggunakan modul pihak ketiga menggunakan contoh integrasi ke dalam pipeline Gitlab.
- Menggunakan pygit untuk mendapatkan informasi tentang perubahan kode.
Latihan: membuat log perubahan dari komit.
Tim teknik sangat menyukai solusi Anda sehingga mereka terinspirasi oleh solusi tersebut dan mulai menulis solusi mereka sendiri. Namun orang selalu lupa menulis deskripsi rilis. Untuk mencapai hal ini, tim memutuskan untuk menerapkan konvensi penerapan dan membuat log perubahan langsung dari penerapan saat menggabungkan cabang dev dengan cabang rilis, dan jika nama komit tidak sesuai dengan konvensi komit, jangan izinkan permintaan penggabungan hingga menggabungkan.
#11: Obrolan dengan Errbot dengan Python
Mengapa: Masalah bisnis utama bukanlah kinerja aplikasi atau bahkan kesalahan yang terjadi pada kode. Masalah paling serius muncul ketika komunikasi karyawan tidak efektif. Chatops adalah salah satu cara untuk mengatasi masalah ini.
- Konsep Chatops: masalah apa yang dipecahkan oleh Chatops?
- Kerangka kerja Errbot: instalasi, pembuatan template plugin dasar, konfigurasi dan peluncuran.
- Kerangka kerja Errbot: membuat plugin Anda sendiri untuk Chatops dengan berbagai opsi untuk memproses pesan.
Proyek akhir
Tinjauan tenggat waktu dan perlindungan bagi mereka yang tertarik
Setelah kursus, Anda akan memiliki proyek di Git: Anda dapat mengotomatiskan tugas pekerjaan Anda atau melakukan salah satu opsi yang diusulkan.
Proyek yang sudah selesai dapat digunakan sebagai portofolio dan ditunjukkan saat melamar pekerjaan.