ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب The Tao of Microservices

دانلود کتاب تائو خدمات میکرو

The Tao of Microservices

مشخصات کتاب

The Tao of Microservices

ویرایش: [1 ed.] 
نویسندگان:   
سری:  
ISBN (شابک) : 1617293148, 9781617293146 
ناشر: Manning Publications 
سال نشر: 2017 
تعداد صفحات: 328
[332] 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 9 Mb 

قیمت کتاب (تومان) : 40,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 9


در صورت تبدیل فایل کتاب The Tao of Microservices به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب تائو خدمات میکرو نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب تائو خدمات میکرو

Tao of Microservices شما را در مسیر درک نحوه اعمال معماری میکروسرویس در پروژه های دنیای واقعی خود راهنمایی می کند. این کتاب سطح بالا یک دیدگاه مفهومی از طراحی میکروسرویس به همراه مفاهیم اصلی و کاربرد آنها ارائه می دهد. درباره فناوری یک برنامه کاربردی، حتی پیچیده، می تواند به عنوان سیستمی از اجزای مستقل طراحی شود که هر یک مسئولیت واحد را بر عهده دارند. ساخت و نگهداری میکروسرویس‌های فردی برای تیم‌های کوچک بدون دانش گسترده از طراحی کل سیستم آسان است. برنامه های میکروسرویس بر الگوهای مدرنی مانند ارتباطات ناهمزمان و مبتنی بر پیام متکی هستند و می توان آنها را برای کارکرد خوب در محیط های ابری و کانتینر محور بهینه کرد. درباره کتاب Tao of Microservices شما را در مسیر درک و ساخت میکروسرویس ها راهنمایی می کند. این کتاب بر اساس تجربه ارزشمند ریچارد راجر، گورو میکروسرویس، تفکر پشت طرح های میکروسرویس را به نمایش می گذارد. با یادگیری استفاده از معماری میکروسرویس ها در پروژه های دنیای واقعی، به مفاهیم فردی مانند پیام رسانی ناهمزمان، API های سرویس و کپسوله سازی تسلط خواهید داشت. در طول مسیر، شما عمیقاً به مطالعات موردی دقیق با کد منبع و مستندات خواهید پرداخت و بهترین روش‌ها را برای توسعه تیم، برنامه‌ریزی برای تغییر و انتخاب ابزار بررسی خواهید کرد. چه چیزی در داخل است • اصول معماری میکروسرویس • تجزیه مطالعات موردی در دنیای واقعی • پیاده سازی سیستم های در مقیاس بزرگ • چه زمانی از میکروسرویس ها استفاده نکنید درباره خواننده این کتاب برای توسعه دهندگان و معماران است. نمونه ها از جاوا اسکریپت و Node.js استفاده می کنند. درباره نویسنده ریچارد راجر، مدیرعامل voxgig، یک شبکه اجتماعی برای صنعت رویدادها، تجربه چندین ساله در ساخت سیستم‌های مبتنی بر میکروسرویس برای شرکت‌های بزرگ جهانی دارد.


توضیحاتی درمورد کتاب به خارجی

The Tao of Microservices guides you on the path to understanding how to apply microservice architectures to your own real-world projects. This high-level book offers a conceptual view of microservice design, along with core concepts and their application. About the Technology An application, even a complex one, can be designed as a system of independent components, each of which handles a single responsibility. Individual microservices are easy for small teams without extensive knowledge of the entire system design to build and maintain. Microservice applications rely on modern patterns like asynchronous, message-based communication, and they can be optimized to work well in cloud and container-centric environments. About the Book The Tao of Microservices guides you on the path to understanding and building microservices. Based on the invaluable experience of microservices guru Richard Rodger, this book exposes the thinking behind microservice designs. You'll master individual concepts like asynchronous messaging, service APIs, and encapsulation as you learn to apply microservices architecture to real-world projects. Along the way, you'll dig deep into detailed case studies with source code and documentation and explore best practices for team development, planning for change, and tool choice. What's Inside • Principles of the microservice architecture • Breaking down real-world case studies • Implementing large-scale systems • When not to use microservices About the Reader This book is for developers and architects. Examples use JavaScript and Node.js. About the Author Richard Rodger, CEO of voxgig, a social network for the events industry, has many years of experience building microservice-based systems for major global companies.



فهرست مطالب

The Tao of Microservices
	Book Description
The Tao of Microservices
	Richard Rodger
	Copyright
	Dedication
	Brief Table of Contents
	Table of Contents
	Preface
	Acknowledgments
	About this Book
		Who should read this book
		Roadmap
		About the code
		Other online resources
	About the Author
	About the Cover Illustration
	Part 1. Building microservices
	Chapter 1. Brave new world
		1.1. The technical debt crisis
		1.2. Case study: A microblogging startup
			1.2.1. Iteration 0: Posting entries
				Listing 1.1. Posting an entry
				Listing 1.2. Listing entries for the user alice
				Table 1.1. Business activities and their associated message flows
				Table 1.2. Messages that each microservice sends and receives
				Figure 1.1. Iteration 0: Messages and services that support posting and listing entries
			1.2.2. Iteration 1: A search index
				Table 1.3. Messages that each microservice sends and receives
				Figure 1.2. Iteration 1: Adding messages and services that support searching entries
				Table 1.4. A sequence of small deployment steps
			1.2.3. Iteration 2: Simple composition
				Table 1.5. Modifications to the behavior of entry-store over time
				Figure 1.3. Iteration 2: An entry store cache implemented by message capture
			1.2.4. Iteration 3: Timelines
				Figure 1.4. Iteration 3: Adding social timelines
			1.2.5. Iteration 4: Scaling
				Figure 1.5. Iteration 3: Scaling by sharding at the message level
		1.3. How the monolith betrays the promise of components
		1.4. The microservice idea
			1.4.1. The core technical principles
				Transport independence
				Figure 1.6. The underlying infrastructure that moves messages shouldn’t be known to microservices.
				Pattern matching
				Figure 1.7. Introducing support for new user profiles
				Additivity
				Figure 1.8. Additivity allows a system to change in discrete, observable steps.
		1.5. Practical implications
			1.5.1. Specification
			1.5.2. Deployment
			1.5.3. Security
			1.5.4. People
		1.6. What you get for your money
		1.7. Summary
	Chapter 2. Services
		2.1. Defining microservices
		2.2. Case study: The digital edition of a newspaper
			2.2.1. The business goals
			2.2.2. The informal requirements
			2.2.3. A functional breakdown
				Figure 2.1. A possible component architecture for the newspaper system
		2.3. Microservice architectures
			2.3.1. The mini web servers architecture
		2.4. Diagrams for microservices
			Figure 2.2. Building the article page
		2.5. The microservice dependency tree
			Figure 2.3. Building the full article page
			Figure 2.4. Letting other services know that an article has been read
			2.5.1. The asynchronous message architecture
				Figure 2.5. The scatter/gather pattern
		2.6. Monolithic projects vs. microservice projects
			2.6.1. How microservices change project management
			2.6.2. Uniformity makes estimation easier
			2.6.3. Disposable code makes for friendlier teams
			2.6.4. Homogeneous components allow for heterogeneous configuration
			2.6.5. There are different types of code
		2.7. The unit of software
		2.8. Requirements to messages to services
			Table 2.1. Mapping requirements to messages
			Table 2.2. article-page
			Table 2.3. article-list-page
			Table 2.4. article
			Table 2.5. cache
			Table 2.6. api-gateway
			Table 2.7. user
			Table 2.8. adverts
			Table 2.9. target-content
		2.9. Microservice architecture diagrams
			Figure 2.6. The full newspaper system
			Note
			Figure 2.7. Service and network element deployment characteristics
			2.9.1. Diagramming message flows
				Figure 2.8. Message interactions
		2.10. Microservices are software components
			2.10.1. Encapsulated
			2.10.2. Reusable
			2.10.3. Well-defined interfaces
			2.10.4. Composable
			2.10.5. Microservices in practice as components
				Figure 2.9. Extending the article service without modification
				Figure 2.10. Introduction of new functionality into the live system
		2.11. The internal structure of a microservice
		2.12. Summary
	Chapter 3. Messages
		3.1. Messages are first-class citizens
			Table 3.1. Messages representing activities
			Figure 3.1. Conceptual levels of system design
			3.1.1. Synchronous and asynchronous
			3.1.2. When to go synchronous
			3.1.3. When to go asynchronous
			3.1.4. Thinking distributed from day one
			3.1.5. Tactics to limit failure
		3.2. Case study: Sales tax rules
			3.2.1. The wider context
		3.3. Pattern matching
			3.3.1. Sales tax: starting simple
			3.3.2. Sales tax: handling categories
				Table 3.2. Pattern to service mapping
			3.3.3. Sales tax: going global
			3.3.4. Business requirements change, by definition
			3.3.5. Pattern matching lowers the cost of refactoring
		3.4. Transport independence
			3.4.1. A useful fiction: the omnipotent observer
		3.5. Message patterns
			3.5.1. Core patterns: one message/two services
				1/2: Request/response
				Figure 3.2. Request/response pattern: the calculation of sales tax, where microservice A is the shopping-cart service, microservice B is the sales-tax service, and the message is calculate-sales-tax. The shopping-cart service expects an immediate answ...
				1/2: Sidewinder
				Figure 3.3. Sidewinder pattern: in the e-commerce system, the shopping-cart service may send a checkout message to the delivery service. A recommendation service can observe the checkout messages to understand the purchasing behavior of customers and ...
				1/2: Winner-take-all
				Figure 3.4. Winner-take-all pattern: in the e-commerce system, you can configure the delivery service to work in this mode. For redundancy and fault tolerance, you run multiple instances of the delivery service. It’s important that the physical goods ...
				1/2: Fire-and-forget
				Figure 3.5. Fire-and-forget pattern: the general form of this interaction involves a set of different microservices observing an emitted message. The shopping-cart service emits a checkout message, and various other services react to it: delivery, che...
			3.5.2. Core patterns: two messages/two services
				2/2: Request/react
				Figure 3.6. Request/react pattern
				2/2: Batch progress reporter
				Figure 3.7. Batch progress reporter
			3.5.3. Core patterns: one message/n services
				1/n: Orchestra
				Figure 3.8. Orchestra
				1/n: Scatter/gather
				Figure 3.9. Scatter/gather
				1/n: Multiversion deployment
				Figure 3.10. Multiversion deployment
				1/n: Multi-implementation deployment
				Figure 3.11. Multi-implementation deployment
			3.5.4. Core patterns: m messages/n services
			3.5.5. m/n: chain
				Figure 3.12. Chain
			3.5.6. m/n: Tree
				Figure 3.13. Tree
			3.5.7. Scaling messages
				Lowering latency
				Increasing throughput
		3.6. When messages go bad
			3.6.1. The common failure scenarios, and what to do about them
				Note
			3.6.2. Failures dominating the request/response interaction
				Slow downstream
				Upstream overload
			3.6.3. Failures dominating the sidewinder interaction
				Lost actions
			3.6.4. Failures dominating the winner-take-all interaction
				Poison messages
				Guaranteed delivery
			3.6.5. Failures dominating the fire-and-forget interaction
				Emergent behavior
				Catastrophic collapse
		3.7. Summary
	Chapter 4. Data
		4.1. Data doesn’t mean what you think it means
			4.1.1. Data is heterogeneous, not homogeneous
				Figure 4.1. Using different databases for different microservices
			4.1.2. Data can be private
			4.1.3. Data can be local
				Figure 4.2. Local user profile data stored only on shard instances
			4.1.4. Data can be disposable
			4.1.5. Data doesn’t have to be accurate
		4.2. Data strategies for microservices
			4.2.1. Using messages to expose data
			4.2.2. Using composition to manipulate data
				Figure 4.3. Interaction between the article-page and article services
				Figure 4.4. Composing the article-page and article services together
				Figure 4.5. CRUD message flow compared to CQRS message flow
				Figure 4.6. Direct synchronous interaction with the search-engine service
				Figure 4.7. Reactive asynchronous interaction with the search-engine service
			4.2.3. Using the system configuration to control data
				Figure 4.8. Eventually consistent data interactions
				Figure 4.9. Immediately consistent data interactions
				Figure 4.10. Deployment sequence to replace a shard
				Figure 4.11. Deployment sequence to split a shard
			4.2.4. Using weaker constraints to distribute data
		4.3. Rethinking traditional data patterns
			4.3.1. Primary keys
			4.3.2. Foreign keys
			4.3.3. Transactions
				Figure 4.12. Operations performed to allow a user to read an article
				Table 4.1. Timeline showing data inconsistency
				Table 4.2. Timeline with transactions
				Table 4.3. Timeline with reservations
				Figure 4.13. Trade-offs when choosing conflict resolution strategies
			4.3.4. Transactions aren’t as good as you think they are
			4.3.5. Schemas draw down technical debt
		4.4. A practical decision guide for microservice data
			4.4.1. Greenfield
				Initial development
				Production phase
			4.4.2. Legacy
				Initial development
				Production phase
		4.5. Summary
	Chapter 5. Deployment
		5.1. Things fall apart
		5.2. Learning from history
			5.2.1. Three Mile Island
				Figure 5.1. High-level components of a nuclear reactor
				Figure 5.2. A small subset of interactions between high and low levels in the reactor
				The timeline of the accident
				Learning from the accident
			5.2.2. A model for failure in software systems
				Figure 5.3. A single-component system, where P0 is the failure rate of component C0
				A two-component system
				Figure 5.4. A two-component system, where Pi is the failure rate of component Ci
				Multiple components
				Figure 5.5. Probability of system failure against the number of components, where all components are 99% reliable
				Figure 5.6. A nonlinear four-component system
			5.2.3. Redundancy doesn’t do what you think it does
			5.2.4. Change is scary
				Figure 5.7. A skewed estimator of failure probability
				Figure 5.8. Estimated reliability of the system when four components change simultaneously
		5.3. The centre cannot hold
			Warning
			5.3.1. The cost of perfect software
		5.4. Anarchy works
		5.5. Microservices and redundancy
		5.6. Continuous delivery
			5.6.1. Pipeline
			5.6.2. Process
			5.6.3. Protection
		5.7. Running a microservice system
			5.7.1. Immutability
				Figure 5.9. Microservice diagram key
				Rollback pattern
				Figure 5.10. Rollback pattern sequence
				Homeostasis pattern
				Figure 5.11. Homeostasis pattern sequence
				History pattern
				Figure 5.12. History pattern sequence
			5.7.2. Automation
				Canary pattern
				Figure 5.13. Canary pattern sequence
				Progressive Canary pattern
				Figure 5.14. Progressive Canary pattern sequence
				Bake pattern
				Figure 5.15. Bake pattern sequence
				Merge pattern
				Figure 5.16. Merge pattern sequence
				Split pattern
				Figure 5.17. Split pattern sequence
			5.7.3. Resilience
				Slow downstream
				Upstream overload
				Lost actions
				Poison messages
				Guaranteed delivery
				Emergent behavior
				Catastrophic collapse
				Apoptosis pattern
				Figure 5.18. Apoptosis pattern sequence
				Mitosis pattern
				Figure 5.19. Mitosis pattern sequence
				Kill Switch pattern
				Figure 5.20. Kill Switch pattern sequence
			5.7.4. Validation
				Version Update pattern
				Figure 5.21. Version Update pattern sequence
				Chaos pattern
			5.7.5. Discovery
				Table 5.1. Service-discovery methods
			5.7.6. Configuration
			5.7.7. Security
			5.7.8. Staging
			5.7.9. Development
		5.8. Summary
	Part 2. Running microservices
	Chapter 6. Measurement
		6.1. The limits of traditional monitoring
			6.1.1. Classical configurations
				Figure 6.1. Classical response-time charts
			6.1.2. The problem with averages
				Figure 6.2. Histogram chart showing response times
				Figure 6.3. Histogram chart showing response times, with caching causing two peaks
			6.1.3. Using percentiles
				Figure 6.4. Histogram chart (no cache) showing response times, with 90th percentile
				Figure 6.5. Histogram chart (with cache) showing response times, with 90th percentile
				Figure 6.6. Time series chart of average and 90th percentile response times
			6.1.4. Microservice configurations
			6.1.5. The power of scatterplots
				Figure 6.7. Scatterplot of weight (in kilograms) versus height (in centimeters)
				Figure 6.8. Current-behavior scatterplot of microservice response times
			6.1.6. Building a dashboard
		6.2. Measurements for microservices
			6.2.1. The business layer
			6.2.2. The message layer
				Universal measurements
				Measuring synchronous and consumed messages
				Note
				Table 6.1. Outbound message measures
				Figure 6.9. Synchronous message outbound send and response counts
				Figure 6.10. Outbound response failure counts over time
				Figure 6.11. Current response-time behavior by message family
				Table 6.2. Inbound message measures
				Figure 6.12. Different message transports have different delivery speeds.
				Measuring synchronous and observed messages
				Table 6.3. Inbound message measures
				Measuring asynchronous and observed messages
				Table 6.4. Outbound message measures
				Table 6.5. Inbound message measures
				Measuring asynchronous and consumed messages
			6.2.3. The service layer
				Where’s the problem?
				Upstream problems
				Local problems
				Downstream problems
				Service-instance health
				Figure 6.13. Current behavior of service instances of the same type
				Figure 6.14. Categorical scatterplot of service-instance response times
		6.3. The power of invariants
			Figure 6.15. Ratio of message-flow rates
			6.3.1. Finding invariants from the business logic
				Figure 6.16. Messages caused by posting an entry
			6.3.2. Finding invariants from the system architecture
				Actor-style invariants
				Figure 6.17. Actor/service interaction
				Publish/subscribe-style invariants
				Figure 6.18. Publish/subscribe service interaction
				Chain-style invariants
				Figure 6.19. Service/chain interaction
				Tree-style invariants
				Figure 6.20. Service/tree interaction
			6.3.3. Visualizing invariants
			6.3.4. System discovery
				Distributed tracing
				Figure 6.21. Distributed trace of an entry post over microservices
				Distributed logging
				Error capture
			6.3.5. Synthetic validation
		6.4. Summary
	Chapter 7. Migration
		7.1. A classic e-commerce example
			7.1.1. The legacy architecture
				Figure 7.1. The basic legacy e-commerce architecture
				Table 7.1. External integrations of the e-commerce system
			7.1.2. The software delivery process
		7.2. Changing the goal posts
			7.2.1. The practical application of politics
		7.3. Starting the journey
		7.4. The strangler tactic
			7.4.1. Partial proxying
			7.4.2. What to do when you can’t migrate
			7.4.3. The greenfield tactic
				The e-commerce greenfield scenario
			7.4.4. The macroservice tactic
				Macroservice extraction
		7.5. The strategy of refinement
		7.6. Moving from the general to the specific
			7.6.1. Adding features to the product page
				Figure 7.2. The evolving product microservice family
				Figure 7.3. Number of product types that each microservice handles
			7.6.2. Adding features to the shopping cart
				Listing 7.1. Add coupon item message
			7.6.3. Handling cross-cutting concerns
		7.7. Summary
	Chapter 8. People
		8.1. Dealing with institutional politics
			8.1.1. Accepting hard constraints
			8.1.2. Finding sponsors
			8.1.3. Building alliances
			8.1.4. Value-focused delivery
			8.1.5. Acceptable error rates
			8.1.6. Dropping features
				Figure 8.1. Value versus complexity matrix
			8.1.7. Stop abstracting
			8.1.8. Deprogramming
			8.1.9. External validation
			8.1.10. Team solidarity
			8.1.11. Respect the organization
		8.2. The politics of microservices
			8.2.1. Who owns what?
			8.2.2. Who’s on call?
			8.2.3. Who decides what to code?
				Autonomy and values
				Everybody codes
				The Tower of Babel
				Big-picture thinking
				Disposable code
				Valuable mistakes
		8.3. Summary
	Chapter 9. Case study: Nodezoo.com
		9.1. Design
			9.1.1. What are the business requirements?
			9.1.2. What are the messages?
				BR1: Performance
				BR2: Messages relating to search
				BR3: Messages relating to module information
				BR3.1: Messages relating to sources
				BR4: Messages relating to module changes
			9.1.3. What are the services?
				Message pattern: role:search,cmd:search
				Figure 9.1. The role:search, cmd:search interaction
				Message pattern: role:search,cmd:insert
				Figure 9.2. The role:search, cmd:insert interaction
				Message pattern: role:info,cmd:get
				Figure 9.3. The role:info,cmd:get interaction
				Message patterns: role:info,need:part and role:info,collect:part
				Figure 9.4. The role:info,need/collect:part interactions
				Message patterns: role:npm,cmd:get and role:npm,cmd:query
				Figure 9.5. The role:npm,cmd:* interactions
				Message patterns: role:github,cmd:get and role:github,cmd:query
				Message patterns: role:info,event:change
				Figure 9.6. The role:info, event:change interaction
		9.2. Deliver
			9.2.1. Iteration 1: Local development
				Service: web
				Listing 9.1. nodezoo-web/web.js: home page route
				Listing 9.2. nodezoo-web/web.js: api/query route
				Listing 9.3. nodezoo-web/srv/web-dev.js: development-service execution
				Service: search
				Listing 9.4. nodezoo-search/search.js: message list
				Listing 9.5. nodezoo-search/search.js: handler for role:search,cmd:search
				Listing 9.6. nodezoo-search/search.js: handler for role:search,cmd:insert
				Listing 9.7. nodezoo-search/srv/search-dev.js: development service execution
				Service: info
				Listing 9.8. nodezoo-info/info.js: message list
				Listing 9.9. nodezoo-info/info.js: handler for role:info,cmd:get
				Listing 9.10. nodezoo-info/info.js: handler for role:info,collect:part
				Listing 9.11. nodezoo-info/srv/info-dev.js: development service execution
				Service: npm
				Listing 9.12. nodezoo-npm/npm.js: message list
				Listing 9.13. nodezoo-npm/npm.js: handler for role:npm,cmd:get
				Listing 9.14. nodezoo-npm/npm.js: handler for role:npm,cmd:query
				Listing 9.15. nodezoo-npm/npm.js: intercept for role:entity,cmd:save,name:npm
				Listing 9.16. nodezoo-info/srv/npm-dev.js: development service execution
				Practicalities
				Figure 9.7. The system after iteration 1
				Listing 9.17. nodezoo-system/fuge/fuge.yml: fuge configuration
			9.2.2. Iteration 2: Testing, staging, and risk measurement
				Docker configuration
				Staged services
				Listing 9.18. nodezoo-web/srv/web-stage.js: staged service execution
				Listing 9.19. nodezoo-info/srv/info-stage.js: staged service execution
				Listing 9.20. nodezoo-npm/srv/npm-stage.js: staged service execution
				Validation services
				Listing 9.21. nodezoo-repl/srv/repl-stage.js: staged service execution
				Figure 9.8. Deployment-risk score
			9.2.3. Iteration 3: The path to production
				The service-execution scripts
				Listing 9.22. nodezoo-repl/srv/repl-prod.js: production execution script
				Listing 9.23. nodezoo-system/prod/nodezoo.yml: repl service configuration
				Listing 9.24. nodezoo-web/srv/web-prod.js: production execution script
				Listing 9.25. nodezoo-system/prod/nodezoo.yml: Kubernetes configuration
				Listing 9.26. nodezoo-system/prod/nodezoo.yml: repl service configuration
				Listing 9.27. nodezoo-repl/srv/search-prod.js: production execution script
				Listing 9.28. nodezoo-info/srv/info-prod.js: production execution script
				Listing 9.29. nodezoo-npm/srv/npm-prod.js: production execution script
			9.2.4. Iteration 4: Enhancing and adapting
				Adding a data source
				Listing 9.30. nodezoo-github/github.js: business logic code
				Listing 9.31. nodezoo-github/srv/github-prod.js: execution script
				Adding a feature
				Listing 9.32. nodezoo-web/web.js: API code
				Listing 9.33. nodezoo-search/search.js: API code
				Listing 9.34. nodezoo-suggest/suggest.js: business logic
				Listing 9.35. nodezoo-suggest/ssrv/suggest-prod.js: production execution script
				Extending the system
				Listing 9.36. nodezoo-updater/updater.js: production execution script
			9.2.5. Iteration 5: Monitoring and debugging
				Figure 9.9. Message-flow rates and invariants
				Figure 9.10. Current behavior for message response times
				Tracing
				Figure 9.11. Dynamic service relationships
				Figure 9.12. Trace of the search message flow over services
				Logging
				Figure 9.13. Searching the service logs
				Debugging
			9.2.6. Iteration 6: Scaling and performance
				The web service
				The search service
				The info service
				The npm and github services
				The suggest service
				Everything else
		9.3. Brave new world
	Core message patterns: one message/two services
		1/2: Request/Response
		1/2: Sidewinder
	Core message patterns: one message/two services (continued)
		1/2: Winner-take-all
		1/2: Fire-and-forget
	Index
		SYMBOL
		A
		B
		C
		D
		E
		F
		G
		H
		I
		J
		K
		L
		M
		N
		O
		P
		Q
		R
		S
		T
		U
		V
		W
		Z
	List of Figures
	List of Tables
	List of Listings




نظرات کاربران