.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer.

Slides:



Advertisements
Similar presentations
Implementing Tableau Server in an Enterprise Environment
Advertisements

Web Hosting. The purpose of this Startup Guide is to familiarize you with Own Web Now's Web Hosting. Own Web Now offers two web hosting platforms, one.
Module 1: Introduction to SQL Server Reporting Services.
Week 6: Chapter 6 Agenda Automation of SQL Server tasks using: SQL Server Agent Scheduling Scripting Technologies.
Cloud: a New Paradigm for Developers Svetlin Nakov Telerik Software Academy academy.telerik.com.
Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy
POP Configuration Microsoft Outlook Express 6.x.
Offsite Backups. The purpose of this Startup Guide is to familiarize you with Own Web Now's Offsite Backup offering and show you how to purchase, deploy.
Platform as a Service (PaaS)
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
CONFIGURING WINDOWS SERVER MIS 424 Professor Sandvig.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
Partner Practice Enablement - Overview This session will focus on integration strategies for applications deployed using Microsoft Azure Websites and Microsoft.
Source Control Repositories for Team Collaboration: SVN, TFS, Git Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training.
OM. Brad Gall Senior Consultant
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Visual Studio 2012 or 2013 VisualStudio.com (or) Github (or) Bitbucket (or more) Azure Cross-Platform Command Tools Setup if you want to play too.
Public Cloud Platforms for.NET Developers Sofia, 4-5 October 2012 Svetlin Nakov | Telerik.
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.
Customized cloud platform for computing on your terms !
Back to content Final Presentation Mr. Phay Sok Thea, class “2B”, group 3, Networking Topic: Mail Client “Outlook Express” *At the end of the presentation.
Microsoft Azure Introduction ISYS 512. Microsoft Azure Microsoft Azure is a cloud.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Partner Practice Enablement - Overview This session will focus on integration strategies for applications deployed using Microsoft Azure Websites and Microsoft.
1 OPOL Training (OrderPro Online) Prepared by Christina Van Metre Independent Educational Consultant CTO, Business Development Team © Training Version.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
ASP.NET The Clock Project. The ASP.NET Clock Project The ASP.NET Clock Project is the topic of Chapter 23. By completing the clock project, you will learn.
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
A Brief Documentation.  Provides basic information about connection, server, and client.
1 The System Menu. 2 The System menu Dashboard Page displayed upon every login. It encompasses several boxes organised in two columns that provide a complete.
BIT 285: ( Web) Application Programming Lecture 15: Tuesday, February 24, 2015 Microsoft Azure Instructor: Craig Duckett.
.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer 1.
Intro to Datazen.
Multi-Tier Apps with Admin Access, RDP, Custom Installs Modern Scalable Web Sites Full Windows Server/Linux VMs Web Sites Virtual Machines Cloud Services.
Configuring and Deploying Web Applications Lesson 7.
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
1 BCS 4 th Semester. Step 1: Download SQL Server 2005 Express Edition Version Feature SQL Server 2005 Express Edition SP1 SQL Server 2005 Express Edition.
Windows Server 2003 { First Steps and Administration} Benedikt Riedel MCSE + Messaging
Version Control Systems
Platform as a Service (PaaS)
.NET Cloud Development Made Easy
Stress Free Deployments with Octopus Deploy
Deploying Web Application
Platform as a Service (PaaS)
Source Control Systems
Platform as a Service (PaaS)
Version Control overview
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.
Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek
Deploying and Configuring SSIS Packages
Version Control Systems
Bomgar Remote support software
Module 1: Getting Started
RR RR Problems Along With Solutions For iPhone And iPad Toll Free ( )
What Is Sharepoint? Mohsen Ashkboos
Google App Engine Danail Alexiev
Rock-solid Cloud Platform for PHP
Presentation transcript:

.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer

 What is AppHarbor?  “Control panel” overview  AppHarbor architecture  Deployment process  Runtime  Pricing  Prices  Resources 2

 Application deployment  Git crash-course  Sample application deployment  Configuration variables and Add-ons  Configuration variables  Shared SQL Server  Mailgun 3

.NET Platform as a Service

 Fully hosted.NET PaaS  Supports ASP.NET (Web Forms & MVC), WCF, WWF, ADO.NET Entity Framework, etc.  Runs on Amazon EC2  Automatic load balancing  Easy application deployment  Through Git  Through Bitbucket, CodePlex or GitHub 5

 Automatic build  Code compilation  Unit tests execution  Rich set of add-ons  Provide additional functionality for applications  Shared Microsoft SQL Server, Airbrake, MongoHQ, StillAlive, Mailgun, etc.  Forum, support and knowledgebase 6

A Quick Look over the “Application Dashboard”

Deployment process, Runtime environment

9 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

 Deployment process  User pushes (sends).NET code  Code is built by a platform build server  If code compiles, unit tests are run  Results appear on the application dashboard  Service hooks are called  Application deployed to the AppHarbor application servers.  AppHarbor scales application when needed 10

 Application runtime environment  Load balancing is automatic  SSL connections, HTML compression, etc. are handled  Everything runs on AWS and is managed by AppHarbor  Cloud resources are consumed through add-ons  More info:

Plans and Resources

 AppHarbor worker  Process which can have multiple threads  Limited in resources  2 workers always on different machines  Resource limit per worker ( )  Network Bandwidth: 100GB/month - Soft  RAM usage: 512MB - Soft; 1024MB - Hard  Nothing mentioned about processor time 13

 AppHarbor background worker  Still in Beta  Regular.NET console application .exe’s produced on compilation  Used for  Recurring tasks  Schedules  Etc. 14

 Canoe plan  0$ per month  1 worker  +1 background worker  apphb.com hostname  Piggyback SSL 15

 Catamaran plan  49$ per month  2 workers  +2 background workers  Custom hostnames  SNI SSL 16

 Yacht plan  199$ per month  4 workers  +4 background workers  Custom hostnames  IP-based SSL 17

Only What You Need to Know to Use AppHarbor

 Git  Source-control system  Can work with local and remote repositories  Git Bash – command line interface for Git  Free  Has Windows version (msysgit) it preview exe&can=3&q = it preview exe&can=3&q = 19

 Installation –  “next, next, next” does the trick  Options to select (they should be selected by default)  “Use Git Bash only”  “Checkout Windows-style, commit Unix-style endings”  Note: this concerns only beginners 20

 Using Git Bash  Standard command prompt with added features  Creating a local repository  git init  Preparing (adding/choosing) files for a commit  git add [filename] (“git add.” adds everything)  Committing to a local repository  git commit –m “[your message here]” 21

 Using Git Bash (2)  Git “remote”– name for a repository URL  Git “master” – the current local branch (think of it as “where you have committed”)  Creating a remote  git add remote [remote name] [remote url]  Pushing to a remote (sending to a remote repository)  git push [remote name] master 22

Live Demo

Deploying your Application to AppHarbor

 Getting your code to AppHarbor  Through Git  AppHarbor provides Repository URL  Use Git to push to that URL  Other source-control systems – commit to some integrated with AppHarbor repository  Through Bitbucket, Codeplex, GitHub  Have integration with AppHarbor  Can push code to AppHarbor’s repository 25

 AppHarbor “requirements”  Submit a.NET Solution with  All project files  All code files, libraries, etc.  All other resources  Solution must be a web application  If there is more than ONE solution file  AppHarbor compiles the one named “AppHarbor.sln” 26

 First deployment to AppHarbor with Git  Initialize a repository where your solution is  Add the relevant files to be committed  Commit to local repository  Create a remote to AppHarbor repository (get the URL from your application’s “dashboard”)  Push to the remote you created for AppHarbor  …and that’s everything! 27

 Next deployments to AppHarbor  Add the relevant files to be committed  Either all the files from before or only the ones you modified  Commit to local repository  Repository was created in the “First deployment”  Push to the remote for AppHarbor  We created this the first time too  Your application dashboard now has a history! 28

Live Demo

Customizing and Enriching Your Application

 Configuration variables  Key-value pairs  Local to an application  Used to change the behaviour of your application on AppHarbor  f.e. a variable telling your application if it is on AppHarbor or not  Added by user  Added by add-ons 31

 Adding a configuration variable in AppHarbor  Go to application dashboard >> Configuration variables >> Create new variable  Accessing configuration variables  In your application config file <appSettings> </appSettings> 32

Live Demo

 Add-ons  Allow you to consume cloud resources  Added from add-on catalogue  Each application has its independent add-ons  Each add-on has a “control page”  Usually in the form of “Go to [add-on name]”  Use configuration variables for interaction with your application 34

 Shared SQL Server  Provides a SQL Database  Gives you a server URI, username and password  Gives you a connection string  Configuration variable with alias  Free – 20 MB  10$/month – 10 GB 35

Live Demo

 Mailgun  Provides services  Analysis and statistics tools  SMTP, POP3, IMAP  Has a C# API  Gives you hostname, login, password  Through configuration variables  Free – 200 messages/day, temp storage  19$/month – messages/month, 20GB 37

Live Demo

 Airbrake (error logging)  Blitz (performance monitoring)  CloudAMQP (RabbitMQ)  Cloudant (CouchDB)  CloudMailin (incoming )  Dedicated SQL Server  JustOneDB (NoSLQ database)  Logentries (log management) 39

 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) 40

Questions?

1. Create an account in AppHarbor. See the “Support” and “Add-ons” sections of AppHarbor. 2. Create an ASP.NET application which prints the message “The quick brown fox jumps over the lazy dog”. Use GitBash to deploy that application in AppHarbor. Then change the message and deploy the application again. 3. Create an ASP.NET application with a single button and a text box. When the button is pressed, the application should print some text in the text box, indicating whether it is started locally or in AppHarbor. Use configuration variables. Use GitBash to deploy that application in AppHarbor.

4. Create an ASP.NET “Online Restaurant” application which displays a restaurant menu. Each item in the menu has a name, ingredients and a price. The menu should be visible to everyone. There should be administrators, which authenticate with a username and password and can add items to the menu. Deploy the application to AppHarbor 5. Edit the “Online Restaurant” application from exercise 4 so that it can be switched off from AppHarbor (i.e. display only a message, saying “The restaurant is on a holiday”). Hint: use configuration variables

6. Edit the “Online Restaurant” application, so that items from the menu can be ordered (purchased). When a user orders an item he should enter his name, address and address. After that, an which notifies the user he successfully made an order should be sent (the e- mail should mention the user’s order, name and address). The administrators should be able to download a text file with all of the information for all of the orders (item ordered, user name, address, ). 7. Provide a text file with the AppHarbor URLs of the applications from these exercises.