دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Thomas Hunter Ii
سری:
ISBN (شابک) : 9781492077299
ناشر: O'Reilly Media
سال نشر: 2021
تعداد صفحات:
زبان: English
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 4 Mb
در صورت تبدیل فایل کتاب Distributed Systems with Node.js به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سیستم های توزیع شده با Node.js نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Node.js توسط بسیاری از شرکتها برای ایجاد خدمات باطن عملکردی بدون به خطر انداختن کارایی توسعهدهندگان استفاده میشود. به لطف API قابل دسترسی و نحو آشنا، Node.js مورد علاقه مهندسان است و توسط استارت آپ ها و Fortune 500s به طور یکسان مورد استفاده قرار می گیرد. با پشتیبانی بزرگترین مخزن بسته های جهان، انتظار می رود که جای پای سازمانی آن رشد کند. در این راهنمای عملی، نویسنده Thomas Hunter II ثابت میکند که Node.js به اندازه پلتفرمهای سازمانی سنتی برای ساخت خدمات قابل مشاهده، مقیاسپذیر و انعطافپذیر توانایی دارد. توسعه دهندگان متوسط تا پیشرفته Node.js خود را در حال ادغام کد برنامه با وسعت ابزار از هر لایه از پشته سرویس مدرن خواهند یافت. بیاموزید که چرا اجرای نسخههای اضافی از همان سرویس Node.js ضروری است بدانید بسته به موقعیت، کدام پروتکل را انتخاب کنید. محفظههای برنامهتان را برای استفاده در تولید تنظیم دقیق کنید. کدنویسی کنید و با بارگذاری کار روی یک پروکسی معکوس، کارایی را افزایش دهید، داشبوردهایی برای نظارت بر سلامت و توان خدمات بسازید. بدانید چرا هنگام کار در یک محیط سازمانی به ابزارهای مختلف زیادی نیاز است.
Node.js is used by many companies for building performant backend services without sacrificing developer efficiency. Thanks to its approachable API and familiar syntax, Node.js is loved by engineers and used by startups and Fortune 500s alike. Backed by the world's largest package repository, its enterprise foothold is only expected to grow. In this hands-on guide, author Thomas Hunter II proves that Node.js is just as capable as traditional enterprise platforms for building services that are observable, scalable, and resilient. Intermediate to advanced Node.js developers will find themselves integrating application code with a breadth of tooling from each layer of a modern service stack. Learn why running redundant copies of the same Node.js service is necessary Know which protocol to choose, depending on the situation Fine-tune your application containers for use in production Track down errors in a distributed setting to determine which service is at fault Simplify app code and increase performance by offloading work to a reverse proxy Build dashboards to monitor service health and throughput Find out why so many different tools are required when operating in an enterprise environment
Cover Copyright Table of Contents Foreword Preface Target Audience Goals Conventions Used in This Book Using Code Examples O’Reilly Online Learning How to Contact Us Acknowledgments Chapter 1. Why Distributed? The Single-Threaded Nature of JavaScript Quick Node.js Overview The Node.js Event Loop Event Loop Phases Code Example Event Loop Tips Sample Applications Service Relationship Producer Service Consumer Service Chapter 2. Protocols Request and Response with HTTP HTTP Payloads HTTP Semantics HTTP Compression HTTPS / TLS JSON over HTTP The Dangers of Serializing POJOs API Facade with GraphQL GraphQL Schema Queries and Responses GraphQL Producer GraphQL Consumer RPC with gRPC Protocol Buffers gRPC Producer gRPC Consumer Chapter 3. Scaling The Cluster Module A Simple Example Request Dispatching Cluster Shortcomings Reverse Proxies with HAProxy Introduction to HAProxy Load Balancing and Health Checks Compression TLS Termination Rate Limiting and Back Pressure SLA and Load Testing Introduction to Autocannon Running a Baseline Load Test Reverse Proxy Concerns Protocol Concerns Coming Up with SLOs Chapter 4. Observability Environments Logging with ELK Running ELK via Docker Transmitting Logs from Node.js Creating a Kibana Dashboard Running Ad-Hoc Queries Metrics with Graphite, StatsD, and Grafana Running via Docker Transmitting Metrics from Node.js Creating a Grafana Dashboard Node.js Health Indicators Distributed Request Tracing with Zipkin How Does Zipkin Work? Running Zipkin via Docker Transmitting Traces from Node.js Visualizing a Request Tree Visualizing Microservice Dependencies Health Checks Building a Health Check Testing the Health Check Alerting with Cabot Create a Twilio Trial Account Running Cabot via Docker Creating a Health Check Chapter 5. Containers Introduction to Docker Containerizing a Node.js Service Dependency Stage Release Stage From Image to Container Rebuilding and Versioning an Image Basic Orchestration with Docker Compose Composing Node.js Services Internal Docker Registry Running the Docker Registry Pushing and Pulling to the Registry Running a Docker Registry UI Chapter 6. Deployments Build Pipeline with Travis CI Creating a Basic Project Configuring Travis CI Testing a Pull Request Automated Testing Unit Tests Integration Tests Code Coverage Enforcement Deploying to Heroku Create a Heroku App Configure Travis CI Deploy Your Application Modules, Packages, and SemVer Node.js Modules SemVer (Semantic Versioning) npm Packages and the npm CLI Internal npm Registry Running Verdaccio Configuring npm to Use Verdaccio Publishing to Verdaccio Chapter 7. Container Orchestration Introduction to Kubernetes Kubernetes Overview Kubernetes Concepts Starting Kubernetes Getting Started Deploying an Application Kubectl Subcommands Kubectl Configuration Files Service Discovery Modifying Deployments Scaling Application Instances Deploying New Application Versions Rolling Back Application Deployments Chapter 8. Resilience The Death of a Node.js Process Process Exit Exceptions, Rejections, and Emitted Errors Signals Building Stateless Services Avoiding Memory Leaks Bounded In-Process Caches External Caching with Memcached Introducing Memcached Running Memcached Caching Data with Memcached Data Structure Mutations Database Connection Resilience Running PostgreSQL Automatic Reconnection Connection Pooling Schema Migrations with Knex Configuring Knex Creating a Schema Migration Applying a Migration Rolling Back a Migration Live Migrations Idempotency and Messaging Resilience HTTP Retry Logic Circuit Breaker Pattern Exponential Backoff Resilience Testing Random Crashes Event Loop Pauses Random Failed Async Operations Chapter 9. Distributed Primitives The ID Generation Problem Introduction to Redis Redis Operations Strings Lists Sets Hash Sorted Sets Generic Commands Other Types Seeking Atomicity Transactions Lua Scripting Writing a Lua Script File Loading the Lua Script Tying It All Together Chapter 10. Security Wrangling Repositories Recognizing Attack Surface Parameter Checking and Deserialization Malicious npm Packages Application Configuration Environment Variables Configuration Files Secrets Management Upgrading Dependencies Automatic Upgrades with GitHub Dependabot Manual Upgrades with npm CLI Unpatched Vulnerabilities Upgrading Node.js Node.js LTS Schedule Upgrade Approach Appendix A. Installing HAProxy Linux: Build from Source Linux: Install Precompiled Binary macOS: Install via Homebrew Appendix B. Installing Docker macOS: Install Docker Desktop for Mac Linux: Convenient Install Script Appendix C. Installing Minikube & Kubectl Linux: Debian Package and Precompiled Binary macOS: Install via Homebrew Index About the Author Colophon