6 poin oleh GN⁺ 2025-04-29 | 1 komentar | Bagikan ke WhatsApp
  • Alat otomatisasi lingkungan pengembangan gratis dan open source untuk pengembangan microservice berbasis Kubernetes
  • Mengotomatiskan alur perubahan kode → pemantauan file → build image → pembaruan deployment, sehingga seluruh lingkungan dapat dijalankan dengan perintah tilt up
  • Berpusat pada Kubernetes, tetapi juga mendukung workflow berbasis docker-compose maupun perintah lokal
  • Diakuisisi oleh Docker pada 2022, tetapi tetap dipelihara dan dikembangkan sebagai proyek open source yang independen
  • Bertujuan pada manajemen terpadu lingkungan pengembangan modern untuk mengelola kompleksitas microservice

Apa itu Tilt

  • Aplikasi modern bukanlah satu biner tunggal, melainkan struktur di mana banyak layanan, database, dan server frontend saling berinteraksi melalui HTTP
  • Tilt adalah alat lingkungan pengembangan microservice yang memungkinkan konfigurasi kompleks semacam ini dipahami dan dikelola sekaligus
  • Mengotomatiskan seluruh proses modifikasi file, build image, dan pembaruan server untuk meningkatkan kecepatan pengembangan

Tim yang cocok menggunakan Tilt

  • Cocok untuk tim yang mengembangkan aplikasi berbasis microservice
  • Sangat berguna terutama bagi tim yang membuka banyak jendela terminal untuk mengelola log server, atau menyiapkan lingkungan pengembangan dengan shell script yang rumit
  • Dengan satu perintah tilt up, siapa pun dapat dengan mudah membangun lingkungan pengembangan yang sama

Mengapa berpusat pada Kubernetes

  • Kubernetes menyediakan blok eksekusi server yang terstandarisasi seperti container, pod, dan service
  • Jika standar ini digunakan juga di lingkungan pengembangan, perbedaan antara lingkungan produksi dan pengembangan dapat dikurangi
  • Selain Kubernetes, Tilt juga mendukung docker-compose dan perintah lokal, tetapi pada akhirnya diharapkan akan berkonvergensi ke pusat Kubernetes

Pengembangan dan masa depan Tilt

  • Tilt awalnya adalah startup independen, tetapi diakuisisi oleh Docker pada 2022
  • Saat ini pun tetap dipertahankan sebagai open source, dan terus ditingkatkan dengan integrasi bersama Docker Compose dan Docker Desktop
  • Proyek-proyek baru juga sedang dikembangkan, dengan tujuan memperluas ide Tilt ke ekosistem developer yang lebih luas

Arti namanya

  • "Tilt" terinspirasi dari kisah Don Quixote yang menyerbu kincir angin
  • Nama aplikasi demonya adalah Servantes, merujuk pada Cervantes, penulis Don Quixote

1 komentar

 
GN⁺ 2025-04-29
Komentar Hacker News
  • Menarik melihat topik ini di sini. Saya sudah menggunakan Tilt selama beberapa tahun, tetapi setelah diakuisisi oleh Docker, rasanya kecepatan pengembangannya melambat

    • Tilt menyiapkan lingkungan pengembangan lokal sehingga layanan dapat berjalan sama di production, testing, dan development
    • Kode layanan menjadi jauh lebih sederhana dan kualitasnya meningkat
    • Terutama perlu perbaikan dalam menangani CRD (tidak ada cara untuk menandai bahwa k8s_yaml bergantung pada CRD sehingga pemanggilan tilt up sering gagal)
    • Hal pertama yang saya lakukan saat memulai proyek baru adalah membuat tilt up berjalan
    • Hal-hal yang saya gunakan untuk pengujian antara lain kolektor berbasis eBPF untuk keamanan dan observabilitas, pipeline data, pengembangan chart Helm, dan controller Kubernetes
    • Sangat fleksibel dan kuat untuk berbagai jenis pengembangan
  • Pitch ini agak lucu bagi saya

    • Aplikasi modern terdiri dari terlalu banyak layanan. Layanan-layanan ini ada di mana-mana dan terus saling berkomunikasi
    • Jadi dibuatlah alat agar lebih mudah membuat lebih banyak layanan lagi
  • Selalu ada kompromi antara kecepatan dan akurasi

    • Jika mencoba mempertahankan lingkungan integrasi lokal, hasilnya akan terlalu lambat dan mahal
    • Masalahnya bukan Kubernetes itu sendiri, tetapi ketika dependensi bertambah dan kita mencoba menjalankan salinan seluruh dunia secara lokal, semuanya menjadi semakin lambat
    • Saya suka lingkungan pengembangan yang cepat dan ringkas dengan menggunakan sesuatu seperti docker-compose. Dengan itu, sebagian dependensi bisa dimock untuk menjaga kecepatan. Jika pengujian lokal lolos, maka Kubernetes digunakan di lingkungan lain
  • Menurut saya, "lingkungan pengembangan" seharusnya benar-benar menjalankan pengujian langsung dengan alat native dari bahasanya, misalnya cargo test, bundle exec rspec, dan sebagainya

    • Saya akan sangat kesal jika harus menjalankan VM yang menjalankan Kubernetes, lalu VM itu menjalankan container Docker untuk mengeksekusi pengujian
    • Untuk melakukannya dengan benar dan andal, masih diperlukan banyak pekerjaan. Jika tujuannya adalah tidak menggunakan Docker, mungkin perlu lebih banyak pekerjaan lagi (dan itu memang perlu jika ingin berjalan native di macOS)
    • Sepertinya ada banyak alat di bidang ini. Saya berharap mereka tidak menyebutnya alat untuk "lingkungan pengembangan". Ini lebih dekat dengan alat untuk "mendeploy aplikasi ke mesin lokal"
  • Tidak bisa tidak menyebut nix-shell: tautan nix-shell

  • Jika ingin benar-benar melihat Tilt, kami menggunakannya di repositori open source Chroma untuk menjalankan versi terdistribusi dari database kami untuk development dan CI. Sangat keren — setelah clone, jalankan tilt up dan langsung berfungsi

  • Pengaturan lingkungan lokal tidak pernah menjadi masalah

    • Deployment ke satu cluster sangat mudah
    • Masalahnya adalah layanan yang kami kelola di production dideploy lintas beberapa region (atau cluster k8s)
    • Yang menjadi masalah adalah debugging aplikasi terdistribusi
  • Bagaimana perbandingan Tilt dengan "skaffold dev"? Kami menggunakan skaffold untuk tujuan itu. Digunakan untuk development di dalam cluster

  • Beberapa waktu lalu saya sempat mencoba Tilt. Saya juga mencoba Tilt, Garden, dan mungkin beberapa alat lainnya, lalu akhirnya menetap dengan DevSpace

    • Seingat saya, ini yang paling cocok dengan infrastruktur production yang sudah ada. Tidak perlu menulis ulang semuanya dengan cara berbeda
    • Maksudnya, ini cocok dengan pengaturan kustomize+k8s yang sudah ada. Menambahkan port forwarding dan sinkronisasi file cepat ke container yang sedang berjalan. Itu benar-benar semua yang saya inginkan. Saya tidak suka harus membangun ulang image setiap kali ada perubahan
  • Bukankah ini pada dasarnya hanyalah development container?