Migrace aplikační vrstvy na Windows Azure Michael Juřek Software Architect Microsoft s.r.o.

Slides:



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

Advanced Technologies 05 Využití MOM 2005 pro správu Exchange 2003 Petr Šetka, MCSE, MCT, MVP konzultant & lektor.
Andrea Vlčková Jak prodávat produkty Microsoft v akademickém sektoru a v sektoru veřejné správy Andrea Vlčková
AJAX fenomén současného internetu Dalibor Kačmář Academic Developer Evangelist Microsoft ČR host Vítek Karas Senior Software Development Engineer Microsoft.
Windows 8 ZMVS. Windows 8 Nové 3D uživatelské rozhraní s kódovým názvem Wind. Nové uživatelské rozhraní bude požadovat minimálně 170MB video paměti a.
Virtuální akademie Řešení privátního cloudu.
MICROSOFT BUSINESS INTELLIGENCE Pavel Cach Solution Specialist: BI, Aplikace
Úvod do Azure AppFabric Michael Juřek Software Architect Microsoft s.r.o.
Přednáška č. 5 Proces návrhu databáze
Operační systémy a aplikační servery Tomáš ZACHAT SPŠ Praha 10, STIC.
Michal Neuwirth Partner Technical Readiness Microsoft s.r.o.
OREA Hotel Voroněž I Brno 5. – Twitter hashtag: #cztechdays.
Priority IT v bankách a pojišťovnách pro rok 2012: Strategie Microsoftu pro finanční instituce Roman Cabálek, generální ředitel Microsoft ČR
Microsoft Confidential Michael Juřek Software Architect Microsoft.
WBI Systems a.s. Barákova Říčany T: F: E: W: SQL Server 2008 R2 Základy licencování.
Platforma Windows Azure (v obrazech)
1 Přehled novinek v serveru Exchange 2007 Marian Henč Technology Specialist – AD & Messaging
Windows Azure pro IT profesionály
Vývoj aplikací pro SharePoint
Michael Juřek Software Architect Microsoft s.r.o.
Tomáš Urych, ESO9 Intranet a.s.
Automation and Drives A&D AS Tomáš Halva Strana 1 (C) Si emens AG, 2002, Automation & Drives EK SIMATIC S7-200 SIMATIC S7-200 Komunikační procesor pro.
1 Vývojář a (Azure) cloud Michael Juřek Software Architect Microsoft s.r.o.
Výměna dat s klasifikovanými systémy Bezpečnostní oddělovací blok Libor Kratochvíl ICZ a.s
Celní služby 2000 Radek Sedláček TranSoft a.s Radek Sedláček TranSoft a.s
LiveContent Univerzální Formulářové Řešení Michal Petrtýl, Marek Beneš.
Jiří Karpeta Platform Strategy Advisor Microsoft Czech Republic
Transparentní modelování a provádění procesů Michael Juřek Software Architect Microsoft s.r.o.
Advanced Technologies 05 Jak zabezpečit váš Web Server Martin Pavlis (MCSE, MCT) Konzultant.
NeoSync on-line zálohování pro každého / pro každou firmu
David Šupita, Adam Řešetka, Petr Horák
Microsoft Office InfoPath 2003 Tomáš Kutěj Account Technology Specialist
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Jak využít Office 365? Několik scénářů. | Copyright© 2010 Microsoft Corporation.
Heterogenní serverové prostředí, správa, bezpečnost a interoperabilita Jak zajistit interoperabilitu v hererogenním serverovém prostředí? Jak spolupracuje.
Jiří Burian DPE PM Nový typ aplikací a požadvků Visual Studio 2008 Silverlight Expression Web 2.0 Připravujeme lokalizaci komunitních.
Andrea Vlčková Licensing Marketing Manager
Novinky pro webovou platformu Jiří Burian, Tomáš Kutěj,
Příležitost pro partnery s Windows 7 Lukáš Křovák Produktový manažer divize Windows
Petr Štos Partner Technology Specialist Microsoft Corporation.
ISSS IS HN/SS Softwarová architektura informačního systému hmotné nouze a sociálních služeb Jindřich Štěpánek
Partnerská konference Solution Partners Clarion Congress Hotel Prague 1. října 2009.
Internet Explorer 8 Štěpán Bechynský Developer Evangelist Microsoft s.r.o.
Michaela Hernady, Microsoft s.r.o Partner Development Manager
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.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
Windows XP a live distribuce Knoppix, Danix apod
Jak postupujeme vpřed v testování? Jak se nám daří vytvářet denní buildy? Stíháme opravovat chyby? Jak kvalitně chyby opravujeme?
Jakub Kvaček Segment Manager – Breadth Microsoft Česká republika
Vzdálená správa Tomáš Kalný.
Nokia Czech Republic, s.r.o. Igor Šmerda, program manager.
Aktuální bezpečnostní výzvy … a jak na ně ….. v praxi Dalibor Lukeš Platform and Security Manager Microsoft Czech and Slovak Michal Pechan Production Stream.
Poznejte jak je skvělé Mít to pod Kontrolou René Klčo Microsoft System Center Data Protection Manager 2007.
Podpora pro partnery zdroje pro obchodníky, studie návratnosti, případové studie atd. René Klčo Partner Account Manager.
Potřebujete vybudovat business aplikaci? Pokryje dílčí obchodní potřeby určité skupiny zaměstnanců, jednoho nebo více týmů Bude vytvořena / připravena.
Pavel Olšan & Ondřej Mrzena.  Co je server  Funkce  Verze Windows a instalace  Active Directory  Účty  DNS  DHCP  .
Jan Dryml Systems Engineer Microsoft. Databáze SCCM 2007 Operační data Konfigurační data SCCM server Může poskytovat všechny nebo jen některé Uživatelská.
Klient pro správu databází MySQL 1 Klient pro správu databází MySQL Zbyněk Munzar České vysoké učení technické v Praze Fakulta elektrotechnická.
Chytrá volba pro podnikání René Keyzlar Operator Channel Lead 1/3/2012.
Július Hájek On-line Marketing Manager Microsoft
Virtualizace ● IP forwarding ● IP tunneling ● Virtuální síť.
CineStar Černý Most Praha Michael Juřek Microsoft s.r.o. Rozběhněte si virtuál v cloudu!
NSWI152 - Vývoj cloudových aplikací Filip Zavoral Tomáš Herceg ~ Mario Kamburov ~ Jiří Vinárek
Bc. David Gešvindr MCT | MSP | MCTS | MCITP | MCPD.
Office 365 Education Scénáře pro univerzity
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: 
Co s daty? Azure ML Jan
Legislativní tok Ministerstvo spravodlivosti SR
Windows Server 2003 Service Pack 1 z pohledu bezpečnosti
Transkript prezentace:

Migrace aplikační vrstvy na Windows Azure Michael Juřek Software Architect Microsoft s.r.o.

Doporučený postup Krok 1: Pokuste se zmigrovat databázovou vrstvu jako první Krok 2: Zkuste provozovat lokální aplikační vrstvu oproti databázi SQL Azure V ideálním případě pouze jiný connect string V cloudu musíte povolit firewall pro vaši IP adresu Lokálně musíte mít zajištěný odchozí TCP port 1433 Dočasně očekávejte pomalejší odezvu (latence ~10ky ms) Krok 3: Pokuste se o migraci aplikační vrstvy (náplň dnešní lekce)

Agenda Základní principy Detaily služby Windows Azure Tipy pro migraci Závěrem

Aplikační vrstva pohledem vývojáře Azure nabízí hostovaný operační systém Windows Server 2008 SP2 a 2008 R2 SP1 Prakticky cokoliv, co běží na Windows Serveru lze spustit na Windows Azure: ASP.NET, ASP, PHP, Java, Ruby, …, nativní kód Libovolný web server běžící na Windows (IIS předinstalován ve web roli) Něco mezi IaaS a PaaS

Zlatá střední cesta? Čisté IaaS (Amazon) Windows Azure Čisté PaaS (Google) FlexibilitaVysokáStředníNízká Náklady na správu OS AnoNe Izolace aplikacíVysoká Nízká Symetrie mezi cloud a on- premise Ano Ne Jednoduchý upgrade verze NeAno

Rozdělení kompetencí My pro vás připravíme operační systém Vy dodáte balíček se „zaZIPovanou“ aplikací My balíček nasadíme do OS a spustíme aplikaci My aktualizujeme a spravujeme virtuální počítač Vaše aplikace nemá administrativní práva k OS Pokud chcete, tak může mít, ale není to z hlediska bezpečnosti doporučená praxe Vy můžete OS modifikovat, ale na vlastní riziko My můžeme kdykoliv vytvořit nový virtuál

LBLBLBLB LBLBLBLB LBLBLBLB LBLBLBLB Nasazení služby Vaše služba FabricControllerFabricController Web Portal (API) (API) SlužbaSlužbaModelModelSlužbaSlužbaSlužbaSlužba DNSDNS configconfig

LBLBLBLB LBLBLBLB LBLBLBLB LBLBLBLB Škálování služeb Vaše služba FabricControllerFabricController Web Portal (API) (API) SlužbaSlužba SlužbaSlužba SlužbaSlužba ModelModel SlužbaSlužba SlužbaSlužba SlužbaSlužba SlužbaSlužba SlužbaSlužba

LBLBLBLB LBLBLBLB LBLBLBLB LBLBLBLB Monitorování & zotavení služeb Vaše služba FabricControllerFabricController Web Portal (API) (API) SlužbaSlužba SlužbaSlužba SlužbaSlužba ModelModel SlužbaSlužba

Nástroje pro vývoj Windows Azure SDK Knihovny, příklady WA Storage Emulator, WA Compute Emulator Cmd tooly: CSPack, CSRun, DSInit, CSUpload* Windows Azure Tools for Visual Studio VS 2010, Visual Web Developer 2010 Funkce Šablony projektů Konfigurace aplikací Storage & Service explorer Ladění aplikací Nasazení aplikace Konfigurace RDP

$0.12 $0.24 $0.48 $ x 1.6Ghz 2 x 1.6Ghz 4 x 1.6Ghz 8 x 1.6Ghz 1.75 GB memory 3.5 GB memory 7.0 GB memory 14 GB memory 250 GB storage (instance storage) 500 GB storage (instance storage) 1000 GB storage (instance storage) 2000 GB (instance storage ) Cena za instanci Měří se doba, po kterou je instance nasazena (nemusí běžet !!!) Bez ohledu na CPU, RAM nebo IO zátěž Počítají se přenesená data ven z datového centra (HTTP/S, TCP) – $0.12 za 1 GB $ x 1Ghz GB memory 20 GB storage (instance storage)

Agenda Základní principy Detaily služby Windows Azure Tipy pro migraci Závěrem

Cíl: MASIVNÍ ŠKÁLOVATELNOST Škáluje „out” – nikoli „up“ – replikováním worker instancí podle potřeby. Umožňuje škálovat uživatelské a výpočetní aktivity nezávisle. Instance dvou typů: Web Role & Worker Role Windows Azure aplikace se mohou skládat z web role instancí, worker role instancí nebo kombinací obou. Každá instance běží ve svém vlastním VM, replikovaném podle potřeby. Architektura „velké“ aplikace

Výběr správného typu role

Web role a Worker role Web aplikace IIS7.5 Web Sites ASP.NET nebo FastCGI WebForm a MVC Web Services (WCF) Nestavové servery Definuje jeden endpoint na protokolu HTTP/HTTPS Podobné Windows službě Zpracování úloh na pozadí Spuštění libovolného web serveru (Java) Výpočty Typicky komunikují přes Azure storage queue Mohou otevřít 5 portů pro HTTP/S nebo TCP

VM role VM Role nabízí vyšší úroveň flexibility a zjednodušuje běh existujících aplikací ve Windows Azure… … výměnou za výrazně pracnější nasazení a správu Nasazení nové verze, správa oprav, … VM role je bezstavová, stav virtuálu není zálohován Obnova do stavu s uploadovaným VHD souborem Stále v Beta verzi Dostupnost finální verze neohlášena Na jaře 2012 se očekávají větší změny funkce

Téměř vše lze provést též s Web/Worker rolemi Nástroje: Úlohy spouštěné při startu Běh úloh nebo celé role s právy administrátora Připojení na vzdálenou plochu Namátkou lze: Aktivovat ASP, přidat nebo povolit libovolný modul IIS Spustili Ruby, Python, PHP, … Spouštět nativní kód Nainstalovat a využívat Expression 4 Encoder, Tomcat, MySQL, … Nastavovat cokoliv v operačním systému Instalovat a registrovat COM/COM+ komponenty I ve web roli můžete využít RoleEntryPoint.Run() a můžete pustit kód na pozadí

Proč vůbec VM roli použít? Reálně – použijete ji velmi zřídka Existují pouze 3 dobré důvody: 1.Nutnost instalace aplikací, která trvá velmi dlouho 2.Nutnost instalace aplikací, která je náchylná k chybám 3.Nutnost instalace aplikací, která vyžaduje interakci uživatele Pokud ani jeden případ nenastal, použijte vždy web nebo worker roli

Verze operačního systému Operační systém existuje ve dvou rodinách (OS Family) – vybraná vždy pevně Windows Server 2008 SP2, 64 bit Windows Server 2008 R2 SP1, 64 bit Každá edice má několik verzí (OS Version) Opravy,.NET Framework,... Vybrána manuálně nebo automatický update na nejnovější (*) Doporučení: Windows Server 2008 R2 je lépe optimalizován pro virtualizaci (osFamily=“2” v konfiguraci) Používejte automatickou aktualizace verzí

Konfigurace role Velikost VM – impl. S = 1 CPU (1.7 GHz), 1.7 GB, 250 GB XS = 1 (1GHz)/0.768/20, M = 2/3.5/500, L = 4/7/1000, XL = 8/14/2000 Connection strings Speciální nastavení pro Storage Emulator Počet instancí služeb Rodina a verze OS Implicitně – Windows Server 2008, poslední verze, automatický update Lokální souborový systém Definuje alokovanou kapacitu z lokálního FS Endpoints 5 na jednu roli = Web role (HTTP/S), Worker role (HTTP/S, TCP) Interní / Externí

Síť, porty, firewall, … Role má neomezenou komunikaci směrem ven Dovnitř jsou na firewallu OS povoleny dovolena pouze TCP a HTTP(S) komunikace na porty vyznačené jako tzv. endpoints Interní – dostupné pouze z počítačů dané služby Externí – přístupné též přes vnější firewall na externí load-balancované IP adrese Spuštění vlastní služby: Pokud je hostovaná v IIS, není třeba řešit Pokud ji hostujete sami, nezbytné informace získáte pomocí RoleEnvironment.CurrentRoleInstance.InstanceEndpoints

Kdo smí spravovat prostředí Pomocí LiveID účtu: Vlastník subskripce Uživatelé určení vlastníkem subskripce Pomocí certifikátu: Prostřednictvím HTTP/REST API pro správu Kód nebo člověk mající přístup k certifikátu (včetně privátního klíče), který vlastník subskripce zaregistroval pro správu účtu Pro účely vývoje plně automatický proces vygenerování a instalace certifikátů (součást nástrojů pro VS 2010) Pro produkční prostředí je nutné správě certifikátů věnovat adekvátní pozornost

Vytvoření aplikace Tvořena dvěma soubory: Zabalené soubory aplikace (.cspkg) Konfigurace (.cscfg) Vytvoření ve VS, Eclipse, z příkazové řádky Volitelně lze uložit do Azure Storage Dočasně pro účely nasazení nebo trvale pro archivaci nasazených verzí Pomocí MMC, Powershellu, nástrojů třetích stran

Nasazení aplikace Prostřednictvím portálu Soubory na lokálním disku nebo předem uložené v Azure Storage Prostřednictvím nástrojů Nutné vlastnit oprávněný certifikát Balíček musí být v Azure Storage (nástroje zpravidla dělají samy) Vhodné využít storage jako archiv nasazených verzí Visual Studio, Eclipse, MMC, nástroje třetích stran Powershell cmdlety pro replikovatelný skript

Rychlé úpravy aplikace Několikaminutové nasazení lze obejít: Vhodné pouze pro vývojové prostředí Vhodné pouze pokud je v každé roli jedna instance Veškeré provedené změny nejsou trvalé a při vytváření nového virtuálu jsou přepsány, proto by vždy mělo následovat řádné nasazení Možné způsoby: Remote Desktop – připojení, editace v Notepadu S novou verzí VS nástrojů velmi snadné na nastavení Využití Web Deploy pro webovou roli nov-233-verze-do-windows-azure-pod-15-sekund.aspx

Upgrade aplikace Dva způsoby: VIP Swap a In-Place Upgrade VIP Swap: Používá Staging a Production prostředí Umožňuje rychlé přepnutí prostředí Produkční: v1  Staging: v2, po přepnutí Produkční: v2  Staging: v1. In-Place Upgrade Provádí vystavení upgradu do živé služby Celá služba nebo jedna role Manuálně nebo automaticky napříč doménami

Agenda Základní principy Detaily služby Windows Azure Tipy pro migraci Závěrem

Aplikace pro cloud i on-premises Nevytvářejte dvě báze kódu, postačí jediná Rozdílné části lze řešit dvěma způsoby: Podmíněná kompilace: #if Cloud Kod-pro-cloud #else Kod-pro-on-premises #endif Detekce za běhu aplikace: Nutno referencovat knihovny Azure SDK RoleEnvironment.IsAvailable RoleEnvironment.IsEmulated

Rozdíly cloud vs. emulátor Emulátor umožňuje připojit debugger Emulátor umí běžet ve 32 i 64 bitech, cloud je 64-bit Aplikace běžící v emulátoru mají přístup k lokálnímu GAC, Registry, konfiguraci OS a dalším komponentám lokálního systému stejné jako přihlášený uživatel, v cloudu závisí na nastavení účtu pro běh aplikace Výstup z logu v emulátoru jde do okna konzole i do logu Azure Diagnostics V emulátoru nelze za běhu měnit počet instancí rolí Emulátor nesimuluje chování load balanceru

Programový model Role Fabric hledá třídu odvozenou z RoleEntryPoint Web role volitelně Worker role povinně Metoda OnStart() Volána po spuštění, umožňuje provést inicializační úkony Reportuje Busy status k load balanceru dokud nevrátíme true Metoda OnStop() Volána, když se role ukončuje - úklid Metoda Run() – u worker i web role Je zde hlavní logika – zde lze dělat cokoli, typicky nekonečný cyklus u worker role, u web role je možné použít např. pro spuštění periodických úloh Nesmí se ukončit, jinak se role recykluje

Instalace a nastavení prerekvizit V metodě OnStart() role: Běží při každém restartu aplikace Definice prostřednictvím kódu Může běžet jako administrátor (executionContext="elevated" pro ) Použití tzv. startup task Běží při každém restartu OS Definice v konfiguraci role Může běžet jako administrátor (executionContext="elevated" pro ) Pozor na správný taskType

Co kód smí a nesmí dělat? V závislosti na uživatelském účtu: Standardně práva běžného uživatele Možno zvýšit na úroveň administrátora (executionContext="elevated" pro ) Nedoporučuje se, neboť v případě bezpečnostní chyby v aplikaci dává útočníkovi větší možnosti eskalace útoku V závislosti na nastavené úrovni důvěry Standardně plná práva k provádění veškerého kódu (souborový systém, registry, nativní kód, …) Omezení operací.NET FX, žádný nativní kód (enableNativeCodeExecution ="false" pro )

Diagnostika v Azure Standardní mechanismy Windows Performance counters, Event log, IIS logs, failed request logs, třída Trace, crash dump, … ALE: Virtuální počítač může být kdykoliv nahrazen, což vede ke ztrátě těchto informací Virtuální počítače jsou skryty za firewallem Řešení: Uvnitř role běží diagnostický monitor, který informace ukládá do Azure Storage (BLOBy a tabulky) Volitelně – management pack pro SC Operations Manager pro přenos z Azure Storage do datového skladu SCOM

Diagnostický monitor Sběr dat specifikovaných v nastavení Ukládání do lokálního souborového systému Přenos do Azure Storage na vyžádání anebo s definovanou časovou periodou

Nastavení diagnostického monitoru Tři součásti: 1.Jaká data sbírat 2.S jakou frekvencí je sbírat (např. performance countery) 3.Jak často je přenášet do Azure Storage Metody nastavení: Programově – v metodě OnStart() role Deklarativní spuštění pomocí konfiguračního souboru a poté vzdálené nastavení konfigurace na vyžádání přes HTTP/REST API pomocí třídy RoleInstanceDiagnosticManager

ASP.NET a Session Jedna instance role: Použijte standardní uložení v paměti instance (InProc) Více instancí role ve farmě: Nelze použít InProc režim (data by se ve farmě nesdílela) Není k dispozici vhodný server pro režim StateServer SQL Azure nepodporuje standardní režim SQLServer Lze použít Custom režim a ASP.NET Universal ProvidersASP.NET Universal Providers Lze využít Custom režim a Windows Azure CacheWindows Azure Cache

Konfigurace Standardní konfigurace v.NET frameworku Soubory web.config/app.config plně podporovány Nepoužívejte je pro hodnoty, které je nutné měnit za běhu – změny vyžadují nasazení nové verze Konfigurace služeb Serviceconfiguration.csdef – model služby ServiceConfiguration.cscfg – instanční data

Změna konfigurace služby za běhu Pomocí XML souboru služby Podporován pouze jednoduchý typ nastavení jméno/hodnota v sekci Přístup pomocí RoleEnvironment.GetConfigurationSettingValue() Aplikace může na změny reagovat: Předplacení události RoleEnvironment.Changing a/nebo RoleEnvironment.Changed Může rozhodnout, zda požaduje restart své role anebo zpracovat konfigurační změnu za běhu (bez restartu role)

Používání souborového systému Aplikace jej velmi často používají, ať již otevřeně anebo skrytě (např. komponenty třetích stran) Častý zdroj nečekaných obtíží Řešení nebývá složité Téma bude podrobně probráno ve třetí lekci

Proč se role v cloudu restartuje? Chybějící referencované knihovny: Typicky pro knihovny v GAC, které nejsou součástí.NET frameworku (např. ASP.NET MVC) Dnes již dobře kontrolováno nástroji ve VS Postačí nastavit referenci na Copy Local = true Knihovny zkompilované pouze pro 32-bit platformu Nezpracovaná výjimka ve třídě RoleEntryPoint Role se vrátí z metody RoleEntryPoint.Run() Operace ve třídě RoleEntryPoint vyžadují administrativní oprávnění, která nejsou povolena Špatný DiagnosticsConnectionString Např. nastavení na lokální Storage Emulator

Agenda Základní principy Detaily služby Windows Azure Tipy pro migraci Závěrem

Další informace Windows Azure Azure Platform Training Course Vybraná praktická cvičení v češtině Vyzkoušejte si Azure ZDARMA a BEZ RIZIKA ucet-na-windows-azure-nyni-zcela-bez-finanancniho- rizika-a-zdarma.aspx aktivace-azure-vyhod-v-msdn-predplatnem.aspx

Úplným závěrem Windows Azure je běžný operační systém Windows Server 2008 (R2) Prakticky cokoliv lze převést Nutno respektovat specifika spravovaného operačního systému Nastavení práv k souborovému systému, zabezpečení, diagnostika, monitorování, … Migrace je zpravidla relativně snadná s předvídatelnými obtížemi Velká výhoda – testování a zkoušení je snadné a levné Platba za hodiny virtuálu, zahrnuto v MSDN subskripcích

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.