SlideShare a Scribd company logo
1 of 46
Download to read offline
Dicoding
Developer Coaching
#120
Pengembangan Aplikasi
menjadi Efisien berkat
Continuous Deployment
DevOps Engineer
Fikri Helmi Setiawan
Curriculum Developer Lead
DevOps Engineer
Key Point
● What is Continuous Deployment
● Deployment Strategies
● The Importance of Monitoring
● Hands-on
CD 101
DevOps Engineer
DevOps Engineer
CI/CD Pipeline adalah serangkaian proses dan alat otomatis yang
memungkinkan Dev dan Ops bekerja secara kohesif untuk menghadirkan
fitur kepada pengguna.
CI/CD Pipeline
DevOps Engineer
CI/CD Pipeline Phases
Code Developer menulis kode di IDE dan mengunggahnya ke repository.
Build Build kode menjadi artifact (image atau package) dan menjalankan unit test.
Test Menguji artifact seperti integration test, load test, security test, dsb.
Release Artifact dibungkus dengan nomor versi tertentu.
Deploy Artifact di-deploy ke server tujuan.
Monitor Memantau aplikasi untuk mendeteksi error atau bug.
DevOps Engineer
CI/CD Pipeline Tools
Code GitHub, GitLab, BitBucket
Build Jenkins, Travis CI, CircleCI
Test Selenium, Gremlin, Testable, LoadRunner, UFT One
Release Docker Hub, JFrog Artifactory
Deploy Heroku, Netlify, GitHub Pages
Monitor Prometheus + Grafana, Elastic Stack, Dynatrace
What is
Deployment?
Praktik yang mencakup semua langkah,
proses, dan aktivitas yang diperlukan
untuk membuat aplikasi/perangkat
lunak atau pembaruan tersedia bagi
pengguna yang dituju.
DevOps Engineer
DevOps Engineer
What is
Continuous
Deployment?
Praktik di mana software akan
di-deploy (tersaji ke pengguna) secara
otomatis setiap kali Developer
melakukan commit.
DevOps Engineer
Deployment
options
Opsi platform untuk deployment
menggunakan Jenkins:
● Local environment -> Komputer
pribadi.
● Menyewa server -> VPS (virtual
private server).
● Platform as a Service -> Heroku,
Railway, dst.
Deployment Strategies
DevOps Engineer
DevOps Engineer
Deployment
Strategies
● In-Place/Replacement
● Recreate
● Ramped
● Blue/Green
● Canary
● A/B Testing
DevOps Engineer
Strategi Deployment → In-Place/Replacement
Deploy Rollback
DevOps Engineer
Strategi Deployment → Recreate
DevOps Engineer
Strategi Deployment → Ramped
DevOps Engineer
Strategi Deployment → Blue/Green
DevOps Engineer
Strategi Deployment → Canary
DevOps Engineer
Strategi Deployment → A/B Testing
Deployment Strategies
Comparison
Which is the better one for you?
Monitoring
DevOps Engineer
DevOps Engineer
What is
Monitoring?
Process of observing,
measuring, and
recording the
performance or
behavior of a system,
process, or activity
over time.
DevOps Engineer
The Importance of Monitoring
Time to Detect
(TTD)
When an issue is observed in the system, it is passed to the
development or a relevant team for action.
Time to Mitigate
(TTM)
The responsible team acts on the information to eliminate related risk
areas.
Time to Remediate
(TTR)
The team measures the time for recovery, works on it, and ensures that
the root cause of the problem is remediated so that they do not recur.
DevOps Engineer
Tools for Monitoring
DevOps Engineer
Lets Hands-on!
DevOps Engineer
Apply Now
DevOps Curriculum
Developer
Thank You
fikrihelmi17
fikri@dicoding.com
fikrihelmi17
DevOps Engineer
Feedback!
Hadiah:
● 2 Token Langganan Academy (30 Hari)
*untuk pengisi feedback terpilih!
Machine Learning
Berikut ini manakah pernyataan yang BENAR terkait DevOps?
A. DevOps ditujukan untuk membawa Developer ke dunia IT
Operations; dan IT Operations ke dunia Developer.
B. DevOps ditujukan untuk melimpahkan semua pekerjaan IT
Operations ke Developer.
C. DevOps adalah sebuah manajemen proyek yang merupakan
turunan dari waterfall.
D. DevOps ditujukan untuk melimpahkan semua pekerjaan Developer
ke IT Operations.
Machine Learning
Apa kepanjangan dari CI/CD?
A. Continuous IT Operations dan Continuous Delivery/Deployment
B. Continuous Implication dan Continuous Delivery/Deployment
C. Continuous Integration dan Continuous Developer
D. Continuous Integration dan Continuous Delivery/Deployment
Machine Learning
Secara umum, berikut adalah urutan dari alur CI/CD ....
A. Monitor -> Operate -> Plan -> Code -> Build -> Test -> Release ->
Deploy.
B. Code -> Build -> Release -> Deploy -> Test -> Operate -> Monitor ->
Plan.
C. Plan -> Code -> Test -> Release -> Deploy -> Build -> Operate ->
Monitor.
D. Plan -> Code -> Build -> Test -> Release -> Deploy -> Operate ->
Monitor.
Machine Learning
Yang BUKAN merupakan tools untuk Git repository hosting adalah ...
a. GitHub.
b. GitLab.
c. Ansible.
d. BitBucket.
Machine Learning
Jenkins adalah tools otomatisasi closed source yang dapat digunakan
untuk mengotomatiskan semua jenis pekerjaan terkait building, testing,
dan delivering/deploying perangkat lunak.
a. Benar.
b. Salah.
DevOps Engineer
Apa yang dimaksud
dengan Integration?
● Penggabungan kode baru atau
perubahan kode yang ditulis
oleh satu atau banyak
kontributor ke dalam satu
proyek aplikasi atau perangkat
lunak.
● Biasanya dilakukan dengan
merge feature branch ke main
branch melalui pull request.
DevOps Engineer
Continuous
Integration
Praktik di mana Developer
secara teratur menggabungkan
perubahan kode ke dalam
repository, setelah itu proses
build dan test dijalankan.
DevOps Engineer
Praktik yang mencakup semua langkah,
proses, dan aktivitas yang diperlukan
untuk membuat aplikasi/perangkat lunak
atau pembaruan tersedia bagi pengguna
yang dituju.
Apa yang dimaksud dengan
Deployment?
DevOps Engineer
Apa itu
Continuous
Deployment?
Praktik di mana software akan
di-deploy (tersaji ke pengguna) secara
otomatis setiap kali Developer
melakukan commit.
Strategi
Deployment
● In-Place/Replacement
● Recreate
● Ramped
● Blue/Green
● Canary
● A/B Testing
DevOps Engineer
DevOps Engineer
In-Place/Replacement
DevOps Engineer
Recreate
DevOps Engineer
Ramped
DevOps Engineer
Blue/Green
DevOps Engineer
Canary
DevOps Engineer
A/B Testing

More Related Content

Similar to Dicoding Developer Coaching #120_ DevOps Engineer _ Pengembangan Aplikasi menjadi Efisien berkat Continuous Deployment.pdf

Pertemuan-7-Proses_Desain interaksi manusia dan komputer.ppt
Pertemuan-7-Proses_Desain interaksi manusia dan komputer.pptPertemuan-7-Proses_Desain interaksi manusia dan komputer.ppt
Pertemuan-7-Proses_Desain interaksi manusia dan komputer.pptBernad Bear
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwiantoidsecconf
 
Mengenal Lebih Jauh Tentang DevOps
Mengenal Lebih Jauh Tentang DevOpsMengenal Lebih Jauh Tentang DevOps
Mengenal Lebih Jauh Tentang DevOpsTerabitKomputer
 
Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)Endang Retnoningsih
 
Designing DevOps Pipeline (an example for Legacy Systems)
Designing DevOps Pipeline (an example for Legacy Systems)Designing DevOps Pipeline (an example for Legacy Systems)
Designing DevOps Pipeline (an example for Legacy Systems)Dony Riyanto
 
Sistem informasi sdlc
Sistem informasi sdlcSistem informasi sdlc
Sistem informasi sdlcmistertugas
 
Sistem informasi sdlc
Sistem informasi sdlcSistem informasi sdlc
Sistem informasi sdlcmistertugas
 
Jaminan Kualitas Perangkat Lunak
Jaminan Kualitas Perangkat LunakJaminan Kualitas Perangkat Lunak
Jaminan Kualitas Perangkat LunakYunita Rainbow
 
Rpl 4-proses perangkat lunak & metrik proyek
Rpl 4-proses perangkat lunak & metrik proyekRpl 4-proses perangkat lunak & metrik proyek
Rpl 4-proses perangkat lunak & metrik proyekf' yagami
 
WarSi (Warung Aplikasi) untuk BlankOn Linux
WarSi (Warung Aplikasi) untuk BlankOn LinuxWarSi (Warung Aplikasi) untuk BlankOn Linux
WarSi (Warung Aplikasi) untuk BlankOn LinuxEstu Fardani
 

Similar to Dicoding Developer Coaching #120_ DevOps Engineer _ Pengembangan Aplikasi menjadi Efisien berkat Continuous Deployment.pdf (20)

Mpsi sesi3
Mpsi sesi3Mpsi sesi3
Mpsi sesi3
 
Pertemuan-7-Proses_Desain interaksi manusia dan komputer.ppt
Pertemuan-7-Proses_Desain interaksi manusia dan komputer.pptPertemuan-7-Proses_Desain interaksi manusia dan komputer.ppt
Pertemuan-7-Proses_Desain interaksi manusia dan komputer.ppt
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
 
Mengenal Lebih Jauh Tentang DevOps
Mengenal Lebih Jauh Tentang DevOpsMengenal Lebih Jauh Tentang DevOps
Mengenal Lebih Jauh Tentang DevOps
 
Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)
 
Designing DevOps Pipeline (an example for Legacy Systems)
Designing DevOps Pipeline (an example for Legacy Systems)Designing DevOps Pipeline (an example for Legacy Systems)
Designing DevOps Pipeline (an example for Legacy Systems)
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Minggu Vi
Minggu ViMinggu Vi
Minggu Vi
 
Sistem informasi sdlc
Sistem informasi sdlcSistem informasi sdlc
Sistem informasi sdlc
 
Sistem informasi sdlc
Sistem informasi sdlcSistem informasi sdlc
Sistem informasi sdlc
 
Jaminan Kualitas Perangkat Lunak
Jaminan Kualitas Perangkat LunakJaminan Kualitas Perangkat Lunak
Jaminan Kualitas Perangkat Lunak
 
Rangkuman SDLC
Rangkuman SDLCRangkuman SDLC
Rangkuman SDLC
 
Ppt rpl materi 4
Ppt rpl materi 4Ppt rpl materi 4
Ppt rpl materi 4
 
Rpl 4-proses perangkat lunak & metrik proyek
Rpl 4-proses perangkat lunak & metrik proyekRpl 4-proses perangkat lunak & metrik proyek
Rpl 4-proses perangkat lunak & metrik proyek
 
Software Performance Engineering
Software Performance EngineeringSoftware Performance Engineering
Software Performance Engineering
 
UTS MPPL
UTS MPPLUTS MPPL
UTS MPPL
 
WarSi (Warung Aplikasi) untuk BlankOn Linux
WarSi (Warung Aplikasi) untuk BlankOn LinuxWarSi (Warung Aplikasi) untuk BlankOn Linux
WarSi (Warung Aplikasi) untuk BlankOn Linux
 
Ppt rpl materi 1
Ppt rpl materi 1Ppt rpl materi 1
Ppt rpl materi 1
 
Soal RPL Pertemuan 3
Soal RPL Pertemuan 3Soal RPL Pertemuan 3
Soal RPL Pertemuan 3
 
Ppt rpl materi 1
Ppt rpl materi 1Ppt rpl materi 1
Ppt rpl materi 1
 

More from shabilla6

DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...shabilla6
 
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Component
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web ComponentDevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Component
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Componentshabilla6
 
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...shabilla6
 
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...shabilla6
 
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudah
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan MudahDeveloper Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudah
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudahshabilla6
 
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...shabilla6
 
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...shabilla6
 
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...shabilla6
 

More from shabilla6 (8)

DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
 
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Component
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web ComponentDevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Component
DevCoach 131 : Front-End | Bikin Elemen HTML Sendiri dengan Web Component
 
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
 
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
DevCoach #131_ Front-End Web _ Bikin Elemen HTML Sendiri dengan Web Component...
 
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudah
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan MudahDeveloper Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudah
Developer Coaching #132 Back-End | Menyimpan Berkas di REST API dengan Mudah
 
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...
Dicoding Developer Coaching #122 - Mengimplementasikan autentikasi dan otoris...
 
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...
Dicoding Developer Coaching #121 _ iOS _ Membuat Aplikasi Berbasis List denga...
 
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
Dicoding Developer Coaching #119 _ iOS _ MacinCloud, Bikin Aplikasi iOS tanpa...
 

Dicoding Developer Coaching #120_ DevOps Engineer _ Pengembangan Aplikasi menjadi Efisien berkat Continuous Deployment.pdf