tomasz kopacz mts 2012 azure - co i kiedy użyć (iaas vs paas vshybrid cloud vs websites vs )

110

Upload: tomasz-kopacz

Post on 11-Jan-2015

1.467 views

Category:

Technology


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )
Page 2: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure: co i kiedy użyć (IaaS vs PaaS vs Hybrid Cloud vs Websites vs …) (400)

Tomasz KopaczArchitect Evangelist | Microsoft

Page 3: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Jak poruszać się w gąszczu różnych usług związanych z Azure

By napisać „niezawodną” aplikację

Cel sesji

Page 4: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure v2

Page 5: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Resiliency (odporność na awarie) Jak komponent nie działa, to aplikacja sobie poradzi

High Availability (wysoka dostępność) System działa, gdy składnik padnie

Disaster Recovery (odzyskiwanie po awarii) Szybko można uruchomić system jak „bardzo padnie”

Wymagania „dodatkowe” Działa w miarę szybko… Jest w miarę tania w utrzymaniu Niezbyt skomplikowana przy pisaniu

„Niezawodna” aplikacja?

Page 6: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Dane IaaS (SQL + mirroring, inne) Usługi Skalowalność i koncepcja CQRS Chmura hybrydowa i Azure „lokalnie” Różne komponenty / slajdy do lektury w domu

Plan prezentacji

Page 7: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Dane

Page 8: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Powód: głównie „coś” w sieci, czasami – wewnętrzne przełączenie w usłudze

3 główne „rozwiązania” Ponawianie Też:

Świadomy klient, który potrafi się przełączać Broker, przekierowujący na inną maszynę (Load Balancer, Service

Bus)

Główny problem – co zrobić gdy pojemnik (usługa) jest niedostępny (na chwilę)

Page 9: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure Storage: 5000 operacji/ sekundę, 3GB/sek

Queue: 500 / sek Blob: 60 MB/sek Kody HTTP warte uwagi:

ServerBusy (503) Timeout (504) Inne: patrz

StorageErrorCodeStrings;

„Resilency” i Azure Storage

Page 10: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Model współdzielony Soft throttling – dla bazy Hard throttling – dla

serwera Lista komunikatów o

błędach General Errors Database Copy Error Connection-Loss Errors Federation Errors

SQL Azure – jak działa

Page 11: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Incident ID – do kontaktu z suportem Code – dlaczego, patrz rysunek

Najważniejsze – czego nie można robić!

Throttling – błędy zawierają dwa kody

Page 12: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

SQL Azure – wybrane sposoby postępowania Poczekać 10 sekund

40501 :The service is currently busy. Retry the request after 10 seconds.Incident ID: <ID>. Code: <code>.

Za dużo sesji – zwykle bug w kodzie | kolejkowanie? | federacja? 10928 : Resource ID: %d. The %s limit for the database is %d and has been

reached.

Poczekać z zapisem / aktualizacją 40545: The service is experiencing a problem that is currently under

investigation. Za duża operacja na raz (2GB na log, blokad > 1 mln, za

złożone) 40552 | 40550 | 40549 | 40551 | 40553 | 40549

Podłączyć się ponownie (przekierowanie na inną bazę) 10053: A transport-level error has occurred […] 40197: The service has encountered an error processing [..]

Page 13: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

SQL Azure profiler

Page 14: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Część Enterprise Library 5.0 Integration Pack for Windows Azure Zadanie: łatwe dodanie sensownej logiki ponawiania czynności kiedy

to ma sens Wbudowana obsługa:

SQL Azure Windows Azure Service Bus Windows Azure Storage Windows Azure Caching Service

Ponawianie: Incremental (przyrostowe) Fixed interval (stały odstęp) Exponential back-off (rośnie wykładniczo)

Transient Fault Handling Application Block (Topaz)

Hands On Lab tutaj

EntLib For Azure zawiera też:Autoscaling Application Block (Wasabi) Blob configuration sourceWindows PowerShell cmdletsTailspin Surveys sample application

Page 15: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo – istotne fragmenty kodu

Page 16: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Po pierwsze – pomierzyć i logować! Stąd – TOPAZ

Azure Storage – partycjonowanie Każda kolejka to oddzielna partycja

Czyli – wiele kolejek! W Azure Table – odpowiedni model danych

Indeksy na Row Key i Partition Key (TYLKO!) Im mniej skanujemy, tym lepiej

SQL Azure – federacja

„Omijanie” throttlingu

Page 17: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

(podział danych po wielu bazach SQL) Podstawowe SQL-e

CREATE FEDERATION federation_name (distribution_name <data_type> RANGE)

CREATE TABLE [Sales].[SalesOrderHeader]( [SalesOrderID] [int] NOT NULL, IDENTITY(1,1) […] [Comment] [nvarchar](128) NULL PRIMARY KEY (SalesOrderID, CustomerID))FEDERATED ON (CustID = CustomerID)

USE FEDERATION Customer_Federation(CustID=100) WITH RESET, FILTERING=OFF

USE FEDERATION Customer_Federation(CustID=100) WITH RESET, FILTERING=ON

SQL Azure Federation

Page 18: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

Azure Federation – jak działa

Page 19: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

SQL Azure – oczywiste, tam gdzie relacje Azure Storage – użyteczny Blob i Kolejka (też dalej)

Tabela – z doświadczeń… jako trwały pojemnik na listę, ale nie do skomplikowanych danych Log Rejestr czynności …

Jest jeszcze HDFS (HDInsight, Hadoop) Jest jeszcze VHD

Dyskusja – SQL Azure, Azure Storage

Page 20: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure Storage Azure Table – brak operacji; trzeba wiersz po wierszu Copy Blob  (to też pomiędzy kontami / pojemnikami!)

Docelowy – musi być stworzonych po 7.6.2012; Copy Source to URL

Asynchroniczne! - StartCopyFromBlob x-ms-copy-status (CopyStatus): pending | success | aborted | failed x-ms-copy-id (CopyId) | x-ms-copy-status-description

(CopyStatusDescription) | x-ms-copy-progress (CopyProgress) | x-ms-copy-completion-time

(CopyCompletionTime) A – jest też Snapshot, ReadOnly, czas życia nieograniczony, blob

może mieć wiele snapshotów

Zapewnienie dostępności – czyli KOPIA (AZ)

Page 21: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

SQL Azure BACPAC – do robienia backupu; też opcja odzyskania z

BLOB CREATE DATABASE Database1B AS COPY OF Database1A; CREATE DATABASE Database2A AS COPY OF

Server1.Database1A; Pomiędzy serwerami, Na jednym użytkownik musi być administratorem, na drugim -

dbmanager

Zapewnienie dostępności – czyli KOPIA (SQL)

Page 22: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

Kopia danych – Azure Storage i SQL Azure

Page 23: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

(czyli – rzadziej pytać pojemnik) Dwa rozwiązania

Azure Cache (Uwaga! 128 MB za $45, 4GB za $325 /miesiąc)

Rola Cache (Serwis, jak dedykowany to ok 1.2GB za $86,4 / miesiąc) Największa zaleta – może być „dzielony” z inną rolą

No i jeszcze SQL Azure + Azure Storage + kopie!

A może cache

Page 24: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cechy Nazwane cache | Regiony i tagi | Wysoka dostępność Lokalne cache z powiadamianiem! API odpowiadające temu które jest dostępne w AppFabric

Server ASP.NET session state, output caching itp.

Wydajność Opóźnienia około 4 razy mniejsze niż w przypadku Azure

Shared Cache Protokół tekstowy i binarny dla Memcached

Rola cache - zalety nowego cache

Patr

z se

sja T

om

asz

a W

iśnie

wsk

iego

Co n

ow

ego w

Azu

re

Page 25: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

To może IaaS?

Page 26: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Trwały pojemnik Aplikacje LOB Infrastruktura dla aplikacji Rozwiązanie chmury hybrydowej Windows i Linux

Windows Azure Virtual Machines (IaaS)

Możliwości

Typy instancji 5

Maksymalny rozmiar dysku OS 127GB

Maksymalna liczba dysków z danymi per instancja

16

Maksymalny rozmiar dysku z danymi 1TB

Dysk z danymi : Zmiana działania cache bez restartu

Trwały pojemnik

Maksymalna liczba rdzeni 8

Maksymalna liczba GB RAM 14

Page 27: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure Web Site – czy działa witryna (SaaS) Cloud Services – znany model zdrowia + sprzęt Virtual Machines – sprzęt + prosty „check” czy maszyna

odpowiada https://www.windowsazure.com/en-us/manage/linux/how-to-guides/li

nux-agent-guide/ (tam widać jak to działa)

Kod źródłowy tu: https://github.com/windows-azure/walinuxagent https://github.com/Windows-Azure/WALinuxAgent/blob/master/waagent

LoadBalancerProbeServer

Dalej – model zliczający „błędne/brak odpowiedzi” Zawsze odpowiada na żądanie a nie inicjuje!

Czyli – opóźnienie w wykryciu „padu”

Ważne – co jest zarządzane

Page 28: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Availability Set + wbudowany Load balancer na endpoincie Technologie znane z serwerów „normalnych” ?

NLB – zupełnie bez sensu – to robi LB Azure WebFarm – raczej do rozkładania typów ruchu Cluster Services – NIE DZIAŁAJĄ

SQL Server Własna logika! Database Mirroring SQL Log Shipping Replikacja

Snapshot | Transactional | (*)Peer-to-Peer | (*)Merge

IaaS: failover + dostępność w IaaS

Page 29: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Licencja Analysis Services DTS / SSIS Reporting Services Brak ograniczeń w TSQL Ale – samodzielnie Failover i

skalowanie… Opłaty za czas

I grosze za rozmiar

Baza relacyjna + raporty Database Federation Częściowe samoskalowanie Samozarządzanie Wbudowany Failover Pewne limity w TSQL Opłaty za rozmiar

SQL Server na IaaS SQL Azure

Page 30: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

C – dysk OS D – dysk tymczasowy, tempdb Dodatkowe dyski z danymi

Z nich zrobić prosty, programowy stripe-set na dyskach pod MDF

(porty – domyślnie firewall jest włączony)

Uważać na typy cache dysku… Skryptem: Add-AzureDataDisk / Set-AzureDataDisk

Cache ReadOnly Cache ReadWrite Cache None - domyślnie

To jak zainstalować SQL Server na Azure IaaS?

InstancjaLiczba dysków z danymi

Extra Small 1

Small 2

Medium 4

Large 8

Extra Large 16

Page 31: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

DEMO

Dyski – jak to działa

Page 32: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Ustawić w skrypcie uprawnienia! (TaskSheduler on start) icacls "d:" /grant "Everyone":F

Przenieść bazę tempdb na dysk D: USE master ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev,

FILENAME = ‘D:tempdb.mdf’) ALTER DATABASE tempdb MODIFY FILE (NAME = templog,

FILENAME = ‘D:templog.ldf’)

Kilka „obowiązkowych” kroków

Page 33: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Domena, 2 serwery SQL dołączone do domeny Właściwe DNS-y na

wszystkich serwerach – nie zapomnieć o kontrolerze domeny

Ew. logowanie przez certyfikaty

Witness – by automatyczny failover

Database Mirroring - Procedura

Page 34: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

Database Mirroring na IaaSPodobnie usługi analityczne i inne

Page 35: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

(Jakbym zapomniał pokazać)

Page 36: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Środowisko często restartowane / zmieniane (testy) Wewnętrzne adresy IP przypisywane przez DHCP, w kolejności

podnoszenia maszyn VM z Domain Controller podnoszona jako pierwszy

Dostaje adres *.*.*.4 (np. 10.0.3.4) = To znamy DNS AD W środku Task Scheduler (uruchamiane jako lokalny admin):

At System Startup: ustawienie praw dla dysku D On event – Log: System, Source: Microsoft-Windows-Iphlpsvc: ustawienie DNSów

Netsh, PowerShell itp

Do tego skrypty do podnoszenia instancji itp. Płacimy de facto za storage; 100GB = $9.30/miesiąc (Locally Redundand

wystarczy) Lub – wgrywamy; upload do Azure jest DARMOWY Ps. Nie pokazywać Administratorom – pewno to można zrobić bardziej elegancko

Uwagi utrzymaniowe dla developerów

Page 37: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo (przegląd skryptów)06 Skrypty lokalne„Konfiguracja sieci” + TaskSheduler„Jak podnosić maszynę”

Page 39: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

(Otworzyć port 1433 do Internetu – na pewno zadziała )

Lepiej: Dołączyć PaaS do Virtual Network (na razie

ręcznie!)

Zaraz, ale jak to użyć z poziomu PaaS?

……………….</Role> <NetworkConfiguration> <VirtualNetworkSite name="VPNNORTH" /> <AddressAssignments> <InstanceAddress roleName="WebRole1"> <Subnets> <Subnet name="BackEndSubnet" /> </Subnets> </InstanceAddress> </AddressAssignments> </NetworkConfiguration></ServiceConfiguration>

Page 40: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

Klient w PaaS

Page 41: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Usługi

Page 42: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Gdzie: Web Sites: Limit: port 80 (ale WebSocket) + 443 (SSL)

Nie da się otworzyć innych portów! Cloud Services – Web Role (TCP / UDP / HTTP / HTTPS)

Cokolwiek, hostowane w IIS Cloud Services – Worker Role (TCP / UDP)

Cokolwiek, hostowane we własnym procesie Nie zapomnieć o

RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["External"]; IaaS + co nam się podoba..

Co: WCF (WF Services i okolice) | REST | WebSocket

Usługa - wybórW

arto

obejrze

ć:H

ost a

nd u

se W

CF S

erv

ices in

Win

dow

s Azu

re (

CS

Azu

reW

CFS

erv

ices)

Page 43: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Active Directory (podobnie jak w przypadku IaaS) PaaS można dołączyć do domeny itp…

WCF – certyfikaty, hasła itp. (standardowo) Dwa „nowe” elementy w aplikacjach:

ACS - Access Control Services Typ usług - REST

Zabezpieczanie usług?

Page 44: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Access Control Services Integracja z Windows Identity Foundation (WIF) Wspiera

Windows Live ID, Google, Yahoo, i Facebook Active Directory Federation Services (AD FS) 2.0 OAuth 2.0 (draft 13), WS-Trust i WS-Federation JSON Web Token (JWT), SAML 1.1, SAML 2.0 i Simple Web Token

(SWT) token formats Home Realm Discovery pozwalajcie wybierać sposób

autoryzacji Usługa Odata do konfigurowania usługi + portal

Autoryzacja - ACS

Page 45: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

DotNetOpenAuth w WebRole OpenID | OAuth 1.0, 1.0a i 2.0 | Relay, przekazywanie

atrybutów Biblioteka kliencka

ACS: potrafi też zabezpieczać URI, można go traktować jako „dzierżawiony” firewall

ACS pozwala zmieniać sposób autoryzacji bez konieczności zmiany kodu

Natomiast – czasy takie, że raczej pisze się i konsumuje styl „REST”

Ale, proszę rzucić okiem na szablon projektu

Page 46: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

IHttpModule (składnik potoku); dokleja Principal ASP.NET MVC WebApi (zalecane API do REST!)

ActionFilterAttribute, OnActionExecuting, actionContext.Request.Headers.Authorization

Klient var te = new AzureTestModel.AzureTestEntities(new

Uri("http://tkwebodataserver[...].svc")); te.Credentials = new

NetworkCredential("Tomasz","Kopacz");

Autoryzacja w REST

Page 47: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

DEMO

ODATA + autoryzacja + interceptorWebAPI + AutoryzacjaWebSocket + Aplikacja Konsolowa

Page 48: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Klasycznie, przez Load Balancer Jeżeli jest w pełni bezstanowa aplikacja – bezproblemowo Jak stan – to np. każde wywołanie wymusza odczyt/zapis z

pojemnika Też: ServiceBus jako pośrednik

(Patrz MTS 2011; Topic; Queue; Relay) Klient „stuka” do ServiceBus, który przechowuje komunikat /

przekierowuje go dalej

Od kwietnia 2012 dostępny jest nowy typ „enpointu” pozwalający na bezpośrednią komunikację z zewnątrz z instancją

Usługi odporne na awarię

Page 49: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Internal: Wewnętrzny, pomiędzy instancjami Input: Wejściowe, widoczne z Internetu, przechodzi

przez Load Balancer InstanceInput: Zakres, dostępne z Internetu,

mapowane na poszczególne instancje Można zestawić komunikację BEZPOŚREDNIO z instancją z

Internetu, bez VPN / Azure Connect Protokoły: HTTP, HTTPS, TCP, UDP Limity: wejściowych, zewnętrznych: 25,

wszystkich: 50

Typy endpointów w Cloud Services

Page 50: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Porty w Worker Role

Internal – obowiązkowy, by dało się odczytać liczbę instancji itp..

Page 51: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

1. Z usługi bezstanowej odczytuje (przykład) Liczbę działających instancji

2. Pyta każdą instancję o jej „obciążenie”3. Wybiera jedną z nich. W przypadku awarii – wie że się może na inną

przełączyć Zaleta:

Praktycznie „prywatny” serwer usług (np. – stan WCF!) LB po stronie klienta… Ale świadome naszej logiki!

InstanceInput – po stronie klienta

Page 52: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

Inteligentny klient (tu – Windows 8)

Page 53: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cloud Services RoleEnvironment.StatusCheck

Możliwość ręcznego „odłączania się” od Load Balancer SetBusy()

Definicja LoadBalancerProbes IaaS

Get-AzureVM -ServiceName "MyService" -Name "MyTestVM2" | Set-AzureEndpoint -LBSetName "MyLBSet" –Name MyTestEndpoint2 –Protocol tcp –LocalPort 80 -ProbePort 80 -ProbeProtocol http -ProbePath "/" | Update-AzureVM

Co 15 sekund, brak 2 kolejnych odpowiedzi = wypina maszynę

Skąd Azure Fabric wie, że serwis nie działa?

Page 54: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

<ServiceDefinition> (plik .csdef)<LoadBalancerProbes> <LoadBalancerProbe name="<load-balancer-probe-name>" protocol="[http|tcp]" path="<uri-for-checking-health-status-of-vm>„ port=”<port-number>” intervalInSeconds="<interval-in-seconds>" timeoutInSeconds="<timeout-in-seconds>” /> </LoadBalancerProbes>[….] <Endpoints> <InputEndpoint [….] loadBalancerProbe=”<load-balancer-probe-name>” />

Cloud Services - LoadBalancerProbes

Page 55: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Główny cel: „Business Continuity”

Też: Performance | Round robin Failover 

Bazuje na LoadBalancerProbes

IaaS - odpowiednia konfiguracje DNS-ów

Zauważmy, że jak aplikacja potrafi ponawiać operację, to wszystko działa…

Traffic Manager

Page 56: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Trzy ciekawe scenariusze

Page 57: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Czasami nie warto pisać usługi pośredniczącej Prywatny Azure Blob ma możliwość generowania SAK

Shared Access Key, Dostęp czasowy | RO/RW/W Zakres: dany blob/kontener

Procedura: Klient woła usługę Dostaje URI + SAK Pracuje bezpośrednio z BLOB-em

JPG (czy duży obiekt binarny) w Azure

Page 58: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cel – chmura rozszerzenie urządzenia mobilnego. Dane | Powiadamianie | Autoryzacja

(na razie Windows 8, iOS, Windows Phone 8) Funkcjonalności:

Dostęp do bazy SQL za pośrednictwem usług Web (ODATA) Triggery po stronie bazy (w JavaScript); skrypty Autoryzacja (Microsoft Accounts, Facebook, …) Powiadamianie Push Współpracuje z Live Connect Model Web Sites – albo współdzielone albo dedykowane

instancje

Windows Azure Mobile Services

Page 59: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Demo

WAMS

Page 60: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Śledzimy aplikacje dla Windows 8 „Co użytkownik klika”

Czas pobytu w formatce, czytanie artykułu (reklamy – im dłużej czyta, tym dłużej widzi reklamę)

Chcemy to śledzić by: Lepiej zarobić na aplikacji … | Zrobić lepszą aplikację v2 …

Scenariusz (zły: każdy ruch = wysłanie komunikatu i zapis danych do pojemnika) Lepiej:

Aplikacja na Windows 8 ma lokalny pojemnik Który okresowo jest wysyłany do Azure Azure grupuje informacje w większe paczki (potencjalnie – wykonując agregacje,

uproszczenie itp.) Które z opóźnieniem zapisuje w sposób trwały..

Wada: Technicznie możemy stracić porcję danych, ale…

Dużo, bardzo dużo małych danych

Page 61: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

AppForTrace1. Gromadzi „ślad”2. Eliminuje niepotrzebne elementy (tu – zbyt małe ruchy myszą)3. Wysyła komunikat REST z paczką śladów, nie częściej niż co 5s i nie mniej niż 10

na raz MvcTraceW8AppSrv

1. Gromadzi (tu – do 30 wpisów)2. Dodaje wpis do kolejki z danymi do zapisania (queuesave); Sam nic nie robi!

WorkerSave1. Wyjmuje komunikat z queuesave2. Zapisuje rekordy do tabeli3. Wysyła polecenia do queueaggregate – by policzyć coś dalej

WorkerAggregate1. Wyjmuje komunikat z queueaggregate 2. Dokonuje obliczeń

Precyzyjniej, role w aplikacji

Page 62: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

DEMO

VS jako ADMINCo robić, jak się usługi zupełnie zatkają?

Page 63: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Skalowanie

Koncepcje

Page 64: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure

Skalowalna architektura – Azure Queue

Żądanie

Azure Queue, kolejka, rozładowuje natłok żądań

Pojemnik na wynik

Usługa nasłuchująca

w Cloud ServicesWorker

wykonujący zadania w

Cloud Services

1

2 3

45

Page 65: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure

Skalowalna architektura – Service Bus

Service Bus

Żądanie i odpowiedź

Worker, wykonuje polecenia i zwraca

wynik

12

34

Page 66: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Spójność

Stan

Szybkość „widzenia” skutków wykonanej akcji

No tak, ale:

Page 67: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Command Query Responsibility Segregation Pomysł: Rozbić aplikację na dwie części

Jedną, odpowiedzialną za zapis Drugą, odpowiedzialną za odczyt

Dodatkowo, aby wykonać zapis: Do kolejki wkładane jest polecenie (Kolejka zawiera aktualny stan

systemu!) Ich wykonanie zmienia stan pojemnika docelowego

Warto pamiętać też generalnie odczytów jest znacznie więcej niż zapisów (średnio)

CQRS – idea (wstęp do…)

Page 68: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Architektura trójwarstwowa

UI

Domena / Model

PojemnikO

dcz

yt Zapis

Page 69: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Architektura CQRS

UI

Model - zapis

Pojemnik - zapis

Model - odczyt

Pojemnik - odczyt

Odcz

yt Z

apis

Kolejka

Aktualizacja

Polecenie (Command)

Albo jeden pojemnik

Page 70: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Zasoby od Pattern & Practices

CQRS journey Jak dojść do sensownej

architektury CQRS na przykładzie systemu rezerwacji

Pobrać przykładowy projekt

Ksiażka (WARTA LEKTURY) Zręcznie napisana

Page 71: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Co można zainstalować lokalnie?Też: chmura hybrydowa

Page 72: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Web Platform Installer i Azure

Page 73: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Web Sites Virtual Machines

System Center 2012 SP1 – Orchestrator, Service Provider Foundation

Service Management Portal and API !Frontend

Azure Services for Windows Server

Page 74: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Bazuje na Windows Fabric „Migracja”

URI (adresy serwera) CreateServiceUri ->

CreatePathBasedServiceUri NamespaceManager ->

CreateWindowsTokenProvider Reszta API TAKA SAMA CHMURA-

ON PREMISE Też farma Czytać tutaj, pobrać przez

WPI

(RTM!) Service Bus na Windows 2012

Page 75: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Idea – farma do hostowania Workflow Workflow Manager, WorkflowManagerClient Funkcjonalności (rozszerzenie .NET 4.5 WF)

REST API do „zlecania” nowego Workflow Workflow Revisions Komunikacja na razie PublishNotification / REST; gwarancja

dostarczenia, stanu, HA Komunikacja też przez Service Bus Monitorowanie (liczniki itp.) Powershell! Komponent też w Office 365 i Sharepoint 2013

Czytać tutaj, pobrać najlepiej przez WPI, przykłady tu (Sam Windows Server AppFabric – trochę inny zakres)

(beta; nadal) Workflow Services 1.0

Page 76: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure Azure Queue, Service Bus Azure Blob Azure Table Diagnostyka

Windows Server MSMQ, WCF + MSMQ, Service

Bus System plików! … Ale z drugiej strony –

RDBMS? Diagnostyka - taka sama!

Cloud Services? Porównajmy..

Odpowiednio napisany kod! Tych elementów specyficznych dla Azure nie ma tak dużo!

Znacznie ważniejsze – IDEE i architektura

Page 77: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Pozwalają zdefiniować topologię po stronie Azure Pozwalają też zestawić Gateway z siecią lokalną Routery: Cisco/Juniper

Najtańszy wspierany to model Cisco ASA 5505 (około $300)

TMG: Informacje tutaj WS 2008 R2: Informacje tutaj i tutaj Generalnie: znaleźć administratora z wiedzą o VPN

używających IPSec Potem – Azure jest widziane jako DataCenter

Extension

Kilka słów o Virtual Network

Page 78: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Nadal działa! (konfiguracja – stary portal) IPSec over HTTP Instaluje się endpoint na maszynie

Też na IaaS/PaaS wewnątrz Azure! Azure Virtual Network + VM + Azure Connect =

łączność z laptopem do środka Azure Auć – rozpoznawanie nazw Rozwiązanie: Lubimy IPV6

Azure Connect?

Page 79: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Zarządzanie (dla developerów)(przepraszam, odrobina marketingu – ale warto)

Page 80: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Kod: OnStart(), i potem:

var config = DiagnosticMonitor.GetDefaultInitialConfiguration();

config.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()

(nic się nie zmieniło) Jeśli celem skalowanie –

gotowe do użytku WASABi (od P&P)

Z kodu i portalu

Page 81: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Service Manager (SM) – zarządzanie incydentami Orchestrator (Orch) – Automatyzacja procesów IT

(w tym provisioning serwerów + „diagramowe pisanie skryptów”

App Controller - zarządzanie i monitorowanie aplikacji w chmurze

Też: Virtual Machine Manager (VMM) Data Protection Manager (DPM) Configuration Manager (CM) Operations Manager (OM) Endpoint Protection

System Center (subiektywnie wybrane składniki)

Page 82: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Elastyczność + Delegacja + Kontrola Samoobsługa aplikacji w chmurach Zarządzanie: Fizyczne, Wirtualne, Chmurowe

App Controller: „Cloud on Your Terms”

Page 83: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Service Templates

Zarządzanie aplikacjami w chmurach

Private Cloud

XenVMwar

eHyper-V

Windows Azure

Deploy

Manage

MonitorPackage and Configuration

App Controller – zarządzanie chmurą

publiczną + prywatną

Page 84: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Monitorowanie aplikacji w Azure

Worker Role

Web Role

Table storage

Windows AzureService API

Performance data,events, logs

Read app rolesand structure

Read operationaldata and grooming

Windows Azure ApplicationOn-Premise Operations Manager

Windows AzureOn-premise

Performance data,events, logs

Operations Manager Console Diagram View

Page 85: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Co zapamiętać? Nie boimy się System Center Po prostu klocek którego nie trzeba pisać! Czy on zarządza jedną czy 10 aplikacjami SaaS

obojętne Warto odwiedzić/przeczytać

OM12 APM – some very usefull posts APM with SCOM 2012 APM Authoring Guide APM Operations Guide APM Object Model APM Working with Alerts Jump Start AVICode journey

Page 86: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Azure – mniej znane komponenty(referencyjnie; lektura do domu)

Page 87: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

„Motor raportujący” Osadzanie raportów na stronie Web lub w aplikacji klienckiej Publikacja plików .rdl (takich samych jak w SQL 2008 R2) SOAP Management Endpoint | IReportServerCredentials

Limity Źródło danych – baza SQL do której Azure ma dostęp Nie da się pisać rozszerzeń Mechanizmy bezpieczeństwa – jak w SQL Azure Nie ma subskrypcji na raporty Report Builder 3.0 -> BI Developer Studio -> Azure Reporting

Services Obrazy do 1MB; nie można linków do zewnętrznych

Lektura tutaj Ważne pytanie – co taniej – IaaS + SQL Server czy Reporting

Services

Reporting Services

Page 88: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Assety H.264, MPEG-1, MPEG-2, VC-1, Windows Media Video AC-3 (Dolby Digital audio), Advanced Audio Coding (AAC), MP3 (MPEG-1 Audio

Layer 3), Windows Media Audio *.asf, *.wmv, *.wma, *.mp4, *.ismv,

*.isma, .3gp, .3g2, .3gp2, .asf, .mts, .m2ts, .avi, .mod, .dv, .ts, .vob, .xesc, .mp4, .mpeg, .mpg, .m2v, .ismv, .wmv, .ac3, .aiff, .bwf, .mp3, .m4A, .m4b, .wav, .bmp, .gif, .jpeg, .jpg, .png, .tif, .xaml

Strumień, CDN, Koncepcja „procesora”: Windows Azure Media Encoder PlayReady Protection Task MP4 to Smooth Streams Task Smooth Streams to HLS Task Storage Decryption

Windows Azure Media Services

Page 89: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Zarządzanie tożsamością w chmurze. Używane: Office 365 | Dynamics CRM Online | Windows Intune 250,000 firm (lasów) założonych w WAAD

Funkcjonalności Graph API – api w stylu REST do odczytywania AD, na razie

RO Powershell do konfiguracji tenantów które mogą stosować

SSO WebSSO STS metadata, WS-Federation, ADFS Nie: „Normalne AD” , VNET itp..

Windows Azure Active Directory

Page 90: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Windows Azure Active Directory

Page 91: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Dla Windows Server 2012 agent Też Windows Server 2012 Essentials

W System Center 2012 SP1 Data Protection Manager Funkcjonalności

UI + Powershell Block level backup, backup przyrostowy (oszczędność pasma; tylko

zmienione bloki) Przechowuje delty pomiędzy zmianami (per blok) Kompresja, szyfrowanie, throttling Chmura weryfikuje integralność Definiowana polityka retencji danych

Zapisać się na preview - tutaj

Windows Azure Online Backup

Page 92: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

URL-e: http://manage.windowsazure.com/ - Nowy portal, Web

Sites, IaaS, AVN http://windows.azure.com/ - Starty portal, dostęp do ACS http://account.windowsazure.com/ - dostęp do konta

zakupowego, podgląd zużycia (z punktu widzenia systemu billingowego)

(na razie – działa dla wybranych klientów, w tym Microsoft) http://manage.windowsazure.com/microsoft.com http://windows.azure.com/microsoft.com http://account.windowsazure.com/microsoft.com

Integracja portalu zarządzanego z AD

Page 93: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Biblioteki Matematyczna, tablice, algorytmy Rzadkie struktury danych

Rozproszony motor uruchomieniowy Z symulatorem lokalnym Apply / Sweep

Bazuje na Azure HPC Scheduler

Cloud Numerics

Page 94: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cloud Numerics – kod

Page 95: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cloud Numerics – kod

Page 96: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Cel: zabezpieczenie danych. End to end. Przekazywanie bezpieczne kluczy. Aplikacja przechowuje

dane bezpiecznie w chmurze, przetwarza je ale nie musi trzymać „rozkodowanych”

Funkcje: Wyszukiwanie w zaszyfrowanych danych Szyfrowanie strumieni Separacja ról – administrator, publikujący, konsumujący

Dalsze materiały SDK tutaj | Ulotka tutaj Usługa tutaj: https://trustservices.cloudapp.net

Microsoft Codename “Trust Services” Lab

Page 97: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Trust Service – kod

Page 98: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Prawie otwarta beta (wypełnia się formularz do

Connect) Funkcjonalności

HDFS – system plików Zadania MapReduce w

JavaScript, C#, Java C# Hadoop Streaming Sterownik ODBC + HiveQL

Hive Query Pane w Excelu Integracja z PowerPivot (generalnie – ze wszystkim

dzięki HiveQL)

HDInsight (dawniej Hadoop) & (very) BigData

Szczegóły: Michał Żyliński, Big Data, Deep Dive w Hadoop-a

Page 99: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Web Platform Installer, wyszukać Hadoop

Click, click itp. Działa lokalnie Można zainstalować w

we własnym kawałku Azure

Oficjalna nazwa - HDInsight

Page 100: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Kilka rozwiązań partnerskich (po angielsku)

Page 101: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Metanga Metanga (on Azure) offers a red carpet service to integrate

Azure solutions to their offering. Full metering + payment processing

http://metanga2.squarespace.com/functionality-matrix/ Typical fees: monthly fee (~$500 for Metanga) + 1-2% per

transaction fee MobilPay

MobilPay offers only payment processing via multiple channels. Romania-based, presence in multiple countries. Ready to do customizations to their service

Payment and metering

Page 102: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

WW leader in OCR – now available as cloud service Convert image into text – 30+ languages, complex

layouts, etc Great for any solution (CSV, end customer) working

with paper documents

ABBYY FineReader SDK: Azure OCR

Page 103: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Podsumowanie…

Page 104: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Za: http://www.dilbert.com

Page 106: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Po końcu prezentacji

Page 107: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Płacimy głownie za CZAS działania usługi Opłaca się je „usuwać” po zakończeniu testów/pracy Sposoby postępowania:1. Klikanie po portalu2. Napisanie prostego skryptu który poklika za nas!

Sposób ZALECANY, TAŃSZY, GODNY POLECENIA i STOSOWANIA

PowerShell i „czyszczenie” usług

Page 108: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Organizatorzy MTS czytają wszystkie ankiety.

Dzięki nim masz realny wpływ na konferencję oraz merytorykę i prelegentów kolejnego MTS.

Wystarczy 5 minut Twojego czasu na wypełnienie ankiety!

Masz szansę wygrać m.in. wejściówkę na MTS 2013 (25x)oraz inne nagrody.

Gdzie i jak? Ankiety dostępne są online – na stronie konferencji (konferencjamts.pl) Można je wypełnić od dziś, aż do 11 listopada 2012

Wypełnij ankietę i wygraj nagrody!

Page 109: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

Strefa ATE dostępna jest w strefie Partnerów Zapraszamy wszystkich zainteresowanych

poszerzeniem wiedzy Eksperci będą do Państwa dyspozycji

Ja będę tam: 20121030 11:40 – 12:30

Strefa Ekspertów (ATE)

Page 110: Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud vs websites vs )

© 2012 Microsoft Corporation. Wszelkie prawa zastrzeżone. Microsoft, Windows oraz inne nazwy produktów są lub mogą być znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje mają charakter wyłącznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI (WYRAŻONYCH WPROST LUB DOMYŚLNIE), W TYM TAKŻE USTAWOWEJ RĘKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.