horizontální škálování Deltacloud API

Podobné dokumenty
Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

Brno. 30. května 2014

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Microsoft Azure Workshop

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Petr Vlk KPCS CZ. WUG Days října 2016

Diagnostika webových aplikací v Azure

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

Alternativy k SAP HANA appliance? Představení možnosti TDI a cloudové infrastruktury

Případové studie a kulatý stůl. Dalibor Kačmář, Microsoft

RESTful API TAMZ 1. Cvičení 11

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

FORPSI Cloud Computing Virtuální datacentrum v cloudu

Moderní privátní cloud pro město na platformě OpenStack a Kubernetes

Healtcheck. databáze ORCL běžící na serveru db.tomas-solar.com pro

Virtualizace storage infrastruktury

Webové služby. Martin Sochor

Najde si Software Defined Storage své místo na trhu?

Cloud Computing pro státní správu v praxi. Martin Vondrouš - Software602, a.s. Pavel Kovář - T-Systems Czech Republic a.s.

1 Výchozí nastavení zařízení

Instalace a konfigurace

František Kysela SE Datacenter

Ostrava. 16. dubna 2014

Veřejné cloudové služby

Služby datového centra

Rychlá obnova dat efektivně a jednoduše

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Cloudová Řešení UAI/612

Vývoj Internetových Aplikací

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

Zálohování nefunguje... Ondřej Vlach Channel Manager CZ.SK.HU řešte dostupnost!

Služby datového centra

Definice služby katalogový list (KL-1, KL-2, KL-3)

Automatizace správy linuxové infrastruktury pomocí Katello a Puppet LinuxDays

Instalace a konfigurace web serveru. WA1 Martin Klíma

Správa a sledování SOA systémů v Oracle SOA Suite

Centrální portál knihoven

Virtualizace jako nástroj snížení nákladů. Periodické opakování nákladů nové verze Licence na pevný počet klientů

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Kubernetes Azure Service Fabric

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

egc snadno a rychle Ing. Zdeněk Jiříček, Ing. Václav Koudele

OpenNebula pro začátečníky SUT Tomáš Kukrál

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Pokročilé Webové služby a Caché security. Š. Havlíček

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Michal Hroch Server Product Manager Microsoft Česká republika

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Životní cyklus IT systémů

Publikujeme web. "Kam s ním?!"

Copyright 2012 EMC Corporation. All rights reserved.

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Možnosti využití cloudových služeb pro provoz IT

aniel Dvořák, Martin Mičan Liberec Windows Server 2012/R2 Migrační scénáře

NSS - Cache 5. LECTURE MARTIN TOMASEK

Zálohování dat a disaster recovery

2N Helios IP HTTP API

Praha, Martin Beran

Filip Kolář F5 Networks F5 Networks, Inc 2

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

Úvod do Web Services

Cloud. Nebo zatím jen mlha? Workshop Day 2011 WG06 Jaromír Šlesinger, CA Technologies Bratislava, 13. október 2011

Ondřej Lorenc System x a virtualizace ondrej_lorenc@cz.ibm.com

Příloha č. 1 Servisní smlouvy. Katalog služeb. S2_P1_Katalog služeb

Petr Leština Október 2015, hotel Chopok, Jasná IBM BP SALES UNIVERSITY. IBM Cloud Computing

IBM Informix 11.7 Edice

Sledování výkonu aplikací?

Na co se ptát poskytovatele cloudových služeb?

Efektivní ochrana dat ve virtualizovaném prostředí. Marek Bradáč

BrightStor ARCserve Backup r Michal Opatřil - Consultant - michal.opatril@ca.com

DNS, DHCP DNS, Richard Biječek

Přechod na virtuální infrastrukturu

Vývoj Internetových Aplikací

Moderní infrastruktura základ egovernmentu

Servery Incad, stav k

Softwarově definovaná úložiště a jejich využití

WCF. IW5 - Programování v.net a C# WCF

IW3 MS SQL SERVER 2014

Virtualizace desktopu virtuální realita, nebo skutečnost?

Brno. 30. května 2014

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Budování sítě v datových centrech

Integrace formou virtualizace

Novinky v Azure pro webové vývojáře

BankKlient. FAQs. verze 9.50

verze GORDIC spol. s r. o.

UAI/612 - Cloudová Řešení. Technologie

Web Services na SOAP

Zřízení technologického centra ORP Dobruška

Jaké zvolit Softwarově definované datové úložiště?

Nová koncepce ve Wonderware komunikacích Michal Tauchman

Použití databází na Webu


Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

API pro volání služby kurzovního lístku KB

Odbor informatiky a provozu informačních technologií

Transkript:

horizontální škálování Deltacloud API

2 Horizontální škálování webové app.

Horizontální škálování webové app. HI SCALE HIGH AVAILABILITY 3

Horizontální škálování webové app. Vysoká dostupnost redundance infrastruktury biodiverzita failover disaster recovery monitoring zálohování 4

Horizontální škálování webové app. Překážky ve škálování bottle-necks blob, blackbox statefull aplikace absence dokumentace nepredikovatelné chování 5

Horizontální škálování webové app. Postup při škálování vytvoření test-suite a vývojového prostředí performance test, stanovení cílové performance bottle-neck analýza optimalizace as-is rozdělení rolí horizontální škálování v rámci stejných rolí 6

Horizontální škálování webové app. Vytvoření test-suite klon konfigurace produkčního systému jeden nebo více výkonných klientů stejné prostředí, jako bude použito po optimalizaci nikdy netestujeme na produkčním systému 7

Horizontální škálování webové app. Performance test metriky pro web request per second concurrency, maximální udržitelný počet spojení time per request bandwidth user experience 8

Horizontální škálování webové app. Performance test nástroje YSlow AB httperf 9

Horizontální škálování webové app. Optimalizace as-is klást rozumné limity vlastním uživatelům optimalizace konfigurace serveru SQL slow queries komprese redukce počtu http objektů (assets merging, sprites) overload page 10

11 Horizontální škálování webové app.

Horizontální škálování webové app. Optimalizace as-is IO intenzivní operace přesunout do paměti lazy loading pro neklíčové elementy (FB like buttons, etc) optimalizace kódu (rekurze, memory leaks) code coverage test minimalizace overload recovery time 12

Horizontální škálování webové app. Rozdělení rolí použití http proxy zařazení http cache pro dynamický obsah oddělení databáze a aplikačního serveru oddělení http statického obsahu použití Memcached/Membased/Redis 13

Horizontální škálování webové app. Horizontální škálování stejných rolí loadbalancing DNS RRs resource pooling 14

Horizontální škálování webové app. Performance test obecné bottle-necky filesystem databáze session management paměť cpu síť bandwitdth síť, latence 15

Horizontální škálování webové app. Nástroje pro diagnostiku free top iotop iostat collectd mysql slow query log mysqltuner.pl vmstat netstat iptraf ntop strace mtop 16

17 DeltacloudAPI seznámení

DeltacloudAPI seznámení Infrastructure as a Service (IaaS) kdykoli vytvářet servery provádět akce (zapnout, vypnout, restartovat, smazat) zjistit stav, ip adresy, hw konfiguraci, název image Jak? web UI - prototyping API - integrace 18

DeltacloudAPI seznámení Many clouds = many APIs Many APIs = many problems Michal Fojtik, RedHat neexistuje standard vendor lock-in sledování změn složitá implementace parsování, generování XML, SOAP, JSON, binární @!#$%^&* 19

20 http://incubator.apache.org/deltacloud/

DeltacloudAPI seznámení Proč další API? industry standard vyvíjeny společností RedHat abstrakční vrstva nad cloud providery 0 % vendor lock-in legacy support zpětně kompatibilní RESTful API podpora Ruby, Python, Java dostupná dokumentace 21

DeltacloudAPI seznámení Datový model instances název, veřejné IP, lokální IP, možné akce images název hardware profiles ram, storage, CPU realms, flavours tarify, úrovně, datacentra základní akce vytvořit, zapnout, vypnout, restartovat a odstranit server 22

DeltacloudAPI seznámení Podpora providerů v core Amazon EC2 GoGrid Rackspace OpenNebula RHEV-M 23

DeltacloudAPI seznámení Nativní implementace odpadá instalace proxy zabezpečení HTTPS cool debugging console rychlost implementace 24

25 DeltacloudAPI ukázka

DeltacloudAPI ukázka RESTful API HTTP protokol HTTP methods CRUD URL namespace according to data model XML 26

DeltacloudAPI ukázka HTTP is the lingua Franca of our age, it opens up all sort of doors. Karel Minařík 27

DeltacloudAPI ukázka Curl seznam serverů CREDENTIALS= 6yvc3:wb97o1ijwWx7kRpzIlc8xLm8yH+NqOTvCpy5B1A BASEURL= https://www.virtualmaster.cz/services/deltacloud curl -s -X GET -u $CREDENTIALS $BASEURL/instances <instances> <instance href= https://www.virtualmaster.cz/services/deltacloud/instances/15844 id= 15844 > <owner_id>2531</owner_id> <name>master</name> <image href= https://www.virtualmaster.cz/services/deltacloud/images/124 id= 124 /> <hardware_profile href= https://www.virtualmaster.cz/services/deltacloud/hardware_profiles/virtual-15844 id= virtual-15844 /> <realm href= https://www.virtualmaster.cz/services/deltacloud/realms/prague-l1-personal id= prague-l1-personal /> <state>running</state> <actions> <link method= post href= https://www.virtualmaster.cz/services/deltacloud/instances/15844/start rel= start /> <link method= post href= https://www.virtualmaster.cz/services/deltacloud/instances/15844/stop rel= stop /> <link method= post href= https://www.virtualmaster.cz/services/deltacloud/instances/15844/reboot rel= reboot /> 28

DeltacloudAPI ukázka Curl seznam serverů CREDENTIALS= 6yvc3:wb97o1ijwWx7kRpzIlc8xLm8yH+NqOTvCpy5B1A BASEURL= https://www.virtualmaster.cz/services/deltacloud curl -s -X GET -u $CREDENTIALS $BASEURL/instances \ grep name sed -e s/<name>//g -e s/<\/name>//g sed s/^[ \t]*// master worker-stale worker-1300959292 worker-1300960167 29

DeltacloudAPI ukázka Curl vytvoření serveru BASEURL= https://www.virtualmaster.cz/services/deltacloud IMAGE_ID= 942 HWP_ID= 2513 REALM_ID= prague-l1-personal COUNT= 1 CREDENTIALS= 6yvc3:wb97o1ijwWx7kRpzIlc8xLm8yH+NqOTvCpy5B1A NAME= worker- `date +%s` DATA= image_id=$image_id&name=$name&realm_id=$realm_id&hwp_id=$hwp_id curl -s -X POST -u $CREDENTIALS -d $DATA $BASEURL/instances 30

DeltacloudAPI ukázka Ruby příprava # apt-get update # apt-get install -y ruby ruby-dev rubygems libxml2-dev libxslt-dev \ build-essential libopenssl-ruby # gem install deltacloud-client # irb 31

DeltacloudAPI ukázka Ruby připojení k API require rubygems require deltacloud api_url = https://www.virtualmaster.cz/services/deltacloud api_name = 6yvc3 api_password = wb97o1ijwwx7krpzilc8xlm8yh+nqotvcpy5b1a api = DeltaCloud.new( api_name, api_password, api_url ) => #<DeltaCloud::API:0x7f38d85125a8 @api_driver=nil, @driver_name= mock, @api_uri=#<uri::https:0x7f38d8512300 UR- L:https://www.virtualmaster.cz/services/deltacloud>, @verbose=false, @entry_points={:images=> https://www.virtualmaster.cz/services/deltacloud/images, :instances=> https://www.virtualmaster.cz/services/deltacloud/instances, :instance_states=> https://www.virtualmaster.cz/services/deltacloud/instance_states, :hardware_profiles=> https:// www.virtualmaster.cz/services/deltacloud/hardware_profiles, :realms=> https://www.virtualmaster.cz/services/deltacloud/realms }, @password= wb97o1ijwwx7krpzilc8xlm8yh+nqotvcpy5b1a, @api_provider=nil, @api_version= 1.0, @features={}, @username= 6yvc3 > 32

DeltacloudAPI ukázka Ruby běžící instance instance api.instances.map{ i i.name} => [ master, worker-stale, worker-1300959292, worker-1300960167 ] 33

DeltacloudAPI ukázka Ruby ip exisutjících adresy instancí h = {} api.instances.each{ i h[i.name] = i.public_addresses.first} h => { worker-1300959292 => 80.79.23.90, master => 83.167.232.91, worker- 1300960167 => 83.167.232.116, worker-stale => 80.79.23.171 } 34

DeltacloudAPI ukázka Ruby nová instance instance = Api.create_instance( 5, :name => api-test ) => #<DeltaCloud::API::Stateful::Instance:0x7f38d89d83d0 @actions=[[ start, https://www.virtualmaster.cz/services/deltacloud/instances/15970/start ], [ stop, https://www.virtualmaster.cz/services/deltacloud/instances/15970/ stop ], [ reboot, https://www.virtualmaster.cz/services/deltacloud/instances/15970/reboot ], [ shutdown, https://www.virtualmaster.cz/services/deltacloud/instances/15970/shutdown ], [ destroy, https://www.virtualmaster.cz/services/deltacloud/instances/15970/destroy ]], @base_name= instance, @state= PENDING, @client=#<delta- Cloud::API:0x7f38d85125a8 @api_driver=nil, @driver_name= mock, @api_uri=#<uri::https:0x7f38d8512300 URL:https:// www.virtualmaster.cz/services/deltacloud>, @verbose=false, @entry_points={:images=> https://www.virtualmaster.cz/ services/deltacloud/images, :instances=> https://www.virtualmaster.cz/services/deltacloud/instances, :instance_ states=> https://www.virtualmaster.cz/services/deltacloud/instance_states, :hardware_profiles=> https://www.virtualmaster.cz/services/deltacloud/hardware_profiles, :realms=> https://www.virtualmaster.cz/services/deltacloud/realms }, @password= wb97o1ijwwx7krpzilc8xlm8yh+nqotvcpy5b1a, @api_provider=nil, @api_version= 1.0, @features={}, @ username= 6yvc3 >, @url= https://www.virtualmaster.cz/services/deltacloud/instances/15970, @action_urls=[ https:// www.virtualmaster.cz/services/deltacloud/instances/15970/start, https://www.virtualmaster.cz/services/deltacloud/instances/15970/stop, https://www.virtualmaster.cz/services/deltacloud/instances/15970/reboot, https:// www.virtualmaster.cz/services/deltacloud/instances/15970/shutdown, https://www.virtualmaster.cz/services/deltacloud/instances/15970/destroy ], @id= 15970, @objects=[{:type=>:state, :method_name=> stopped?, :state=> S- TOPPED }, {:type=>:state, :method_name=> running?, :state=> RUNNING }, {:type=>:state, :method_name=> pending?, :state=> PENDING }, {:type=>:state, :method_name=> shutting_down?, :state=> SHUTTING_DOWN }, {:type=>:text, :value=>2531.0, :method_name=> owner_id }, {:type=>:text, :value=> api-test, :method_name=> name }, {:type=>:link, :method_name=> image, :id=> 5 }, {:type=>:text, :value=> 5, :method_name=> image_id }, {:type=>:link, :method_ name=> hardware_profile, :id=> virtual-15970 }, {:type=>:text, :value=> virtual-15970, :method_name=> hardwa- 35

DeltacloudAPI ukázka Ruby změna stavu polling instance.state => PENDING loop do break if api.instance(i.id).state == RUNNING sleep 5 end ips = api.instances.map{ i i.public_addresses.first} LoadBalancer.update_backend_pool(ips) 36