Mengarsitek Komputasi Awan

Teknologi cloud computing atau komputasi awan memiliki keunggulan dalam kecepatan. Sayangnya penggunaan teknologi cloud computing yang tidak tepat akan membuat pengeluaran membengkak. Pada sisi yang lain terlalu menekan biaya juga akan membuat penggunaan teknologi komputasi awan tidak efektif. Dengan demikian penggunaan teknologi komputasi secara optimal, yaitu efektif dan efisien perlu untuk memperhitungkan beberapa sisi. Sedikitnya ada 6 sisi yang perlu diperhatikan, yaitu keamanan, operasional, keandalan, performa, optimisasi biaya, dan keberlanjutan.

sumber: https://pixabay.com/photos/architect-documentation-documents-254579/

Keamanan

Fokus utama keamanan adalah melindungi informasi, sistem, dan aset. Caranya adalah dengan menerapkan pondasi identitas yang kuat, buat kemungkinan pelacakan, menerapkan keamanan pada setiap layer, mengotomasi praktek terbaik keamanan, lakukan enkripsi data in transit-at rest, jaga masyarakat umum dari data, dan persiapkan kegiatan keamanan. Namun, pada dasarnya ada 4 hal yang diprioritaskan, yaitu:

  1. Identitas
  2. Kemampulacakan
  3. Keamanan di setiap lapisan
  4. Penilaian risiko dan strategi mitigasi
Maksud dari identitas bahwa setiap orang yang melakukan akses harus memiliki identitas, baik itu berupa username, email, alamat IP, atau alamat MAC. Dengan adanya identitas juga akan secara bersamaan meningkatkan kemampuan melacak. Saat penggunaan teknologi komputasi awan telah sangat kompleks akan sangat sulit untuk mengetahui dimana celah keamanannya oleh sebab itu penting untuk memberi keamanan pada setiap lapisan. Pengamanan yang telah diberi pada setiap lapisan tidak cukup karena tidak ada yang sempurna. Risiko-risiko tersebut perlu dinilai dan dimitigasi dengan strategi yang baik. Ini semua adalah tugas dari cloud architect.

Operasional

Fokus utama dari kegiatan operasional adalah menjalankan dan memantau sistem. Hal-hal penting disusun dalam bentuk standar operasional prosedur. Itu dilakukan untuk lebih mudah mengidentifikasi masalah yang mungkin terjadi. Standar operasional prosedur juga memungkinkan perbaikan masalah yang telah terjadi. Pada akhirnya standar operasional prosedur yang sudah berhasil melimitasi masalah kembali pada penyelenggara atau operator. Membuat infrastruktur dengan kode akan membuat kegiatan operasional lebih optimal. Karena operasi terkait langkah teknis maka memungkinkan terjadinya langkah yang keliru sehingga penting untuk membuat langkah yang reversible. Dengan demikian prinsip dalam operasional adalah:

  • Membuat infrastruktur dengan kode (CloudFormation)
  • Membuat sistem perubahan yang bisa dikembalikan
  • Prosedur kerja yang diperbaiki terus menerus
  • Identifikasi sumber-sumber kegagalan
  • Belajar dari semua kegiatan operasi dan kegagalan
Pertanyaan dasar dari operasi yang baik adalah bagaimana menentukan prioritas, bagaimana membentuk struktur organisasi, dan bagaimana budaya organisasi yang dapat mendukung bisnis.

Keandalan

Fokus utama dari keandalan adalah memastikan beban kerja berfungsi secara benar dan sesuai dengan apa yang diharapkan. Caranya adalah dengan menerapkan otomasi perbaikan kegagalan, menguji prosedur perbaikan, lakukan penskalaan secara horizontal untuk menaikkan agregasi ketersedian beban kerja, berhenti bertanya apakah kapasitasnya tersedia, dan kelola perubahan di dalam otomasi. Keandalan bisa terdistrupsi karena adanya konfigurasi yang keliru.

Performa

Fokus utama dari performa adalah menggunakan sumber daya IT dan komputasi sesuai sistem yang dipersyaratkan dalam permintaan bisnis, misalnya adalah penggunaan teknologi. Caranya dengan mengkonsumsi teknologi terbaru, lakukan globalisasi secara cepat, gunakan arsitektur serverless, lebih sering melakukan eksperimen, dan pertimbangkan pola data akses yang cocok. Berbeda dengan operasional yang mementingkan sistem berjalan dan dapat dipantau, pada pilar performa sistem tidak hanya dapat berjalan dan dapat dipantau tetapi juga memiliki waktu yang cepat atau singkat.

Optimasi Biaya

Fokus utama dari optimasi biaya adalah hindari biaya yang tidak dibutuhkan. Caranya dengan menerapkan pengelolaan cloud financial, mengukur bisnis output, hentikan mengeluarkan uang untuk hal seperti rak, dan analisis atribut yang menjadi pengeluaran. Di teknologi komputasi awan ada 2 tipe layanan, yaitu managed dan unmanaged. Tipe unmanaged artinya platform hanya menyediakan infrastruktur namun dalam hal seperti patching dilakukan oleh customer, sedangkan tipe managed biasanya customer bisa langsung menggunakan layanan tanpa melakukan hal seprti patching. Hal ini perlu diperhitungkan kapan saat menggunakan layanan managed dan unmanaged.

Keberlanjutan

Fokus utama dari keberlanjutan adalah lingkungan. Caranya dengan perhatikan dampak lingkungan dari penerapan teknologi cloud seperti berkurangnya karyawan.

Selain hal-hal yang bersifat pilar arsitektur terbaik, juga perlu diketahui terminologi seperti reliability dan high availability. Reliability adalah sebuah pengukuran sistem untuk menyediakan fungsi yang diinginkan. Yang dimaksud sistem adalah seluruh komponen seperti hardware, firmware, hingga software. Reliability dapat lebih mudah dipahami melalui matriks MTBF = MTTF + MTTR. Secara sederhana adalah waktu yang dibutuhkan mencakup waktu yang hilang akibat kegagalan dan waktu yang hilang akibat perbaikan. Selain reliability juga ada terminologi high availability atau ketersediaan tinggi. Sistem bisa dibuat terdegradasi untuk mencapai high availability. Selanjutnya turunkan downtime hingga kurang dari 1 menit.

Dari keenam pilar yang telah diterapkan oleh para cloud specialist muncul beberapa praktek terbaik, yaitu:

  1. Buat kemungkinan penskalaan
    • Bayangkan arsitektur yang dibuat, apakah bisa diperbesar jika suatu ketika ada traffic yang tinggi atau apakah bisa diperkecil jika suatu ketika traffic sangat mengecil, contohnya gunakan Auto Scaling sehingga tidak perlu lagi membuat instance secara manual yang memakan waktu
  2. Otomasi lingkungan
    • Jika bisa dilakukan maka lakukan otomasi dalam penyediaan atau terminasi melalui konfigurasi dari sumber daya tersebut, manfaatkan trigger dari CloudWatch
  3. Perlakukan sumberdaya sebagai sekali pakai
    • Otomasi sumber daya deploy dengan konfigurasi yang identik
    • Lakukan terminasi pada sumber daya yang tidak digunakan
    • Ganti ke alamat IP baru secara otomatis
    • Uji perbaruan dari sumber daya yang baru
  4. Gunakan komponen yang saling terpisah
    • Cirinya adalah ketika satu komponen bermasalah maka tidak terjadi masalah pada komponen lain, contohnya penggunaan Elastic Load Balancing
  5. Rancang layanan dan bukan server
    • Pertimbangkan penggunaan container atau serverless
    • Gunakan pesan antrian untuk komunikasi antaraplikasi
    • Aset seperti foto, video, dan dokumen disimpan di eksternal, misalnya S3
    • Gunakan autentikasi user untuk layanan yang managed
  6. Pilih database yang tepat
    • Gunakan teknologi yang tepat sesuai kebutuhan, misalnya jika traffic di bawah 150.000 per detik masih mungkin digunakan relational database (SQL), tetapi jika sudah di atas itu maka mungkin perlu dipertimbangkan menggunakan non relational database (no-SQL)
    • Hal-hal yang perlu diperhitungkan adalah kebutuhan read and write, syarat total penyimpanan, ukuran setiap penyimpanan, serta ketahanan
  7. Abaikan titik kegagalan tersendiri
    • Apabila server diskalakan secara vertikal maka saat server mengalami kegagalan akan secara otomatis server tersebut tidak bisa digunakan, hal lain jika server diskalakan secara horizontal maka saat ada server yang mengalami kegagalan, sistem dapat secara otomatis mengarahkan traffic ke server yang bisa diakses, contohnya pada Amazon RDS yang memiliki database primary dan secondary dengan AZ yang berbeda
  8. Optimisasi biaya
    • Tanyakan hal seperti apakah ukuran sumber daya sudah sesuai dengan kebutuhan, bagaimana saya memantau sumber daya, bagaimana cara mendapatkan keyakinan bahwa sumber daya yang dihentikan tidak digunakan, seberapa sering sumber daya digunakan, dan apakah bisa diganti menjadi layanan managed
  9. Gunakan teknik caching
    • Gunakan teknik caching untuk meminimalkan pengambilan data secara langsung dari server, hal ini bisa dilakukan dengan CloudFront
  10. Amankan seluruh infrastruktur yang digunakan
    • Lapisan yang digunakan pada penerapan teknologi komputasi perlu mendapatkan isolasi tersendiri sehingga tidak mudah dijangkau oleh pengguna internet umum, lakukan hal-hal seperti enkripsi, least privilege, MFA, simpan akses log, dan otomasi deployment

Praktek-praktek terbaik tersebut tentunya dilakukan di globa infrastruktur. Di AWS ada beberapa terminologi dalam infrastruktur yaitu region, availability zone, dan edge location. Region adalah daerah yang terpisah secara fisik, region satu dengan region lain belum tentu memiliki layanan yang sama. Selain itu beberapa region memiliki biaya yang berbeda. Setiap region terdiri atas lebih dari 1 availability zone yang memungkinkan fault tolerance. Availability zone memberikan kesempatan untuk menciptakan sistem yang high availability, caranya adalah membangun arsitektur at least di 2 AZ. Tujuannya adalah jika terjadi masalah di satu AZ maka bisa beralih ke AZ lainnya. Edge location digunakan untuk teknik caching. Alasan adanya perbedaan region adalah untuk menurunkan latency dan terkait kebijakan di daerah tersebut, sedangkan alasan adanya availability zone adalah untuk menghindari bencana lokal dan membuat sistem yang lebih tahan dari kegagalan.

Sebagai pondasi yang penting untuk seorang arsitek cloud diperlukan 2 hal yaitu cloud adoption framework (CAF) dan well architected framework (WAF). CAF dibedakan menjadi 2 perspektif yaitu perspektif bisnis (business, people, government) dan perspektif teknis (platform, security, operational). Sedangkan WAF sudah dibahas di atas, yaitu terdiri atas security, reliability, performance efficiency, cost optimization, operational excellence, dan sustainability.




ref:
aws.amazon.com

Komentar