Skip to content

Continuous Delivery

Chetabahana edited this page Sep 3, 2019 · 158 revisions

Continuous delivery (CD atau CDE) adalah pendekatan rekayasa perangkat lunak untuk memastikan bahwa perangkat lunak dapat dirilis setiap saat. Proses penyebaran langsung dan berulang sangat penting untuk penerapan secara terus menerus.

Table of Contents

Layanan

Compute

Nirmata

Nirmata adalah layanan turnkey untuk mengelola kontainer aplikasi produksi di cloud publik dan private. Nirmata Suport GCE karenanya dapat dijalankan di Google Platform seperti berikut:

Webhook Relay

Webhook Relay memungkinkan siapa saja untuk menerima webhook dan memaparkan layanan web ke internet tanpa memiliki IP publik atau mengkonfigurasi NAT / firewall.

Kubernetes

CodeFresh

Bersasarkan Analisa CI/CD dari begitu banyak penyedia maka Codefresh dapat dipilih sebagai acuan dalam project ini. Selain yang sudah dirangkum maka Anda bisa simak lebih detil di dokumentasi.

Selain yang diulas dalam tabel penyedia CI/CD maka untuk GKE hal ini dapat juga dilakukan dengan BitBucket, GitLab, Travis, Codeship, VMWare, CloudBees, Knatife dan masih banyak lagi.

Setup Server

Selain menggunakan layanan maka Anda juga dapat memasang server untuk menjalankan CI/CD. Hal ini akan memberikan keleluasaan yang lebih tinggi dalam menentukan arah project yang Anda bangun baik di Compute Engine maupun Kubernetes Cluster.

Compute Engine

Gcloud

$ gcloud components install cloud-build-local
$ cloud-build-local --config=[CONFIG FILE] \
  --dryrun=false \
  --push \
  [SOURCE_CODE]

GoCD

GoCD adalah alat open-source yang digunakan dalam pengembangan perangkat lunak untuk membantu tim dan organisasi mengotomatiskan pengiriman perangkat lunak yang berkelanjutan. Ini mendukung otomatisasi seluruh proses build-test-release dari kode check-in hingga penyebaran.

Strider CD

Strider adalah platform Open Source Continuous Deployment / Continuous Integration. Ditulis dalam Node.JS/JavaScript dan menggunakan MongoDB. Diterbitkan di bawah lisensi BSD.

Giant Swarm

Swarm Inception adalah aplikasi yang dijalankan via DockerHub webhook. Build dilakukan via Github webhooks. Ketika selesai DockerHub akan memanggil handler untuk memicu pembaruan.
$ git clone https://github.com/giantswarm/swarm-inception.git
$ cd swarm-inception/
$ make deploy
Configuration file written to swarmconfig.py...
docker build -t registry.giantswarm.io/bant/inception .
...<snip>
Creating 'inception' in the 'bant/dev' environment…
Service created successfully!
Starting service 'inception'…
Waiting for 'inception' to get started…
Service 'inception' is up.
You can see all components using this command:

    swarm status inception

Use http://inception-bant.gigantic.io/bant/dev/hook on Docker Hub's to deploy a service.

Kubernetes Cluster

Keel

Keel adalah alat untuk mengotomatisasi pembaruan penyebaran Kubernetes yang mendukung penyedia Helm Charts dan dapat dijalankan di Google Platform seperti berikut:

Rancher

Rancher adalah platform perangkat lunak sumber terbuka yang memungkinkan organisasi menjalankan dan mengelola Docker dan Kubernetes dalam produksi. Rancher memasok seluruh tumpukan perangkat lunak yang diperlukan untuk mengelola kontainer dalam produksi.

OpenFaas

Jika Anda membangun project di GitLab maka ada baiknya untuk meninjau OpenFaaS Cloud. Layanan ini di Kubernetes terhubung ke instance GitLab sehingga Anda dapat menjalankan fungsi Server yang di-hosting-sendiri di cloud pribadi atau publik.

OpenShift

OpenShift® adalah platform aplikasi cloud Kubernetes hybrid cloud mendukung Red Hat® Enterprise Linux dan standar Docker.

GitHub Action

Proses alur kerja, menggunakan GitHub Action untuk gcloud untuk menyebarkan situs web statis ke Google Kubernetes Engine Cluster yang ada.

Untuk detil lebih lanjut silahkan simak Akun GitHub Actions.

Project Delivery

Dengan menggunakan sumber di atas maka kita akan terapkan untuk mendapatkan penerapan yang berkesinambungan. Hal ini penting untuk membangun, menguji, dan merilis perangkat lunak dengan kecepatan dan frekuensi yang lebih besar.

Alur

Git Commit

Image Push

Tujuan

Karena project yang kita bahas adalah tentang e-Commerce maka tujuan dari CI/CD kita tetapkan untuk menunjang operasi dalam produksi.

Produk Unggulan

  • Menampilkan produk unggulan secara dinamis sesuai Trend.
  • Jalankan SEO untuk produk unggulan dari Situs Toko via Google Site untuk berkompetisi di Google Search
  • Tampilan data terkini untuk Update Setelan AdWords Secara Otomatis guna peroleh sales return yang paling optimal.

Operasi Minimalis

  • Tidak memerlukan database karena bisa akses dan pakai data di Google Merchant.
  • Tidak perlukan hosting berbayar karena Google Site adalah Free dan AppEngine bisa dijalankan secara gratis.

Target Terintegrasi

Optimasi

Pendekatan ini membantu mengurangi biaya, waktu, dan risiko pengiriman perubahan dengan memungkinkan pembaruan lebih lanjut untuk aplikasi dalam produksi. Alur dari pilosopi diatur sbb:

Optimasi Internal

Pengelolaan hasil Optimasi Internal Toko sesuai dengan Publikasi Sesi yg Pertama via Google Sites API.

Optimasi Eksternal

Pendataan hasil Optimasi Eksternal sesuai dengan Publikasi Sesi yg Kedua via Google Content API.

Optimasi Promosi

Pendataan hasil Optimasi Promosi dari kinerja proses ke-1 dan -2 via Google AdWords API.

Optimasi Penjualan

Pengelolaan atas hasil Optimasi Penjualan dari kinerja proses ke-3 via Google AppEngine.

Detail Proses

Penerapan sumber² CI/CD baik berupa layanan maupun setup server dalam rangka mencapai tujuan di atas tentu akan memerlukan pembahasan yang sangat detil seperti sesi Tutorial-Buka-Toko ini.

Oleh karenanya kita akan bagi ke dalam proses demi proses. Pilosopi sederhananya bisa dijabarkan sesuai urutan berikut ini:

Iklan Shopping

Jalankan Iklan Shopping di AdWords untuk dapat data produk yang di rekomendasikan via Google Merchant.

Pilah Daftar Produk

Kemudian dari peta situs toko kita saring daftar semua produk yang memenuhi kriteria via Google AppEngine.

Simpan Daftar Produk

Hasilnya kita masukkan ke Google Merchant sehingga tersimpan menjadi database via Google Content API.

Saring Peluang Terbaik

Dari database ini kita pilah lagi produk yang mempunyai hasil dan peluang terbaik via Google AdWords API.

Tampilkan Produk Unggulan

Selanjutnya kita tampilkan sebagai produk unggulan di Situs Toko dari Google Sites via Google Sites API.

Proses diatas detilnya kita akan bahas satu persatu di sesi² berikutnya. Kemudian semuanya akan dirangkum di sesi terakhir yang merupakan sesi penutup dari pubikasi ini:

Referensi

Project Tutorial

You are on the wiki of our repo

Chetabahana Project

Clone this wiki locally