9. cloud software development - relational databases-in-cloud-environment

29
Relational Databases in Cloud Environment Amazon RDS (MySQL and Oracle) and SQL Azure Emil Tabakov Telerik Software Academy academy.telerik.com http://clouddevcourse.telerik.com www.etabakov.com relational

Upload: telerik-software-academy

Post on 26-Jan-2015

114 views

Category:

Technology


1 download

DESCRIPTION

Relational-Databases-in-Cloud-Environment Telerik Software Academy: http://clouddevcourse.telerik.com/ The website and all video materials are in Bulgarian Architecture overview; Features and limitations; Pricing; Scaling; Development for cloud based database; Demo; Some other considerations

TRANSCRIPT

Page 1: 9. Cloud software development - relational databases-in-cloud-environment

Relational Databases in Cloud

EnvironmentAmazon RDS (MySQL and Oracle) and SQL Azure

Emil Tabakov

Telerik Software Academyacademy.telerik.com

http://clouddevcourse.telerik.com

www.etabakov.com

relational

Page 2: 9. Cloud software development - relational databases-in-cloud-environment

Who Am I? Team lead at Telerik Professional experience

Web applications development

How to contact me Twitter: @anthares

Blog: www.etabakov.com

Email: emil.tabakov at telerik dot com

Disclaimer2

Page 3: 9. Cloud software development - relational databases-in-cloud-environment

Agenda Architecture overview Features and limitations Pricing Scaling Development for cloud based database

Demo Some other considerations

3

Page 4: 9. Cloud software development - relational databases-in-cloud-environment

Why Should We Care?

To add another tool in your toolbox

To be prepared for the future 4

Page 5: 9. Cloud software development - relational databases-in-cloud-environment

Relational Databasesin the Cloud: Solutions

Amazon RDS SQL Server new

MySQL

Oracle

Microsoft SQL Azure

Google Cloud SQL MySQL

5

Page 6: 9. Cloud software development - relational databases-in-cloud-environment

SQL Azure Architecture

6

Four layers of abstraction Client Layer

TDS protocol

Located on various environments

Developed with different technologies

Services Layer Provisioning

Billing and metering

Connection routing

Page 7: 9. Cloud software development - relational databases-in-cloud-environment

SQL Azure Architecture

7

Four layers of abstraction Platform Layer

The physical database servers

SQL Azure fabric

Automatic failover, load balancing and automatic replication between all the physical servers

Infrastructure Layer

Page 8: 9. Cloud software development - relational databases-in-cloud-environment

Amazon RDS Architecture

Dedicated virtual machine Built on top of MySQL / Oracle / SQL Server instances

8

Page 9: 9. Cloud software development - relational databases-in-cloud-environment

SQL Azure – Key Features

SQL Azure is “native” cloud platform

Offers management tool as a Service Convenient even for non-SQL

developers

Disaster recovery solution Out of the box at no cost

Roadmap and community Lots of sessions, clear vision for

improvement

Generally, cheaper

9

Page 10: 9. Cloud software development - relational databases-in-cloud-environment

SQL Azure – Limitations 150 GB database size limitation Only a subset of features compared toSQL Server, no support for: Analysis services

Replication

Service Broker

Manipulating physical resources

Setting server options, trace flags, SQL server profiler or database advisor, no CLR

10

Page 11: 9. Cloud software development - relational databases-in-cloud-environment

Amazon RDS – Key Features

Full MySQL / Oracle / SQL Server instance

Database Backup / Restore functionality

Database size – up to 1 TB Available for developers all over the world today

Generally better performance than SQL Azure

11

Page 12: 9. Cloud software development - relational databases-in-cloud-environment

Amazon RDS – Limitations

Up to 4 hours a week downtime for maintenance Usually no downtime

Not really cloud solution More like database hosting solution

Could cost a lot

12

Page 13: 9. Cloud software development - relational databases-in-cloud-environment

Pricing in SQL Azure

Database size

Price per database per month

0 – 100 MB $4.995

100MB – 1GB $9.99

1GB – 10GB $9.99 for the first GB, $3.996 for each additional GB

10GB – 50GB $45.954 for first 10 GB, $1.998 for each additional GB

50GB – 150GB

$125.874 for first 50 GB, $0.999 for each additional GB

13

Estimated cost for 50GB database a month:

~ $125

Page 14: 9. Cloud software development - relational databases-in-cloud-environment

Pricing in Amazon RDS Multi Availability Zone doubles the cost

Additional cost for data transfer Greater variety of hardware configurations

The billing depends on Usage

Provisioned storage

I/O requests

Harder to be predicted14

Page 15: 9. Cloud software development - relational databases-in-cloud-environment

Scaling Scale-up (vertically)

Limited by the hardware

High administration costs (exponential)

Scale-out (horizontally) Cost effective

Commodity class hardware

Multiple approaches Sharding, horizontal partitioning

15

Page 16: 9. Cloud software development - relational databases-in-cloud-environment

Sharding vs. Horizontal Partitioning

Horizontal partitioning Splitting database table in multiple

tables within a single database instance

Going further with sharding Splitting between multiple

instances

Advantages of sharding: Split the search load between

multiple instances (not only multiple indexes)

Easier replication, worldwide distribution

16

Page 17: 9. Cloud software development - relational databases-in-cloud-environment

Scaling the Azure Cloud Limited Scale up opportunities Great Scale out options through federations Collection of database partitions

defined by federation scheme

No joins supported across multiple database instances because of the physical separation

17

Page 18: 9. Cloud software development - relational databases-in-cloud-environment

SQL Azure DemoWorking with Federationsusing Entity Framework

Page 19: 9. Cloud software development - relational databases-in-cloud-environment

Scaling with Amazon RDS

Good Scale-up opportunities 5 database sizes available (small,

large, extra large, double extra large, quadruple extra large)

Standard and High memory options

No out of the box scale-out solution But there are various home grown

solutions available

19

Page 20: 9. Cloud software development - relational databases-in-cloud-environment

Development withCloud Databases

Your database server will fail sooner or later

Build stateless application Databases in cloud are different from those on the ground

Have in mind the pricing model of your cloud provider

Have in mind that the location of your DB can be changed any time

20

Page 21: 9. Cloud software development - relational databases-in-cloud-environment

DemoMigrate a simple Web Application’s

data layer to various cloud environments

Page 22: 9. Cloud software development - relational databases-in-cloud-environment

Legal Concerns Tracking and auditing data Privacy and data security

Physical and logical security requirements

EU Directive on data protection (95/46/EC)

Accessing the data by the vendor

Jurisdiction concerns – US Patriot Act

Limitations on Vendor Liability No warranty, limited responsibility

in case of accidents

22

Page 23: 9. Cloud software development - relational databases-in-cloud-environment

Choosing the Cloud for You

New project or existing one Define your project’s requirements and restrictions Budget

High availability

High Scalability

Ease of use

Performance

23

Page 24: 9. Cloud software development - relational databases-in-cloud-environment

Choosing the Cloud for You (2)

Have in mind your application hosting environment Increased latency

Possible security flaws

Be prepared for a change Free Azure subscription for BizSpark members

24

Page 25: 9. Cloud software development - relational databases-in-cloud-environment

Possible Use Cases Software as a service product Hosted trials on Telerik

25

Page 26: 9. Cloud software development - relational databases-in-cloud-environment

Thank you!

Twitter: @anthares

Blog: www.etabakov.com

Email: emil.tabakov at telerik dot com

Thanks for attending!26

Page 27: 9. Cloud software development - relational databases-in-cloud-environment

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Relational Databases in Cloud Environment

http://academy.telerik.com

Page 28: 9. Cloud software development - relational databases-in-cloud-environment

Homework Create a relational DB account in

some cloud Use Amazon RDS or SQL Azure or

Xeround Cloud MySQL or other cloud relational DB

Define a table "Bookmark" with columns "URL" and "Description" and table "Clicks" to store the click count for each bookmark entry

Create a console or Web based application Use C#, Java, PHP or other language

Your application should add few bookmarks, list all bookmarks and a click for the first bookmark

28

Page 29: 9. Cloud software development - relational databases-in-cloud-environment

Free Trainings @ Telerik Academy

“Cloud Development" course @ Telerik Academy clouddevcourse.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com