Www.devreach.com Public Cloud Platforms for.NET Developers Sofia, 4-5 October 2012 Svetlin Nakov | Telerik.

Slides:



Advertisements
Similar presentations
Cloud Computing Development. Shallow Introduction.
Advertisements

Ivan Pleština Amazon Simple Storage Service (S3) Amazon Elastic Block Storage (EBS) Amazon Elastic Compute Cloud (EC2)
Queues, Notifications, , CDN, Logging, Caching, Background Tasks, MapReduce, … Svetlin Nakov Telerik Software Academy academy.telerik.com.
1 NETE4631 Cloud deployment models and migration Lecture Notes #4.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Overview Of Microsoft New Technology ENTER. Processing....
2009 Software as a service Platform as a service Infrastructure as a service Service platform Cloud platform Cloud computing Grid computing Private.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
B UILDING M ULTI - TIER W EB A PPLICATIONS IN V IRTUAL E NVIRONMENTS.
Cloud: a New Paradigm for Developers Svetlin Nakov Telerik Software Academy academy.telerik.com.
Engineering the Cloud Andrew McCombs March 10th, 2011.
Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy
Public Clouds Overview
Concepts Telerik Software Academy HTML5.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
.NET, Visual Studio, TFS + Git | Java, NodeJS, PHP, Python, Ruby, C++ Data SQL Databases NoSQL Tables Blob Storage HDInsight Window s Azure IaaS +
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Eric Nelson Developer Evangelist Microsoft UK | Lap around.
Cloud: a "New" Paradigm for Developers Telerik Software Academy Web Services and Cloud.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
Cloud Operating System Unit 11 Sever Technology II M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Microsoft Azure Virtual Machines. Networking Compute Storage Virtual Machine Operating System Applications Data & Access Runtime Provision & Manage.
Cloud Technologies and Cloud Platforms Cloud Concepts, IaaS, PaaS, SaaS, Public Cloud Platforms SoftUni Team Technical Trainers Software University
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
Windows Azure: Microsoft’s Cloud Platform By Shahed Chowdhuri.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Introduction to Windows Azure BUGAEV ROMAN. Azure Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Microsoft Azure SoftUni Team Technical Trainers Software University
How AWS Pricing Works Jinesh Varia Technology Evangelist.
Lugano Microsoft Azure Overview Ken Casada Technical Evangelist Microsoft Switzerland
Concepts Telerik Software Academy Telerik School Academy.
.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer 1.
Node.js & Windows Azure AZR326  JavaScript on the Server!  Event driven I/O server-side JavaScript  Not thread based, each connection uses only a.
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
Enterprise Cloud Computing
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
CLOUD WITH AMAZON. Amazon Web Services AWS is a collection of remote computing services Elastic Compute Cloud (EC2) provides scalable virtual private.
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
Multi-Tier Apps with Admin Access, RDP, Custom Installs Modern Scalable Web Sites Full Windows Server/Linux VMs Web Sites Virtual Machines Cloud Services.
Cloud services Amazon Web Service (AWS) Intro and usage.
Web Technologies Lecture 13 Introduction to cloud computing.
Azure in a Day Training: Windows Azure Module 1: Windows Azure Overview Module 2: Development Environment / Portal – DEMO: Signing up for Windows Azure.
Information Systems in Organizations 5.2 Cloud Computing.
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
AWS Simple Icons v AWS Simple Icons: Usage Guidelines
.NET Cloud Development Made Easy
Deploying Web Application
Cloud Data platform (Cloud Application Development & Deployment)
Platform as a Service.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Andrew McCombs March 10th, 2011
Windows Azure Migrating SQL Server Workloads
Web Technologies Basics
A Lecture for A4M39WA2 Ing. Tomáš Vondra
PaaS - Development Stefan Geiger Gerry
Introduction to Cloud Computing
Google App Engine Danail Alexiev
Outline Virtualization Cloud Computing Microsoft Azure Platform
Saranya Sriram Developer Evangelist | Microsoft
Rock-solid Cloud Platform for PHP
Presentation transcript:

Public Cloud Platforms for.NET Developers Sofia, 4-5 October 2012 Svetlin Nakov | Telerik

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

Overview, IaaS, SaaS, PaaS Public Cloud Platforms

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

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)

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, …

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 … MonitoringAdministration Data- bases Storage Services Back-End Services Other Services Load Balancer Computing Node

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, , …

Develop and Run.NET Apps in the Cloud Public.NET Clouds

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?

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

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, …

Hosting.NET Projects in Azure Windows Azure

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

SQL Azure TablesBlobs Windows Azure – Architecture Visual Studio + Azure Tools Windows Azure Management Portal Windows Azure Management Portal Compute (Worker role) Compute (VM role) Compute (Web role) VM running IIS7 Windows VM QueuesCDN Other Azure / external services C# /.NET code / Java code Custom software ASP.NET / PHP / other Azure Load Balancer

Windows Azure Services  Windows Azure Compute  Computing instances run Windows OS and 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

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

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 / operations  SQL Database (not real SQL Server!)  100 MB – $ / hour ($5 / month)  1 GB – $ / hour ($10 / month)

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

Hosting.NET Projects in AWS Beanstalk.NET Amazon Web Services (AWS)

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 EC 2 )  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!

AWS Architecture RDBS3 AWS SDK for Java, C#, PHP, Python + VS / Eclipse Plugins AWS Management Console AWS Management Console EC2 Instances + Storage (EBS) Any OS and development platform C# / Java / PHP / Python / Ruby / … Other AWS / external services (ElastiCache, CloudFront CDN, SES, …) DynamoDBSQSEBSSWF Any development framework (.NET / Java EE / Symfony / Zend / Django / Rails / Node.js) Elastic Load Balancing (ELB)

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

AWS Services (2)  Other AWS services  Amazon SQS (message queue)  Amazon CloudFront (CDN)  Amazon ElastiCache (caching)  Amazon Route 53 (cloud DNS)  Amazon SES ( )  Amazon FPS (payments)  More services at the AWS Marketplace  MongoDB, Redis, LAMP, Business Objects,...

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

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)

Hosting.NET Projects in AppHarbor AppHarbor

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

AppHarbor Architecture Managed SQL Server / MySQL MongoDB, CouchDB Visual Studio + Git AppHarbor Applications Management Console AppHarbor Applications Management Console 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

AppHarbor: Add-Ons  Airbrake (error logging)  Blitz (performance monitoring)  CloudAMQP (RabbitMQ)  Cloudant (CouchDB)  CloudMailin (incoming )  Dedicated SQL Server  JustOneDB (NoSQL database)  Logentries (log management)  Mailgun ( send / receive)

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 ( delivery)  StillAlive (app monitoring)  Shared SQL Server (managed instance)

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

ASP.NET MVC Project Deployment AppHarbor: Live Demo

Hosting.NET Projects in Uhuru Uhuru AppCloud

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

Uhuru AppCloud Architecture Managed SQL Server / MySQL MongoDB UhuruCloud.com Web Interface Uhuru Cloud Manager Uhuru Cloud Manager Load Balancer (Nginx on Ubuntu Linux) Linux / Windows App Servers Managed IIS environment C# / ASP.NET MVC / Web Forms / WCF Managed Apache / Tomcat environment Apache + PHP / Ruby / Node.js / Tomcat + Java RabitMQ Other Uhuru Add-On Services

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)

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

ASP.NET MVC Project Deployment Uhuru: Live Demo

Other.NET Clouds  Apprenda 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 AppFog .NET support still unavailable (as of 09/2012)  Heroku Heroku  Claim to support Mono apps on a Linux cloud  Moncai Moncai .NET (Mono) cloud – not very active project

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

Thank nakov.com bg.linkedin.com/in/nakov Svetlin Nakov | Telerik Public Cloud Platforms for.NET Developers

Free Telerik Academy  “Cloud Development" Telerik Software Academy  clouddevcourse.telerik.com clouddevcourse.telerik.com  Telerik Software Academy  academy.telerik.com academy.telerik.com  Telerik Facebook  facebook.com/TelerikAcademy facebook.com/TelerikAcademy  Telerik Software Academy Forums  forums.academy.telerik.com forums.academy.telerik.com