Želimir Pilipović
Autor:
Želimir Pilipović

Programer za C#.NET programski jezik

Always On

Kao glavnu novost u SQL Server 2012 Enterprise Edition Microsoft je izbacio Always On. Rješenje je zamišljeno kao jednostavan način koji će se univerzalno pobrinuti kako bi vaš sustav zadovoljio kriterije „High Availability (HA)“ i „Disaster Recovery (DR)“.

Pri tome je potrebno naglasiti da, iako je bila riječ o novitetu, komponente koje osiguravaju takav rad sustava su postojeće te su upakirane u novo rješenje, sa naglaskom na lakšu konfiguraciju i korištenje.

Single Site Windows Server Failover Clustering

San level Block Replication

Multi-Site Windows Server Failover Clustering

Transaction Log Shipping

Transactional Replication

Database Mirroring

Peer-to-Peer Replication

Navedene mogućnosti su postojane, provjerene i sigurno u nekakvoj kombinaciji korištene u produkcijskim okruženjima. Ono što im je većini zajedničko, kompleksne su za konfigurirati i održavati.

Ideja Always On je iskoristiti sve što je potrebno iz postojećih komponenti i nadograditi ih novim kako bi došli do potpunog, jedinstvenog rješenja, koje se može predstaviti u dva glavna dijela:

AlwaysOn Failover Clustering Instances (FCI)

Rješenje koje omogućava high availability (HA) na razini instance servera, koristeći Windows Server Failover Clustering. U ovom slučaju koristi se jedna instanca SQL koja je propagirana kroz više node-ova. Mreža će dakle, vidjeti samo jednu instancu sql servera, ali će se u slučaju failovera baza jednostavno prebaciti na drugi, ispravni node.

Prednosti:

Redundancija na više node-ova osigurava zaštitu instance Sql Servera

Automatski failover se sam događa u slučaju grešaka

Podržava korištenje WSFC cluster diskova, rješenja za pohranu podataka itd.

U slučaju failovera, nije potrebno raditi nikakvu dodatnu konfiguraciju zbog prelaska na novi node

AlwaysOn Availability Groups (AlwaysOn AG)

Ovo DR riješenje je alternativa klasičnom mirroringu. Podržava dvije različite vrste baza – primarne i sekundarne.  Primarne baze se mogu konfigurirati kao read/write, ovisno o potrebnim postavkama sustava dok se na njih povezuje više sekundarnih.

Prednosti:

Podržano je do devet replika (osigurava stalnu dostupnost baze budući da se koristi lokalna kopija)

Podržana su dva različita moda rada – asinhroni i sinhroni commit mod.

Prepoznaje i omogućava više načina failovera (planirani ručni, automatski, prisiljeni)

Moguća je zasebna konfiguracija svake replike prema korisničkim potrebama.

Treba li nam Always On?

Kako odlučiti je li sustavu potreban Always On? 

O toj tehnologiji smo počeli intenzivno razmišljati zbog rasta sustava na kojem radimo, te je postojeće rješenje i opterećenje moglo početi stvarati probleme u radu u bliskoj budućnosti.

U Always On smo vidjeli mogućnost unaprijediti više komponenti sustava u jednom koraku:

1. Osigurati veću dostupnost sustava

2. Ispoštovati ugovoreni uptime sustava

3. Otvoriti si mogućnost izmjene arhitekture sustava dodavanjem read instance baze

Krenuli smo sa ovom listom, početnim ograničenjima Always On:

1. Baze koje koristimo moraju podržavati cross-database / distribuirane transakcije

2. Na produkcijskom okruženju nemamo prostora za dvije kopije baze

3. Ne možemo koristiti Full Recovery mode

4. Nemamo licencu za SQL 2012 +

5. Mrežna infrastruktura taman zadovoljava postojeće potrebe

Ukoliko je bilo koja od ovih stavaka točna, i ne može se promijeniti, onda Always On u pravilu nije primjenjivo rješenje.

 Mi smo, srećom bili u situaciji gdje se javila potreba i dobra volja naših korisnika za unaprijeđenje njihovog hardware-a kako bi im omogućili postavku Always On na produkcijskom okruženju.

Glavne prednosti novog načina rada sustava u stvarnoj primjeni, osim dobivenog DR i HA rješenja:

Izvještajni sustav

S poslovne strane korisnik ima potrebu real-time dostupnosti podataka, tj. izvještaji moraju gledati trenutno stanje podataka u sustavu. Na ovaj način, skoro sve izvještaje smo mogli konfigurirati da gledaju read instancu baze, tako da upiti nisu konkurentni sa aktivnom instancom i nemaju nikakav utjecaj na aktivan rad sustava.

Failover sigurnost

Failover je, koliko god se trudili, neizbježan. Bilo to zbog kvara u hardware-u ili upita na oracle linkani server (da, bilo je i toga ). Naša iskustva s ovim scenarijom su vrlo pozitivna. S obzirom da je druga instanca performansno identična primarnoj, krajnji korisnik ne osjeti razliku u radu sustava osim kratkog downtime-a tijekom procesa failovera (minimalno vrijeme).

Redizajn sustava

Iz našeg iskustva, najveća prednost. Arhitektura velikog poslovnog sustava koji zahtjeva veliku konkurentnost i dostupnost podataka se može prilagoditi balansirajući između „usmjeravanja“ aplikacije na odgovarajuću write ili read instancu, ovisno o scenariju u kojem se primjenjuje.

Ovome se vrlo pažljivo treba pristupiti, ali većina pretraga, pregleda se bez rizika može prebaciti na read only instancu. Izravna posljedica ovoga je manje lock-ova (veća dostupnost podataka) krajnjem korisniku.

Always On dakle, pruža dosta mogućnosti za preslagivanje i optimizaciju sustava.

Sada je pitanje, što je sve potrebno da bi se ovo izvelo?

Hardware

Ovakav setup sustava zahtjeva dodatne resurse na produkcijskoj okolini.

Korisniku ovo u večini slučajeva stvara problem, zbog potrebe za dodatnim ulaganjem u hardware.

Također, kako je potrebno imati dvije okoline, to povlači i dvije različite instalacije SQL servera (dvije licence). 

Zbog synca podataka između instanci potrebno je osigurati kvalitetnu mrežnu infrastrukturu kako bi se proces mogao nesmetano odvijati, a da pri tome ne utječe na performanse sustava. Sync podataka povlači i potrebu za dodatnim diskovnim prostorom (instance su zasebne lokalne kopije)

U svakom slučaju, potrebna je volja i mogućnost klijenta za ovakav zahvat. 

Zaključak

Primjena Always On-a na našem projektu je imala pozitivan utjecaj na sve planirane komponente – sigurnost i performanse sustava, na zadovoljstvo nas i naših klijenata.

Popularne teme
.NET ABAP ADFS Agile Always On Anemic Model Angular Azure Backbone benchmark BI BI projekti Bootstrap building people business inteligence Business Intelligence Change Chrome CI CITCON Claims compile Continuous Delivery continuous deployment Continuous Integration CSR d3js data data visualization Data visualization alati DDD dekompozicija dependency injection dinamička forma dinamički parametri dinamički query distribuirani razvoj Domain-Driven design DOP društvena odgovornost edge-based video analytics Eliminating waste enkapsulacija enterprise razvoj softvera ERP ETL Excel FIORI Frontend game Geopackage GPKG GIS Git Groovy heat map HICCUPS Hichert HTML IBCS interoperability invision IoT IPSO izvještavanje java JavaFX Javascript Jazz Build Engine JBE Jenkins jquery jqueryui jsfiddle JVM Kaizen Kanban king KING ICT Kingovci Knockout kvaliteta lambde leadership Lean legacy code M language Management Maven Metodologija microservices Microsoft mobile Mobility mockups moć monday game NetWeaver network nodejs oblikovni obrasci OGC OKR open source optimizacija organizacija organizacijska struktura OutOfMemoryError outsourcing overengineering paginacija Performance performanse PERT PMI PMP; Agile; Project management; Scrum; KING ICT; razvoj; metodologija podatkovni skup pouzdanost Power BI Power Map Power Pivot Power Query Power View pretraga proces procjena Product Owner programming proizvod Project manager projektni plan radar Rational Team Concert razvoj tima refaktoriranje Release resize responsive charts REST retrospektiva Rich-Domain model Roko Roić rolling wave planning RTC SAP scale scatterplot chart Scrum scrum team scrum tim service boundaries single responsibility principle Single Sign-On smart metering SoapUI social responsibility softver Software software prototyping Software Testing Club Spring Boot SQL standard sustav videonadzora svg tdd Team team building team development Team Foundation Server tech tehnologije terminski plan Testing tim timesheet timovi Toggl.com touch transakcijski nadzor tražilica underengineering unit testing Uspjeh Visual Studio vodstvo vodstvo leadership moć društvena odgovornost DOP social responsibility CSR vođenje projekata WBS Web Zagreb STC

PRIJAVA NA NEWSLETTER

Najnovije novosti iz ICT svijeta