JavaRush /Java Blog /Random-ID /Rehat kopi #120. Operator Java &, && (DAN) || (ATAU). Pen...

Rehat kopi #120. Operator Java &, && (DAN) || (ATAU). Pengantar GitOps dan DevOps untuk Pengembang

Dipublikasikan di grup Random-ID

Operator Java &, && (DAN) || (ATAU)

Sumber: freeCodeCamp Dalam bahasa pemrograman Java, kami menggunakan operator untuk melakukan operasi pada variabel. Operator dibagi ke dalam beberapa kategori: operator aritmatika, operator penugasan, operator perbandingan, operator logika, dan sebagainya. Rehat kopi #120.  Operator Java – &, && (DAN) ||  (ATAU).  Pengantar GitOps dan DevOps untuk Pengembang - 1Pada artikel ini, kita akan membahas tentang operator AND bitwise ( & ), serta operator logika AND ( && ) dan OR ( || ).

Cara menggunakan operator AND bitwise

Simbol & menunjukkan operator AND bitwise. Ini mengevaluasi nilai biner dari angka yang diberikan. Hasil biner dari angka-angka ini akan dikembalikan kepada kita di basis 10. Saat operator & mulai bekerja, operator akan mengevaluasi nilai karakter di kedua angka, dimulai dari kiri. Mari kita lihat contoh untuk membantu memahami hal ini dengan lebih baik:
System.out.println(10 & 12);
// returns 8
Bagaimana menjelaskan hal ini? Nilai biner dari 10 adalah 1010. Nilai biner dari 12 adalah 1100. Inilah yang perlu kita perhatikan sebelum memulai operasi: 1 dan 0 => 0 0 dan 1 => 0 1 dan 1 => 1 0 dan 0 = > 0 Jadi mari kita lakukan operasi. Simbol pertama untuk 10 adalah 1, simbol pertama untuk 12 juga 1, jadi: 1 dan 1 = 1. Lanjut ke simbol kedua - 0 untuk 10 dan 1 untuk 12: 1 dan 0 = 0. Untuk simbol ketiga - 1 untuk 10 dan 0 untuk 12: 1 dan 0 = 0. Untuk karakter keempat - 0 untuk 10 dan 0 untuk 12: 0 dan 0 = 0. Sekarang mari kita gabungkan semua karakter yang dikembalikan. Ini memberi kita 1000. Nilai biner 1000 di basis 10 adalah 8, jadi operasi kita menghasilkan 8.

Cara Menggunakan Logika DAN Operator

Perhatikan bahwa kami menggunakan operator Boolean untuk mengevaluasi kondisi. Mereka mengembalikan nilai benar atau salah tergantung pada kondisi yang diberikan. Simbol && mewakili operator AND. Ini mengevaluasi dua pernyataan/kondisi dan mengembalikan nilai benar hanya jika kedua pernyataan/kondisi benar. Seperti inilah sintaksnya:
statment1/condition1 && statemnt2/condition2
Seperti yang Anda lihat di atas, ada dua pernyataan/kondisi yang dipisahkan oleh sebuah pernyataan. Operator mengevaluasi nilai kedua pernyataan/kondisi dan memberi kita hasilnya - true atau false . Berikut ini contohnya:
System.out.println((10 > 2) && (8 > 4));
//true
Operasi akan menghasilkan nilai benar karena kedua kondisi benar: 10 lebih besar dari 2 dan 8 lebih besar dari 4. Jika salah satu kondisi memiliki logika yang salah, kita akan menerima false . Untuk lebih memahami operator && , Anda harus mengetahui bahwa kedua kondisi harus benar agar dapat dievaluasi menjadi benar . Berikut contoh lain yang mengembalikan false :
System.out.println((2 > 10) && (8 > 4));
// false
Di sini 2 tidak lebih besar dari 10, dan 8 lebih besar dari 4 - jadi kita mendapatkan false . Hal ini karena salah satu kondisinya salah.
  • Jika kedua kondisi benar => benar

  • Jika salah satu dari dua kondisi tersebut salah => salah

  • Jika kedua kondisi salah => salah

Cara menggunakan operator Boolean OR

Untuk menyatakan operator OR kita menggunakan simbol || . Operator ini mengembalikan nilai salah hanya jika kedua kondisi salah. Artinya, jika kedua kondisi tersebut benar, kita akan mendapatkan true , dan jika salah satu dari kedua kondisi tersebut benar, maka kita juga akan mendapatkan true . Berikut sintaksnya:
statment1/condition1 || statemnt2/condition2
Mari kita lihat beberapa contoh.
System.out.println((6 < 1) || (4 > 2));
// true
Benar dikembalikan kepada kami karena salah satu kondisinya benar.
  • Jika kedua kondisi benar => benar

  • Jika salah satu kondisi benar => benar

  • Jika kedua kondisi salah => salah

Kesimpulan

Pada artikel ini, kita mempelajari cara menggunakan operator bitwise & serta operator logika && dan || di Java. . Kami juga mempelajari nilai yang dikembalikan setiap operasi bergantung pada kondisinya.

Pengantar GitOps dan DevOps untuk Pengembang

Sumber: Hackernoon Salah satu tujuan utama DevOps adalah membantu pengembang menerapkan fitur ke produksi secepat dan seaman mungkin. Ini berarti menciptakan alat dan proses yang melakukan segalanya mulai dari menyediakan lingkungan pengembangan pribadi hingga menerapkan dan mengamankan beban kerja produksi. Pada saat yang sama, tergesa-gesa tidak boleh menyebabkan kegagalan kritis. Rehat kopi #120.  Operator Java – &, && (DAN) ||  (ATAU).  Pengantar GitOps dan DevOps untuk Pengembang - 2GitOps adalah cara untuk mengotomatisasi DevOps. Lebih khusus lagi, ini adalah taktik otomatisasi menggunakan alat pengembangan Git. Karena pengembang telah memasukkan kode ke repositori Git terpusat (menggunakan sesuatu seperti GitHub, GitLab, atau BitBucket), pengembang DevOps dapat memasukkan skrip kerja mereka untuk membangun, menguji, atau menerapkan aplikasi agar dapat dijalankan setelah setiap perubahan kode dilakukan. Ini berarti pengembang dapat bekerja secara eksklusif dengan Git, dan segala sesuatu yang membantu mereka memasukkan kode ke dalam produksi akan diotomatisasi.

Mengapa GitOps?

Sebelumnya, metode DevOps dan CI/CD adalah sekumpulan skrip dan alat berpemilik yang melakukan tugas sehari-hari: menjalankan pengujian, menyediakan infrastruktur, atau menerapkan aplikasi. Namun, ketersediaan alat infrastruktur baru seperti Kubernetes, ditambah dengan kebangkitan arsitektur layanan mikro, mengharuskan pengembang untuk lebih terlibat dalam proses CI/CD. Perubahan ini menimbulkan masalah terkait skenario pengguna, mengakibatkan alur kerja yang membingungkan dan tidak konsisten, duplikasi upaya, dan penurunan tajam dalam kecepatan pengembangan. Untuk memanfaatkan alat dan arsitektur cloud, tim memerlukan pendekatan CI/CD yang konsisten dan otomatis. Hal ini akan memungkinkan pengembang untuk:
  • Berhenti membuat dan memelihara skrip kepemilikan dan sebagai gantinya gunakan proses universal.

  • Bangun aplikasi dan layanan lebih cepat dengan proses penerapan universal yang spesifik.

  • Deploy lebih cepat setelah melakukan perubahan kode.

  • Aktifkan penerapan otomatis untuk rilis yang lebih cepat, lebih sering, dan lebih andal.

  • Lakukan rollback dan audit untuk kepatuhan terhadap pola desain deklaratif.

Pengembang menyukai GitOps

Karena semua alasan yang disebutkan di atas (dan banyak lagi), perusahaan memerlukan pendekatan terkelola dan otomatis terhadap CI/CD dan DevOps agar berhasil dalam membangun dan memelihara aplikasi cloud. Namun jika hanya otomatisasi, lalu mengapa GitOps lebih baik dibandingkan strategi lain (seperti SlackOps, penerapan terjadwal, atau skrip sederhana)? Jawabannya sederhana: pengembang menyukai GitOps.

Git - satu alat untuk mengelola semuanya

Dalam beberapa tahun terakhir, menjadi jelas bahwa GitOps adalah salah satu strategi otomatisasi DevOps dengan peringkat paling tinggi di kalangan pengembang, dan tidak sulit untuk mengetahui alasannya. Pengembang tinggal di Git. Mereka menyimpan perubahan sementara di git, berkolaborasi menggunakan git, meninjau kode menggunakan git, dan menyimpan riwayat serta jejak audit dari setiap perubahan yang pernah dilakukan siapa pun, juga di git. Karena pengembang sangat bergantung pada git, ada alat khusus yang tersedia untuk bekerja dengannya. Dalam sistem integrasi berkelanjutan modern yang paling sering digunakan untuk mendukung GitOps, seperti CircleCI , Github Actions , Gitlab CI dan lainnya, konfigurasi yang mendukung pipeline terletak langsung di repositori Git. Seperti kode sumber aplikasi, konfigurasi ini dikontrol versinya dan dapat dilihat oleh setiap pengembang yang mengerjakan proyek. Mereka tidak hanya dapat melihat proses pipeline, namun mereka juga dapat dengan cepat dan mudah melakukan perubahan sesuai kebutuhan. Kemudahan akses bagi pengembang ini sangat penting saat mereka menulis pengujian untuk aplikasi mereka dan memastikan keamanan dan stabilitasnya.

Layanan mandiri penuh

Fitur baru atau perbaikan bug tidak dianggap selesai sampai dirilis ke produksi. Ini berarti bahwa apa pun yang mencegah perubahan kode dilakukan dalam produksi akan membuang-buang waktu dan energi pengembang. Misalkan seorang pengembang harus menunggu beberapa saat hingga tim atau orang lain menyelesaikan suatu tugas sebelum dia dapat menutup langkah pekerjaannya. Hal ini dapat menimbulkan gesekan dan konflik dalam organisasi. Memfasilitasi kolaborasi antar tim adalah salah satu manfaat utama GitOps. Pengembang tidak hanya mendapatkan kesempatan untuk bekerja dengan alat yang sudah dikenal, tetapi mereka juga dapat merilis kode mereka ke dalam produksi tanpa intervensi manual. Artinya mereka tidak menunggu orang lain menyelesaikan tugasnya.

Kerja terus menerus dalam segala hal

Manfaat besar lainnya dari GitOps adalah semua proses selalu berjalan! Setiap perubahan yang kami lakukan memicu pengujian dan penerapan tanpa langkah manual apa pun. Karena pengembang akan menggunakan git dengan atau tanpa GitOps, menghubungkan ke alur kerja mereka yang ada untuk menjalankan proses DevOps adalah pilihan ideal untuk otomatisasi.

GitOps dalam praktiknya

Tentu saja, keterlibatan pengembang dalam proses ini telah menyebabkan tim banyak menggunakan alat yang mudah digunakan seperti Git. Hal ini juga menciptakan konsistensi alami untuk fase integrasi/penerapan CI/CD. Lagi pula, hanya ada begitu banyak hal yang tersedia di repositori Git (misalnya penerapan, permintaan tarik buka/tutup, penggabungan, dll.), sehingga tampilan dan nuansa sebagian besar implementasi GitOps melibatkan serangkaian langkah-langkah umum:

1. Tarik permintaan, pengujian, dan pratinjau lingkungan

Setelah pengembang menghabiskan waktu menulis kode untuk fitur baru mereka, mereka biasanya memasukkan kode tersebut ke cabang Git baru dan mengirimkan permintaan Tarik atau permintaan Penggabungan kembali ke cabang utama repositori. Pengembang melakukan ini setiap hari. Perintah tersebut mengharuskan manajer teknis untuk meninjau perubahan kode dan menyetujuinya untuk digabungkan ke dalam kode aplikasi utama. Ini adalah peluang besar bagi DevOps untuk menambahkan tugas tambahan. Dengan menghubungkan ke peristiwa buka/tutup yang dihasilkan oleh proses permintaan tarik ini menggunakan alat integrasi berkelanjutan (CI), tim DevOps dapat memicu pelaksanaan pengujian unit, pembuatan lingkungan pratinjau, dan pelaksanaan pengujian integrasi terhadap lingkungan tersebut. Perkakas ini memungkinkan para insinyur dengan cepat membangun kepercayaan terhadap perubahan kode dan memungkinkan manajer produk melihat perubahan kode melalui lingkungan pratinjau pra-penggabungan. Kepercayaan yang lebih erat berarti fusi yang lebih cepat. Semakin sedikit dan sering data dimasukkan, semakin sedikit rollback yang rumit dan membingungkan. Teknik GitOps ini adalah kunci untuk tim pengembangan dan produksi yang lebih cepat dan sehat.

2. Gabungkan dengan master dan terapkan ke staging

Setelah semua pihak meninjau perubahan, kode dapat digabungkan ke dalam cabang master repositori bersama dengan perubahan yang dilakukan oleh tim pengembangan lainnya. Cabang master ini sering digunakan sebagai area pementasan kode yang hampir siap untuk diproduksi. Masih ada waktu untuk menyelesaikan beberapa tugas operasional seperti pengujian dan penerapan. Meskipun kami biasanya menguji kode untuk setiap permintaan penarikan sebelum menggabungkannya, sebaiknya jalankan kembali pengujian untuk memastikan kode berfungsi dengan perubahan lain yang dibuat oleh anggota tim lainnya. Sebaiknya terapkan semua perubahan ini ke lingkungan umum (disebut “pementasan”) yang dapat digunakan seluruh tim untuk meninjau dan menguji perubahan terbaru sebelum dirilis ke pelanggan.

3. Kurangi rilis dan terapkan ke produksi

Terakhir, setelah manajer dan teknisi memiliki waktu untuk meninjau dan menguji perubahan terbaru pada cabang upstream, tim siap untuk merilis rilis dan menerapkannya ke produksi! Tugas ini sering kali dilakukan oleh manajer rilis, anggota tim khusus (atau bergilir) yang bertugas menjalankan skrip penerapan dan memantau rilis. Tanpa menggunakan GitOps, anggota tim ini harus memeriksa di mana skrip yang benar berada, bagaimana urutan menjalankannya, dan apakah semua perpustakaan dan paket yang benar yang diperlukan untuk menjalankan skrip telah diinstal di mesin mereka. Dengan GitOps, kami dapat menghubungkan penerapan ini ke peristiwa berbasis Git lainnya—pembuatan rilis atau tag. Yang perlu dilakukan oleh manajer rilis hanyalah membuat “rilis” baru, sering kali menggunakan semver untuk namanya. Tugas untuk membuat dan menerapkan perubahan kode akan berjalan secara otomatis. Seperti sebagian besar tugas yang dilakukan oleh alat CI, tugas tersebut akan dikonfigurasikan dengan lokasi skrip dan urutan pustaka serta paket yang diperlukan untuk menjalankannya.

Alat GitOps

Alat integrasi berkelanjutan yang kuat dan intuitif bukanlah satu-satunya hal yang diperlukan untuk melengkapi proses GitOps seperti yang dijelaskan dalam artikel ini. Sistem CI dapat memicu skrip berdasarkan peristiwa git, namun Anda masih memerlukan alat canggih untuk menjalankan skrip tersebut dan membuatnya mudah dan aman untuk dijalankan dan dipelihara. Menerapkan perubahan kode (juga dikenal sebagai pengiriman berkelanjutan, CD) adalah salah satu langkah tersulit untuk diotomatisasi. Itu sebabnya kami memilih beberapa kategori alat yang dapat membantu Anda dalam perjalanan GitOps Anda:

Kontainerisasi dengan Docker

Docker membawa pengembangan cloud ke dalam lingkungan terdistribusi yang benar-benar baru dan membantu pengembang mulai mempertimbangkan arsitektur layanan mikro secara realistis sebagai opsi yang layak. Salah satu hal yang membuat Docker begitu kuat adalah kenyamanannya bagi pengembang dibandingkan dengan solusi virtualisasi generasi sebelumnya. Seperti konfigurasi CI deklaratif yang ditemukan di repositori kami, pengembang hanya perlu menulis dan memelihara Dockerfile di repositori mereka untuk mengaktifkan pembuatan otomatis mesin virtual yang diterapkan dalam container. Kontainerisasi adalah taktik yang sangat ampuh untuk tim cloud dan harus menjadi alat inti dalam repertoar Anda.

Infrastruktur sebagai Kode (IaC)

Banyak hal yang dilakukan untuk mempersiapkan infrastruktur dan menerapkan aplikasi yang tidak disimpan di Dockerfile. Untuk hal lainnya, ada solusi infrastruktur sebagai kode (IaC) seperti Terraform , Cloudformation , dan lainnya. Solusi ini memungkinkan pengembang untuk mendeskripsikan bagian lain dari aplikasi, seperti sumber daya Kubernetes, penyeimbang beban, jaringan, keamanan, dan banyak lagi, secara deklaratif. Sama seperti konfigurasi CI dan Dockerfile yang dijelaskan sebelumnya, templat IaC dapat dikontrol versinya dan dibagikan ke semua pengembang di tim Anda.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION