Samepage.io architecture Miroslav Šťastný, senior developer - cloudification.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Webové rozhraní pro datové úložiště
Senior IT operations manager
Virtuální akademie Řešení privátního cloudu.
Základy databázových systémů
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Elektronický obchod. Požadavky na funkčnost aplikace nabídka zboží zboží se může prodávat za různé ceny (akční nabídky, sezónní výprodeje) evidence zákazníků.
Tomáš Baďura ARI.  Mnoho velkých společností dávno začalo prosazovat přesun výpočetního výkonu IT do velkých datových center.  Decentralizované systémy.
IISPP ■ pojem definován v letech v rámci přípravy výzkumných záměrů NPÚ na roky ■ dlouhodobý projekt na vybudování nového komplexního.
METODOLOGIE PROJEKTOVÁNÍ NÁVRH IS PRO TECH. PROCESY Roman Danel VŠB – TU Ostrava HGF Institut ekonomiky a systémů řízení.
Úvod do databází Databáze.
Databáze Jiří Kalousek.
Petr Šetka, MVP Exchange, MCSE:Messaging, MCT Windows Small Business Server 2003 R2.
Adresářová služba Active directory
Platforma Windows Azure (v obrazech)
PHP – Základy programování
BAKALÁŘSKÁ PRÁCE Tomáš Janda
Relační databáze.
Tomáš Urych, ESO9 Intranet a.s.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Samepage.io architecture Miroslav Šťastný, senior developer – cloudification, Kerio Technologies.
Databázové systémy Architektury DBS.
Bezpečnost IS David Krch Solutions Specialist IS Technolog. Fyzická Osobní Organizační Komplexní pohled na bezpečnost Technolog. IS.
Advanced Technologies 05 Jak zabezpečit váš Web Server Martin Pavlis (MCSE, MCT) Konzultant.
Prezentace pro Kraj Vysočina Jan Gregor
NeoSync on-line zálohování pro každého / pro každou firmu
Internet.  Celosvětový systém propojených počítačů  Funkce  Sdílení dat  Elektronická pošta.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Databáze.
BIS Firewall Roman Danel VŠB – TU Ostrava.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
Novinky pro webovou platformu Jiří Burian, Tomáš Kutěj,
Počítačové sítě Základní pojmy.
Česko a Slovensko, výhledy do budoucnosti Michal Tomek – InterSystems BV.
IBM Global Services Ing. Stanislav Bíža, Senior IT Architect, CISA © 2005 IBM Corporation Rizika napadení webových aplikací Konference ISSS 2005 Title.
ISSS IS HN/SS Softwarová architektura informačního systému hmotné nouze a sociálních služeb Jindřich Štěpánek
Petr Dadák, Centralizovaná správa účtů v heterogenním prostředí Centralizovaná správa účtů v heterogenním prostředí Petr Dadák Bakalářská práce.
Klomfar Petr.  Adresářová služba  specializovaná databáze optimalizovaná pro čtení a vyhledávání.  popisující objekt pomocí atributů. Na rozdíl od.
Windows 7 & Internet Explorer 8 vývoj aplikací a kompatibilita Štěpán Bechynský, Ondřej Štrba Developer Evangelists
Petr Šetka solutions architect Mainstream Technologies, s.r.o.
Mgr. Milan Šimek. Počítačová síť je skupina počítačů spojených dohromady umožňující více uživatelům přistupovat k jedněm zdrojům, sdílet a využívat tatáž.
Bezpečnost podnikové sítě EI4. Firewall 1 Firewall 2 Ochranná zeď Chrání síť před útoky zvenku Neovlivňuje samotný provoz uvnitř sítě Veškerá komunikace.
Pohled uživatele.
Telefónica O2 - informační a komunikační řešení
Velké databáze High Performance Databases Miroslav Křipač Vývojový tým IS MU Služby počítačových sítí,
Infrastructure-as-a-Service na platformě OpenStack
Stanice v síti učební texty pro deváté ročníky ZŠ.
Překlad jmen, instalace AD
28. května DISKUTOVANÉ TECHNOLOGIE Řízení přístupu do sítí Nástroje pro zvýšení bezpečnosti a zjednodušení správy 4. června.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně AUTOR: Bc. Petr Poledník NÁZEV: Podpora výuky v technických oborech TEMA: Počítačové systémy ČÍSLO.
1 CONFIDENTIAL Předvídejte a buďte preventivně připraveni na bezpečnostní hrozby dříve než nastanou.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Databázové systémy Roman Danel Institut ekonomiky a systémů řízení 2016.
RF Ethernet komunikační interface LAN Komunikace po ethernetu
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Seminář 11 DHCP + HTTP + IPTABLES
INTEGRACE řešení základních registrů
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
Greenstone Librarian Interface
Identity management v UIS
Application Layer Functionality and Protocols
Přednášky z distribuovaných systémů
Analýza velkých dat strukturovaně či nestrukturovaně?
Mikroservisy Petr Paloch.
Dfdfdf.
Transkript prezentace:

Samepage.io architecture Miroslav Šťastný, senior developer - cloudification

Agenda co je to Samepage.io od krabicového software ke cloudové službě architektura systému

Co je to Samepage.io?

Co je to Kerio Workspace

Od krabice ke cloudu nový produkt nabízen jen jako služba vychází z úspěšného krabicového produktu běží na vlastní infrastruktuře porucha jakékoliv části nesmí způsobit výpadek systému

Co se pro nás změnilo cyklus vydávání zodpovědnost za data vysoká dostupnost technická podpora

Architektura - škálování instance aplikace pro každého zákazníka rychle dodatelné neefektivní využití zdrojů jedna aplikace pro všechny multitenance efektivní využití zdrojů scale up scale out (commodity hardware) monolit  služby náročnější na implementaci

Architektura – datová vrstva aplikační databáze úložiště souborů vyhledávání

Aplikační databáze - krabice Hibernate ORM mapování Java objekty  relační databáze zapouzdření práce s SQL funguje samo od sebe nemáme plně pod kontrolou Apache Derby uvnitř aplikace (embedded) na množství dotazů nezáleží více app nemůže sdílet databázi Apache Derby class Item {... } Hibernate ORM

Aplikační databáze - cloud stále se používá Hibernate dedikovaný MySQL server síťová komunikace na množství dotazů záleží multitenance – db/zákazník je třeba řešit redundanci dat při výpadku chceme mít stále aspoň 2 kopie dat MySQL App Hibernate App Hibernate... TCP

MySQL cluster standalone master-slave zapisuje se na master, ten vytváří replikační log slave čte (asynchronně) log a replikuje změny replikaci lze pozastavit ale nelze začít synchronizovat odjinud slave lze použít pro čtení (eventual consistency) multimaster více masterů, zapisovat lze kamkoliv nutné řešit konflikty

Aplikační databáze - MySQL master 3 2  5 4

Aplikační databáze - MySQL master 1  manuálně master 5 3

Úložiště souborů - krabice upload souboru  lokální disk přistupuje k němu jen jedna aplikace souběhy lze řešit na úrovni aplikace záloha – disky v RAID

Úložiště souborů - cloud Openstack Swift highly available, distributed, eventually consistent object/blob store commodity hardware, redundance na úrovni počítačů S3 kompatibilní API Storage node Proxy node

Úložiště souborů - cloud Aplikační server OpenStack Swift Lokální HDD upload AV kontrola uložení indexace pro vyhledávání

Vyhledávání - krabice Apache Lucene fulltext search engine embedded Hibernate Search integrace Hibernate  Lucene Apache Tika extrakce obsahu z dokumentů Lucene Index class Item {... } Hibernate Search

Vyhledávání – jak to funguje 1.ke třídě přidám anotaci, označím atributy, které chci indexovat 2.Hibernate zajistí, že se správně zaindexuje 3.Pokud je to třeba, Apache Tika převede DOCX na text 4.Lucene uloží do indexu: create Item update Item delete Item index Document reindex Document unindex Document

Vyhledávání – cloud stále se používá Hibernate Search, Apache Tika Embedded Lucene  Apache Solr 4 SolrCloud cluster – replikace (3 nody) multimaster index lze rekonstruovat SolrCloud App HSearch App HSearch... REST

Architektura – aplikační vrstva aplikační server landing page registrační a login server

Aplikační server původní aplikace akorát jich pustíme víc a přidáme podporu multitenance veškeré operace pracující s uživatelskými daty musí běžet v kontextu nějakého uživatele a jiné tam nemají co dělat

Landing page statický obsah pro krabici není součástí produktu pro cloudovou aplikaci ano edituje marketing ani agilní 14-denní cyklus nestačí pilot pro continuous delivery

Registrační server, login server krabice má administrační konzoli (a administrátora) uživatelské účty v aplikační databázi tu má každý zákazník svoji ale proti které se má ověřovat uživatel? oddělená databáze uživatelských účtů (CDir) registrační server - správa uživatelů a zákazníků login server ověření uživatele oproti CDiru nalezení odpovídající aplikační databáze

Registrační server, login server Registrační server Login server Aplikační server CDir Session Storage správa uživatelů autentizace vytvoření session Aplikační databáze

Session Storage Apache Cassandra NoSQL store eventuální konzistence vyžadujeme striktní konzistenci Quorum write/read Replika 1 Replika 2 Replika 3 Quorum write Replika 2 Replika 3 Quorum read

Architektura - koordinace mnoho rolí, mnoho nodů potřebují spolu komunikovat ale jak se najdou? statické privátní IP adresy žádné DHCP, DNS Apache Zookeeper

distribuovaný souborový systém důraz na bezpečnost dat data replikována na všechny nody v clusteru (Zookeeper Ensemble) přidáním nodu se zvyšuje bezpečnost, ale snižuje rychlost ochrana před split-brain lichý počet nodů, quorum Node 1Node 2Node 4 Node 5 Node 3

Apache Zookeeper není rozdíl mezi adresářem a souborem existuje jen z-node může obsahovat data (max. 1 MB) zároveň i potomky statické nebo ephemeral z-nody ephemeral node zmizí, když se odpojí klient, který ho vytvořil klient může být notifikován o změnách konkrétního node

Apache Zookeeper v Samepage.io globální konfigurace globální synchronizace volba mastera zámky service discovery na nodech staticky nakonfigurováno jen: IP konfigurace adresy všech Zookeeper serverů

Service Discovery Swift Proxy 1 Swift Proxy 2 Apache Zookeeper /services/swift {uuid_swift1: :80} {uuid_swift2: :80} App ephemeral watch

Architektura - balancery přístup uživatele z Internetu ke službě SSL terminace pound veškerá komunikace uvnitř LAN nešifrována balancing HAProxy výběr správného backendu – podle URL a cookie balancing mezi instancemi – podle cookie a IP-hash

Architektura - balancery Internet PoundHAProxy Landing page Registration server Login server Application server HTTPS HTTP Zookeeper HTTP X-Forwarded-Proto: HTTPS X-Forwarded-For:

Balancery – vysoká dostupnost Balancer 1 IP 1 Balancer 2 IP 2 VRRP Internet DNS Round Robin Virtual IP 1 Virtual IP 2

Redundance síťové vrstvy všechno redundantní, chybí poslední článek co když přestane fungovat switch? redundantní switche, ethernet bonding Switch 1 Node Switch 2 trunk eth0 eth1 bond0

Architektura - shrnutí SSL Termination + BalancingCoordination Configuration Landing PageLogin serverApplicationRegistration Server Swift File Store Database UnitSearch UnitNoSQL Store

Poučení na závěr hardware je chybový, opravdu výchozí konfigurace není ideální pro produkční nasazení na výběrová řízení není čas, buďte agilní přepisovat dokola snažte se nebýt největším uživatelem nestyďte se inspirovat u ostatních Netflix, Box.net... netrapte se tím, „že na to nemáte“ man 8 pound Threads nnn How many worker threads Pound should use. Default: 128. Tune this parameter to improve performance. If you set it too high, Pound will use a lot memory, and some CPU will be wasted on context switches. If you set it too low requests may be served with some delay. Experiment to find the optimal value for your installation. man 8 pound Threads nnn How many worker threads Pound should use. Default: 128. Tune this parameter to improve performance. If you set it too high, Pound will use a lot memory, and some CPU will be wasted on context switches. If you set it too low requests may be served with some delay. Experiment to find the optimal value for your installation.

The Startup Kids „Everything you're doing is basically something you're just barely qualified for or not qualified for. It's like jumping off a cliff and having to build your own parachute.“ Drew Houston (Dropbox)

Dotazy ?

Konec? Začátek! business – Zuora (prodej), Marketo (mailing), Salesforce (CRM) logování (Syslog), bezpečnost NoSQL (MongoDB) extrahování dalších služeb (DC notifikace, preview...) deployment (Puppet, MCollective) continuous delivery ( – Zdeněk Samuel)