Upload
shannon-thompson
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
www.devreach.com
Public Cloud Platformsfor .NET Developers
Sofia, 4-5 October 2012
Svetlin Nakov | Telerik
www.devreach.com
Agenda Public Cloud Platforms
Typical Cloud Architecture
Public .NET Cloud Platforms Cloud Types: IaaS vs. PaaS
Windows Azure
Amazon AWS (+ Beanstalk for .NET)
AppHarbor
Uhuru
Choosing a .NET Cloud
www.devreach.com
Overview, IaaS, SaaS, PaaS
Public Cloud Platforms
www.devreach.com
What is Cloud? Cloud ≈ multiple hardware machines
combine computing power and resources Share them between multiple
applications To save costs and use resources
efficiently
Cloud for Developers?
New paradigms and APIs
E.g. NoSQL databases and MapReduce
New platforms and technologies
New deployment model
www.devreach.com
Cloud Models Infrastructure as a Service (IaaS)
Virtual machines in the cloud on demand
Users install the OS and software they need
Platform as a Service (PaaS) Platform, services and APIs for
developers
E.g. .NET + IIS + ASP.NET + WCF + SQL Azure
JavaScript + Node.js + MongoDB + RabbitMQ
Software as a Service (SaaS) Hosted application on demand (e.g.
Bugzilla, WordPress, Sitefinity or SugarCRM)
www.devreach.com
Public Clouds Provide computing resources on
demand Publicly in Internet, for everyone Paid or free of charge (to some
limit) Could be IaaS, PaaS, SaaS or mix of
them
Examples of public clouds Amazon AWS, Google App Engine,
Windows Azure, Rackspace, Heroku, Engineyard, AppForce, PHP Fog, AppHarbor, Uhuru, OpenShift, CloudBees, CloudSwing, Oracle Public Cloud, Salesforce, WordPress.com, …
www.devreach.com
Typical Cloud Architecture The typical cloud architecture is multi-
tier, SOA, highly-scalable and highly-available
At each tier different managed services, technologies and languages can run
…
Mon
itori
ng
Ad
min
istr
ati
on
Data-bases
Storage Services
Back-End Services
Other Services
Load Balancer
Computing Node
Computing Node
Computing Node
www.devreach.com
Typical Cloud Architecture (2) Computing Nodes
Host and run your applications Different languages and frameworks
E.g. C# + ASP.NET MVC or PHP + Symfony
Stateless by design Databases and Storage
Relational and NoSQL databases Blob storage, file storage, CDN
Other Services Queues, notifications, logging, email,
…
www.devreach.com
Develop and Run .NET Apps in the Cloud
Public .NET Clouds
www.devreach.com
Public .NET Clouds
I am .NET developer I want to use a .NET cloud for my
apps
What I can do?
IaaS vs. PaaS approach IaaS: VPS or cloud hosting
Rackspace / Tier3 / any hosting provider
PaaS: write your app for certain platform Azure, AWS, AppHarbor, Uhuru,
other?
www.devreach.com
IaaS for .NET Developers
IaaS / VPS / cloud hosting Could work well for .NET
applications
Offered by hundreds of hosting providers
Full control over the production servers
Limited support: E.g. DB server failure fix it
yourself!
Difficulties to configure high-availability + load balancing
www.devreach.com
PaaS for .NET Developers
Two types of .NET PaaS clouds:
Microsoft Azure
Write your app against the Azure APIs
E.g. use SQL Azure, not SQL Server
Vendor lock-in
AWS, AppHarbor, Uhuru
Write your app purely in .NET
Use IIS, SQL Server, ASP.NET, WCF, …
www.devreach.com
Hosting .NET Projects in Azure
Windows Azure
www.devreach.com
Windows Azure Microsoft Windows Azure
Fast-growing public cloud from MS
Provides rich PaaS platform Supports all major .NET
technologies
ASP.NET MVC, WCF, ADO.NET EF, …
.NET applications need adoption to run
Supports also Java, PHP and Node.js
3 months trial + free shared instance Mobile phone + credit card
required
www.devreach.com
SQL Azure
Tables Blobs
Windows Azure – ArchitectureV
isu
al S
tud
io +
Azu
re T
ools
Win
dow
s A
zure
Man
ag
em
en
t P
ort
al
Compute (Worker role)
Compute (VM role)
Compute (Web role)
VM running IIS7
Windows VMWindows
VM
Queues CDN
Other Azure / external services
C# / .NET code / Java code
Custom software
ASP.NET / PHP / other
Azure Load Balancer
www.devreach.com
Windows Azure Services Windows Azure Compute
Computing instances run Windows OSand applications (CPU + RAM + HDD)
Web / Worker / VM / Persistent VM role
Storage Services Azure Blobs / Drives
Blob / file storage / NTFS volumes
Azure Table Storage – NoSQL cloud DB
Azure Queue Storage – message queue
www.devreach.com
Windows Azure Services (2)
SQL Database (SQL Azure)
SQL Server-like in the cloud
Highly-available and scalable relational DB
Azure Business Analytics
Create reports with tables, charts, maps, etc.
Azure Caching
Distributed, in-memory, application cache
Azure CDN
Content delivery network
www.devreach.com
Azure Pricing (Rough) Computing Instances
Shared CPU, 768 MB RAM $0.02 / hour ($15 / month)
1 Core, 1.75 GB RAM, 225 GB HDD $0.12 / hour ($90 / month)
Storage: $0.125 / GB + $0.01 / 100 000
operations SQL Database (not real SQL Server!)
100 MB – $0.0067 / hour ($5 / month) 1 GB – $0.0133 / hour ($10 / month)
Pricing
www.devreach.com
Azure Free Web Site Instance Windows Azure Web Sites
Host ASP.NET / PHP / Node.js web sites
Web Sites Free Shared Instance 10 sites on the azurewebsites.net
domain
165 MB of outbound data per day, unlimited inbound data
1 GB storage (shared by all sites)
20 MB of a third-party MySQL database
www.devreach.com
Hosting .NET Projects in AWS Beanstalk .NET
Amazon Web Services (AWS)
www.devreach.com
Amazon Web Services (AWS) Amazon Web Services (AWS)
The pioneer of the public clouds
Provides IaaS and PaaS on demand from 2002
Amazon Elastic Compute Cloud (Amazon EC2)
Linux / Windows VMs on demand
US, EU, Japan, Brazil, Singapore, …
No free version, only 1 year trial
Credit card required, but beware:
AWS charge for resources not being used!
www.devreach.com
AWS Architecture
RDB S3AW
S S
DK
for
Java,
C#
, P
HP,
Pyth
on
+ V
S /
Eclip
se
Plu
gin
s
AW
S M
an
ag
em
en
t C
on
sole
EC2 Instances + Storage (EBS)
Any OS and development platformC# / Java / PHP / Python / Ruby / …
Other AWS / external services(ElastiCache, CloudFront CDN, SES, …)
DynamoDB
SQSEBS SWF
Any development framework (.NET / Java EE /Symfony / Zend / Django / Rails / Node.js)
Elastic Load Balancing (ELB)
www.devreach.com
AWS Services Amazon Elastic Block Store (Amazon
EBS)
Virtual hard disk (HDD) volumes
Amazon Simple Storage Service (Amazon S3)
Host binary data (files, images, videos, etc.)
Amazon DynamoDB / SimpleDB
Managed NoSQL cloud database
Amazon Relational Database Service (RDS) Managed MySQL and Oracle databases
www.devreach.com
AWS Services (2) Other AWS services
Amazon SQS (message queue)
Amazon CloudFront (CDN)
Amazon ElastiCache (caching)
Amazon Route 53 (cloud DNS)
Amazon SES (email)
Amazon FPS (payments)
More services at the AWS Marketplace MongoDB, Redis, LAMP, Business
Objects, ...
www.devreach.com
AWS Elastic Beanstalk for .NET Amazon Beanstalk for .NET
Automatically allocates AWS services Amazon EC2 (computing instance) Amazon S3 (storage) Amazon SNS (notifications) Elastic Load Balancing + Auto
Scaling
Simplified deployment of .NET apps Through Visual Studio / AWS
Console
Automatic load balancing + auto-scaling
www.devreach.com
Amazon AWS Pricing (Rough) On-Demand EC2 Instances
1 Core, 1.7 GB RAM,160 GB HDD, Windows $0.115 / hour ($86 / month)
Storage (EBS)
$0.10 / GB + $0.10 per 1 million I/O requests
SQL Server Database (Web Edition)
1 CPU, 630 MB RAM: $0.17 / hour ($126 / mo)
1 CPU, 1.7 GB RAM: $0.59 / hour ($439 / mo)
Pricing
www.devreach.com
Hosting .NET Projects in AppHarbor
AppHarbor
www.devreach.com
AppHarbor AppHarbor – cloud platform for .NET
apps
Classical .NET development stack C#, .NET Framework, IIS, ASP.NET, WCF,
SQL Server, ADO.NET Entity Framework, …
Deployment through Git / SVN / TFS Automated build process
(compilation + unit tests)
Build-in load balancing
Built on top of Amazon AWS
Rich set of add-on services
www.devreach.com
AppHarbor Architecture
Managed SQL Server / MySQL
MongoDB, CouchDB
Vis
ual S
tud
io +
Git
Ap
pH
arb
or
Ap
plicati
on
s
Man
ag
em
en
t C
on
sole
Load Balancer (Nginx)
Background workers
Web worker instances
Managed IIS environment
C# / ASP.NET MVC /Web Forms / WCF
Managed Windows environment
C# code
IronMQ, RabitMQ
Other AppHarbor Add-On Services
www.devreach.com
AppHarbor: Add-Ons Airbrake (error logging)
Blitz (performance monitoring)
CloudAMQP (RabbitMQ)
Cloudant (CouchDB)
CloudMailin (incoming email)
Dedicated SQL Server
JustOneDB (NoSQL database)
Logentries (log management)
Mailgun (email send / receive)
www.devreach.com
AppHarbor: Add-Ons (2) Memcacher (in-memory caching)
MongoHQ (managed MongoDB)
MongoLab (managed MongoDB)
MySQL (shared MySQL DB)
RavenHQ (NoSQL database)
Redis To Go (key-value store)
SendGrid (email delivery)
StillAlive (app monitoring)
Shared SQL Server (managed instance)
www.devreach.com
AppHarbor Pricing AppHarbor free plan
1 Web worker instance per application
20 MB SQL Server + 20 MB MySQL Unlimited # of apps
(@ apphb.com subdomain) Paid plans
$49 month per worker instance 10 GB Shared SQL Server DB – $10 /
month 10 GB Shared MySQL DB – $10 /
month Custom domain – $10 / month
Pricing
www.devreach.com
ASP.NET MVC Project Deployment
AppHarbor: Live Demo
www.devreach.com
Hosting .NET Projects in Uhuru
Uhuru AppCloud
www.devreach.com
Uhuru AppCloud Cloud platform based on
CloudFoundry Supports PHP, Node.js, Ruby, Java
and .NET
Has classical .NET development stack C#, .NET Framework, IIS, ASP.NET, WCF,
SQL Server, ADO.NET Entity Framework, …
Proprietary deployment model Build-in load balancing Hosted at Inernap Network ISP Limited set of add-on services
www.devreach.com
Uhuru AppCloud Architecture
Managed SQL Server / MySQL
MongoDB
Uh
uru
Clo
ud
.com
Web
In
terf
ace
Uh
uru
Clo
ud
Man
ag
er
Load Balancer (Nginx on Ubuntu Linux)
Linux / WindowsApp Servers
Linux / WindowsApp Servers
Managed IISenvironment
C# / ASP.NET MVC /Web Forms / WCF
Managed Apache /Tomcat environment
Apache + PHP / Ruby /
Node.js / Tomcat + Java
RabitMQ
Other Uhuru Add-On Services
www.devreach.com
Uhuru AppCloud Services
Uhuru supports limited set of services:
Managed SQL Server
Managed MySQL
Managed RabbitMQ (message queue)
Managed Redis (key-value store)
Managed file system storage (UhuruFS)
Managed MongoDB (NoSQL database)
www.devreach.com
Uhuru Pricing
Uhuru AppCloud Ready To Go Currently in Beta
Entirely free For apps, databases, storage
After the commercial launch Based on allocated RAM for each
app
Databases and Storage prices separately
A free limited version will still be available
Pricing
www.devreach.com
ASP.NET MVC Project Deployment
Uhuru: Live Demo
www.devreach.com
Other .NET Clouds Apprenda
Develop for .NET locally in a VM, deploy the VM into any public IaaS cloud (e.g. in AWS)
Hosted ApprendaCloud just became available
AppFog .NET support still unavailable (as of
09/2012)
Heroku Claim to support Mono apps on a Linux
cloud
Moncai .NET (Mono) cloud – not very active
project
www.devreach.com
Choosing a .NET Cloud For large complex .NET
applications IaaS hosting (AWS / Rackspace /
other) Build the infrastructure yourself
Azure – applications may need adoption
For small applications / ASP.NET sites AppHarbor – recommended Azure Web Sites Free
Beware of hidden charges Uhuru AppCloud – still in beta
www.devreach.com
Thank you!@svetlinnakov
nakov.com
bg.linkedin.com/in/nakov
Svetlin Nakov | Telerik
Public Cloud Platformsfor .NET Developers
www.devreach.com
Free Trainings @ Telerik Academy
“Cloud Development" course @Telerik Software Academy clouddevcourse.telerik.com
Telerik Software Academy academy.telerik.com
Telerik Academy @ Facebook facebook.com/TelerikAcademy
Telerik Software Academy Forums forums.academy.telerik.com