
Kami memutuskan untuk menambahkan analisis proyek baru ke artikel penulis dan menerjemahkan materi tentang peretasan hidup / penemuan menarik yang dipublikasikan di blog kami. Waypoint adalah proyek open source yang memberi pengembang alur kerja yang konsisten untuk membangun, menerapkan, dan merilis aplikasi di platform apa pun. Waypoint memungkinkan pengembang untuk host aplikasi mereka dari pengembangan untuk lingkungan produksi dalam satu file, dan menyebarkan aplikasi dengan satu perintah:
waypoint up. Waypoint mendukung Kubernetes, HashiCorp Nomad, Amazon ECS, Google Cloud Run, Azure Container Instances, Docker, Buildpacks, dan lainnya di luar kotak. Baca terus untuk melihat contoh kecil, untuk mempelajari lebih lanjut tentang fitur Waypoint, dan masalah yang dipecahkan oleh alat.
Waypoint sepenuhnya dapat dikembangkan dan didasarkan pada sistem plugin untuk bekerja dengan alat atau platform apa pun. Setelah diterapkan, Waypoint menyediakan logging dan lainnya untuk menguji dan men-debug penerapan apa pun. Ini adalah perangkat lunak yang Anda unduh dan hosting sendiri untuk mengelola penerapan aplikasi yang berjalan di infrastruktur atau platform Anda. Lebih lanjut, pendiri HashiCorp sendiri akan memberi tahu Anda lebih banyak tentang Waypoint.
Sederhanakan penerapan
Waypoint dibuat oleh kami karena satu alasan sederhana: pengembang hanya ingin menerapkan aplikasi. HashiCorp memiliki kemampuan untuk bekerja dengan semua jenis organisasi dan individu di komunitas kami, yang memberi kami tantangan yang dihadapi pengembang saat menerapkan aplikasi dan dalam hal aksesibilitas pengguna. Kami berkomunikasi dengan lusinan pengguna individu setiap hari melalui Masalah GitHub, forum diskusi, email, dan lainnya. Setiap minggu kami bertemu dengan lebih dari 500 perusahaan untuk membahas perkembangan terkini dan masalah operasional mereka.
Melalui interaksi tersebut, kami melihat bahwa developer, terutama di organisasi menengah hingga besar, kewalahan dengan kerumitan: container, penjadwal, file YAML, tanpa server, dan banyak lagi. Kompleksitas telah membuat aplikasi menjadi lebih baik dalam banyak hal, tetapi biaya yang terlihat dalam kurva pembelajaran diperlukan untuk menerapkan aplikasi pertama.
Masalah lain yang kami lihat bergantung pada aplikasinya, karena alatnya sering kali sangat berbeda: Docker dan kubectl untuk Kubernetes, HashiCorp Packer dan Terraform untuk mesin virtual, alat berbeda untuk setiap platform tanpa server, dll. Fragmentasi ini sekali lagi menciptakan masalah pembelajaran bagi individu. Untuk tim, ini adalah masalah konsistensi dan kompleksitas.
Dengan Waypoint, kami bertujuan untuk mengatasi dua masalah ini. Waypoint menyediakan satu perintah sederhana untuk menerapkan aplikasi apa pun: "waypoint up". Alur kerjanya sama untuk semua platform: Kubernetes, Nomad, EC2, Google Cloud Run, dan lebih dari selusin lainnya akan didukung oleh peluncuran. Waypoint dapat dikembangkan dengan plugin untuk semua logika build, deployment, dan rilis. Pengembang hanya ingin menerapkan aplikasi. Waypoint melakukannya.
Kegunaan
Waypoint menawarkan sejumlah fitur yang menyediakan alur kerja untuk penerapan aplikasi dan pengujian serta penerapan debugging. Fitur-fitur ini menjadikan Waypoint alat yang ampuh untuk menerapkan aplikasi apa pun di platform apa pun.
- waypoint up: , . Waypoint , , , . Waypoint Waypoint.
- URL- : Waypoint URL waypoint.run TLS, Let's Encrypt. , .
- : waypoint exec. exec , , . waypoint exec.
- : Waypoint . , . , Datadog Splunk. CLI -. .
- -: CLI, Waypoint -, , . - . . , ,
- : , . Waypoint , Waypoint, .
Mari kita tunjukkan dengan contoh berbagai fitur Waypoint. Beberapa langkah penyiapan dilewati, jadi jika Anda ingin mencoba sendiri contoh lengkapnya, lihat panduan memulai kami . Dalam contoh ini, kami akan menerapkan aplikasi ke Kubernetes. File Hcl di sebelah aplikasi. File ini menjelaskan semua tahapan siklus hidup aplikasi.
project = "HashiCorp Waypoint"
app "waypoint-up" {
build {
use "docker" {}
registry {
use "docker" {
image = "hashicorp/wpmini"
tag = gitrefpretty()
}
}
}
deploy {
use "kubernetes" {
probe_path="/"
service_port=80
}
}
release {
use "kubernetes" {
load_balancer=true
port=80
}
}
}
Bangun, terapkan, lepaskan
File konfigurasi Waypoint menjelaskan tiga fase utama siklus hidup aplikasi: build, deployment, dan release.
- Rakitan mengambil kode sumber aplikasi dan mengubahnya menjadi artefak. Proses pembuatan dapat menyertakan konfigurasi registri opsional untuk mendorong artefak yang dibangun ke registri sehingga tersedia untuk platform penyebaran. Misalnya, langkah ini mengubah kode sumber menjadi gambar Docker, EC2 AMI, dll.
- Penerapan mengambil artefak yang dikumpulkan di langkah sebelumnya dan menempatkannya di platform penerapan target, membuat penerapan tersedia melalui URL atau metode internal lainnya
Rilis tersebut mengaktifkan penerapan dan membukanya untuk lalu lintas arus utama. Di masa mendatang, kami akan menambahkan dukungan ke Waypoint untuk memindahkan aplikasi antar lingkungan, mengembalikan penerapan dan rilis, dan secara bertahap memindahkan lalu lintas antar server setelah rilis.
Meningkatkan Waypoint
Tim waypoint up membangun, menerapkan, dan merilis aplikasi. Pada akhirnya, satu atau lebih alamat akan ditampilkan di mana aplikasi tersedia. Tidak peduli aplikasi apa dan untuk platform apa, Anda selalu dapat mengetikkan titik lewat ke terminal untuk penerapan.
Anda dapat melakukan tahapan siklus hidup secara terpisah satu sama lain. Ini berguna saat berinteraksi dengan Github Actions dan alat CI / CD seperti CricleCI dan Jenkins. Pelajari lebih lanjut tentang mengotomatiskan alur kerja aplikasi Anda dengan Waypoint di sini .
Alamat aplikasi dan penyebaran
Aplikasi yang diterapkan dengan Waypoint mendapatkan URL publik seperti waypoint.run dengan sertifikat TLS yang valid secara otomatis dibuat oleh Let's Encrypt . Gunakan alamat ini untuk melihat dan berbagi aplikasi yang diterapkan dengan cepat. Kami menyediakan URL ini melalui layanan publik gratis dari HashiCorp. Fitur ini opsional dan dapat dinonaktifkan. Pada contoh di atas, URL kita recent- pleasant-duck--v1.waypoint.run . Harap perhatikan bahwa URL ini tidak lagi berfungsi, aplikasi hanya dijalankan untuk entri blog ini. Anda dapat melihat versi penerapan tertentu di link seperti recent- pleasant-duck--vN.waypoint.rundengan N adalah nomor versi penerapan. Fitur ini sangat berguna untuk membagikan versi pra-rilis aplikasi Anda dengan tim Anda.
Pencatatan Waypoint
Waypoint memberi Anda akses ke snapshot log aplikasi secara real-time. Log ini berguna saat Anda perlu men-debug perilaku aplikasi yang sedang berkembang. Namun, mereka tidak menggantikan solusi logging yang kompleks. Log dikumpulkan dan tersedia untuk dilihat melalui antarmuka baris perintah dan antarmuka web. Fitur logging ini berfungsi apa pun platformnya. Baik Anda menggunakan Kubernetes, EC2, Google Cloud Run, atau platform lain, Anda dapat melihat log secara konsisten. Dengan menggunakan antarmuka pengguna, Anda dapat melihat log dari beberapa aplikasi yang disebarkan pada platform yang berbeda.
Eksekutif waypoint
Anda dapat menjalankan perintah dalam konteks aplikasi yang diterapkan menggunakan perintah eksekusi titik jalan. Fitur ini memungkinkan Anda untuk membuka shell, menjalankan skrip, dan melakukan apa pun yang ingin Anda lakukan dengan penerapan Anda. Seperti logging, eksekutif titik jalan bekerja pada semua platform yang didukung oleh Waypoint.
Kemungkinan lain
Daftar ini hanyalah gambaran umum singkat dari beberapa fitur Waypoint. Waypoint dapat digunakan untuk mengelola konfigurasi aplikasi melalui variabel lingkungan, terintegrasi dengan CI atau Github Anda. Ruang kerja digunakan untuk membuat lingkungan terpisah untuk cabang terpisah. Atau, Anda dapat menulis plugin dan itu belum semuanya.Waypoint adalah merek dari proyek baru tersebut. Kami berharap dapat terus menambahkan fungsi baru dalam beberapa bulan mendatang.
Waypoint dan aplikasi yang ada
Jika Anda sudah memiliki aplikasi dan alur kerja penerapan, Anda mungkin merasa ragu apakah Anda dapat menggunakan…. Kami tidak mengharapkan tim pengembangan untuk segera membangun kembali dan membangun kembali alur kerja mereka untuk Waypoint dari awal. Tapi kami memiliki plugin penarik buruh pelabuhan dan kemampuan eksekusi lokal untuk mengadaptasi Waypoint untuk aplikasi dengan alur kerja yang sudah dikonfigurasi. Selain itu, kami memiliki dokumentasi yang menjelaskan integrasi Waypoint ke CI lain: CircleCI atau Jenkins... Fitur ini memungkinkan Anda untuk melihat riwayat penerapan di antarmuka Waypoint, menjalankan perintah exec, logging, konfigurasi aplikasi, dan lainnya. Dengan sedikit usaha, Anda mendapatkan manfaat Waypoint sambil mempertimbangkan apakah Anda ingin meningkatkan ke plugin yang lebih mudah dikelola. Saat Anda memiliki banyak aplikasi, pendekatan ini memungkinkan Anda menggabungkan alur kerja dan membandingkannya.
Dapat dikembangkan sepenuhnya oleh plugin
Logika siklus hidup dapat dikembangkan sepenuhnya. Waypoint berjalan pada sistem plugin yang sama dengan Terraform. kami percaya bahwa menulis plugin untuk Waypoint adalah semudah (jika tidak lebih sederhana) daripada untuk Terraform. Waypoint memiliki lebih dari selusin plugin yang dibangun sejak awal. Kami berharap dan berharap seiring berjalannya waktu, dengan bantuan komunitas open source, jumlah ini akan meningkat secara dramatis. Terraform memiliki sekitar 6 penyedia saat diluncurkan. Saat ini Terraform memiliki 300 penyedia. Kami yakin ini juga mungkin untuk penerapan aplikasi. Jika Anda tertarik untuk menulis plugin, silakan baca panduan kami untuk pembuat plugin dan lihat kode sumber untuk plugin Waypoint 0.1 bawaan di Github.
Tautan proyek
- Waypoint, , , NodeJS, Python, Ruby, Java , .
- . Waypoint , HashiCorp. , .
- . Waypoint. Waypoint, GitHub Waypoint HashiCorp.
- . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .
Khusus untuk Habrovites kami telah membuat kode promo HABR yang memberikan tambahan diskon 10% untuk diskon yang tertera di banner.

- Mengajar profesi Ilmu Data dari awal
- Bootcamp online untuk Ilmu Data
- Melatih profesi Analis Data dari awal
- Kamp Pelatihan Online Analisis Data
- Python untuk Kursus Pengembangan Web
Lebih banyak kursus