Muutke küpsiste eelistusi

E-raamat: Web Scalability for Startup Engineers

  • Formaat: 432 pages
  • Ilmumisaeg: 03-Jul-2015
  • Kirjastus: McGraw-Hill Professional
  • Keel: eng
  • ISBN-13: 9780071843669
Teised raamatud teemal:
  • Formaat - EPUB+DRM
  • Hind: 57,10 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 432 pages
  • Ilmumisaeg: 03-Jul-2015
  • Kirjastus: McGraw-Hill Professional
  • Keel: eng
  • ISBN-13: 9780071843669
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

This invaluable roadmap for startup engineers reveals how to successfully handle web application scalability challenges to meet increasing product and traffic demands.

Web Scalability for Startup Engineers shows engineers working at startups and small companies how to plan and implement a comprehensive scalability strategy. It presents broad and holistic view of infrastructure and architecture of a scalable web application. Successful startups often face the challenge of scalability, and the core concepts driving a scalable architecture are language and platform agnostic.

The book covers scalability of HTTP-based systems (websites, REST APIs, SaaS, and mobile application backends), starting with a high-level perspective before taking a deep dive into common challenges and issues. This approach builds a holistic view of the problem, helping you see the big picture, and then introduces different technologies and best practices for solving the problem at hand. The book is enriched with the author's real-world experience and expert advice, saving you precious time and effort by learning from others' mistakes and successes.

  • Language-agnostic approach addresses universally challenging concepts in Web development/scalability—does not require knowledge of a particular language
  • Fills the gap for engineers in startups and smaller companies who have limited means for getting to the next level in terms of accomplishing scalability
  • Strategies presented help to decrease time to market and increase the efficiency of web applications
Acknowledgments xv
Introduction xvii
Chapter 1 Core Concepts 1(36)
What Is Salability?
2(3)
Evolution from a Single Server to a Global Audience
5(17)
Single-Server Configuration
5(2)
Making the Server Stronger: Scaling Vertically
7(4)
Isolation of Services
11(2)
Content Delivery Network: Scalability for Static Content
13(3)
Distributing the Traffic: Horizontal Scalability
16(3)
Scalability for a Global Audience
19(3)
Overview of a Data Center Infrastructure
22(5)
The Front Line
22(2)
Web Application Layer
24(1)
Web Services Layer
24(1)
Additional Components
25(1)
Data Persistence Layer
25(1)
Data Center Infrastructure
26(1)
Overview of the Application Architecture
27(8)
Front End
28(2)
Web Services
30(4)
Supporting Technologies
34(1)
Summary
35(2)
Chapter 2 Principles of Good Software Design 37(46)
Simplicity
38(5)
Hide Complexity and Build Abstractions
38(2)
Avoid Overengineering
40(1)
Try Test-Driven Development
41(1)
Learn from Models of Simplicity in Software Design
42(1)
Loose Coupling
43(5)
Promoting Loose Coupling
44(3)
Avoiding Unnecessary Coupling
47(1)
Models of loose Coupling
47(1)
Don't Repeat Yourself (DRY)
48(3)
Copy and Paste Programming
50(1)
Coding to Contract
51(3)
Draw Diagrams
54(7)
Use Case Diagrams
57(2)
Class Diagrams
59(1)
Module Diagrams
60(1)
Single Responsibility
61(2)
Promoting Single Responsibility
62(1)
Examples of Single Responsibility
62(1)
Open-Closed Principle
63(2)
Dependency Injection
65(3)
Inversion of Control (IOC)
68(3)
Designing for Scale
71(6)
Adding More Clones
72(2)
Functional Partitioning
74(1)
Data Partitioning
75(2)
Design for Self-Healing
77(4)
Summary
81(2)
Chapter 3 Building the Front-End Layer 83(40)
Managing State
85(16)
Managing HTTP Sessions
88(5)
Managing Files
93(4)
Managing Other Types of State
97(4)
Components of the Scalable Front End
101(16)
DNS
102(1)
Load Balancers
103(8)
Web Servers
111(2)
Caching
113(1)
Auto-Scaling
114(3)
Deployment Examples
117(4)
AWS Scenario
117(2)
Private Data Center
119(2)
Summary
121(2)
Chapter 4 Web Services 123(32)
Designing Web Services
124(7)
Web Services as an Alternative Presentation Layer
124(3)
API-First Approach
127(3)
Pragmatic Approach
130(1)
Types of Web Services
131(7)
Function-Centric Services
131(3)
Resource-Centric Services
134(4)
Scaling REST Web Services
138(15)
Keeping Service Machines Stateless
139(7)
Caching Service Responses
146(4)
Functional Partitioning
150(3)
Summary
153(2)
Chapter 5 Data Layer 155(52)
Scaling with MySQL
156(33)
Replication
156(14)
Data Partitioning (Sharding)
170(19)
Scaling with NoSQL
189(15)
The Rise of Eventual Consistency
192(5)
Faster Recovery to Increase Availability
197(2)
Cassandra Topology
199(5)
Summary
204(3)
Chapter 6 Caching 207(38)
Cache Hit Ratio
208(2)
Caching Based on HTTP
210(17)
HTTP Caching Headers
211(6)
Types of HTTP Cache Technologies
217(6)
Scaling HTTP Caches
223(4)
Caching Application Objects
227(12)
Common Types of Object Caches
228(6)
Scaling Object Caches
234(5)
Caching Rules of Thumb
239(5)
Cache High Up the Call Stack
239(1)
Reuse Cache Among Users
240(2)
Where to Start Caching?
242(1)
Cache Invalidation Is Difficult
243(1)
Summary
244(1)
Chapter 7 Asynchronous Processing 245(58)
Core Concepts
246(10)
Synchronous Example
247(2)
Asynchronous Example
249(5)
Shopping Analogy
254(2)
Message Queues
256(14)
Message Producers
258(1)
Message Broker
259(1)
Message Consumers
260(5)
Messaging Protocols
265(1)
Messaging Infrastructure
266(4)
Benefits of Message Queues
270(6)
Enabling Asynchronous Processing
270(2)
Easier Scalability
272(1)
Evening Out Traffic Spikes
273(1)
Isolating Failures and Self-Healing
274(1)
Decoupling
275(1)
Message Queue-Related Challenges
276(6)
No Message Ordering
276(4)
Message Requeueing
280(1)
Race Conditions Become More Likely
281(1)
Risk of Increased Complexity
282(1)
Message Queue-Related Anti-Patterns
282(2)
Treating the Message Queue as a TCP Socket
282(1)
Treating Message Queue as a Database
283(1)
Coupling Message Producers with Consumers
283(1)
Lack of Poison Message Handling
284(1)
Quick Comparison of Selected Messaging Platforms
284(11)
Amazon Simple Queue Service
285(3)
RabbitMQ
288(3)
ActiveMQ
291(1)
Final Comparison Notes
292(3)
Introduction to Event-Driven Architecture
295(6)
Request/Response Interaction
296(1)
Direct Worker Queue Interaction
296(1)
Event-Based Interaction
297(4)
Summary
301(2)
Chapter 8 Searching for Data 303(28)
Introduction to Indexing
304(9)
Modeling Data
313(13)
NoSQL Data Modeling
313(5)
Wide Column Storage Example
318(8)
Search Engines
326(4)
Introduction to Search Engines
326(2)
Using a Dedicated Search Engine
328(2)
Summary
330(1)
Chapter 9 Other Dimensions of Scalability 331(32)
Scaling Productivity through Automation
332(15)
Testing
333(2)
Build and Deployment
335(5)
Monitoring and Alerting
340(5)
Log Aggregation
345(2)
Scaling Yourself
347(10)
Overtime Is Not a Way to Scale
347(2)
Managing Yourself
349(8)
Scaling Agile Teams
357(4)
Adding More People
357(2)
Procedures and Innovation
359(1)
Culture of Alignment
360(1)
Summary
361(2)
Appendix References 363(16)
Books
364(2)
White Papers
366(7)
Talks
373(1)
Links
374(5)
Index 379
Artur Ejsmont (Sydney, Australia) is a passionate software engineer and agile leader, currently working for Yahoo! in Sydney. Artur has been working with web applications for over 10 years with a lot of focus on agile, startup-like environments; he loves the Lean Startup model. Artur has worked on websites serving 1M+ pages per hour, both in Europe and Australia. He has also served as a university lecturer and is passionate about sharing his knowledge with others. Artur actively contributes to the tech community as a technical writer, blogger, and public speaker.