Një mjedis zhvillimi për MaxScale me Docker dhe Vagrant
Team Host.it 3 min lexim
Përmbajtja
Pse të përdorni docker? Është shumë i shpejtë për zhvillim/testim lokal
Është e lehtë të ndash imazhet e Docker brenda ekipit
Kontejnerët mund të ndahen edhe jashtë ekipit nëpërmjet Dockerfile
Garanton izolim maksimal të procesit pa pasur nevojë të krijoni një makinë virtuale për çdo shërbim
Është zgjidhja ideale për testimin lokal të arkitekturave me hoste të shumtë që ndërveprojnë përmes rrjetit
Docker: një platformë për menaxhimin e kontejnerëve
Me Docker mund të krijoni, lëshoni dhe shkatërroni kontejnerët e aplikacioneve me shpejtësinë e dritës. Ka shumë imazhe të gatshme për përdorim të lëshuara nga komuniteti, duke përfshirë atë të MaxScale.
Për testin tonë ne zgjodhëm të përdorim këto tre kontejnerë:
MaxScale: në beta (Dockerfile)
MariaDB: versioni 10.0 (Dockerfile)
MySQL: versioni 5.1 (Dockerfile)
Docker është një zgjedhje fituese për këtë lloj eksperimentimi: ne mund të krijojmë një kontejner aplikacioni dhe të nisim aplikacionet tona duke përdorur një skedar të thjeshtë të quajtur Dockerfile. Në pak sekonda është e mundur të keni të gjitha bazat e të dhënave MySQL/MariaDB të nevojshme për të kryer testet. Nga linja e komandës ose duke përdorur API-të docker mund të krijoni dhe shkatërroni kontejnerë me MaxScale, MariaDB dhe MySQL.
Për të automatizuar krijimin e infrastrukturës, ne zgjodhëm të përdorim Vagrant: një sistem i shkathët që ju lejon të krijoni dhe konfiguroni infrastruktura zhvillimi të riprodhueshme dhe portative.
Vagrant: Krijoni mjedise zhvillimi shpejt
Vagrant është një mjet me burim të hapur për menaxhimin e mjediseve të zhvillimit përmes përdorimit të ofruesve të ndryshëm duke përfshirë VirtualBox dhe Docker. Nëpërmjet Vagrantfile është e mundur të përcaktohet infrastruktura e sistemit dhe, siç ndodh tashmë në Docker, të krijohet dhe shkatërrohet përmes komandave shumë të thjeshta të linjës së komandës. Në testin tonë ne zgjodhëm Ofruesin Docker për të përcaktuar kontejnerët e përdorur dhe lidhjet midis tyre.
Është e mundur të përcaktohen dy lloje lidhjesh:
volumes-nga : për të lidhur volumin me një enë të dedikuar për ruajtjen
lidhje : për të lejuar që një enë të shohë një tjetër
Në këtë pikë ne kemi krijuar një konfigurim shumë të ngjashëm me atë të prodhimit që përbëhet nga:
Një kontejner MySQL 5.1 që korrespondon me bazën e të dhënave të përdorur për Joomla! instalimet 1.5.x
Një kontejner MariaDB 10.0 i vendosur si MASTER
Një kontejner MariaDB 10.0 i vendosur si SLAVE, i lidhur me MASTER
Një kontejner MaxScale që mund të arrijë të gjitha bazat e të dhënave.
Hapi tjetër përfshin konfigurimin e MaxScale në këtë infrastrukturë.
MaxScale: Një përfaqësues për bazat e të dhënave MySQL dhe MariaDB
Një pjesë e testit tonë ishte përdorimi i MaxScale si një përfaqësues për të dërguar trafikun në bazën e të dhënave me MySQL 5.1 dhe kopjimi i të gjitha pyetjeve në bazat e të dhënave MariaDB për të analizuar trafikun dhe për të verifikuar sjelljen e saktë të routerit Read/Write Split.
Kontejneri me MySQL 5.1 u përdor për të testuar funksionimin e filtrit MaxScale dhe për të kontrolluar LLOJIN e rishkrimit në CREATE TABLE:
Shembull i pyetjes së pranuar në MySQL 5.1:
CREATE TABLE Person (id int, emri varchar(255)) TYPE=MyISAM ;
P.sh. pyetje nga MySQL/MariaDB versioni 5.5 e tutje:
CREATE TABLE Person (id int, emri varchar(255)) ENGINE=MyISAM ;
Prandaj, ne konfiguruam MaxScale në këtë mënyrë:
Një dëgjues që dëgjon /var/lib/mysql/mysql.sock dhe në portin 3306
Router: trafiku që vjen nga dëgjuesi drejtohet te ruteri kryesor Trafiku i dërguar te serveri MySQL 5.1 pa asnjë modifikim
Trafiku kopjohet në ruterin e ndarjes Lexo/Shkruaj
Ruteri i ndarjes Read/Write kujdeset për ndarjen e pyetjeve vetëm për lexim nga pyetjet vetëm për shkrim. Përpara se t'i dërgoni në serverët Master/Slave MariaDB, pyetjet kalohen përmes CreateTableFilter
CreateTableFilter që modifikon pyetjet CREATE TABLE që përmbajnë parametrin TYPE në vend të ENGINE
Një monitor për çdo server backend për të lejuar MaxScale të njohë vazhdimisht situatën dhe statusin e replikimit.
Ndarje nëpër ekipe të shumta zhvillimi
Falë Docker dhe Vagrant u bë e mundur të ndahej një infrastrukturë komplekse jo vetëm brenda ekipit tonë të zhvillimit, por edhe jashtë me ekipin MariaDB MaxScale.
Në artikullin tjetër do të shpjegoj se si ishte e mundur të vihej në prodhim ky konfigurim, duke minimizuar kohën e ndërprerjes së makinerive në disa minuta.
Hosting Joomla
Hosting Joomla në Itali
Plane me backup, certifikata SSL dhe mjete për zhvillues dhe agency.
Artikuj të lidhur
Nga blogu
Nga arkivin