PHP v cloudu IV

V předchozích třech dílech seriálu se ukázalo, že tak velké téma není úplně jednoduché obsáhnout na tak relativně malém prostoru. Trochu neplánovaně proto přidávám další článek, který volně navazuje na seriál PHP v cloudu. Věnovat se budeme především práci s databázemi v cloudu a jaké jsou možnosti.

Seriál: PHP v cloudu (4 díly)

  1. PHP v cloudu I 13.6.2014
  2. PHP v cloudu II 25.6.2014
  3. PHP v cloudu III 2.7.2014
  4. PHP v cloudu IV 11.7.2014

Dvě možnosti

Možnosti máme v zásadě dvě. Složitější varianta, při které ale budete mít vše pod kontrolou, je vytvoření vlastního virtuálního stroje a instalace databáze podle vašeho výběru. Druhá možnost je pak využití databázového serveru jako služby.

Vlastní virtuální stroj s databází

Microsoft SQL Server

Pro Microsoft SQL Server si můžete vytvořit virtuální stroj s Windows Serverem a doinstalovat do něj SQL Server. V tomto případě budete mít v rámci měsíčního poplatku za běh virtuálního stroje i cenu licence serverového operačního systému Windows Server. Pro Microsoft SQL Server budete muset mít pořízenu příslušnou licenci nebo použít bezplatnou verzi Microsoft SQL Server Express. Tato verze je zdarma, její funkce jsou však v určitých ohledech omezené. Druhou možností je pak využití hotového virtuálního stroje s předinstalovaným SQL Serverem. V tomto případě máte v rámci poplatku za provoz virtuálního stroje i licenci pro Microsoft SQL Server.

image1

Oracle

V případě Oracle jsou možnosti stejné jako u Microsoft SQL Serveru. Služba Microsoft Azure představuje certifikované prostředí pro Oracle databáze, které společnost Oracle plně podporuje.

image2

MySQL

Pro MySQL si můžete opět vytvořit vlastní virtuální stroj a na něj nainstalovat MySQL. Pokud nechcete řešit instalaci, tak si můžete na VM Depot vyhledat virtuální stroj s předinstalovaným databázovým serverem MySQL.

image3

Ostatní databáze

Asi je vám jasné, že do virtuálního stroje můžete nainstalovat, co potřebujete, nebo se podívat na VM Depot, jestli tam není hotový virtuální stroj, který splňuje vaše požadavky.

image4

Databáze jako služba

Jako službu můžete v tuto chvíli využít Microsoft SQL Server, MySQL a mongoDB. Microsoft SQL Server jako služba je provozován společností Microsoft. MySQL a mongoDB provozuje třetí strana na službě Microsoft Azure.

image5

image6

Azure SQL

Azure SQL je Microsoft SQL Server nabízený jako služba. Pomocí portálu založíte databázi, přičemž každá databáze může běžet na svém vlastním serveru nebo můžete na jeden server dát více databází, stejně jako byste si Microsoft SQL Server provozovali sami. Databáze je schovaná za firewall, ve výchozím nastavení je možné k databázi přistupovat jen ze služeb, které běží na Microsoft Azure. Pokud chcete k databázi přistupovat i „z venku“, tak musíte přenastavit firewall. Pravidla pro firewall můžete nastavit pro server jako celek nebo pro jednotlivé databáze.

image7

Pravidla pro firewall lze také nastavit pomocí úložných procedur.

  • sp_set_firewall_rule
  • sp_set_database_firewall_rule

Pro kompletní správu databází a serveru můžete také použít PowerShell. Pokud povolíte přístup zvenčí, tak s Azure SQL pracujete jako s normální databází.

image8

Import a export databáze

Pro import databáze je třeba nejdříve databázi nahrát na Azure Blob Storage (viz dále), a pak provést import, např. pomocí PowerShell. Export funguje obdobně, databáze se exportuje do Azure Blob Storage, odkud si ji pak můžete stáhnout.

  • Start-AzureSqlDatabaseExport
  • Start-AzureSqlDatabaseImport
  • Get-AzureSqlDatabaseImportExportStatus

MySQL a mongoDB

U MySQL a mongoDB je princip stejný, jako u Azure SQL. K databázi máte přístup běžným způsobem, jako byste si databázi spravovali sami.

image9

Azure Storage

Na konec jsem si nechal službu Azure Storage. Tato služba se dělí na tři části:

  • Blobs – nestrukturovaná data, typicky soubory. Podpora CDN.
  • Tables – nerelační databáze pro ukládání extrémního počtu záznamů.
  • Queues – klasická fronta zpráv.

SDK pro práci Azure Storage

Všechny služby z Azure Storage jsou přístupné pomocí REST rozhraní. Pro ulehčení práce je k dispozici SDK pro většinu programovacích jazyků.

Práce s Blobs v C#

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
        CloudConfigurationManager.GetSetting("StorageConnectionString"));

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("sample");

CloudBlockBlob blockBlob = container.GetBlockBlobReference("picture.png");
using (var fileStream = System.IO.File.OpenRead(@"image.png"))
{
    blockBlob.UploadFromStream(fileStream);
} 

foreach (IListBlobItem item in container.ListBlobs(null, false))
{
    Console.WriteLine(item.Uri);
}

Console.ReadLine();

blockBlob.Delete();

Console.ReadLine();

Práce s Tables Python

from azure.storage import *
table_service = TableService(account_name='stepanb', account_key='--------')
table_service.create_table('weather')
weather = {'PartitionKey': '1', 'RowKey': str(counter), 'temperature' : data[0], 'humidity': data[1]}
table_service.insert_entity('weather', weather)

HDInsight

Podpora pro Big data a Hadoop. Vzhledem k tomu, že o tomto tématu akorát vím, že to Microsoft Azure podporuje, tak bych jeho zpracování přenechal raději někomu, kdo tomu opravu rozumí.

Závěr

Výše jsme si shrnuli aktuální možnosti práce s různými datovými úložišti. U většiny datových úložišť si můžete vybrat, zda si je budete provozovat sami (IaaS) nebo je využijete jako službu (PaaS). Každopádně pokud potřebujete vysoce dostupné datové úložiště, tak by Microsoft Azure mohl být pro vás řešením.

Komentáře: 12

Přehled komentářů

Jakub Macek Příklady v PHP
karel sakra drahe reseni
pp
Martin Hassman Re:
karel Re:
Martin Hassman Re:
karel Re:
Martin Hassman Re:
karel Re:
Jan Re:
karel Re:
Leni R Re:
Zdroj: https://www.zdrojak.cz/?p=12783