Panduan Memulakan DevOps: Membina Pokok Kemahiran DevOps Anda dari Awal
Panduan Memulakan DevOps: Membina Pokok Kemahiran DevOps Anda dari Awal
DevOps bukan sekadar jawatan, tetapi budaya, falsafah yang bertujuan untuk memecahkan halangan antara Pembangunan (Development) dan Operasi (Operations), mempercepatkan proses penghantaran perisian dan meningkatkan kualiti melalui automasi, kerjasama dan penambahbaikan berterusan. Jika anda ingin memasuki bidang DevOps, artikel ini akan memberikan anda panduan permulaan yang praktikal untuk membantu anda membina pokok kemahiran DevOps anda.
1. Konsep dan Prinsip Teras DevOps
Adalah penting untuk memahami konsep teras DevOps sebelum mendalami teknologi tertentu.
- Perubahan Budaya: DevOps menekankan kerjasama, komunikasi dan perkongsian tanggungjawab antara pasukan. Memecahkan silos dan mewujudkan budaya kepercayaan dan ketelusan adalah kunci kejayaan.
- Automasi: Mengurangkan campur tangan manual, meningkatkan kecekapan dan mengurangkan kadar ralat melalui automasi ujian, binaan, proses penggunaan, dsb.
- Integrasi Berterusan/Penghantaran Berterusan (CI/CD): Ini adalah salah satu amalan teras DevOps. CI memfokuskan pada integrasi dan ujian kod, dan CD memfokuskan pada automasi penggunaan dan penerbitan.
- Infrastruktur sebagai Kod (IaC): Menggunakan kod untuk mengurus dan mengkonfigurasi infrastruktur untuk mencapai penyediaan dan pengurusan infrastruktur automatik.
- Pemantauan dan Maklum Balas: Sentiasa memantau prestasi aplikasi dan infrastruktur, mengumpul maklum balas dan menggunakannya untuk penambahbaikan.
- Prinsip Lean: Menggunakan prinsip lean, seperti menghapuskan pembaziran, penambahbaikan berterusan dan maklum balas pantas.
2. Membina Pokok Kemahiran DevOps Anda
Berdasarkan perbincangan di X (Twitter), berikut ialah bidang dan alat utama untuk membina pokok kemahiran DevOps:
2.1 Sistem Pengendalian: Asas Linux
Linux ialah asas DevOps. Anda perlu menguasai:
- Perintah asas:
cd,ls,mkdir,rm,cp,mv,grep,awk,sed, dsb. - Kebenaran fail: Memahami perintah
chmoddanchown, menguasai pengurusan kebenaran fail yang betul, dan mengelakkan membuat kesilapan sepertichmod 777. Keselamatan didahulukan! - Pengurusan proses: Memahami cara memulakan, menghentikan dan memantau proses, menggunakan perintah seperti
ps,top,kill. - Skrip Shell: Menulis skrip Shell boleh mengautomasikan banyak tugas operasi dan penyelenggaraan, seperti konfigurasi pelayan, sandaran, dsb.
- Konfigurasi rangkaian: Memahami konfigurasi rangkaian Linux, seperti alamat IP, penghalaan, tembok api, dsb.
2.2 Asas Rangkaian
Memahami rangkaian adalah penting untuk menyelesaikan masalah dan mengoptimumkan prestasi. Anda perlu menguasai:
- Protokol TCP/IP: Memahami setiap lapisan tindanan protokol TCP/IP dan fungsinya.
- Protokol HTTP: Memahami struktur permintaan dan respons HTTP, dan menguasai kaedah HTTP yang biasa digunakan.
- DNS: Memahami prinsip resolusi nama domain dan cara mengkonfigurasi pelayan DNS.
- NAT: Memahami prinsip kerja dan senario aplikasi NAT.
2.3 Kawalan Versi: Git dan GitHub/GitLab
Git ialah standard untuk sistem kawalan versi, dan GitHub dan GitLab ialah platform pengehosan repositori Git yang popular. Anda perlu menguasai:
- Perintah Git asas:
init,clone,add,commit,push,pull,branch,merge,rebase, dsb. - Pengurusan cawangan: Belajar cara menggunakan cawangan untuk pembangunan dan cara menggabungkan kod.
- Permintaan Tarik (PR): Biasakan diri dengan proses PR untuk semakan dan kerjasama kod.
- Aliran Kerja Git: Memahami aliran kerja Git yang biasa, seperti Gitflow.
2.4 Platform Awan: AWS, GCP, AzurePlatform awan menyediakan infrastruktur yang anjal dan boleh diskala, dan merupakan bahagian penting dalam DevOps. Tumpuan utama pada AWS boleh merangkumi sebahagian besar perkara yang perlu diketahui. Anda perlu memahami:
- Perkhidmatan Teras: Biasakan diri dengan perkhidmatan teras platform awan, seperti EC2 (mesin maya), S3 (storan objek), IAM (pengurusan identiti dan akses), VPC (awan peribadi maya).
- Keselamatan: Fahami mekanisme keselamatan platform awan, seperti kawalan akses, penyulitan, keselamatan rangkaian, dsb.
- Pengoptimuman Kos: Pelajari cara menggunakan alat pengurusan kos platform awan, seperti AWS Cost Explorer, untuk analisis dan pengoptimuman kos (FinOps).
2.5 Pengkontenaan: Docker
Docker membolehkan anda membungkus aplikasi dan kebergantungannya ke dalam bekas, merealisasikan penggunaan pantas dan konsistensi. Anda perlu menguasai:
- Imej Docker: Fahami pembinaan dan pengurusan imej Docker.
- Bekas Docker: Pelajari cara menjalankan, menghentikan dan mengurus bekas Docker.
- Dockerfile: Tulis Dockerfile untuk mentakrifkan proses pembinaan imej.
- Docker Compose: Gunakan Docker Compose untuk mengurus aplikasi berbilang bekas.
2.6 Pengorkestraan Bekas: Kubernetes
Kubernetes (K8s) digunakan untuk mengautomasikan penggunaan, penskalaan dan pengurusan bekas. Anda perlu menguasai:
- Konsep Teras: Fahami konsep teras Kubernetes seperti Pod, Service, Deployment, Namespace.
- Perintah kubectl: Gunakan perintah
kubectluntuk mengurus kluster Kubernetes. - Konfigurasi YAML: Tulis fail YAML untuk mentakrifkan sumber Kubernetes.
- Horizontal Pod Autoscaling (HPA): Pelajari strategi Penskalaan Kubernetes untuk melaraskan bilangan Pod secara automatik berdasarkan penggunaan sumber.
2.7 Integrasi Berterusan/Penghantaran Berterusan (CI/CD): Jenkins, GitHub Actions
Alat CI/CD digunakan untuk mengautomasikan proses pembinaan, pengujian dan penggunaan perisian. Anda perlu menguasai:
- Saluran Paip CI/CD: Fahami pelbagai peringkat saluran paip CI/CD, seperti penyerahan kod, pembinaan, pengujian, penggunaan.
- Jenkins: Konfigurasikan tugas pembinaan dan penggunaan Jenkins.
- GitHub Actions: Gunakan GitHub Actions untuk mentakrifkan aliran kerja CI/CD.
- Pengujian Automatik: Sepadukan pengujian automatik ke dalam saluran paip CI/CD.
2.8 Infrastruktur sebagai Kod (IaC): Terraform, CloudFormation
Alat IaC digunakan untuk mengurus dan mengkonfigurasi infrastruktur menggunakan kod. Anda perlu menguasai:
- Terraform: Gunakan Terraform untuk mentakrifkan dan mengurus sumber infrastruktur. Fahami struktur projek Terraform dan peranan setiap bahagian.
- CloudFormation: Gunakan CloudFormation (AWS) untuk mentakrifkan dan mengurus sumber infrastruktur.
- Pengurusan Negeri: Fahami cara mengurus fail negeri alat IaC untuk memastikan konsistensi infrastruktur.
2.9 Pemantauan dan Pengelogan: ELK/EFK Stack
Alat pemantauan dan pengelogan digunakan untuk mengumpul, menganalisis dan menggambarkan data prestasi aplikasi dan infrastruktur. Anda perlu memahami:
-
ELK Stack: Biasakan diri dengan penggunaan Elasticsearch, Logstash, Kibana.
-
EFK Stack: Biasakan diri dengan penggunaan Elasticsearch, Fluentd, Kibana.
-
Metrik Pemantauan: Fahami metrik pemantauan biasa, seperti penggunaan CPU, penggunaan memori, I/O cakera, dsb.Pengetahuan teori adalah penting, tetapi amalan adalah kunci untuk mempelajari DevOps. Berikut adalah beberapa cadangan:
-
Bina Projek Paip CI/CD: Bina paip CI/CD yang lengkap dari awal, termasuk repositori kod, binaan, ujian, fasa penggunaan, dan lain-lain.
-
Projek Infrastruktur Sebagai Kod: Gunakan Terraform atau CloudFormation untuk mengurus infrastruktur awan anda.
-
Kluster Kubernetes dan Projek Pemantauan Perkhidmatan Mikro: Gunakan kluster Kubernetes, dan gunakan alat pemantauan untuk memantau prestasinya.
-
Sertai Projek Sumber Terbuka: Menyertai projek sumber terbuka membolehkan anda mempelajari amalan DevOps sebenar.
-
Selesaikan Masalah Sebenar: Cuba selesaikan masalah DevOps yang anda hadapi di tempat kerja.
4. Pembelajaran Berterusan
Bidang DevOps sentiasa berkembang, dengan alat dan teknologi baharu muncul. Pembelajaran berterusan adalah kunci untuk kekal berdaya saing. Berikut adalah beberapa sumber pembelajaran:
- Kursus Dalam Talian: Platform seperti Coursera, Udemy, A Cloud Guru menyediakan sejumlah besar kursus DevOps.
- Blog dan Artikel: Baca blog dan artikel berkaitan DevOps untuk mengetahui teknologi dan amalan terkini.
- Komuniti: Sertai komuniti DevOps dan berkomunikasi dengan jurutera DevOps lain.
- Persidangan Teknikal: Hadiri persidangan teknikal DevOps untuk mengetahui trend dan teknologi terkini.
5. Amalan Terbaik
- Automasikan Segala-galanya: Automasikan semua tugas berulang sebanyak mungkin.
- Pantau Segala-galanya: Pantau prestasi aplikasi dan infrastruktur secara berterusan.
- Terima Kegagalan: Belajar daripada kegagalan dan teruskan penambahbaikan.
- Kongsi Pengetahuan: Kongsi pengetahuan dan pengalaman anda dengan ahli pasukan.
- Utamakan Keselamatan: Integrasikan keselamatan ke dalam proses DevOps.





