AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Bulutlar sehrli qutiga o'xshaydi - siz nima kerakligini so'raysiz va manbalar yo'q joydan paydo bo'ladi. Virtual mashinalar, ma'lumotlar bazalari, tarmoq - bularning barchasi faqat sizga tegishli. Boshqa bulut ijarachilari ham bor, lekin sizning koinotingizda siz yagona hukmdorsiz. Siz har doim kerakli resurslarni olishingizga ishonchingiz komil, siz hech kimni hisobga olmaysiz va tarmoq qanday bo'lishini mustaqil ravishda aniqlaysiz. Bulutni resurslarni elastik ravishda taqsimlaydigan va ijarachilarni bir-biridan butunlay ajratib turadigan bu sehr qanday ishlaydi?

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

AWS buluti 2006 yildan beri evolyutsion tarzda rivojlanib borayotgan mega-super murakkab tizimdir. Ushbu rivojlanishning bir qismi sodir bo'ldi Vasiliy Pantyuxin - Amazon Web Services Architect. Arxitektor sifatida u nafaqat yakuniy natijaga, balki AWS yengib o‘tadigan qiyinchiliklarga ham ichki nazar tashlaydi. Tizim qanday ishlashini qanchalik ko'p tushunsa, ishonch shunchalik yuqori bo'ladi. Shuning uchun Vasiliy AWS bulut xizmatlari sirlari bilan o'rtoqlashadi. Quyida jismoniy AWS serverlarining dizayni, ma'lumotlar bazasining elastik miqyosi, maxsus Amazon ma'lumotlar bazasi va virtual mashinalarning ish faoliyatini oshirish va bir vaqtning o'zida ularning narxini pasaytirish usullari keltirilgan. Amazonning arxitektura yondashuvlari haqidagi bilimlar AWS xizmatlaridan samaraliroq foydalanishga yordam beradi va o‘z yechimlaringizni yaratish uchun yangi g‘oyalarni berishi mumkin.

Ma'ruzachi haqida: Vasiliy Pantyuxin (Xen) .ru kompaniyalarida Unix administratori sifatida ish boshlagan, 6 yil davomida Sun Microsystemning yirik uskunasida ishlagan va 11 yil davomida EMCda ma'lumotlarga asoslangan dunyoni va'z qilgan. U tabiiy ravishda shaxsiy bulutlarga aylandi va 2017 yilda ommaviy bulutlarga o'tdi. Endi u AWS bulutida yashash va rivojlanishga yordam berish uchun texnik maslahatlar beradi.

Rad etish: quyida keltirilgan hamma narsa Vasiliyning shaxsiy fikri va Amazon Web Services pozitsiyasiga to'g'ri kelmasligi mumkin. Video yozib olish Maqolaga asoslangan reportaj YouTube kanalimizda mavjud.

Nega men Amazon qurilmasi haqida gapiryapman?

Mening birinchi mashinamda mexanik uzatmalar qutisi bor edi. Men mashinani boshqara olaman va uni to'liq nazorat qila olaman, degan tuyg'u tufayli bu ajoyib edi. Menga hech bo'lmaganda uning ishlash printsipini tushunganim yoqdi. Tabiiyki, men qutining tuzilishini juda ibtidoiy - velosipeddagi vites qutisi kabi tasavvur qildim.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Hammasi zo'r edi, faqat bitta narsa - tirbandlikda qolib ketish. Siz o'tiribsiz va hech narsa qilmayotganga o'xshaysiz, lekin siz doimo viteslarni almashtirasiz, debriyajni, gazni, tormozni bosasiz - bu sizni charchatadi. Oila avtomatik mashinaga ega bo‘lgach, tirbandlik muammosi qisman hal bo‘ldi. Haydash paytida men nimadir haqida o'ylashga va audiokitob tinglashga vaqt topdim.

Hayotimda yana bir sir paydo bo'ldi, chunki men mashinam qanday ishlashini tushunishni butunlay to'xtatdim. Zamonaviy avtomobil - bu murakkab qurilma. Avtomobil bir vaqtning o'zida o'nlab turli parametrlarga moslashadi: gazni bosish, tormoz, haydash uslubi, yo'l sifati. Men endi qanday ishlashini tushunmayapman.

Men Amazon bulutida ishlay boshlaganimda, bu men uchun ham sir edi. Faqat bu sir kattaroq tartibdir, chunki mashinada bitta haydovchi bor va AWSda ular millionlab. Barcha foydalanuvchilar bir vaqtning o'zida rulni boshqaradi, gaz va tormozni bosadi. Ularning xohlagan joyiga borishi hayratlanarli – bu men uchun mo‘jiza! Tizim har bir foydalanuvchiga avtomatik ravishda moslashadi, masshtablaydi va elastik tarzda moslashadi, shunda unga u bu olamda yolg'iz qolgandek tuyuladi.

Keyinchalik Amazonda me'mor bo'lib ishlashga kelganimda, bu sehr biroz yo'qoldi. Men qanday muammolarga duch kelayotganimizni, ularni qanday hal qilayotganimizni va xizmatlarni qanday rivojlantirishimizni ko‘rdim. Tizim qanday ishlashini tushunish ortib borishi bilan xizmatga bo'lgan ishonch ortadi. Shunday qilib, men AWS buluti ostida nima borligi haqidagi rasmni baham ko'rmoqchiman.

Nima haqida gaplashamiz

Men diversifikatsiyalangan yondashuvni tanladim - men gapirishga arziydigan 4 ta qiziqarli xizmatni tanladim.

Serverni optimallashtirish. Jismoniy timsoli bo'lgan vaqtinchalik bulutlar: jismoniy ma'lumotlar markazlari, u erda jiringlaydigan, isiydigan va chiroqlar bilan miltillovchi jismoniy serverlar mavjud.

Serversiz funksiyalar (Lambda) bulutdagi eng kengaytiriladigan xizmatdir.

Ma'lumotlar bazasini masshtablash. Men sizga o'zimizning kengaytiriladigan ma'lumotlar bazalarimizni qanday yaratishimiz haqida aytib beraman.

Tarmoqni masshtablash. Tarmog'imiz qurilmasini ochadigan oxirgi qism. Bu ajoyib narsa - har bir bulut foydalanuvchisi bulutda yolg'iz ekanligiga ishonadi va boshqa ijarachilarni umuman ko'rmaydi.

Eslatma. Ushbu maqolada serverni optimallashtirish va ma'lumotlar bazasini masshtablash muhokama qilinadi. Keyingi maqolada tarmoq masshtabini ko'rib chiqamiz. Serversiz funksiyalar qayerda? Ular haqida alohida stenogramma chop etildi "Kichik, lekin aqlli. Firecracker mikrovirtual qutisini ochish" U bir nechta turli xil masshtablash usullari haqida gapiradi va Firecracker yechimini - virtual mashina va konteynerlarning eng yaxshi fazilatlarining simbiozini batafsil muhokama qiladi.

Serverlar

Bulut vaqtinchalik. Ammo bu vaqtinchalik hali ham jismoniy timsolga ega - serverlar. Dastlab, ularning me'morchiligi klassik edi. Standart x86 chipset, tarmoq kartalari, Linux, virtual mashinalar ishlaydigan Xen gipervisor.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

2012 yilda ushbu arxitektura o'z vazifalarini juda yaxshi bajardi. Xen - ajoyib gipervisor, ammo uning bitta muhim kamchiligi bor. Unga yetarli qurilma emulyatsiyasi uchun yuqori xarajatlar. Yangi, tezroq tarmoq kartalari yoki SSD drayvlar paydo bo'lganda, bu yuk juda yuqori bo'ladi. Bu muammo bilan qanday kurashish mumkin? Biz bir vaqtning o'zida ikkita jabhada ishlashga qaror qildik - apparat va gipervisorni optimallashtirish. Vazifa juda jiddiy.

Uskuna va gipervizorni optimallashtirish

Bir vaqtning o'zida hamma narsani qilish va yaxshi qilish ishlamaydi. Avvaliga "yaxshi" nima ekanligi noma'lum edi.

Biz evolyutsion yondashuvni qo'llashga qaror qildik - biz arxitekturaning muhim elementini o'zgartiramiz va uni ishlab chiqarishga chiqaramiz.

Har bir rakega qadam qo'yamiz, shikoyat va takliflarni tinglaymiz. Keyin boshqa komponentni o'zgartiramiz. Shunday qilib, kichik bosqichlarda biz foydalanuvchilarning fikr-mulohazalari va qo'llab-quvvatlashlari asosida butun arxitekturani tubdan o'zgartiramiz.

Transformatsiya 2013 yilda eng murakkab narsa - tarmoq bilan boshlandi. IN С3 hollarda, standart tarmoq kartasiga maxsus Network Accelerator kartasi qo'shildi. Old paneldagi qisqa halqa kabeli bilan tom ma'noda ulangan. Bu chiroyli emas, lekin bulutda ko'rinmaydi. Ammo apparat bilan to'g'ridan-to'g'ri o'zaro ta'sir jitter va tarmoq o'tkazuvchanligini tubdan yaxshiladi.

Keyinchalik biz EBS ma'lumotlarini saqlash blokiga kirishni yaxshilashga qaror qildik - Elastic Block Storage. Bu tarmoq va saqlashning kombinatsiyasi. Qiyinchilik shundaki, Network Accelerator kartalari bozorda mavjud bo'lsa-da, Storage Accelerator uskunasini oddiygina sotib olish imkoniyati yo'q edi. Shunday qilib, biz startapga murojaat qildik Annapurna laboratoriyalari, biz uchun maxsus ASIC chiplarini ishlab chiqqan. Ular masofaviy EBS hajmlarini NVMe qurilmalari sifatida o'rnatishga ruxsat berdi.

Hodisalarda C4 ikkita muammoni hal qildik. Birinchisi, biz kelajak uchun istiqbolli, ammo o'sha paytda yangi NVMe texnologiyasi uchun poydevor yaratdik. Ikkinchidan, biz EBS ga so'rovlarni qayta ishlashni yangi kartaga o'tkazish orqali markaziy protsessorni sezilarli darajada tushirdik. Bu yaxshi chiqdi, shuning uchun endi Annapurna Labs Amazonning bir qismidir.

2017 yilning noyabriga kelib biz hipervizorning o'zini o'zgartirish vaqti kelganini angladik.

Yangi gipervisor modifikatsiyalangan KVM yadro modullari asosida ishlab chiqilgan.

Bu qurilma emulyatsiyasi uchun qo'shimcha xarajatlarni tubdan kamaytirish va yangi ASIC bilan bevosita ishlash imkonini berdi. Hodisalar С5 kaput ostida ishlaydigan yangi gipervisorga ega birinchi virtual mashinalar edi. Biz unga nom berdik nitro.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablashVaqt jadvalidagi misollarning evolyutsiyasi.

2017 yil noyabr oyidan beri paydo bo'lgan barcha yangi turdagi virtual mashinalar ushbu gipervisorda ishlaydi. Yalang'och metall namunalarida gipervisor yo'q, lekin ular Nitro deb ham ataladi, chunki ular maxsus Nitro kartalaridan foydalanadilar.

Keyingi ikki yil ichida Nitro nusxalarining turlari soni bir necha o'ndan oshdi: A1, C5, M5, T3 va boshqalar.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Namuna turlari.

Zamonaviy Nitro mashinalari qanday ishlaydi

Ular uchta asosiy komponentga ega: Nitro gipervisor (yuqorida muhokama qilingan), xavfsizlik chipi va Nitro kartalari.

Xavfsizlik chipi to'g'ridan-to'g'ri anakartga o'rnatilgan. U ko'plab muhim funktsiyalarni boshqaradi, masalan, asosiy operatsion tizimning yuklanishini nazorat qilish.

Nitro kartalari - Ularning to'rt turi mavjud. Ularning barchasi Annapurna Labs tomonidan ishlab chiqilgan va umumiy ASIC-larga asoslangan. Ularning ba'zi proshivkalari ham keng tarqalgan.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Nitro kartalarining to'rt turi.

Kartochkalardan biri ishlash uchun mo'ljallangan tarmoqVPC. Bu virtual mashinalarda tarmoq kartasi sifatida ko'rinadigan narsa ENA - elastik tarmoq adapteri. Shuningdek, u jismoniy tarmoq orqali uzatishda trafikni qamrab oladi (bu haqda maqolaning ikkinchi qismida gaplashamiz), Xavfsizlik guruhlari xavfsizlik devorini boshqaradi va marshrutlash va boshqa tarmoq narsalari uchun javobgardir.

Tanlangan kartalar blokli saqlash bilan ishlaydi EBS va serverga o'rnatilgan disklar. Ular mehmonga virtual mashina sifatida ko'rinadi NVMe adapterlari. Ular, shuningdek, ma'lumotlarni shifrlash va disk monitoringi uchun javobgardir.

Nitro kartalari tizimi, gipervisor va xavfsizlik chipi SDN tarmog'iga birlashtirilgan yoki Dasturiy ta'minot bilan belgilangan tarmoq. Ushbu tarmoqni boshqarish uchun javobgar (Boshqaruv tekisligi) boshqaruv kartasi.

Albatta, biz yangi ASIC-larni ishlab chiqishda davom etamiz. Masalan, 2018 yil oxirida ular Inferentia chipini chiqarishdi, bu esa mashinani o‘rganish vazifalari bilan yanada samarali ishlash imkonini beradi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Inferentia Machine Learning Protsessor chipi.

Masshtabli ma'lumotlar bazasi

An'anaviy ma'lumotlar bazasi qatlamli tuzilishga ega. Katta darajada soddalashtirish uchun quyidagi darajalar ajratiladi.

  • SQL — mijoz va so‘rov dispetcherlari bunda ishlaydi.
  • Qoidalar operatsiyalar - bu erda hamma narsa aniq, ACID va boshqalar.
  • keshlash, bu bufer hovuzlari tomonidan taqdim etiladi.
  • Jurnal yozish — redo logs bilan ishlashni ta'minlaydi. MySQL-da ular Bin Logs, PosgreSQL-da - Write Ahead Logs (WAL) deb ataladi.
  • saqlash - diskka to'g'ridan-to'g'ri yozish.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Qatlamli ma'lumotlar bazasi tuzilishi.

Ma'lumotlar bazalarini o'lchashning turli usullari mavjud: sharding, Shared Nothing arxitekturasi, umumiy disklar.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Biroq, bu usullarning barchasi bir xil monolit ma'lumotlar bazasi tuzilishini saqlaydi. Bu o'lchovni sezilarli darajada cheklaydi. Ushbu muammoni hal qilish uchun biz o'z ma'lumotlar bazasini ishlab chiqdik - Amazon Avrora. MySQL va PostgreSQL bilan mos keladi.

Amazon Avrora

Asosiy arxitektura g'oyasi asosiy ma'lumotlar bazasidan saqlash va ro'yxatga olish darajalarini ajratishdir.

Oldinga qarab, men keshlash darajasini ham mustaqil qildik deb aytaman. Arxitektura monolit bo'lishni to'xtatadi va biz alohida bloklarni masshtablashda qo'shimcha erkinlik darajalariga ega bo'lamiz.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Ro'yxatga olish va saqlash darajalari ma'lumotlar bazasidan alohida.

An'anaviy DBMS ma'lumotlarni saqlash tizimiga bloklar shaklida yozadi. Amazon Aurora-da biz tilda gapira oladigan aqlli xotira yaratdik redo-logs. Ichkarida saqlash jurnallarni ma'lumotlar bloklariga aylantiradi, ularning yaxlitligini nazorat qiladi va avtomatik ravishda zaxiralanadi.

Bunday yondashuv sizga qiziqarli narsalarni amalga oshirishga imkon beradi klonlash. U barcha ma'lumotlarning to'liq nusxasini yaratishni talab qilmagani uchun printsipial jihatdan tezroq va tejamkor ishlaydi.

Saqlash qatlami taqsimlangan tizim sifatida amalga oshiriladi. U juda ko'p sonli jismoniy serverlardan iborat. Har bir takrorlash jurnali bir vaqtning o'zida qayta ishlanadi va saqlanadi olti tugun. Bu ma'lumotlar himoyasi va yuk muvozanatini ta'minlaydi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

O'qish masshtabiga mos nusxalar yordamida erishish mumkin. Taqsimlangan saqlash biz ma'lumotlarni yozadigan asosiy ma'lumotlar bazasi namunasi va qolgan replikalar o'rtasida sinxronizatsiya zaruratini yo'q qiladi. Yangilangan ma'lumotlar barcha nusxalar uchun mavjud bo'lishi kafolatlanadi.

Yagona muammo - o'qilgan nusxalardagi eski ma'lumotlarni keshlash. Ammo bu muammo hal qilinmoqda barcha redo jurnallarini uzatish ichki tarmoq orqali nusxalar uchun. Agar jurnal keshda bo'lsa, u noto'g'ri deb belgilanadi va ustiga yoziladi. Agar u keshda bo'lmasa, u shunchaki o'chiriladi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Biz saqlash joyini ajratdik.

DBMS darajalarini qanday o'lchash mumkin

Bu erda gorizontal masshtablash ancha qiyin. Shunday qilib, keling, kaltaklangan yo'ldan boraylik klassik vertikal masshtablash.

Faraz qilaylik, bizda asosiy tugun orqali DBMS bilan aloqa qiladigan dastur mavjud.

Vertikal ravishda masshtablashda biz ko'proq protsessor va xotiraga ega bo'lgan yangi tugunni ajratamiz.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Keyinchalik, dasturni eski asosiy tugundan yangisiga o'tkazamiz. Muammolar paydo bo'ladi.

  • Bu dasturning sezilarli uzilishlarini talab qiladi.
  • Yangi asosiy tugun sovuq keshga ega bo'ladi. Ma'lumotlar bazasining ishlashi faqat kesh qizdirilgandan keyin maksimal bo'ladi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Vaziyatni qanday yaxshilash mumkin? Ilova va asosiy tugun o'rtasida proksi-serverni o'rnating.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Bu bizga nima beradi? Endi barcha ilovalarni yangi tugunga qo'lda yo'naltirish shart emas. Kommutatsiya proksi-server ostida amalga oshirilishi mumkin va printsipial jihatdan tezroq.

Muammo hal qilinganga o‘xshaydi. Ammo yo'q, biz hali ham keshni isitish zaruratidan aziyat chekmoqdamiz. Bundan tashqari, yangi muammo paydo bo'ldi - endi proksi-server potentsial muvaffaqiyatsizlik nuqtasidir.

Serversiz Amazon Aurora bilan yakuniy yechim

Bu muammolarni qanday hal qildik?

Proksi-server qoldirdi. Bu alohida misol emas, balki ilovalar ma'lumotlar bazasiga ulanadigan proksi-serverlarning butun taqsimlangan parki. Muvaffaqiyatsiz bo'lsa, har qanday tugunni deyarli bir zumda almashtirish mumkin.

Har xil o'lchamdagi issiq tugunlar hovuzi qo'shildi. Shuning uchun, agar kattaroq yoki kichikroq o'lchamdagi yangi tugunni ajratish kerak bo'lsa, u darhol mavjud. Uning yuklanishini kutishning hojati yo'q.

Barcha masshtablash jarayoni maxsus monitoring tizimi tomonidan nazorat qilinadi. Monitoring doimiy ravishda joriy asosiy tugunning holatini kuzatib boradi. Agar u, masalan, protsessor yuki kritik qiymatga yetganini aniqlasa, u yangi tugunni ajratish zarurati haqida iliq misollar havzasini xabardor qiladi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash
Tarqalgan proksi-serverlar, iliq misollar va monitoring.

Kerakli quvvatga ega tugun mavjud. Bufer hovuzlari unga ko'chiriladi va tizim o'tish uchun xavfsiz vaqtni kuta boshlaydi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Odatda o'tish vaqti juda tez keladi. Keyin proksi-server va eski asosiy tugun o'rtasidagi aloqa to'xtatiladi, barcha seanslar yangi tugunga o'tkaziladi.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Ma'lumotlar bazasi rezyumelari bilan ishlash.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Grafik shuni ko'rsatadiki, suspenziya haqiqatan ham juda qisqa. Ko'k grafik yukni ko'rsatadi va qizil qadamlar masshtablash momentlarini ko'rsatadi. Moviy grafikdagi qisqa muddatli pasayishlar aynan shu qisqa kechikishdir.

AWS elastik xizmatlarini qanday tayyorlaydi. Serverlar va ma'lumotlar bazasini masshtablash

Aytgancha, Amazon Aurora sizga pulni to'liq tejash va ma'lumotlar bazasi foydalanilmaganda, masalan, dam olish kunlarida o'chirish imkonini beradi. Yukni to'xtatgandan so'ng, JB asta-sekin kuchini pasaytiradi va bir muncha vaqt o'chadi. Yuk qaytib kelganda, u yana silliq ko'tariladi.

Amazon qurilmasi haqidagi hikoyaning keyingi qismida biz tarmoqni masshtablash haqida gapiramiz. Obuna boʻling pochta va maqolani o'tkazib yubormaslik uchun obuna bo'ling.

ning Yuqori yuk ++ Vasiliy Pantyuxin hisobot beradi "Xyuston, bizda muammo bor. Nosozliklar uchun tizimlarni loyihalash, ichki Amazon bulutli xizmatlarini ishlab chiqish naqshlari" Amazon ishlab chiquvchilari taqsimlangan tizimlar uchun qanday dizayn naqshlaridan foydalanadilar, xizmat ko'rsatishdagi nosozliklar sabablari nimada, Hujayraga asoslangan arxitektura nima, Doimiy ish, Shuffle Sharding - bu qiziqarli bo'ladi. Konferentsiyaga bir oydan kam vaqt qoldi - chiptalaringizni bron qiling. 24 oktyabr yakuniy narx oshishi.

Manba: www.habr.com

a Izoh qo'shish