Langsung ke konten utama

Microsoft Azure 101

Region Pairs
Availability zones terdiri dari satu atau beberapa data center, dimana ada minimal tiga zone dalam satu region. Namun, ada kemungkinan terjadi bencana alam yang cukup besar yang dapat menyebabkan kerusakan yang cukup besar untuk mempengaruhi bahkan dua data center. Untuk itulah Azure membuat region pairs.

Setiap region Azure selalu dipasangkan dengan region lain yang berada dalam geografi yang sama (misalnya AS, Eropa, atau Asia) dengan jarak minimal 300 miles. Pendekatan ini memungkinkan replikasi sumber daya pada daerah geography untuk membantu mengurangi kemungkinan gangguan dari kejadian seperti bencana alam, kerusuhan sipil, pemadaman listrik, atau pemadaman jaringan yang mempengaruhi dua region sekaligus.

Karena region pairs saling terhubung secara langsung dan terpisah cukup jauh untuk isolasi dari bencana regional, maka Anda dapat menggunakannya untuk memberikan layanan yang andal dengan menerapkan redudansi data. Beberapa layanan Azure menawarkan penyimpanan georedundant dengan memanfaatkan region pairs.

Kelebihan lain dari region pairs meliputi:

  • Jika terjadi pemadaman Azure yang luas, satu region dari setiap pasangan diprioritaskan untuk membantu mengurangi waktu yang dibutuhkan untuk memulihkan aplikasi.
  • Pembaruan Azure akan dijalankan pada region pairs secara bergantian untuk meminimalkan downtime dan resiko aplikasi down.
  • Data terus berada dalam geografi yang sama dengan pasangannya (kecuali South Brazil) untuk tujuan yuridiksi pajak dan penegakan hukum.

Service Level Agreements Azure
Microsoft menunjukkan komitmennya untuk menyediakan produk dan layanan berkualitas tinggi kepada pelanggan dengan memenuhi kebijakan, standar, dan praktik operasional komprehensif. 
Microsoft Azure memiliki dokumen formal yang disebut dengan Service Level Agreements (SLA) yang menentukan standar kinerja yang berlaku untuk Azure.
  • SLA menggambarkan komitmen Microsoft untuk menyediakan standar kinerja bagi pelanggan Azure.
  • Terdapat SLA untuk masing-masing produk dan layanan Azure.
  • SLA juga menentukan apa yang terjadi jika suatu layanan atau produk gagal memenuhi spesifikasi SLA yang telah diatur.

SLA untuk produk dan layanan Azure
Ada tiga karakteristik utama SLA untuk produk dan layanan Azure:
  1. Target kinerja
  2. Jaminan uptime dan konektivitas,
  3. Kredit layanan.
Target Kinerja
SLA mendefinisikan target kinerja untuk produk dan layanan Azure. Target kinerja yang ditentukan oleh SLA berlaku untuk setiap produk dan layanan Azure secara spesifik. Misalnya, target kinerja untuk beberapa layanan Azure dinyatakan sebagai jaminan uptime atau tingkat konektivitas. 

Jaminan uptime dan konektivitas
SLA biasanya menetapkan jaminan target kinerja sekitar 99,9 persen ("three nines") hingga 99,999 ("five nines") untuk setiap produk atau layanan Azure. Target ini dapat berlaku untuk kriteria kinerja seperti uptime atau waktu respon layanan.

Berikut ini adalah tabel yang mencantumkan potensi downtime kumulatif untuk berbagai level SLA:
SLA %Downtime per mingguDowntime per bulanDowntime per tahun
991,68 jam7,2 jam3,65 hari
99,910,1 menit43,2 menit8,76 jam
99,955 menit21,6 menit4,38 jam
99,991,01 menit4,32 menit52,56 menit
99,9996 detik25,9 detik5,26 menit
Sebagai contoh, Layanan Azure Cosmos DB menawarkan SLA uptime 99,999 persen, SLA ini meliputi komitmen latensi rendah kurang dari 10 milidetik untuk operasi baca dan tulis DB.

Kredit Layanan
SLA juga menjelaskan bagaimana Microsoft akan merespon jika produk atau layanan Azure gagal memenuhi spesifikasi SLA yang telah diatur.
Sebagai contoh, pelanggan mungkin akan mendapatkan diskon yang diterapkan pada tagihan Azure, sebagai kompensasi untuk produk atau layanan Azure yang berkinerja buruk. Tabel dibawah ini akan menjelaskan contoh secara rinci. 
Persentase uptimePersentase kredit layanan
< 99,910
< 9925
< 95100

Menghitung Downtime 
Setiap produk atau layanan Azure menawarkan SLA yang berbeda, produk dan layanan ini bisa dikombinasikan dan menghasilkan nilai SLA yang lebih tinggi atau rendah sesuai dengan arsitektur aplikasi yang digunakan.  Hasil SLA dari kombinasi ini disebut dengan Composite SLA.
Misalnya, Anda menggunakan layanan Azure web app (SLA 99,95%) yang menyimpan pada SQL database (SLA 99,99%).
uPf86xnv2Q-6f5RzqdD9r2rauTJhWCPOkOYYIulXPJCMh9XGKNr8c1z4hucnWB9EEcIwOxOB5hqsK-Mqr0swyoNRGsxBFXFCBRg4m_hlaYNEZbjNZbEWAfItacmKhg7E4EcWf_JS
Pada kasus diatas, jika salah satu layanan mati maka keseluruhan aplikasi tidak akan bisa digunakan. Sehingga, composite SLA dari aplikasi diatas adalah : 99,95% x 99,99% = 99,94%
Ini artinya aplikasi diatas memiliki peluang kegagalan yang lebih tinggi dari SLA individual. aplikasi yang membutuhkan banyak layanan juga akan memiliki lebih banyak titik potensi kegagalan.
Contoh lain, Anda bisa meningkatkan SLA dengan membuat layanan alternatif cadangan. Misalnya, ketika layanan SQL Database mati maka transaksi pada database akan dialikahkan ke layanan queue untuk nantinya diproses ketika SQL database sudah menyala.
0em1Avs8_JwBkpLlTYllGWWkVjVA_ltAlOUNwv9_9LsURm_8LtIAUXZ5gZcmDOoOKwUS53yg8hz9ztMqZNRD81eEVIk86RPCxyw5Y9sbMieHb3_2dSQhRZmkthUzvbUKyRQ_9yVP
Dengan rancangan ini, aplikasi akan tetap tersedia meskipun layanan basis datanya down. Keseluruhan aplikasi baru akan down ketika layanan database dan queue-nya mati secara bersamaan. Sehingga kombinasi layanan database dan queue akan menghasilkan nilai SLA:  1.0 - (0,0001 x 0,001) = 99,99999 %
Sehingga composite SLA dari aplikasi akan menjadi:
99,95% x 99,99999% = ~99,95%
Dengan rancangan ini kita telah berhasil meningkatkan SLA aplikasi. Namun, solusi ini memiliki beberapa kelemahan seperti logika aplikasi akan menjadi semakin rumit, akan ada biaya tambahan untuk layanan queue, dan juga masalah terkait konsistensi data.

Meningkatkan Keandalan Aplikasi
Kita bisa menggunakan SLA untuk mengevaluasi bagaimana solusi Azure kita memenuhi kebutuhan bisnis dan pengguna. Dengan membuat SLA sendiri, kita dapat menetapkan target kinerja yang sesuai dengan aplikasi Azure yang ingin dikembangkan. Pendekatan ini dikenal sebagai Application SLA.
Memahami kebutuhan aplikasi
Dalam membangun solusi Azure yang efisien dan andal, kita perlu tahu kebutuhan beban kerja dari aplikasi yang kita kembangkan. Kita dapat memilih produk dan layanan Azure kemudian menyediakan sumber daya yang sesuai dengan persyaratan yang telah kita tentukan. Untuk itu sangat penting kita memahami Azure SLA yang menentukan target kinerja untuk produk dan layanan Azure dalam solusi yang kita kembangkan. Pemahaman ini akan membantu kita dalam membuat SLA aplikasi yang bisa dicapai. 
Dalam sebuah sistem terdistribusi, kegagalan sangat mungkin terjadi. Perangkat keras bisa mati, jaringan dapat mengalami kegagalan sementara. Memang kegagalan untuk sistem secara keseluruhan jarang terjadi, namun kegagalan parsial harus tetap direncanakan.
Ketahanan
Ketahanan atau resiliency adalah kemampuan sistem untuk pulih dari kegagalan dan terus berfungsi. Jadi ketahanan bukanlah tentang menghindari kegagalan, namun menanggapi kegagalan dengan cara menghindari downtime atau kehilangan data. Tujuan dari resiliency ini dalah mengembalikan aplikasi ke keadaan berfungsi penuh setelah mengalami kegagalan. Ketersediaan tinggi dan pemulihan dari bencana adalah dua komponen penting dalam membangun ketahanan.
Saat merancang arsitektur, Anda perlu merancang ketahanan, dan Anda perlu melakukan Failure Mode Analysis (FMA). Tujuan dari FMA ini adalah untuk mengidentifikasi kemungkinan titik kegagalan dan untuk menentukan bagaimana aplikasi akan menanggapi kegagalan tersebut.
Biaya dan kompleksitas vs ketersediaan tinggi
Ketersediaan atau avalibility mengacu pada waktu suatu sistem berfungsi dan bekerja. Perlu langkah-langkah implemetnasi untuk mencegah kemungkinan kegagalan layanan. Namun, dalam menyusun langkah-langkah pencegahan ini bisa sulit dan mahal, seringkali solusi yang dihasilkan menjadi kompleks.
Ketika sebuah solusi cloud semakin berkembang menjadi kompleks. Anda akan memiliki lebih banyak layanan yang saling tergantung satu sama lain. Oleh karena itu, Anda mungkin tidak memperhatikan titik kegagalan yang mungkin terjadi ketika Anda memiliki beberapa layanan yang saling bergantung. 
Kebanyakan provider memaksimalkan ketersediaan dengan meminimalkan downtime dari solusi Azure mereka. Namun, ketika Anda meningkatkan ketersediaan, Anda juga akan meningkatkan biaya dan kompleksitas solusi.
Risiko downtime bersifat kumulatif di berbagai level SLA, artinya bahwa solusi yang semakin kompleks akan menghadapi tantangan ketersediaan yang juga lebih tinggi. Jadi, seberapa penting "high availability" bagi kebutuhan aplikasi Anda akan menentukan bagaimana Anda menangani penambahan kompleksitas dan biaya untuk SLA aplikasi. 

Pertimbangan menentukan SLA aplikasi
  • Jika aplikasi Anda memiliki SLA target kinerja sebesar four nines (99,99%), maka untuk pulih dari kegagalan dengan cara manual mungkin tidak cukup untuk memenuhi SLA. Sehingga solusi Azure yang dikembangkan harus bisa melakukan self-diagnosing dan self-healing.
  • Sulit untuk merespon kegagalan dengan cukup cepat untuk memenuhi target kinerja SLA di atas 99,99%.
  • Pertimbangkan baik-baik jangka waktu yang digunakan untuk mengukur target kinerja SLA aplikasi Anda. Semakin kecil jangka waktunya, semakin ketat toleransi. Misalnya Anda menetapkan satuan waktu dalam jam atau hari, maka Anda perlu toleransi yang ketat. Bisa jadi capaian target kinerja Anda jadi mustahil.

Komentar

Postingan populer dari blog ini

HOW TO FIX : ERROR:gpu_init.cc(426) Passthrough is not supported, GL is disabled in VS Code Python Selenium ChromeDriver Pytest

HOW TO FIX : ERROR:gpu_init.cc(426) Passthrough is not supported, GL is disabled in VS Code Python Selenium ChromeDriver Pytest have you ever experienced an error like the one below when using pytest, python selenium chromedriver? [14184:2436:0319/060520.198:ERROR:gpu_init.cc(440)] Passthrough is not supported, GL is disabled, ANGLE is [7108:12512:0319/060620.351:ERROR:device_event_log_impl.cc(214)] [06:06:20.350] USB: usb_device_handle_win.cc:1049 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F) [7108:12512:0319/060620.356:ERROR:device_event_log_impl.cc(214)] [06:06:20.356] USB: usb_device_handle_win.cc:1049 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F) [7108:12512:0319/060620.357:ERROR:device_event_log_impl.cc(214)] [06:06:20.357] USB: usb_device_handle_win.cc:1049 Failed to read descriptor from node connection: A device attached to the system is not functioning....

0.0.0.0 Python Essentials - About the Curriculum

About the course curriculum PCAP: Programming Essentials in Python  (short form:  Python Essentials ) is a two-course series that covers all the basics of programming in Python, as well as general computer programming concepts and techniques, and the object-oriented approach. The Python Essentials course series is divided into two parts: Python Essentials 1 (PE1): BASICS , consisting of four modules; Python Essentials 2 (PE2): INTERMEDIATE , consisting of four modules. Each student has access to  hands-on practice materials ,  labs ,  quizzes , and  tests  to learn how to utilize the skills and knowledge gained on the course and interact with some  real-life programming tasks and situations . Students who complete the course will be able to accomplish coding tasks related to the basics of programming in the Python language, and to understand the fundamental notions and techniques used in object-oriented programming. Furthermore, they will be ready...

Python Essentials 1 - Module 1

  Python Essentials 1: Module 1 Introduction to Python and computer programming In this module, you will learn about: the fundamentals of computer programming, i.e., how the computer works, how the program is executed, how the programming language is defined and constructed; the difference between compilation and interpretation what Python is, how it is positioned among other programming languages, and what distinguishes the different versions of Python. How does a computer program work? This course aims to show you what the Python language is and what it is used for. Let's start from the absolute basics. A program makes a computer usable. Without a program, a computer, even the most powerful one, is nothing more than an object. Similarly, without a player, a piano is nothing more than a wooden box. Computers are able to perform very complex tasks, but this ability is not innate. A computer's nature is quite different. It can execute only extremely simple operations. For exampl...