Technologie

Jaké používáme technologie?

Virtualizační software

Používáme virtualizační open source software Xen. Tato aplikace určená pro linuxové platformy umožňuje na jednom fyzickém stroji provozovat více strojů virtuálních (více operačních systémů). Jednotlivé operační systémy jsou pak na sobě nezávislé a dá se na nich provozovat rozličný software.

HW

Používáme pouze značkové servery Supermicro. Servery jsou osazeny moderními CPU Intel(R), které mají více než dostatečný výkon pro vaši aplikaci. Pro ukládání dat používáme SAS HDD v RAID nebo Enterprise Intel SSD v různých kapacitách dle potřeby zákazníka.  

Operační systém

CentOS***

Linuxová distribuce CentOS vznikla z Red Hat Enterprise Linuxu.

CentOS funguje už více než 10 let a díky plánované dlouhodobé aktualizaci ještě dlouho fungovat bude. Mezi jeho hlavní výhody patří použití ověřeného softwaru a stabilita. Se správou operačního systému CentOS máme dlouholeté zkušenosti a doporučujeme jej všem našim zákazníkům.

  • Stabilita operačního systému
  • Dlouhodobá podpora bezpečnostních aktualizací
  • Velká a aktivní komunita

Webový server

Apache HTTP Server

Webový server Apache HTTP šířený pod otevřenou licencí celosvětově využívá neuvěřitelných 50 % serverů.

Server Apache vznikl už v roce 1993, Apache II pak v roce 1995. Velmi rychle se stal nejpoužívanějším webovým serverem. Podporuje velké množství funkcí, které jsou implementovány interně, nebo pomocí externích modulů. Apache aktivně používáme přes 15 let a celou dobu funguje spolehlivě jako hodinky.

  • Léty prověřená spolehlivost
  • Variabilita konfigurace
  • Výkonnost se odvíjí od konfigurace

Nginx

"Lehký" webový server a reverzní proxy s otevřeným zdrojovým kódem. Nginx běží zhruba na 33 % serverů na světě.

Server Nginx vznikl v roce 2004 s jasným cílem vyvinout řešení, které bude schopno obsloužit velké množství požadavků s minimálními nároky na operační paměť. Nginx využíváme pro hojně navštěvované projekty, které vyžadují škálovatelnost na více serverů, nebo prostě jen požadují velmi rychlou odezvu serveru.

  • Vysoký výkon
  • Nízké nároky na paměť
  • Rychlá distribuce statického obsahu
  • Možnost rozložení zátěže mezi další servery
  • Podpora cache, priorizace serverů, proxy atd.

 

PHP

Jeden z nejrozšířenějších programovacích (skriptovacích) jazyků běžících na straně serveru používaných k tvorbě webových aplikací. Používá se souběžně s NGINX a APACHE. Umí “vytáhnout” z HTML kódu dynamickou stránku a zobrazit ji jednotlivým uživatelům. PHP je jazyk nezávislý na platformě a má velmi široké možnosti použití. Umí pracovat se soubory, databázemi, generovat grafiku, odesílat a přijímat e-maily, generovat PDF atd.

Používáme aktuální verze PHP - (5.6), 7.0, 7.1, 7.x

  • široké možnosti využití
  • existence velkého množství fragmentů a hotových řešení

 

Databáze

MySQL

Relační databázový systém MySQL komunikuje pomocí jazyka SQL. S MySQL máme výborné zkušenosti, co se týče provozu jednoduchých blogů i několikaserverových clusterů odbavujících desítky tisíc dotazů za sekundu.

MySQL, velmi rozšířená relační databáze, se zaměřuje především na rychlost. Mezi hlavní výhody patří snadná implementace a její výkon. Postupně jsou do této databáze přidávány i složitější funkce jako pohledy, triggery nebo procedury.

  • Velmi rozšířená kombinace MySQL, Apache, Linux a PHP***
  • Jednoduchý způsob zálohování
  • Možnost pokročilých nástrojů jakou je např. replikace dat
  • Optimalizace na rychlost

Percona

Relační databázový systém Percona vychází z MySQL a stal se její odnoží.

Databáze Percona vznikla oddělením od MySQL a jedná se o jednu z nejrozšířenějších náhrad za databázi MySQL. Percona je optimalizovaná pro virtuální servery, NoSQL přístupy nebo pro běh na moderních SSD discích.

  • Rozšířená náhrada za MySQL
  • Zaměření na výkon

Redis

Key-value databáze Redis mnohonásobně předběhla relační databáze v rychlosti.

Mezi hlavní výhody NoSQL databáze Redis patří rychlejší a jednodušší práce s velkým množstvím dat.

  • Rychlost databáze
  • Všechny klíče jsou uloženy v paměti
  • Jednodušší práce s velkým množstvím dat
  • Jednoduché použití např. pro cache webových projektů

Elasticsearch

Fulltextový vyhledávač Elasticsearch umožní snadné hledání na vašich stránkách. Elasticsearch vám bleskurychle zobrazí výsledky nebo možnou škálovatelnost. Na webových stránkách tak při zadání filtru uvidíte výsledky prakticky ihned.

  • Data v reálném čase
  • Distribuovaný systém
  • Vysoká dostupnost v kombinaci s proxy
  • Fulltextové vyhledávání

Memcached

Software Memcached slouží ke cachování dat na straně serveru. Memcached používáme pro urychlení práce s daty, která často zabezpečují chod aplikace.

  • Vysoký výkon aplikace
  • Škálovatelnost mezi více serverů

Maria DB

MariaDB je jedním z nejoblíbenějších databázových serverů na světě. Byla vytvořena vývojáři MySQL  jako open-source software. Mezi významné uživatele patří např. Wikipedia, WordPress.com a Google.

MariaDB přeměňuje data na strukturované informace v široké škále aplikací, od bankingu po internetové stránky. Jedná se o vylepšenou náhradu za MySQL. Aplikace MariaDB je používána, protože je rychlá, škálovatelná a robustní. Má bohatý ekosystém paměťových enginů, pluginů a mnoha dalších nástrojů, díky nimž je univerzální pro celou řadu použití.

MariaDB byla vyvinuta jako software s otevřeným zdrojovým kódem a jako relační databáze poskytuje rozhraní SQL pro přístup k datům. Nejnovější verze aplikace MariaDB mají rozšířenou podporu pro funkce GIS a JSON.

SQLite

Jedná se o velmi lehkou a přitom výkonnou databázi a může se pyšnit tím, že umí jazyk SQL. Našla si své místo zejména v mobilních přístrojích a také jako datové úložiště mnoha desktopových aplikací, zejména internetových browserů. Jedná se o poměrně malou knihovnu přilinkovanou k některému skriptovacímu jazyku. Oproti MySQL má podporu pro transakce (což MySQL pro MyISAM engine nikoliv), views a triggery.

 

Podpůrné technologie

Vysoká dostupnost

Keepalived

Hlavní schopností Keepalived je jednoduché vyvažování zátěže serverů a zajištění vysoké dostupnosti pro infrastruktury postavené na Linuxu. Framework pro vyrovnávání zátěže se opírá o dobře známý a široce používaný Linux Virtual Server (IPVS). Keepalived používá sadu kontrolních prvků, které dynamicky udržují a spravují serverový pool, vzhledem k jeho stavu. Vysoká dostupnost je dosažena díky protokolu VRRP, který je základním kamenem při problémech se selháváním routeru.

 

Load balancing/proxy

HAProxy

Software HAProxy slouží k rozložení zátěže dle dostupnosti a zatížení jednotlivých serverů. Pomocí HAProxy zajišťujeme vysokou dostupnost serverů. HAProxy využíváme na většině našich projektů, kde se aplikace stará o rozložení zátěže a pomáhá nám dosahovat vysoké dostupnosti našich serverů.

  • Zachování vysokého výkonu
  • Vysoká dostupnost serverů
  • Reverzní proxy
  • Load Balancing

 

Message broker

RabbitMQ

Binární protokol RabbitMQ přenese bezpečně a spolehlivě všechny zprávy. Funguje jako message broker, takže je prostředníkem v komunikaci mezi jednotlivými aplikacemi. Převádí zprávu z formálního protokolu odesílatele do formálního protokolu příjemce.

RabbitMQ používají naši zákazníci pro asynchronní zpracování příkazů aplikací.

Zrychlení aplikace

  • Standardizovaný
  • Podporuje mnoho programovacích jazyků

 

Monitoring

Icinga2

Díky Icinga můžeme automaticky sledovat stav našich serverů a služeb na nich běžících. Icinga nám slouží jako základní nástroj pro monitoring všech našich serverů. Umožňuje monitoring jednotlivých služeb a následné reportování možných problémů. Aktuálně monitorujeme přes 2 500 služeb. Pro nezávislý monitoring serverů využíváme i další služby.

  • Sleduje servery a služby na nich běžící
  • Upozorňuje na problémy a stav jejich řešení

Graphite

V Graphitu vytváříme grafy k jednotlivým službám. Prostřednictvím Graphite například sledujeme a monitorujeme vytížení serverů nebo disků.

  • Zobrazování dat v grafu v reálném čase
  • Jednoduchý sběr dat
  • Velká variabilita nastavení

Grafana

Skvělý Open Source nástroj k analýze a vizualizaci dat v jakékoli podobě. Díky němu můžeme sledovat vývoj zatížení vašeho serveru, MySQL traffic nebo velikost vyčerpaného prostoru na vašich discích.

 

Process Control System

Supervisord

Software Supervisord nám umožňuje sledovat a ovládat celou řadu uživatelsky spuštěných procesů na serverech.

 

Synchronizace

Csync2

Nástrojem Csync2 synchronizujeme souborový systém mezi více servery.

  • Asynchronní synchronizace souborového systému

Elektronická pošta

Exim

Jedná se o velmi rozšířený Mail Transfer Agent (MTA), který se dá velmi dobře konfigurovat a doplňovat funkcemi chybějícími ostatním MTA. Díky této možnosti jej lze použít pro snadnější integraci antivirus a antispam opatření.

Postfix

Postfix je Mail Transfer Agent, který zpracovává předávání e-mailových zpráv jak mezi poštovními servery, tak lokálně v rámci jednoho systému. Jako MTA Postfix přijímá a odesílá zprávy elektronické pošty přes síť protokolem SMTP. Je vhodný zejména pro práci ve vysokém zatížení, kdy je schopen detekovat blížící se problémy a nabízet jejich vyřešení.

Postfix používalo v roce 2017 33 % z veřejně dostupných mail serverů na internetu.

 

Ostatní

LXC

LXC nebo také linuxové kontejnery je odlehčená forma virtualizace pro Linux. Kontejnery účinně rozdělují zdroje řízené jediným operačním systémem do izolovaných skupin, aby lépe vyvážily konfliktní požadavky na využití zdrojů mezi izolovanými skupinami.

PROTOKOL HTTP/2

HTTP/2 přenáší data v binárním formátu, čímž ušetří náklady na přenos dat a je odolnější vůči chybám.

Díky mutiplexování, tj. je schopen během jednoho TCP spojení vyřídit více požadavků najednou (netvoří se fronta požadavků jako u HTTP/1.0) zrychluje celé spojení. Není potřeba stahovat hlavičky pro každé spojení zvlášť (navíc je schopen je komprimovat).

Dříve si prohlížeč musel stahovat jednotlivé části webu jednotlivě (CSS, JavaScript). Nyní je však server pomocí funkce Server Push (Cache pushing) schopen odhadnout potřebné části a pošle je ihned. Tím tak šetří serverové prostředky a jednotlivá spojení zrychluje.

  • Až dvojnásobné zrychlení načítání webových stránek
  • Nižší požadavky na výkon na obou stranách spojení

Chcete vlastní server?