INFO 344 Web Tools And Development

Slides:



Advertisements
Similar presentations
Introducing Amazon S3 and EC2 Justin Mason
Advertisements

University of Notre Dame
EHarmony in Cloud Subtitle Brian Ko. eHarmony Online subscription-based matchmaking service Available in United States, Canada, Australia and United Kingdom.
Chapter 4 Infrastructure as a Service (IaaS)
Take your CMS to the cloud to lighten the load Brett Pollak Campus Web Office UC San Diego.
OPNET Technologies, Inc. Performance versus Cost in a Cloud Computing Environment Yiping Ding OPNET Technologies, Inc. © 2009 OPNET Technologies, Inc.
1 NETE4631 Cloud deployment models and migration Lecture Notes #4.
Ken Birman. Massive data centers We’ve discussed the emergence of massive data centers associated with web applications and cloud computing Generally.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 4.
Joey Snow Technical Evanglist Microsoft Corporation SESSION CODE: WSV310.
Virtual Network Servers. What is a Server? 1. A software application that provides a specific one or more services to other computers  Example: Apache.
Cloud Don McGregor Research Associate MOVES Institute
11 SERVER CLUSTERING Chapter 6. Chapter 6: SERVER CLUSTERING2 OVERVIEW  List the types of server clusters.  Determine which type of cluster to use for.
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Distributed Systems Early Examples. Projects NOW – a Network Of Workstations University of California, Berkely Terminated about 1997 after demonstrating.
Day 10 Hardware Fault Tolerance RAID. High availability All servers should be on UPSs –2 Types Smart UPS –Serial cable connects from UPS to computer.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
Virtualization. Virtualization  In computing, virtualization is a broad term that refers to the abstraction of computer resources  It is "a technique.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 2.
Your First Azure Application Michael Stiefel Reliable Software, Inc.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Hadoop Hardware Infrastructure considerations ©2013 OpalSoft Big Data.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Cloud Computing Dave Elliman 11/10/2015G53ELC 1. Source: NY Times (6/14/2006) The datacenter is the computer!
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
COMP381 by M. Hamdi 1 Clusters: Networks of WS/PC.
Cloud Computing Lecture 5-6 Muhammad Ahmad Jan.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
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.
Cloud Computing Shannon McManus Michael Weihert. What is Cloud Computing?
Next Generation of Apache Hadoop MapReduce Owen
KAASHIV INFOTECH – A SOFTWARE CUM RESEARCH COMPANY IN ELECTRONICS, ELECTRICAL, CIVIL AND MECHANICAL AREAS
Unit 2 VIRTUALISATION. Unit 2 - Syllabus Basics of Virtualization Types of Virtualization Implementation Levels of Virtualization Virtualization Structures.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Clouding with Microsoft Azure
HPC In The Cloud Case Study: Proteomics Workflow
242: Get Your Head in the Cloud!
Platform as a Service (PaaS)
Security Group Amazon RDS Mysql Media Request S3
Platform as a Service (PaaS)
Adam Backman Chief Cat Wrangler – White Star Software
Secrets to Fast, Easy High Availability for SQL Server in AWS
Deploy, Manage, and Scale Your Apps with OpsWorks, Elastic Beanstalk, and CodeDeploy Part 1 – Elastic Beanstalk © 2017 Amazon Web Services, Inc. and.
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
Lecture 24 Virtual Machine Monitors
Welcome! Thank you for joining us. We’ll get started in a few minutes.
Swapping Segmented paging allows us to have non-contiguous allocations
”The Ball” Radical Cloud Resource Consolidation
Introduction to Networks
Software Engineering Introduction to Apache Hadoop Map Reduce
AWS. Introduction AWS launched in 2006 from the internal infrastructure that Amazon.com built to handle its online retail operations. AWS was one of the.
INFO 344 Web Tools And Development
The Business Case for Containerization
Managing Clouds with VMM
湖南大学-信息科学与工程学院-计算机与科学系
Outline Virtualization Cloud Computing Microsoft Azure Platform
Ch 4. The Evolution of Analytic Scalability
Moodle Scalability What is Scalability?
NAV In The Cloud: Exploring Options for a Cloud-based Deployment
AWS Cloud Computing Masaki.
Managing Services with VMM and App Controller
Gus Hunt Chief Technology Officer CIA
Setting up PostgreSQL for Production in AWS
Presentation transcript:

INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014

Reliability Very important! Not really talked about yet.

Build for Failure

Build for Failure Google pioneered this philosophy in late 90’s, Google’s Vision Assume hardware will fail often, therefore: Use cheap commodity hardware, and hence: Write software to be fault tolerant to hardware failures Cheap commodity = based on law of diminishing returns Ex: 1Ghz machine = 100 dollars, 2 Ghz machine = 300 dollars, 3 Ghz machine = 1000 dollars This changed the entire computing infrastructure landscape! Prior to Google, industry opted for specialized hardware/super computers for faster computing

Google File System Problem: Need more Disk Space Use cheap commodity hardware Instead of specialized storage Hook together 100’s of normal PCs! Write GFS on top Benefits Cheaper GB/$$ More bandwidth (I/O of 100 network cards vs. 1)

Google MapReduce Problem: Need more CPU power Use cheap commodity hardware Instead of super computers to do computing Hook together 100’s of normal PCs! Benefits Fault tolerant, not single point-of-failure (re-route jobs) Cheaper! New computing paradigm

Memcached Problem: Need more RAM Use cheap commodity hardware Benefits Instead of specialized RAM hardware Hook together 100’s of normal PCs! memcached! Map virtual memory to physical memory that is actually on multiple machines! Benefits Cheaper! GB/$$, higher bandwidth

Redundancy

Redundancy Duplicate important components Instead of 1 medium, consider 2x m1.small Might be better as well for bandwidth (most front-end web roles are I/O bound)

Redundancy Load Balancer is great for Scalability Lets try this on AWS! Create 2 micro Upload index.html Add to LB, setup HC Terminate 1 Load Balancer is great for Scalability But even more critical for Reliability!!! AWS LB – has a health monitor, auto removes dead EC2s from the LB and auto-adds them when they’re working!

Redundancy Theory Let the probability of each machine failing be P(f) Then the probability of your service (with N machines) failing is P(F) = P1(f) * P2 (f) * … PN (f) Machines usually have 99.9% up time, fail = 0.1%, N = 1, then P(F) = 0.1% N = 2, then P(F) = 0.0001% In practice => P1(f) and P2 (f) not quite independent… lol because if #1 fails, #2 gets more traffic, hence more likely to fail, but basic idea = still true!!

Availability Zones Amazon RDS has option for Multi-AZ Multiple Availability Zones Great for production (reliability by redundancy) AWS auto creates another machine in a different physical location (in case for data center failures) Auto-syncs! Much more expensive…

No downtime deployment

No downtime deployment Azure Production vs. Staging Environment Deploy to Staging, then Swap VIP with Production Let’s try it on Azure! Open VS, create cloud service with Web Role Publish on Azure (Production) Change Hello World to “Bye World” Change Publish settings to Staging, go! On Dashboard, swap VIP Best practice = always publish to Staging… never directly to production. Publish to Staging, run testing, then swap to production

No downtime deployment AWS, Similar to Azure Create new instance Test Add to LB Remove old instance from LB Seamless to end-user! Best experience

Rollback What if the new deployment sucks? AWS: Don’t delete the old instance, keep it alive, just remove from LB Azure: keep the instance running in Staging Maybe wait a week? If no issues, then delete them. If there are any issues => Rollback. Swap VIP again or add the old instance back to LB

Continuous deployment

Continuous deployment Water fall/non-agile deployment method Plan for 1 month Code for 6 months All teams integrate (1000 devs’ work) PROBLEM! Integration Issues! Huge! Solution? Integrate often. Agile method Continuous deployment => agile method to the extreme Deploy after each submission to GitHub! No big integration headache https://github.com/Strider-CD

Unit tests & test automation Software cycle Write code Deploy to Staging Run unit tests/automation Switch to Production https://circleci.com/ => I’ve used it! Great! Pulls your build from GitHub Runs in container, runs your tests in parallel Deploys to your servers!

Questions?