Přejít k navigační liště

Zdroják » Databáze » PHP v cloudu IV

PHP v cloudu IV

Články Databáze, PHP

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

Nálepky:

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

Subscribe
Upozornit na
guest
12 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Jakub Macek

Ty příklady na práci se storage by to chtělo přímo v PHP. Z mojí zkušenosti se Microsoft technologie a PHP nemají vždycky rádi a ukázky v .NET nejsou indikativní toho, jak složité bude tutéž věc provést v PHP.

karel

Koukam na screenshot k mysql a free verze s 20MB na data a uctyhodnych 4 spojeni a kdyz chci vic tak uz caluju 177/mesicne za 1GB a 15pripojeni, tomu rikam bomba sluzba plus naklady na beh php a jsem daleko za beznou cenu hostingu.

Navic kdyz uz se tu psalo o tom jak se beh php uctuje dle vyuziti tak platba za vyuzivani db jako pausal mi prijde trosku mimo, bud vse podle vyuziti nebo vse jako pausal ale takhle to promichavat mi prijde na dve veci.

Navic je to presne jak jsem psal mam pocit v komentari u druheho dilu, neni potreba cloud na php protoze napsat aplikaci v php co by potrebovala silny stroj je opravdu umeni i protoho nej bastlice, uzke hrdlo byva databaze a to azure stejne neresi jako vetsina cloudu.

Uznavam ze cloudy celkem pekne resi dostupnost pripadne jsou dobre chvilkove pri vyssi zatezi na distribuci statickeho obsahu, ikdyz od toho tu je cdn.

pp

v nadpisu tohoto článku je zdá se php zbytečné, článek se věnuje především popisu nabídky Azure.

Od článku bych čekal zcela jiné informace:
– že si mám dávat statická data na cdn
– jak mám používat cache a minimalizovat své platby za cloud
– jak řešit škálovatelnost
atd.

nic z toho se tu zdá se nedozvím a tím je článek jen o možnostech Azure. I takový tu má smysl být, ale neměl by mást čtenáře.

Martin Hassman

Souhlasím, u tohodle posledního dílu je to matoucí, ale uz jsem nechtěl měnit zaběhlou konvenci.

karel

tou konveci je mysleno pr clanek azure ?

Martin Hassman

Ne, co si pamatuju, tak o Azure jsme zádný PR článek nevydavali.

karel

a co je tedy „PHP v cloudu“ ne pr clanek, kdyby to byl aspon clanek ze se clovek jak pise pp neco technickeho dozvi, ale cele to je jen reklama na azure a kde nic tu nic
Hlavne ze se autor v PHP v cloudu II dusuje ze nam neco v tomto dile rekne, cituji : „O databázích, resp. datových úložištích, bude ve čtvrtém dílu.“
o databazich tu pravda je neco z rychlovlaku hlavne namlatit par screenschotu a je to o ulozisti prd,
pac by musel priznat ze krom predrazeneho mysql si clovek jeste dost zaplati za prostor plus za procesory kdyz bezi php, a nahle zjistujeme ze je ten zazracny azure nekolikrat drasi nez hosting

Martin Hassman

No, pokud jste to na základě článku zjistili, je to fajn. Tak to vidím já. Vážně nevadí, že se někomu ten seriál nelíbí, jiným se líbí a to je pro nás hlavní.

karel

asi si uplne nerozumime, me ten clanek nevadi a jsem rad ze jsem si o azure neco precetl byt s toho vychazi ze tudy pro me cesta nevede, jen nazev celeho serialu je zavadejici, nelze napsat PHP v cloudu a cele to postavit o psani o azure to totis pr smrdi, pritom kdyz uz se autor s azure chce vytahovat tak proc to neni PHP na cloudu Azure pripadne kdyz chce mit serial PHP v cloudu tak nepopsat jeste jiny cloud treba amazon a udelat nejake srovnani cena/vykon atd.., tak si to podle me vetsina lidi po precteni nadpisu predstavuje obsah a je to videt i na diskuzi v minulych dilech.
Dodatek nic proti pr clankum, ale mely by byt oznaceny nemusi pres celou obrazovku svitit PR, bohate by stacil spravny nazev serialu, cili PHP v cloudu Azure

Jan

Souhlasím s Karlem. Ten seriál je o PHP na Azure, kdyby to bylo o PHP v cloudu, autor by měl pochopitelně zmínit i další (a to hlavní) hráče. AWS, Heroku, Rackspace, Google.

Tohleto prostě smrdí PR. A za dobu trvání tohoto seriálu to už bylo v diskuzích zmíněno několikrát, bylo by pěkné přiznat chybu a ten seriál jednodušše přejmenovat.

karel

diky za podporu aspon nejaka reakce, trosku jsem cekal ze zdejsi garnitura necha to to vyhnit

Leni R

Tedy pokud autor vůbec něco jiného než produkty MS zná.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.