480 likes | 849 Vues
CS435/535: Internet-Scale Applications http://zoo.cs.yale.edu/classes/cs435/ 1/12/2009 Outline What are Internet-scale applications? Administration Outline What are Internet-scale applications? Internet-Scale: Large Network Number of Hosts on the Internet: Aug. 1981 213
E N D
CS435/535: Internet-Scale Applications http://zoo.cs.yale.edu/classes/cs435/ 1/12/2009
Outline • What are Internet-scale applications? • Administration
Outline • What are Internet-scale applications?
Number of Hosts on the Internet: Aug. 1981 213 Oct. 1984 1,024 Dec. 1987 28,174 Oct. 1990 313,000 Jul. 1993 1,776,000 Jul. 1996 19,540,000 Jul. 1999 56,218,000 Jul. 2004 285,139,000 Jul. 2005 353,284,000 Jul. 2007 489,774,000 Jul. 2008 570,937,000 Jul. 2009 681,064,000 Growth of the Internet in Terms of Number of Hosts CAIDA router level view
ISP Backbone ISP ISP Internet Physical Infrastructure Residential access • Cable • Fiber • DSL • Wireless • The Internet is a network of heterogeneous networks • Each individually administrated network is called an Autonomous System (AS) • Campus access, e.g., • Ethernet • Wireless
Abilene I2 Backbone http://weathermap.grnoc.iu.edu/abilene_jpg.html
Qwest Backbone Map http://www.qwest.com/largebusiness/enterprisesolutions/networkMaps/preloader.swf
ATT Global Backbone IP Network From http://www.business.att.com
AT&T USA Backbone Map From AT&T web site.
User Base of Large Internet Applications in U.S. (June 2009) Total U.S. - Home, Work and University Locations Unique Visitors (000) Unique Visitors Rank Property (000) ---- -------- -------- Total Internet : Total Audience 193,896 1 Google Sites 156,871 2 Yahoo! Sites 154,097 3 Microsoft Sites 127,454 4 AOL LLC 106,467 5 Fox Interactive Media 84,567 6 FACEBOOK.COM 77,031 7 Ask Network 73,041 8 eBay 71,020 9 Amazon Sites 63,178 10 Wikimedia Foundation Sites 60,692 11 Apple Inc. 56,554 12 Glam Media 54,223 13 Viacom Digital 51,575 14 Turner Network 50,841 15 CBS Interactive 50,341 16 craigslist, inc. 46,832 17 New York Times Digital 44,789 18 Weather Channel, The 41,751 19 Adobe Sites 38,120 20 Comcast Corporation 34,865 21 Verizon Communications Corporation 33,436 22 Wal-Mart 33,358 23 AT&T Interactive Network 31,582 24 Disney Online 31,362 25 Demand Media 28,938 26 Superpages.com Network 28,367 27 Expedia Inc 27,058 28 The Mozilla Organization 26,964 29 Target Corporation 26,284 30 WordPress 26,245 31 Answers.com Sites 26,163 32 Bank of America 25,479 33 Photobucket.com LLC 24,528 34 AT&T, Inc. 24,032 35 Gorilla Nation 24,022 36 United Online, Inc 22,828 37 Everyday Health 22,374 38 Break Media 22,334 39 CareerBuilder LLC 21,704 40 NBC Universal 21,202 41 ESPN 20,984 42 NetShelter Technology Media 20,635 43 iVillage.com: The Womens Network 20,594 44 Weatherbug Property 20,465 45 JPMorgan Chase Property 20,211 46 TWITTER.COM* 20,111 47 Real.com Network 19,918 48 EA Online 19,607 49 Gannett Sites 19,298 50 Time Warner -Excluding AOL 19,293 Source: comScore Media Metrix (http://ir.comscore.com/releasedetail.cfm?releaseid=398136)
How Much Data? 1 PB = 1000 TB 1EB = 1000 PB
How Much Data? • Wayback Machine has 2 PB + 20 TB/month (2006) • NOAA has ~1 PB climate data (2007) • Google processes 20 PB a day (2008) • Internet traffic 5-8 EB (Dec. 2008) • Size of World’s digital content 500 EB (May 2009) 640K ought to be enough for anybody. 1 PB = 1000 TB 1EB = 1000 PB http://en.wikipedia.org/wiki/Exabyte
Processing Examples • Crawling, indexing, searching, mining the Web • Ecommerce transactions • Software as service • …
Servers • Internet-scale problem? Throw more machines at it ! • From tiny end users (called P2P) • From giant data centers (called data center applications)
Large Data Centers • A trend: centralization of computing resources in large data centers • Necessary ingredients: fiber, juice, and space • What do Oregon, Iceland, and abandoned mines have in common? • Major design point: scale out, not scale up
Evolving Computing Models • Do it yourself (build your own data centers) • Utility computing • Why buy machines when you can rent cycles? • Examples: Amazon’s EC2, GoGrid, AppNexus • Platform as a Service (PaaS) • Give me nice API and take care of the implementation • Example: Google App Engine • Software as a Service (SaaS) • Just run it for me! • Example: Gmail; MS Exchange; MS Office Online
Web-based Applications • The Internet infrastructure has better support for HTTP than other protocols • A trend of software applications: • From the desktop to the browser • SaaS == Web-based applications • Examples: Google Maps/Doc, Facebook • How do we deliver highly-interactive Web-based applications? • AJAX (asynchronous JavaScript and XML) • For better, or for worse…
Programming Architecture Matters • Performance vs. software extensibility
Software Architecture Matters • It all boils down to… • Divide-and-conquer • Throwing more hardware at the problem as the problem grows bigger
Divide and Conquer “Work” Partition w1 w2 w3 “worker” “worker” “worker” r1 r2 r3 Combine “Result” It is simple to state, hard to master…
Different Workers • Where are the workers? • Different threads in the same core • Different cores in the same CPU • Different CPUs in a multi-processor system • Different machines in a distributed system • Many design issues • Which worker does what? • How do the workers communicate/coordinate? • What if some workers die or are separated from others?
Example Architecture:Three Tiered Architecture • Stateless frontend • Soft state middle tier containing application logic and common services • Backend persistent storage
Platform Matters “Developers who have worked at the small scale might be asking themselves why we need to bother with “platform design” when we could just use some kind of out-of the-box solution. For small-scale applications, this can be a great idea. We save time and money up front and get a working and serviceable application. The problem comes at larger scales—there are no off-the-shelf kits that will allow you to build something like Amazon or Friendster. While building similar functionality might be fairly trivial, making that functionality work for millions of products, millions of users, and without spending far too much on hardware requires us to build something highly customized and optimized for our exact needs. There’s a good reason why the largest applications on the Internet are all bespoke creations: no other approach can create massively scalable applications within a reasonable budget.” http://www.evontech.com/symbian/55.html
Outline • What are Internet-scale applications? • Course administration
Personnel • Instructor • Michael Fischer <fischer-michael@cs.yale.edu> • AKW 409 • Y. Richard Yang <yry@cs.yale.edu> • AKW 308A • office hours • TTh 4:00-5:00 or by appointment • Teaching assistant (grader) • Ye Wang
What are the Goals of this Course? • Learn design principles and techniques of: • Large-scale Internet applications; • Infrastructure supporting such applications • See how the principles and techniques apply and adapt in real world: • Real examples from DNS/Email/Web, Akamai, Amazon (dynamo, AWS), Google (Google cluster, GFS, BigTable, Chubby, AppEngine), Microsoft (Live Mesh, Azure), PPLive
What Will We Cover? • Background on Internet/DNS/Email/Web • Basic abstraction/design for high-performance client/server • multi-thread, async i/o, SEDA • adaptive applications (e.g., playout buffer) • Web service oriented architecture • Interactivity (ajax) • Server scaling • Load balancing (HTTP local/Akamai global example) • Cloud integration • Over-provisioning and capacity planning • Servent (end hosts contributed) design (P2P) • Application/network infrastructure integration and interface • Tiered architecture and middle layer design • Storage/state management (e.g., DDS, memcard, GFS, BigTable, dynamo, and PRS) [1.5 week] • Transaction/ • Higher level programming models • MapReduce/Hadoop • Dryad • Data center design • Debugging, deployment and diagnosis
References • We will use resources available from the Intrenet • Resources will be posted online • http://zoo.cs.yale.edu/classes/cs435
What Do You Need To Do? • Please return the class background survey at the end of the class • help us determine your background • help us determine the depth, topics, and assignments • suggest topics that you want to be covered (if you think of a topic later, please send us email) • Your workload • homework assignments • one exam • a project
Subject to change after we know more about your background More important is what you realize/learn than the grades !! Grading
Amazon Web Services • Elastic Compute Cloud (EC2) • Rent computing resources by the hour • Basic unit of accounting = instance-hour • Additional costs for bandwidth • Simple Storage Service (S3) • Persistent storage • Charge by the GB/month • Additional costs for bandwidth • Simple Queue Service (SQS) • Virtual Private Cloud (VPC) • You’ll be using Zoo/Amazon AWS for course assignments • Projects can use AppEngine/Azure or AWS!
This Course is not for you… • If you’re not genuinely interested in the topic • If you’re not open to thinking about computing in new ways • If you can’t cope with uncertainly, unpredictability, poor documentation, and immature software Otherwise, this could be an interesting learning experience.
Internet Application Zen • Don’t get frustrated (take a deep breath)… • Those W$*#T@F! moments • Be patient… • This is the second first time we are teaching this course • Be flexible… • There will be unanticipated issues along the way • Be constructive… • Tell us how we can make everyone’s experience better