Software

Apa itu AWS DevOps ?

Kombinasi antara ‘pengembangan’ dan ‘operasi,’ membuat DevOps adalah serangkaian praktik untuk desain perangkat lunak yang gesit. DevOps adalah metodologi yang disederhanakan, sehingga akibatnya, ada banyak varietas yang berbeda untuk dipilih. Dalam artikel ini, akan dipaparkan mengenai definisi dari Amazon Web Services (AWS) DevOps, arsitekturnya, best practices, dan beberapa tools yang dapat digunakan.

Apa itu AWS DevOps ?

AWS DevOps adalah jawaban dari Amazon untuk menerapkan filosofi DevOps menggunakan platform cloud dan tools serta layanan khusus. Menurut pernyataan Amazon sendiri, ‘AWS menyediakan serangkaian layanan fleksibel yang dirancang untuk memungkinkan perusahaan membangun dan mendeliver produk dengan lebih cepat dan handal menggunakan praktik AWS dan DevOps. Layanan ini menyederhanakan penyediaan dan pengelolaan infrastruktur, menerapkan kode aplikasi, mengotomatiskan proses rilis perangkat lunak, dan memantau kinerja aplikasi dan infrastruktur Kita.’

AWS DevOps menyediakan sarana kepada tim pengembang aplikasi untuk menerapkan continuous integration dan continuous delivery (CI/CD) secara efisien. Proses ini memungkinkan tim pengembang aplikasi untuk menyimpan dan membuat kode sumber versi aplikasi dengan aman, sambil secara otomatis membangun, menguji, dan akhirnya mampu menerapkan aplikasi ke environment on-premise atau ke AWS.

Ada tiga kategori utama dalam cloud computing yaitu :

  • Software as a Service (SaaS)
  • Platform as a Service (PaaS)
  • Infrastructure as a Service (IaaS)

AWS termasuk dalam kategori IaaS—infrastruktur komputasi instan yang dapat diskalakan dan sepenuhnya dikendalikan oleh pelanggan, termasuk server virtual dan sistem operasi (OSes).

Setelah mendapatkan penjelasan mengenai apa itu AWS DevOps, mari kita lanjutkan pembahasan berikutnya dengan melihat arsitektur AWS DevOps.

Arsitektur AWS DevOps

Untuk mendapatkan gambaran yang lebih baik tentang apa yang terlibat dalam penerapan DevOps di AWS, kita perlu melihat arsitektur sistem yang mendasarinya, menggunakan AWS EC2 dapat digunakan sebagai contoh. EC2 adalah singkatan Elastic Compute Cloud, yang memungkinkan pengguna mengonfigurasi mesin virtual dan sumber daya yang menjadi dasar pengguna dengan memanfaatkan konsol dari  pusat. Otomatisasi memungkinkan TI, administrator dapat memastikan bahwa skala sumber daya mampu memenuhi kebutuhan organisasi mereka dan membuat seluruh proses lebih fleksibel dan hemat biaya.

  • Load Balancing. Sebagian besar arsitektur aplikasi web memiliki fitur load balancing. Tools  jaringan virtual ini mendistribusikan lalu lintas EC2 di beberapa sumber daya server web yang tersedia dan dapat ditingkatkan atau berkurang tergantung pada permintaan lalu lintas. AWS menawarkan layanan Elastic Load Balancing untuk mengotomatiskan proses ini.
  • Amazon CloudFront. Layanan ini mendeliver konten, seperti situs web, dan mungkin mencakup tipe dinamis, streaming, dan statis. Layanan ini dioptimalkan untuk beroperasi bersama dengan komponen AWS lainnya dan juga kompatibel dengan cloud non-AWS.
  • Amazon Security Group. Karena meningkatnya insiden peretasan menjadikan keamanan adalah prioritas besar. Fitur ini bertindak sebagai inbound firewall jaringan. Pelanggan harus menentukan protokol resmi, port, dan rentang sumber  IP untuk mendapatkan akses EC2. Pengguna dapat memberikan setiap instans EC2 satu atau beberapa grup keamanan, yang masing-masing mengirimkan lalu lintas terotorisasi ke instans yang sesuai.
  • Elastic Caches. Layanan web ini mengelola cache memori cloud. Cache elastis mengurangi ketegangan pada layanan dengan caching data yang sering digunakan, sehingga meningkatkan kinerja dan skalabilitas.
  • Amazon Relational Database Service (RDS). Layanan RDS menyederhanakan penyiapan, operasi, dan skalabilitas database relasional berbasis cloud. Layanan ini mengelola fungsi dan tugas administrasi database sehari-hari dan menyediakan cara kerja yang mudah diskalakan dan hemat biaya untuk bekerja dengan database relasional. RDS saat ini mendukung database berikut : Amazon Aurora, MariaDB, Microsoft SQL Server, MySQL, Oracle, dan PostgreSQL.
  • Amazon Simple Stroge Services (S3). AWS cloud menawarkan dua opsi untuk mengakses, mencadangkan, dan menyimpan data aplikasi web dan aset lainnya. S3 memberikan pengguna UI sederhana untuk mengelola sejumlah data, kapan saja, dan dari mana saja di web. Pengguna menyimpan data sebagai objek dalam bucket. Objek-objek ini, pada akhirnya, dapat diakses, ditambahkan ke, dibaca, atau dihapus sesuai kebutuhan.
  • Amazon Elastic Block Store (EBS). Layanan ini adalah solusi penyimpanan blok berkinerja tinggi yang membantu mengelola partisi data dan log aplikasi. Pengguna beralih ke EBS ketika mereka membutuhkan akses cepat dan kemampuan jangka panjang. Volume EBS sangat ideal untuk menangani penyimpanan utama untuk database, sistem file, atau aplikasi apa pun yang memerlukan akses ke penyimpanan tingkat blok, dan pembaruan granular yang tidak diformat, mentah, dan terperinci.
  • Amazon Auto Scaling. Layanan ini membuat grup kapasitas server yang dapat diperluas atau dikecilkan pengguna sesuai kebutuhan dan sesuai permintaan.

Setelah kita melihat arsitektur AWS DevOps. Pembahasan selanjutnya adalah tentang berbagai tools AWS DevOps.

Tools AWS DevOps

AWS DevOps menawarkan berbagai pilihan tools yang komprehensif untuk membangun dan menerapkan perangkat lunak di cloud. Berikut adalah contoh beberapa tools terpopuler AWS DevOps yaitu :

  • AWS Cloud Development Kit. Tools ini adalah kerangka kerja pengembangan perangkat lunak bersifat open source yang menggunakan bahasa pemrograman yang sering digunakan untuk pemodelan dan penyediaan sumber daya aplikasi cloud.
  • AWS CodeBuild. CodeBuild adalah layanan integrasi yang mampu menskalakan terus menerus dan memproses beberapa build. Pengguna dapat membuat dan menguji kode dengan penskalaan berkelanjutan.
  • AWS CodeDeploy. Tools ini mengotomatiskan penerapan perangkat lunak ke beberapa layanan komputer berbeda seperti Amazon EC2, AWS Fargate, AWS Lambda, atau server lokal lainnya yang Kita pilih.
  • AWS CodePipeline. Tools DevOps ini mengotomatiskan kode Kita yang kemudian disampaikan untuk pembaruan yang cepat dan akurat.
  • AWS CodeStar. CodeStar adalah tools yang sangat berguna untuk melakukan DevOps di AWS. Tools oni menyediakan antarmuka pengguna yang intuitif untuk membantu pengguna dengan mudah mengembangkan, membangun, dan menerapkan aplikasi di AWS. Kita dapat mengatur seluruh toolchain pengiriman berkelanjutan dalam hitungan menit.
  • AWS Device Farm. Mengembangkan aplikasi seluler adalah tantangan besar saat ini untuk para developer mobile apps, dan tools ini membantu pengembang meningkatkan kualitas aplikasi web dan seluler mereka dengan mengujinya di seluruh perangkat seluler secara real dan browser desktop yang dihosting di AWS Cloud. Kita bahkan dapat menjalankan pengujian secara bersamaan di perangkat dan browser yang berbeda.

Mari kita pelajari selanjutnya beberapa praktik terbaik AWS DevOps.

Best Practice AWS DevOps

Pengembang aplikasi yang ingin menggabungkan AWS dan DevOps agar sukses diterapkan harus mengetahui best practice berikut ini :

  • Continuous Integration/Continuous Delivery. CI/ CD pipeline adalah urat nadi dari DevOps. Continuous integration berarti membangun dan memvalidasi proyek secara teratur dengan memperbarui perubahan kode pada interval yang ditetapkan. Continuous delivery membangun CI dengan secara otomatis mendeployment kode di environment produksi.
  • Infrastructure Automation. Praktik ini berfokus pada kode kualitas dan kebutuhan untuk melakukan pengujian secara berkala dan otomatis.
  • Infrastructure as Code. Praktik ini menyediakan dan mengelola sumber daya AWS cloud Kita dengan menulis file template yang dapat dikonsumsi oleh mesin dan dapat dibaca oleh manusia. Tools AWS CloudFormation adalah sumber daya untuk pengguna dalam pengembangan AWS cloud.
  • Monitoring and Logging. Semua aktivitas sistem perlu dipantau dan direkam untuk memastikan bahwa peristiwa yang terjadi dilakukan pada waktu yang tepat, dan juga untuk memperbaiki apa pun dari kinerja system yang kurang baik.
  • Communication and Collaboration. Setiap tim dan departemen harus berada di tempatnya masing-masing dengan proyek dan tetap mendapatkan informasi. Selain itu, perlu ada forum untuk berbagi umpan balik yang berguna sehingga dapat membentuk jalannya proyek.

Wahyu Saputra S.Kom