Top Banner
Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy http://academy.telerik.co Public Clouds
42

4. Cloud software development - software development-for-the-public-cloud-platforms

Nov 12, 2014

Download

Technology

Software Development for the Public Cloud Platforms
Telerik Software Academy: http://clouddevcourse.telerik.com/
The website and all video materials are in Bulgarian

The Cloud from Developers‘ Perspective;
Windows Azure;
Google App Engine (GAE);
Amazon Web Services (AWS);
AppHarbor
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon

Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. AmazonSvetlin NakovTelerik Software Academyhttp://academy.telerik.com

PublicCloudsAgendaThe Cloud from Developers PerspectiveWindows AzureGoogle App Engine (GAE)Amazon Web Services (AWS)AppHarbor2

PublicCloudsThe Cloud from Developers'Perspective

Cloud??? WTF?!?4

Computer Located OUtside of Data Center

WTF?

Cloud forDevelopers?What is Cloud?Cloud multiple hardware machines combine computing power and resourcesShare them between multiple applicationsTo save costs and use resources more efficientlyPublic cloudsProvide computing resources on demandPublicly in InternetPaid or free of charge (to some limit)Azure, Amazon AWS, Google App Engine, AppHarbor, Rackspace, Heroku,

5

Why Cloud Matters?MicrosoftAzureIBMCloudAppleiCloudOraclePublic CloudSAPNetWeaver on DemandGoogleApp EngineAmazonWeb ServicesHPCloud ServicesVMwareCloud FoundryTheRackspaceCloudCiscoCloud Applicationsand ServicesIntelHybrid CloudDellCloud ComputingSolutionsAdobeCreative CloudCACloud SolutionsSymantec.cloud servicesSalesforceForce.comCloud Computing PlatformEMCAtmos CloudDelivery Platform6Cloud Computing ModelsInfrastructure as a Service (IaaS)Virtual machines in the cloud on demandUsers install the OS and software they needPlatform as a Service (PaaS)Platform, services and APIs for developersE.g. .NET + ASP.NET + WCF + SQL AzureJava + JBoss + JSF + JPA + MongoDBJavaScript + Node.js + MongoDB + RabbitMQSoftware as a Service (SaaS)Hosted application on demand (e.g. WordPress or SugarCRM)7Cloud for DevelopersMoving to the cloud will require new skillsNew paradigms and APIsE.g. NoSQL databases and MapReduceNew platforms and technologiesNew deployment modelThe cloud still supports your existing skillsKnown technologies, e.g. ASP.NET and WCFYour favorite programming languagesLike C#, Java and PHPRelational databases and SQL8

Cloud ArchitectureThe typical cloud architecture is multi-tier, SOA, highly-scalable and highly-available

At each tier different managed services, technologies and languages can run9MonitoringAdministrationData-basesStorage ServicesBack-End ServicesOther ServicesLoad BalancerComputing NodeComputing NodeComputing NodeCloud Architecture (2)Computing NodesHost and run your applicationsDifferent languages and frameworksE.g. C# + ASP.NET MVC or PHP + SymfonyStateless by designDatabases and StorageRelational and NoSQL databasesBlob storage, file storage, CDNOther ServicesQueues, notifications, logging, email,

10WindowsAzure

Windows AzureMicrosoft Windows AzureFast-growing public cloudProvides rich PaaS platformMainly for .NET developersSupports all major .NET technologiesASP.NET MVC, WCF, ADO.NET EF, WWF, Provides also Java, PHP and Node.js APIsNo free version, only 3 months trialBulgarian citizens cannot register!

12SQL AzureTablesBlobsAzure Architecture13Visual Studio + Azure ToolsWindows AzureManagement PortalAzure Load BalancerCompute (Worker role)Compute (VM role)Compute (Web role)VM running IIS7Windows VMWindows VMQueuesCDNOther Azure / external servicesC# / .NET code / Java codeCustom softwareASP.NET / PHP / otherWindows Azure ServicesWindows Azure ComputeComputing instances run Windows OSand applications (CPU + RAM + HDD)Web roleInternet Information Services (IIS) machine for hosting Web applicationsand WCF servicesWorker roleLong-running computationsVM roleWindows VM (non-persistent)

14Windows Azure Services (2)Azure data storage servicesAzure Table StorageDistributed highly-scalable clouddatabase (stores entities with properties)Azure Queue StorageMessage queue serviceAzure Blobs / DrivesBlob / file storageNTFS volumes

15

Windows Azure Services (3)SQL AzureSQL Server in the cloudHighly-available and scalable relational DBAzure Business AnalyticsCreate reports with tables, charts, maps, etc.Azure CachingDistributed, in-memory, application cacheAzure CDNContent delivery network

16

Azure PricingComputing NodesShared CPU, 768 MB RAM$0.02 / hour ($15 / month)1 Core, 1.75 GB RAM$0.12 / hour ($90 / month)Storage$0.125 / GB + $0.01 / 10000 operationsSQL Azure Database100 MB $0.0067 / hour ($5 / month)1 GB $0.0133 / hour ($10 / month)17

PricingWindows Azure

Live DemoGoogle AppEngine (GAE)

Google App EngineGoogle App Engine (GAE)Leading Java and Python PaaS public cloudInfrastructure similar to the one driving GMail and Google Docs operated by Googlehttp://code.google.com/appengine/App Engine has a completely free versionProvides CPU / bandwidth / storage capable to serve 5 000 000 page views / monthInstant registrationConfirmation by SMS20

DatastoreBlob storeApp Engine Architecture21Eclipse +Google Plugin for EclipseGoogle App Engine Management DashboardLoad Balancer (Google Front-End Server)BackendsApp Engine InstancesSandbox running JVM / Python interpreterSandbox running JVM / PythonOther App Engine / external services(Channel API, Memcache, Email, )Cloud SQLMapReduceTasks queueJava code / Java Web application / Python appJava codeApp Engine ServicesApp Engine instancesComputing units that host the applicationsFully managed sandboxes (not VMs!)Provide CPU + RAM + storage +language runtimeappengine.google.comApp Engine backendsLike the App Engine instancesBut provides higher computing resourcesUsed for background processing22

App Engine Services (2)App Engine datastoresProvide NoSQL schemaless object databaseSupports transacts and a query-engine (GQL)High-replication datastore (HRD)Master-slave datastore (faster, less-reliable)Cloud SQLManaged MySQL in App EngineBlobstore / Cloud StorageStore files / blobsHas with ACL and REST API23

App Engine Services (3)MapReduce APIHighly-scalable parallel computing API for heavy computing tasks (based on Hadoop)Channel APIPush notifications for JavaScript applicationsTask QueuesServices for execution of background workMemcacheDistributed in-memory data cache24App Engine PricingOn-demand Frontend instances1 instance free$0.08 / hour ($60 / month)High Replication Datastore (HRD)1 GB free$0.24 / GB / month ($0.00032 / GB / hour)Each API has free quota and price per usageBlobstore API: 5 GB free; $0.13 / GB / monthDatastore API: 50K free; $0.10 / 100kwrite operationsPricing

25Google AppEngine (GAE)

Live DemoAmazonWeb Services

Amazon Web ServicesAmazon Web Services (AWS)The pioneer of the public cloudsProvides cloud platform and services from 2002Provides IaaS and PaaS on demandAmazon Elastic Compute Cloud (Amazon EC2)Virtual machines on demandRuns Windows / Linux / other OSSeveral locations: US, EU, Japan, Brazil, http://aws.amazon.com/ec2/

28AWS Architecture29RDBS3AWS SDK for Java, C#, PHP, Python, , + VS/ Eclipse PluginsAWS Management ConsoleElastic Load Balancing (ELB)EC2 Instances + Storage (EBS)Any OS and development platformC# / Java / PHP / Python / Ruby / Other AWS / external services(ElastiCache, CloudFront CDN, SES, )DynamoDBSQSEBSSWFAny development framework (.NET / Java EE / Symfony / Zend / Django / Rails / Node.js)AWS ServicesAmazon Elastic Block Store (Amazon EBS)Virtual hard disk (HDD) volumesUsed with the EC2 to keep the OS file systemhttp://aws.amazon.com/ebs/Amazon Simple Storage Service (Amazon S3)Host binary data (files, images, videos, etc.)Accessible through the WebWith or without authenticationhttp://aws.amazon.com/s3/

30AWS Services (2)Amazon DynamoDB / SimpleDBManaged NoSQL cloud databaseHighly scalable, fault-tolerantDynamoDB newer & faster than SimpleDBhttp://aws.amazon.com/dynamodb/Amazon Relational Database Service (RDS)Managed MySQL and Oracle databasesScalability, automated backup, replicationhttp://aws.amazon.com/rds/

31AWS Services (3)Other AWS servicesAmazon SQS (message queue)Amazon CloudFront (content delivery network)Amazon ElastiCache (caching)Amazon Route 53 (cloud DNS)Amazon SES (email)PricingOn-demand pricing (per hour / per GB)1-year free trial (credit card required)

32

Amazon AWS PricingOn-Demand EC2 Instances1 Core, 1.7 GB RAM, Linux$0.08 / hour ($60 / month)1 Core, 1.7 GB RAM, Windows$0.115 / hour ($86 / month)Storage (EBS)$0.10 / GB + $0.10 per 1 million requestsOracle Database (1 Core, 1.7 GB RAM)DB instance: $0.155 / hour ($116 / month)DB storage: paid like EBS storagePricing

33AppHarbor

.NET Cloud Made EasyAppHarborAppHarbor cloud platform for .NET appsSupports a classical .NET development stackC#, .NET Framework, ASP.NET (Web Forms and MVC), WCF, WWF, ADO.NET Entity Framework, Deployment through Git / SVN / TFSAutomated build process(compilation + unit tests)Build-in load balancingBuilt on top of Amazon AWSRich set of add-on services35

AppHarbor Architecture36Managed SQL Server / MySQLMongoDB, CouchDBVisual Studio + GitAppHarbor Applications Management ConsoleLoad Balancer (Nginx)Background workersWeb worker instancesManaged IIS environmentC# / ASP.NET MVC / Web Forms / WCFManaged Windows environmentC# codeIronMQ, RabitMQOther AppHarbor Add-On ServicesAppHarbor: Add-OnsAirbrake (error logging)Blitz (performance monitoring)CloudAMQP (RabbitMQ)Cloudant (CouchDB)CloudMailin (incoming email)Dedicated SQL ServerJustOneDB (NoSLQ database)Logentries (log management)Mailgun (email send / receive)

37AppHarbor: 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)

38AppHarbor PricingAppHarbor free plan1 Web worker instance per applicationUnlimited applications20 MB SQL Server + 20 MB MySQLPaid plans$49 month per instance (Web worker or Background worker)10 GB Shared SQL Server DB $10 / month10 GB Shared MySQL DB $10 / monthCustom domain $10 / month

39

AppHarbor

Live DemoMore ResourcesFree Cloud Development CourseEach Wednesday, Telerik Software Academy

clouddevcourse.telerik.com

Cloud DevelopmentFree Training Course

C#Java

HTML 5

PHPPython

coding41

Questions?Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazonhttp://academy.telerik.com

PublicClouds