Jumat, 10 Februari 2023

devops real

 

Pengenalan DevOps

 

Apa itu DevOps?

 

DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata tersebut bermakna “operasional pengembang”. Seperti yang disebutkan sebelumnya, DevOps adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu tim development dengan tim operations dengan efektif dan efisien.

 

 

DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata tersebut bermakna menggabungkan proses development/pengembangan dari sebuah sistem/aplikasi dengan operation/operasional. Seperti yang disebutkan sebelumnya, DevOps adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu tim development dengan tim operations dengan efektif dan efisien.

 

 

Pola pikir yang dibentuk oleh DevOps adalah koordinasi antar tim yang dapat dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan. Tim operation atau development cukup mengonfigurasi beberapa komponen yang dibutuhkan melalui prosedur yang dibuat.

 

 

Tentunya koordinasi yang diterapkan pada DevOps membutuhkan sebuah tools. Banyak tools yang bisa kamu gunakan, salah satunya adalah Source Code Management (SCM) yang biasa digunakan secara umum oleh tim development. Produk SCM yang paling terkenal adalah Git, ditemani oleh Source Code Repository (SCR) seperti GitHu, GitLab, Bitbucket, atau yang lainnya. Namun SCM saja tak cukup untuk mengomunikasikan antara tim development dengan tim operational.

 

 

 

Agar tim operational dapat mengetahui permasalahn yang terjadi, biasanya akan dihubungkan ke Product Management Software, seperti Jira. Melalui Product Management Software, tim operation dapat mengetahui berbagai permasalahan yang terjadi pada sistem/aplikasi. Sehingga antara pihak development dengan operational akan saling terhubung satu sama lain.

Masalah pada proses pengembangan aplikasi

 

Proses pengembangan aplikasi bukanlah suatu hal yang mudah dilakukan, bahkan dalam beberapa kasus sebuah pengembangan aplikasi dapat melibatkan berbagai pihak. Bukan hanya dari seberapa kompleks sebuah aplikasi yang dibuat tetapi juga bisa dari model pengembangan aplikasi, infrastruktur aplikasi, proses yang masih dilakukan manual bahkan struktur organisasi. Berikut adalah penjelasan beberapa faktor yang menjadi permasalahan ketika proses pengembangan aplikasi sebelum menerapkan DevOps:

 

Waterfall

Waterfall adalah satu dari sekian banyak model pengembangan aplikasi. SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun aplikasi dan metode dalam mengembangkan aplikasi tersebut. Dengan diterapkannya SDLC pada proses pengembangan aplikasi akan mempermudah dalam mengidentifikasi masalah dan merancang aplikasi sesuai dengan kebutuhan.

 

SDLC Waterfall sesuai dengan namanya, tahapan pada model ini bergerak secara sistematis dari satu tahap ke tahap berikutnya layaknya air terjun. SDLC ini cocok untuk pengembangan aplikasi yang perubahannya mudah diprediksi, namun akan menyebabkan tim developer bekerja secara monoton dan tidak dapat melakukan perubahan dengan cepat. Jika ada perubahan yang tidak memenuhi deadline yang sudah ditentukan maka akan berdampak juga pada jadwal perubahan yang lain. Selain itu ketika tim developer fokus pada penambahan fitur yang baru, perbaikan kesalahan (bug) akan menyulitkan tim developer karena mereka fokus sepenuhnya pada penambahan fitur baru.

 

Waterfall terdiri dari lima tahapan, mulai dari perencanaan konsep, pemodelan (design), implementasi, pengujian, dan pemeliharaan.






·      Perencanaan Konsep

Pada tahap ini pihak yang terlibat perlu melakukan komunikasi untuk memahami aplikasi yang akan dikembangkan dan batasan batasan dari pengembangan aplikasi. Proses pada tahap ini bisa dilakukan dengan cara wawancara, survey, ataupun diskusi.

·      Pemodelan (Desain)

Setelah konsep didapatkan dilanjutkan ke tahap pemodelan atau desain. Pada tahap ini hasil dari tahap sebelumnya akan diolah sedemikian rupa sehingga dapat diketahui seperti apa perkiraan aplikasi yang akan dibuat. Pada proses ini akan berfokus pada struktur data, arsitektur aplikasi, tampilan, dan juga algoritma.

·      Implementasi

Pada tahap implementasi, hasil dari tahap desain akan diterjemahkan ke dalam bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman (coding).

·      Pengujian

Setelah tahap implementasi selesai, selanjutnya adalah tahap pengujian. Pada tahap ini aplikasi yang dibuat akan diuji apakah sudah layak digunakan atau belum, sudah mencapai target yang sesuai dari tahap pertama atau belum.

 

 

 

·      Pemeliharaan

Pada tahap terakhir ini aplikasi yang sudah dibuat dan dijalankan akan dipelihara (maintenance). Maintenance ini termasuk memperbaiki kesalahan (bug) yang tidak ditemukan pada tahap pengujian.

 

Monolithic Architecture

Monolithic architecture adalah sebuah metode yang menempatkan berbagai macam layanan (service) di dalam satu tempat. Contoh sederhananya adalah seperti menempatkan service login, authentication, dan order di sebuah server backend yang sama. Dengan cara seperti ini akan ada kemungkinan apabila di salah satu service terdapat kesalahan (bug) akan berdampak juga service yang lainnya.

 

Dan apabila melihat dari sisi kompleksitas sebuah aplikasi yang dibangun, semakin kompleks sebuah aplikasi semakin sulit juga untuk menerapkan monolithic architecture sehingga lebih baik menerapkan Microservices Architecture.

 

 

 

 

Manual Process

Proses yang dilakukan secara manual dapat menghambat pengembangan sebuah aplikasi, memungkinkan adanya inkonsistensi, dan juga rawan kesalahan karena manusia (human error).

 

Salah satu proses yang dapat memakan waktu lama adalah konfigurasi infrastruktur. Biasanya infrastruktur sebuah aplikasi terdiri dari beberapa server, ketika server dikonfigurasi satu per satu dan berulang akan memakan waktu yang lama, dan juga akan lebih rentan terhadap human error.

 

 

Struktur Organisasi

Proses pengembangan aplikasi paling tidak melibatkan dua tim, yaitu Developer dan IT Operation. Dua tim ini memiliki satu tujuan yang sama, yaitu menyajikan aplikasi yang stabil kepada pengguna (user). Namun, dua tim ini terkadang saling tertutup satu sama lain, baik Developer ataupun Operation memiliki prioritas, tools, dan workflow tersendiri sehingga bisa menimbulkan masalah-masalah baru.

 

Developer bertanggung jawab untuk membuat aplikasi, mengembangkan aplikasi, serta memperbaiki bug dan sebagainya secepat mungkin. Disisi lain, Operation bertanggung jawab untuk membuat infrastruktur yang stabil, menjaga infrastruktur untuk tetap zero downtime dan sebagainya. Namun, yang jadi masalah adalah terkadang terdapat bug pada code yang bisa menyebabkan infrastruktur bermasalah, begitu juga sebaliknya terkadang terdapat masalah di infrastruktur yang menyebabkan code tidak berjalan sebagaimana mestinya.

 

DevOps sebagai Solusi

Berangkat dari beberapa permasalahan yang telah disebutkan diatas, DevOps muncul sebagai solusi untuk mengatasi masalah-masalah tersebut. DevOps adalah kombinasi dari kultur, praktik, dan tools yang dapat membantu meningkatkan kemampuan untuk menyajikan aplikasi secara cepat, dan dapat bersaing secara efektif di Market. DevOps tidak menerapkan Waterfall sebagai model pengembangan sebuah aplikasi (SDLC) melainkan Agile. Dengan menerapkan Agile, proses pengembangan aplikasi dapat mengalami peningkatan kecepatan ketika memperbaiki bug, atau release fitur terbaru. Dan dengan menerapkan DevOps memungkinkan kemudahan untuk menerapkan Microsevices Architecture. Selain itu dengan menerapkan DevOps, tim Developer dan Operation tidak lagi menjadi tertutup. Bahkan terkadang bergabung menjadi satu tim dimana mereka mengerjakan satu siklus penuh untuk pengembangan sebuah aplikasi, mulai dari pengembangan aplikasi hingga perilisan aplikasi.

 

Dalam kasus lain bahkan tim Quality Assurance (QA) dan tim Security terintegrasi dengan DevOps sepanjang siklus penuh dalam pengembangan aplikasi.

 

 

 

Agile

Seiring berkembangnya teknologi, metode Waterfall dianggap tidak cukup apabila pengembangan aplikasi memerlukan waktu yang sedikit, sehingga metode Agile muncul sebagai solusi untuk mempercepat pengembangan aplikasi. Metode yang digunakan pada Agile didasarkan pada pengerjaan yang berulang, baik aturan ataupun solusi disepakati oleh seluruh pihak di dalam tim pengembangan aplikasi.

 

Pada Agile, timeline pengerjaan dilakukan secara singkat dan cepat. Sehingga setiap developer perlu mengadaptasi metode ini pada setiap perubahan yang ada.

 

Jadi pada Agile, alih-alih menerapkan “big bang” pada proses pengembangan aplikasi, dengan metode ini setiap pengerjaan dilakukan kecil-kecil tetapi cepat. Aturan, rencana dan hasil dievaluasi secara berkala sehingga tim dapat beradaptasi secara alami dengan perubahan yang cepat.

 

Pada proses pengembangan aplikasi dengan metode waterfall, ketika satu tahap sudah selesai dikerjakan lalu akan dilemparkan ke tim lain untuk melanjutkan ke tahap berikutnya. Sedangkan pada Agile lebih pada pendekatan kolaborasi antar tim. Komunikasi secara terbuka, kolaborasi, adaptasi, dan saling percaya antar tim menjadi jantung dari model Agile.

 

 

Microservices Architecture

Sebaliknya dari Monolithic Architecture, pada Microservices Architecture layanan-layanan (services) disimpan pada tempat yang terpisah. Hal ini dapat meminimalisir kesalahan (bug) yang berantai, maksudnya apabila ada salah satu service sedang mengalami gangguan (error) maka service lain tidak akan terpengaruh. Biasanya Microservices diterapkan pada pengembangan aplikasi agar bisa melakukan percepatan.

 

Dan Container adalah salah satu yang paling cocok untuk diterapkan pada Microservices Architecture. Karena programmer dapat lebih focus dalam mengembangkan aplikasi yang dibuat tanpa perlu mengkhawatirkan dependencies.

 

Manfaat Penerapan

Dengan menerapkan DevOps dalam pengembangan aplikasi, baik aplikasi dengan tingkat kompleksitas yang rendah hingga tinggi secara umum ada beberapa yang dapat dirasakan. Berikut beberapa manfaat setelah menerapkan DevOps:

 

·      Speed

Terjadi peningkatan kecepatan dalam berinovasi untuk user, beradaptasi dengan perubahan pasar, dan berkembang lebih efisien.

·      Rapid Delivery

Meningkatkan frekuensi perilisan fitur baru, perbaikan bug dan juga developer dapat berinovasi dan meningkatkan sebuah aplikasi.

·      Reliability

Memastikan kualitas dari peningkatan aplikasi dan infrastruktur, sehingga user tetap dapat merasakan kesan positif dari perubahan-perubahan yang dilakukan.

 

 

 

 

·      Scale

Mengelola infrastruktur dan aplikasi dalam skala besar. Dengan menerapkan DevOps, automation dan konsistensi dapat membantu untuk mengelola sistem yang kompleks ataupun perubahan sistem secara efisien dan dapat mengurangi resiko kesalahan.

·      Improved Collaboration

Membangun kolaborasi lebih baik antara Developers dan Operations, berbagi tanggung jawab sebagai tim, dan juga menggabungkan workflows agar tetap sejalan pada tujuan yang sama.

·      Security

Perubahan yang cepat sambil menjaga dan mempertahankan keamanan dapat dipenuhi dengan menerapkan DevOps. Misalnya dengan menerapkan Infrastructure as a Code, dimana tim dapat menentukan dan juga melacak dalam skala besar.

Three Ways Principal of DevOps

Dikutip dari buku “The Phoenix Project” dan juga dari “The DevOps Handbook” untuk menerapkan DevOps, ada beberapa prinsip yang kiranya perlu diketahui dan dipahami, agar kelak nantinya dapat membantu pengembangan aplikasi secara efisien.

 

 

 

The First Way: Flow Principles and System Thinking

 

Prinsip yang pertama menekankan pada kebutuhan workflow yang cepat dan lancar ketika proses pengembangan sebuah aplikasi. Mulai dari penulisan code yang dilakukan tim Developer, mempersiapkan infrastruktur dan melakukan deployment atau perilisan sebuah aplikasi, hingga akhirnya kepada user.

 

Dalam prosesnya, ada beberapa cara yang dapat mengoptimalkan workflow, yaitu membuat pekerjaan menjadi “terlihat”, maksudnya adalah memperlihatkan progress yang dilakukan sudah sejauh apa kepada tim (tracking progress). Lalu selanjutnya adalah mengurangi work in progress, artinya mengurangi multitasking dalam mengerjakan suatu tugas. Lalu yang terakhir adalah secara kontinu mencari cara untuk menyederhanakan dan meningkatkan kinerja dari workflow.

 

 

The Second Way: Amplifying Feedback Loops

 

Fokus utamanya adalah untuk meningkatkan jumlah feedback dan juga mempercepat penyampaian feedback dari operations ke developers. Tujuannya adalah meningkatkan kualitas sekaligus mencegah terulangnya suatu masalah.

 

Salah satu cara yang bisa diterapkan adalah melakukan testing aplikasi sebelum rilis ke user (shift left testing). Dengan begitu apabila ada yang perlu diperbaiki bisa dilakukan sesegera mungkin dan pada akhirnya kualitas dari sebuah aplikasi bisa stabil atau bahkan meningkat.

 

 

 

The Third Way: Continual Experimentation and Learning

 

Prinsip yang terakhir adalah untuk menerapkan kebiasaan (kultur) untuk terus belajar dan bereksperimen secara kontinu. Pengulangan, latihan, menerima resiko, dan juga membuat kesalahan adalah bagian dari belajar.

 

Practical DevOps

Pada praktiknya penerapan DevOps dapat menjadi beragam pada pengembangan sebuah aplikasi, menyesuaikan dengan kebutuhan yang diperlukan. Namun pada umumnya terbagi menjadi dua bagian yaitu DevOps Lifecycle dan DevOps Phase.

 

DevOps Lifecycle

DevOps lifecycle memperlihatkan bagaimana sebuah pipeline dari suatu pengembangan sebuah aplikasi, atau dengan kata lain tahapan-tahapan yang terjadi ketika mengembangkan sebuah aplikasi, dimulai dari Plan,Code, Build, Test, Release, Deploy, Operate, Monitor.

 


 

·      Plan

Tahap Plan akan mencakup semua perencanaan dan perancangan dari sebuah aplikasi yang akan dikembangkan. Biasanya pada tahap ini seorang Project Manager yang akan memimpin. Semua aturan, persyaratan, dan feedback dari stakeholders atau project owner dan bahkan user akan dikumpulkan, dan akan digunakan untuk membuat roadmap project. Tools yang umumnya digunakan untuk melakukan tracking diantaranya ada Asana, Jira, ClickUp, dan lain sebagainya.

·      Code

Pada tahap ini developer akan mulai menuliskan code dari aplikasi yang dibangun. Untuk tools yang digunakan pun ada banyak salah satunya yang populer adalah VSCode. Setelah developer menuliskan code, kemudian mereka melakukan push atau proses menyimpan code ke sebuah repository terpusat, salah satunya adalah Github.

·      Build

Selanjutnya setelah code di-push ke repository akan dilakukan build. Build disini bermaksud mengubah code dari developer menjadi sebuah aplikasi. Biasanya sebelum melakukan build, developer lain akan melakukan diskusi untuk mendapatkan feedback dan review terhadap code. Setelah selesai melakukan diskusi selanjutnya adala melakukan build aplikasi. Build aplikasi bisa menggunakan berbagai macam tools tergantung dari aplikasi yang dibuat, jika dibuat menjadi image maka Docker dapat digunakan. Atau juga dibuat menjadi compressed file (zip, jar, dan lain-lain).

·      Test

Tahapan berikutnya adalah melakukan Test pada aplikasi yang di-build. Apakah aplikasi yang dibuat memenuhi kriteria atau tidak, secara fungsional berjalan dengan semestinya atau tidak, secara desain, dan sebagainya. Apabila ternyata tidak sesuai maka akan berhenti ditahap ini dan melakukan perbaikan. Namun apabila sudah sesuai maka selanjutnya adalah Release.

·      Release

Pada tahap Release aplikasi yang sudah lolos dari tahap Test akan diberikan label atau nomor versi. Kapan aplikasi tersebut dirilis, apa saja perubahan yang dilakukan, dan pada tanggal berapa dilakukan release, sebelum akhirnya aplikasi tersebut akan di-deploy.

·      Deploy

Deploy adalah proses dimana aplikasi yang dibuat ditempatkan atau disebarkan, dan akhirnya bisa diakses oleh user. Salah satu tools yang digunakan adalah AWS CodeDeploy, Jenkins, dan sebagainya.

·      Operate

Pada tahap Operate, tim Operation akan memastikan aplikasi dan infrastruktur berjalan sebagaimana mestinya. Dan juga mengambil data performance, errors, dan sebagainya. Apabila ternyata ada berupa kesalahan atau bug, user pun dapat memberikan feedback yang nantinya akan menjadi sebuah patokan untuk melakukan pengembangan dari aplikasi.

·      Monitor

Monitor adalah tahap terakhir dari DevOps Lifecycle. Dari tahap sebelumnya sudah dikumpulkan berupa data performance, error, atau bahkan feedback. Dari data-data tersebut bisa dilakukan introspeksi atau evaluasi dari aplikasi yang dikembangkan. Bahkan juga dapat dilakukan monitor untuk pipeline yang dibuat, apakah kedepannya akan terjadi bottlenecks yang dapat menghambat produktivitas pengembangan aplikasi.

 

DevOps Phase

DevOps phase memperlihat bagaimana sebuah lifecycle dari pengembangan aplikasi berjalan secara kontinu, atau yang lebih dikenal dengan istilah CI/CD. CI/CD merupakan singkatan dari Continuous Integration dan Continuous Delivery/Deployment.

 

 


·      Continuous Integration

Tim Developer saling berkolaborasi untuk mengembangkan sebuah aplikasi. Dengan adanya Continuous Integration, code antar developer akan lebih mudah dikelola. Tujuan dari Continuous Integration adalah otomatisasi, transparansi dan kolaborasi antar developer terkait code yang dibuat. Sebagai contoh apabila ada code yang sekiranya menjadi sebuah bug di code yang dibuat developer lain, akan lebih cepat dideteksi dan lebih cepat juga diperbaiki. Continuous Integration berada pada tahapan Plan, Code, dan Build. Karena lebih banyak interaksi yang dilakukan antar developer.

·      Continuous Delivery

Pada Continuous Delivery, terdiri dari tahapan Test dan Release. Adanya Continuous Delivery dapat membantu untuk memastikan sebuah aplikasi siap untuk di-deploy dengan melewati tahap Test dan Release secara otomatis.

·      Continuous Deployment

Serupa tapi tak sama, mungkin sebuah kalimat yang cocok antara Continuous Delivery dan Continuous Deployment. Perbedaannya hanya perlu persetujuan secara manual untuk melakukan deploy ke production. Pada tahap ini aplikasi yang sudah siap akan di-deploy sehingga pada akhirnya dapat diakses oleh user.

 

Ketika security menjadi sebuah fokus dalam pengembangan aplikasi, DevOps berkembang menjadi DevSecOps. Pada DevSecOps akan disematkan unsur-unsur security pada DevOps lifecycle seperti melakukan secret scanning, Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), dan sebagainya.

 

 

 

 

Kesimpulan

 

Tidak perlu diragukan lagi, dengan menerapkan DevOps sebagai sebuah kultur baru dalam pengembangan sebuah aplikasi dapat berdampak sangat signifikan dan juga tetap memastikan kualitas dari aplikasi berada pada level tertinggi. Tujuan utamanya dari DevOps adalah menjaga kontinuitas dan mengoptimalkan otomatisasi. Dan tentang bagaimana sebuah tim dapat berkolaborasi untuk mengembangkan sebuah aplikasi dengan cepat dan dengan peningkatan-peningkatan yang bisa dirasakan user.

Selasa, 18 Oktober 2022

File Sharing Management (FTP)

 

Apa itu FTP?

FTP (File Transfer Protocol) adalah internet service yang dirancang untuk membuat sambungan ke server internet tertentu atau komputer, sehingga user dapat mengirimkan file ke komputer (download) atau mengirimkan file ke server (upload). FTP saat ini banyak digunakan untuk melakukan pertukaran data, karena lebih mudah daripada menggunakan perangkat kabel atau fisik.

Diharapkan dengan artikel ini nantinya pembaca dapat mengerti mengenai apa itu FTP dan bagaimana cara menggunakan FTP untuk melakukan remote server. Remote server sangat berguna untuk mengelola website tanpa harus masuk ke dalam akun hosting atau Virtual Private Server (VPS).

Sejarah FTP

Sebelum membahas mengenai sejarah apa itu FTP, saya akan menjelaskan sedikit mengenai hubungan Telnet dengan FTP. Telnet digunakan untuk melakukan koneksi secara langsung (indirect network), sedangkan FTP menggunakan koneksi tidak langsung. Kedua jenis  TCP/IP koneksi ini menjadi dua model utama yang dikenalkan.

Koneksi tidak langsung berarti menggunakan sumber daya dari remote-host dan menggunakannya pada sistem lokal. Kemudian mentransferkannya kembali ke remote-host.

Standar FTP pertama kali adalah RFC 114 yang dikeluarkan pada tahun 1971, bahkan sebelum TCP dan IP ada. Standar ini digunakan untuk mendefinisikan perintah dasar yang digunakan untuk perencanaan sistem komunikasi yang ingin menggunakannya. Protokol FTP yang digunakan untuk standar internet disusun oleh komite Internet Engineering Task Force sebagai serangkaian dokumen resmi RFC (Request for Comments).

FTP dibuat dengan tujuan agar pengguna dapat memindahkan file dari satu tempat ke tempat yang lainnya. Seperti protokol TCP/IP pada umumnya, ini didasarkan pada model client/server.

Fungsi FTP Server dan Kegunaan FTP

Ada beberapa fungsi FTP yang saat ini banyak digunakan, seperti untuk mengunggah halaman website ke dalam Internet melalui web hosting. Fungsi lain seperti memperbarui revisi dari program yang dilakukan oleh aplikasi FTP developer. Lengkapnya, berikut ini adalah fungsi dari FTP yang saat ini ada.

  • Melakukan upload halaman website ke dalam web server/web hosting ke internet
  • Menjelajah dan mengunduh file dari situs perangkat lunak publik
  • Mengirimkan file yang berukuran besar menjadi dua partisi yang mungkin saja terlalu besar untuk lampiran di dalam email
  • Mengunduh dan melakukan upload konten, seperti tugas kuliah ke FTP server
  • Mendistribusikan revisi terakhir program yang dilakukan oleh pengembang perangkat lunak

Tentu saja tidak hanya itu, ada banyak fungsi FTP lain yang bisa dimanfaatkan dalam melakukan pekerjaan sehari-hari. Anda dapat mengembangakannya sendiri dan menyesuaikan dengan kebutuhan penggunaan yang dibutuhkan. Namun, pada dasarnya fungsi sederhana dari FTP adalah untuk memudahkan pengguna memindahkan file dari satu tempat ke tempat yang lainnya.

Aplikasi FTP Client

Di internet saat ini banyak sekali aplikasi FTP client yang tersedia. Salah satu aplikasi FTP yang terkenal adalah FileZilla. Aplikasi FTP ini banyak digunakan untuk melakukan remote FTP. Tidak hanya lengkap, melainkan juga dapat digunakan di berbagai macam sistem operasi, seperti Linux dan Windows. Berikut ini adalah 3 contoh FTP client yang tersedia di internet.

  • FileZilla

FileZilla FTP Client merupakan FTP client yang banyak digunakan untuk melakukan koneksi remote FTP dengan fitur yang lengkap. Aplikasi FTP ini mendukung di beberapa sistem operasi terkenal seperti Linux dan Windows. Kelebihannya adalah dapat melakukan transisi simultan. Ketika meng-upload file tetapi koneksi terputus maka dapat diulang kembali. Namun aplikasi FTP ini memiliki kekurangan yaitu membutuhkan waktu yang lama untuk mengunggah berkas (file), jadi semakin banyak dan semakin besar berkasnya maka semakin lama pula proses uploadnya.

  • WINSCP

Meskipun tidak sepopuler FileZilla, WinSCP merupakan aplikasi yang juga cukup populer, apalagi untuk pengguna Windows. Beberapa protokol yang dapat ditangani oleh WinSCP adalah SFTP, SCP, FTP, dan WebDev. Kelebihan dari WinSCP adalah dukungan SSH password, keyboard interaktif, public key, dan otentikasi Kerberos. Selain juga terintegrasi dengan Pageant atas dukungan penuh otentikasi kunci publik dengan SSH. Sayangnya, aplikasi FTP ini hanya bisa digunakan di Windows saja.

  • GFTP

Apa itu FTP GPTF? GFTP merupakan aplikasi FTP client yang hanya tersedia di sistem operasi Linux. Aplikasi ini adalah proyek sumber terbuka, jadi boleh dikembangkan dan dipakai oleh siapa saja. Sudah mendukung protokol FTP, FTPS, HTTP, HTTPS, SSH, FSP. Sayangnya aplikasi FTP ini hanya bisa digunakan untuk melakukan koneksi FTP menggunakan antar jaringan lokal saja.

Selain tiga aplikasi di atas, tentunya masih ada beberapa aplikasi FTP client yang saat ini tersedia.

Cara Menggunakan FileZilla

Dikarenakan FileZilla merupakan aplikasi FTP client yang populer, maka akan saya bahas mengenai cara menggunakan FileZilla untuk melakukan koneksi FTP. Sebelum melanjutkan panduan ini pastikan:

  1. Filezilla yang sudah terinstal di komputer
  2. Informasi login FTP.

Aplikasi FileZilla dapat Anda unduh melalui halaman FileZilla Client untuk Windows. Sedangkan jika menggunakan Linux dapat mengunduhnya melalui halaman FileZilla Client untuk Linux.

Langkah-langkah untuk melakukan koneksi FTP menggunakan FileZilla sudah kami bahas melalui artikel Cara Menggunakan FileZilla.

Cara Menggunakan WINSCP

Software kedua yang dapat dipakai untuk melakukan koneksi FTP adalah WinSCP. Software FTP ini hanya dapat berjalan pada sistem operasi Windows. Berikut cara menggunakan WinSCP.

Langkah 1 – Download WinSCP

Langkah pertama yang perlu Anda lakukan adalah mengunduh software WinSCP melalui halaman official WinSCP.

Langkah 2 –  “File Protocol” pilih menu “FTP”


Keterangan:

  • Host Name : Nama Domain
  • Port Number : 21
  • Username : Username FTP di cPanel
  • Password :Password FTP di cPanel
  1. Klik “Login
  2. Setelah proses koneksi berhasil maka akan masuk di mana folder hosting berada.

Selain itu, Anda juga dapat melakukan koneksi FTP menggunakan perangkat mobile Anda. Baik menggunakan Android maupun iOS. Terkait cara penggunaan dan lain sebagainya akan saya bahas pada artikel selanjutnya.

Kesimpulan

Adanya fitur FTP memudahkan Anda untuk mengelola file website yang berada pada halaman hosting. Kemudahan yang diberikan fitur FTP tentunya dapat membuat pekerjaan akan lebih mudah. Pengguna tidak perlu masuk ke dalam layanan web hosting untuk melakukan pengelolaan file, seperti mengganti, menghapus, dan menambahkan file-file baru. (Sc : https://www.niagahoster.co.id/blog/apa-itu-ftp/ )

File Sharing Di Linux Fedora

Instal Samba untuk Mengkonfigurasi File Server.
Misalnya, Buat Folder bersama yang diakses sepenuhnya yang dapat dibaca dan ditulis oleh siapa saja, dan juga otentikasi tidak diperlukan.
[1]Install dan Konfigurasi Samba.
[root@smb ~]# 
dnf -y install samba
[root@smb ~]# 
mkdir /home/coba\ samba

[root@smb ~]# 
chmod 777 /home/coba\ samba

[root@smb ~]# 
vi /etc/samba/smb.conf
[global]
        # line 11 : add (set charset)
        unix charset = UTF-8
        workgroup = SAMBA
        security = user
        # add (IP addresses you allow to access)
        hosts allow = 192.168.0.8 
        # add (no authentication)
        map to guest = Bad User

.....
.....

# add to the end
# any Share name you like
[coba samba]
        # specify shared directory
        path = /home/coba\ samba
        # allow writing
        writable = yes
        # allow guest user (nobody)
        guest ok = yes
        # looks all as guest user
        guest only = yes
        # set permission [777] when file created
        force create mode = 777
        # set permission [777] when folder created
        force directory mode = 777 

[root@smb ~]# 
systemctl enable --now smb

[2] Jika SELinux diaktifkan dan juga menggunakan [/home] seperti contoh ini, Ubah kebijakan SELinux.

[root@smb ~]# 
setsebool -P samba_enable_home_dirs on

[root@smb ~]# 
restorecon -R /home/coba\ samba/

[3]Jika Firewalld berjalan, izinkan layanan Samba.
[root@smb ~]# 
firewall-cmd --add-service=samba

success
[root@smb ~]# 
firewall-cmd --runtime-to-permanent

success

sc : https://www.server-world.info/en/note?os=Fedora_36&p=samba&f=1

Dokumentasi.

1.


2.


2.1


2.2

- okay jika sudah di konfigurasi tinggal di buka PC Windows kita (jangan lupa jadi satu jaringan dulu atau disambungin kabel utp biar bisa saling ping), kalau saya pakai virtual box jadi network adabtornya saya jadikan bridge.
- lalu buka file explorer dan masuk menu network lalu ketik [\\(ip vm/virtualboxnya)] bisa juga tekan logo windows + r lalu ketik disitu. 

1.

2.




devops real

  Pengenalan DevOps   Apa itu DevOps?   DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata...