CDS adalah Platform Pengiriman Berkelanjutan Kontinu Tingkat Perusahaan & DevOps Automation Platform yang ditulis di Go (Lang).
Proyek ini sedang dalam pengembangan aktif
Dokumentasi
CDS menyediakan UI intuitif yang memungkinkan Anda membangun alur kerja yang kompleks, menjalankannya dan menggali log saat dibutuhkan.
Buat dan jalankan alur kerja dengan CDS UI.
CDSCTL adalah baris perintah CDS - Anda dapat membuat skrip semuanya dengan itu, CDSCTL juga menyediakan beberapa perintah keren seperti cdsctl shell untuk menelusuri proyek dan alur kerja Anda tanpa perlu membuka browser.
Lihat semua perintah cdsctl
Buat alur kerja sebagai kode dengan baris perintah CDS.
Docker-Compose adalah teman Anda, lihat tutorial siap menjalankan
Sebagian besar alat CI/CD bermain dengan pekerjaan di dalam pipa. CDS memperkenalkan konsep baru bernama CDS Workflows . Alur kerja CDS memungkinkan Anda untuk rantai pipa dengan pemicu. Pipa disusun dalam tahap berurutan yang mengandung satu atau beberapa pekerjaan bersamaan.
Ya! CDS digunakan dalam produksi sejak 2015 @OVH dan meluncurkan lebih dari 7 juta pekerja CDS per tahun. Anda dapat menginstal rilis resmi yang tersedia di https://github.com/ovh/cds/releases
CDS menyediakan segala yang diperlukan untuk memantau dan mengukur aktivitas produksi (log, metrik, pemantauan)
Semua data disimpan dalam database - tidak ada sistem file. Cukup cadangan database Anda secara teratur dan Anda akan aman.
Tim inti tersedia di GitHub
Kemampuan untuk menjalankan banyak pekerjaan secara bersamaan sambil menjaga isolasi di antara mereka. Lihat DOC tentang tahapan & pekerjaan di dalam pipa. Pipa dimulai dengan konteks: 0 atau 1 aplikasi, 0 atau 1 lingkungan.
Alur kerja memungkinkan untuk menggerakkan saluran pipa. Ini adalah fitur utama CD. Anda dapat membuat alur kerja menggunakan satu atau lebih pipa, saluran pipa yang dapat dihubungkan bersama dengan gabungan atau garpu.
Anda dapat membayangkan hanya memiliki satu pembangun alur kerja dan menggunakan seluruh tumpukan layanan mikro Anda. Pipa yang sama dapat digunakan beberapa kali dalam alur kerja, Anda dapat mengaitkan aplikasi atau lingkungan. Anda hanya akan memiliki satu pipa penempatan dan satu pipa membangun untuk mempertahankan, bahkan jika Anda memiliki ratusan aplikasi.
Templat alur kerja memungkinkan Anda untuk berbagi dan menggunakan kembali alur kerja di berbagai tim. Setiap pengguna dapat membuat templat alur kerja, mempertahankannya sebagai kode atau dari UI, dan memperbarui satu set alur kerja dengan satu tindakan.
Sebagai perusahaan, Anda dapat menawarkan katalog alur kerja yang telah ditentukan yang memungkinkan Anda untuk menstandarkan praktik tes dan penyebaran di semua tim Anda.
Ini juga mengurangi upaya pemeliharaan karena templat memungkinkan manajemen terpusat yang dapat diskalakan.
Anda dapat mengonfigurasi semuanya dengan Web UI. Bahkan jika Anda memiliki kasus penggunaan yang kompleks, biasanya lebih mudah untuk membuat alur kerja Anda secara grafis.
Pipeline sebagai Code adalah konsep alat CI / CD yang terkenal. CDS melangkah lebih jauh dan menawarkan alur kerja sebagai kode. Ini dilakukan dengan mendorong git menggunakan file konfigurasi YAML dari alur kerja Anda ( + pipa, + aplikasi, + lingkungan). Ini sangat berguna karena Anda dapat menguji alur kerja baru Anda di cabang dev, sebelum menggabungkan perubahan pada cabang master.
Anda dapat memodifikasi alur kerja Anda dengan UI, Anda juga dapat memodifikasi konfigurasi dengan mengedit file YAML secara langsung di UI jika Anda mau. Ini adalah cara terbaik untuk mempelajari cara menggunakan fitur alur kerja-sebagai-kode.
Kemampuan untuk meluncurkan build berdasarkan pola cabang. Hal ini memungkinkan, misalnya, untuk menggunakan cabang dev/* ke "pementasan" dan menggunakan cabang master ke "prod".
Perhatikan bahwa perilaku default CDS adalah untuk meluncurkan seluruh alur kerja pada setiap komit git. Perilaku ini dapat diubah menggunakan "kondisi lari".
Integrasi 2 arah dengan produk berbasis git yang paling populer.
CD secara asli mendukung GitHub, GitLab, Bitbucket Server, dan Gerrit. Tautan antara repo git dan CDS Anda adalah melalui aplikasi CDS: 1 git repositori == aplikasi CDS. Melalui integrasi ini, CD akan mendorong status pembangunan komitmen Anda: membangun, kesuksesan, atau gagal.
CDS memberi Anda kemungkinan untuk mengkloning dari repositori git yang berbeda dalam satu alur kerja. Alur kerja CDS dapat melibatkan beberapa aplikasi yang berbeda - atau tidak ada jika Anda tidak ingin memiliki koneksi dengan repo git.
Kemampuan untuk memulai layanan fana (database, server web, dll.) Untuk mendukung pekerjaan Anda. Ini sangat berguna saat menguji kode Anda.
Dalam CDS layanan ini disebut prasyarat layanan. Anda hanya perlu menentukan gambar Docker yang sesuai dan menjalankan params.
Ambil contoh sederhana: Anda memiliki pipa yang membangun gambar Docker yang berisi aplikasi Anda. Aplikasi Anda membutuhkan Redis dan PostgreSQL untuk bekerja. Anda dapat, dalam pekerjaan CDS, menempatkan tiga layanan prasyarat: redis, postgresql, dan aplikasi Anda. CDS akan mengurus membuat jaringan pribadi antara layanannya sehingga mereka dapat berkomunikasi satu sama lain. Pekerjaan CDS Anda dengan demikian dapat melakukan tes integrasi pada aplikasi Anda dimulai dengan database nyata dan cache nyata.
Harap Baca: https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
Cache jarak jauh digunakan oleh tim pengembang dan/atau sistem integrasi kontinu (CI) untuk berbagi output build. Jika bangunan Anda dapat direproduksi, output dari satu mesin dapat dengan aman digunakan kembali pada mesin lain, yang dapat membuat build secara signifikan lebih cepat
DOC: https://ovh.github.io/cds/docs/components/worker/cache/
Sebagai platform kelas perusahaan, CD dapat mengirim berbagai acara internalnya (misalnya pembangunan) di sebuah bus acara. Aliran acara ini kemudian dapat memberi makan layanan lain (pelaporan, pemberitahuan, dll.,).
Kemampuan untuk meluncurkan alur kerja secara manual atau dengan dorongan git atau melalui penjadwal atau melalui webhook. Selain yang di atas, CD juga dapat dipicu menggunakan bus acara (Kafka atau RabbitMQ).
Kemampuan untuk mengelola berbagai lingkungan (misalnya Dev/Prod/Pementasan) dengan cara yang aman dengan hak akses terpisah. Dalam praktiknya, lingkungan adalah seperangkat variabel yang dapat Anda gunakan dalam alur kerja Anda.
Dengan CD, Anda dapat menggunakan pipa penempatan pada lingkungan praproduksi Anda dan menggunakan pipa penyebaran yang sama di lingkungan produksi Anda. Kemampuan untuk menggunakan produksi dapat dibatasi pada kelompok pengguna yang telah ditetapkan sebelumnya.
Pengguna bebas untuk membuat grup dan mengelola pengguna dalam grup mereka. Suatu kelompok dapat memiliki hak untuk membaca, menulis, dan melaksanakan proyek dan alur kerja mereka. Anda juga dapat membatasi pelaksanaan beberapa jalur pipa ke beberapa kelompok jika Anda mau.
Jika Anda menggunakan CDS sebagai alat CI / CD, Anda mungkin akan membuat artefak. Pekerjaan CDS diisolasi satu sama lain, tetapi Anda dapat melewati artefak dari satu pekerjaan ke pekerjaan lain menggunakan unggahan artefak dan tindakan unduhan artefak. Di akhir pekerjaan CDS, semua file dihapus dari pekerja. Untuk bertahan artefak, CD dapat menggunakan penyimpanan cepat atau sistem file yang diberikan (tidak disarankan).
CDS jelas menampilkan hasil tes unit dan kerentanan yang terdeteksi selama build.
Proyek CDS seperti penyewa. Semua pengguna dapat membuat proyek CDS, proyek ini akan menyatukan aplikasi, lingkungan, pipa, dan tentu saja alur kerja.
Proyek CDS diisolasi satu sama lain, tetapi kelompok yang sama mungkin memiliki hak akses ke banyak proyek jika Anda mau.
Model pekerja adalah konteks eksekusi pekerja. Katakanlah, Anda perlu menjalankan pekerjaan yang membutuhkan Golang v1.11.5. Dalam CDS, Anda hanya perlu membuat model pekerja GO, berisi GO di versi 1.11.5. Model pekerja dapat berupa gambar Docker, gambar OpenStack atau gambar vSphere. Meskipun administrator CDS dapat menawarkan model pekerja bersama, pengguna dapat membuat pekerja templat mereka sendiri jika mereka mau.
Pada proyek CDS, Anda dapat menambahkan integrasi seperti OpenStack, Kubernetes, dll ... Ini akan menawarkan Anda fitur dalam alur kerja Anda. Misalnya, dengan integrasi Kubernetes, Anda dapat menambahkan cluster Anda sendiri ke proyek CDS Anda dan dengan demikian dapat menggunakan tindakan aplikasi Deploy untuk menggunakan aplikasi yang baru dibangun pada cluster Anda, dalam format Helm jika Anda mau. Anda tentu saja dapat mengembangkan integrasi Anda sendiri.
Setelah membaca poin-poin sebelumnya, Anda telah mengerti: swalayan ada di mana-mana. Semua pengguna dapat membuat proyek/tindakan proyek/alur kerja/pekerja/alur kerja mereka ... dan menjalankan pekerjaan di lingkungan yang benar -benar terisolasi. Proyek CDS adalah pembangun, di mana Anda dapat menambahkan integrasi. Semua ini memungkinkan Anda untuk hanya memiliki satu contoh CD untuk seluruh perusahaan Anda.
Semua yang dapat Anda lakukan dengan UI tersedia melalui antarmuka baris perintah (CLI), bernama "CDSCTL". CDSCTL tersedia di semua OS: Darwin, FreeBSD, Linux, OpenBSD ... CDSCTL akan memungkinkan Anda untuk membuat, meluncurkan, mengekspor, mengimpor alur kerja Anda, memantau CD Anda dan menavigasi melalui proyek dan alur kerja Anda. Tidak perlu pergi ke UI CD atau manajer repositori Anda untuk memeriksa status komit Anda, git push && cdsctl workflow --track akan menampilkan alur kerja Anda di baris perintah Anda.
Apakah Anda memiliki kebutuhan otomatisasi yang lebih maju, atau keinginan untuk mengembangkan aplikasi yang menanyakan CD? API REST dan SDK akan memungkinkan Anda untuk dengan mudah mengembangkan perangkat lunak Anda.
CDS telah open-source sejak Oktober 2016. Anda dapat menginstalnya dengan bebas di perusahaan Anda atau di rumah. Beberapa tutorial tersedia untuk membantu Anda memulai CD, komposisi Docker, menginstal dengan binari.
Ketersediaan tinggi adalah poin yang sangat penting untuk alat CI / CD. CDS adalah stateless, tidak ada yang disimpan pada sistem file. Ini memungkinkan untuk meluncurkan beberapa API CDS di belakang penyeimbang beban. Dengan demikian, Anda dapat mengukur API CD sesuai kebutuhan Anda. Ini juga memungkinkan peningkatan CD dalam sehari penuh tanpa dampak pada pengguna. Dalam produksi @OVH, CDS dapat diperbarui beberapa kali sehari, tanpa memengaruhi pengguna atau menghentikan pekerja CDS. Meminta pengguna Anda untuk berhenti bekerja saat memperbarui alat pengiriman berkelanjutan akan ironis, bukan? ;-)
CD secara asli memaparkan data pemantauan. Anda akan dapat memberi makan instance Anda Prometheus atau Warp10 menggunakan beamium.
Pekerjaan CDS terdiri dari langkah -langkah. Setiap langkah adalah tindakan tipe bawaan (skrip, checkoutApplication, unggahan/unduhan artefak ...). Anda dapat membuat tindakan Anda, menggunakan tindakan yang ada - atau mengembangkan tindakan Anda sebagai plugin. Semua bahasa didukung, selama bahasa mendukung GRPC.
CDS adalah agnostik untuk bahasa dan platform. Pengguna dapat meluncurkan pekerjaan di Linux, Windows, FreeBSD, OS X, Raspberry ... di mesin virtual bertelur sesuai permintaan, dalam wadah Docker, pada host khusus.
Jadi, jika perusahaan Anda menggunakan beberapa teknologi, CD tidak akan menjadi pemblokir untuk membangun dan menggunakan perangkat lunak internal Anda.
Salah satu tujuan awal CD di OVH: Bangun dan gunakan 150 aplikasi sebagai wadah dalam waktu kurang dari 7 menit. Ini telah menjadi kenyataan sejak 2015. Apa kunci rahasia? Skala otomatis sesuai permintaan!
Dengan demikian, Anda dapat memiliki ratusan model pekerja dan bila perlu, CD akan memulai pekerja menggunakan tempat penetasan.
Penetasan seperti inkubator, melahirkan pekerja CDS dan hak untuk hidup dan mati atas mereka.
Beberapa jenis tempat penetasan tersedia:
Jadi ya, kata kunci atau tidak, ondemand skala otomatis multi-cloud adalah kenyataan dengan CD :-)
3-klausa BSD