JavaScript Cloud Native Development Cookbook

Book description

Master over 60 recipes to help you deliver completely scalable and serverless cloud-native applications

Key Features

  • Develop global scale and event-driven autonomous services
  • Continuously deploy, test, observe, and optimize your services
  • Practical Node.js recipes for serverless cloud-native development

Book Description

Cloud-native development is a modern approach to building and running applications that leverages the merits of the cloud computing model. With cloud-native development, teams can deliver faster and in a more lean and agile manner as compared to traditional approaches. This recipe-based guide provides quick solutions for your cloud-native applications.

Beginning with a brief introduction, JavaScript Cloud-Native Development Cookbook guides you in building and deploying serverless, event-driven, cloud-native microservices on AWS with Node.js. You'll then move on to the fundamental patterns of developing autonomous cloud-native services and understand the tools and techniques involved in creating globally scalable, highly available, and resilient cloud-native applications. The book also covers multi-regional deployments and leveraging the edge of the cloud to maximize responsiveness, resilience, and elasticity.

In the latter chapters you'll explore techniques for building fully automated, continuous deployment pipelines and gain insights into polyglot cloud-native development on popular cloud platforms such as Azure and Google Cloud Platform (GCP). By the end of the book, you'll be able to apply these skills to build powerful cloud-native solutions.

What you will learn

  • Implement patterns such as Event Streaming, CQRS, and Event Sourcing
  • Deploy multi-regional, multi-master solutions
  • Secure your cloud-native services with OAuth and OpenID Connect
  • Create a robust cloud-native continuous deployment pipeline
  • Run services on AWS, Azure, and GCP
  • Implement autonomous services to limit the impact of failures

Who this book is for

If you want to develop powerful serverless, cloud-native solutions, this book is for you. You are expected to have basic knowledge of concepts of microservices and hands-on experience with Node.js to understand the recipes in this book.

Table of contents

  1. Title Page
  2. Copyright and Credits
    1. JavaScript Cloud Native Development Cookbook
  3. Dedication
  4. Packt Upsell
    1. Why subscribe?
    2. PacktPub.com
  5. Foreword
  6. Contributors
    1. About the author
    2. About the reviewers
    3. Packt is searching for authors like you
  7. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Sections
      1. Getting ready
      2. How to do it…
      3. How it works…
      4. There's more…
      5. See also
    5. Get in touch
      1. Reviews
  8. Getting Started with Cloud-Native
    1. Introduction
    2. Creating a stack
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a function and working with metrics and logs
      1. How to do it...
      2. How it works...
    4. Creating an event stream and publishing an event
      1. How to do it...
      2. How it works...
    5. Creating a stream processor
      1. Getting ready
      2. How to do it...
      3. How it works...
    6. Creating an API Gateway
      1. How to do it...
      2. How it works...
    7. Deploying a single-page application
      1. How to do it...
      2. How it works...
  9. Applying the Event Sourcing and CQRS Patterns
    1. Introduction
    2. Creating a data lake
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Applying the event-first variant of the Event Sourcing pattern
      1. How to do it...
      2. How it works...
    4. Creating a micro event store
      1. How to do it...
      2. How it works...
    5. Applying the database-first variant of the Event Sourcing pattern with DynamoDB
      1. How to do it...
      2. How it works...
    6. Applying the database-first variant of the Event Sourcing pattern with Cognito datasets
      1. How to do it...
      2. How it works...
    7. Creating a materialized view in DynamoDB
      1. How to do it...
      2. How it works...
    8. Creating a materialized view in S3
      1. How to do it...
      2. How it works...
    9. Creating a materialized view in Elasticsearch
      1. How to do it...
      2. How it works...
    10. Creating a materialized view in a Cognito dataset
      1. How to do it...
      2. How it works...
    11. Replaying events
      1. Getting ready
      2. How to do it...
      3. How it works...
    12. Indexing the data lake
      1. How to do it...
      2. How it works...
    13. Implementing bi-directional synchronization
      1. How to do it...
      2. How it works...
  10. Implementing Autonomous Services
    1. Introduction
    2. Implementing a GraphQL CRUD BFF
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Implementing a search BFF
      1. How to do it...
      2. How it works...
    4. Implementing an analytics BFF
      1. How to do it...
      2. How it works...
    5. Implementing an inbound External Service Gateway
      1. How to do it...
      2. How it works...
    6. Implementing an outbound External Service Gateway
      1. Getting ready
      2. How to do it...
      3. How it works...
    7. Orchestrating collaboration between services
      1. How to do it...
      2. How it works...
    8. Implementing a Saga
      1. How to do it...
      2. How it works...
  11. Leveraging the Edge of the Cloud
    1. Introduction
    2. Serving a single-page application from a CDN
      1. How to do it...
      2. How it works...
    3. Associating a custom domain name with a CDN
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Serving a website from the CDN
      1. How to do it...
      2. How it works...
    5. Deploying a service behind a CDN
      1. How to do it...
      2. How it works...
    6. Serving static JSON from a CDN
      1. How to do it...
      2. How it works...
    7. Triggering the invalidation of content in a CDN
      1. How to do it...
      2. How it works...
    8. Executing code at the edge of the cloud
      1. How to do it...
      2. How it works...
  12. Securing Cloud-Native Systems
    1. Introduction
    2. Securing your cloud account
      1. How to do it...
      2. How it works...
    3. Creating a federated identity pool
      1. How to do it...
      2. How it works...
    4. Implementing sign up, sign in, and sign out
      1. How to do it...
      2. How it works...
    5. Securing an API Gateway with OpenID Connect
      1. Getting ready
      2. How to do it...
      3. How it works...
    6. Implementing a custom authorizer
      1. Getting ready
      2. How to do it...
      3. How it works...
    7. Authorizing a GraphQL-based service
      1. Getting ready
      2. How to do it...
      3. How it works...
    8. Implementing a JWT filter
      1. Getting ready
      2. How to do it...
      3. How it works...
    9. Using envelope encryption
      1. How to do it...
      2. How it works...
    10. Creating an SSL certificate for encryption in transit
      1. Getting ready
      2. How to do it...
      3. How it works...
    11. Configuring a web application firewall
      1. How to do it...
      2. How it works...
    12. Replicating the data lake for disaster recovery
      1. How to do it...
      2. How it works...
  13. Building a Continuous Deployment Pipeline
    1. Introduction
    2. Creating the CI/CD pipeline
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Writing unit tests
      1. How to do it...
      2. How it works...
    4. Writing integration tests
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Writing contract tests for a synchronous API
      1. How to do it...
      2. How it works...
    6. Writing contract tests for an asynchronous API
      1. How to do it...
      2. How it works...
    7. Assembling transitive end-to-end tests
      1. How to do it...
      2. How it works...
    8. Leveraging feature flags
      1. Getting ready
      2. How to do it...
      3. How it works...
  14. Optimizing Observability
    1. Introduction
    2. Monitoring a cloud-native system
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Implementing custom metrics
      1. How to do it...
      2. How it works...
    4. Monitoring domain events
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating alerts
      1. How to do it...
      2. How it works...
    6. Creating synthetic transaction tests
      1. Getting ready
      2. How to do it...
      3. How it works...
  15. Designing for Failure
    1. Introduction
    2. Employing proper timeouts and retries
      1. How to do it...
      2. How it works...
    3. Implementing backpressure and rate limiting
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Handling faults
      1. How to do it...
      2. How it works...
    5. Resubmitting fault events
      1. How to do it...
      2. How it works...
    6. Implementing idempotence with an inverse OpLock
      1. How to do it...
      2. How it works...
    7. Implementing idempotence with Event Sourcing
      1. How to do it...
      2. How it works...
  16. Optimizing Performance
    1. Introduction
    2. Tuning Function as a Service
      1. How to do it...
      2. How it works...
    3. Batching requests
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Leveraging asynchronous non-blocking IO
      1. How to do it...
      2. How it works...
    5. Grouping events in stream processors
      1. How to do it...
      2. How it works...
    6. Autoscaling DynamoDB
      1. How to do it...
      2. How it works...
    7. Utilizing cache-control
      1. How to do it...
      2. How it works...
    8. Leveraging session consistency
      1. How to do it...
      2. How it works...
  17. Deploying to Multiple Regions
    1. Introduction
    2. Implementing latency-based routing
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a regional health check
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Triggering regional failover
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Implementing regional replication with DynamoDB
      1. Getting ready
      2. How to do it...
      3. How it works...
    6. Implementing round-robin replication
      1. How to do it...
      2. How it works...
  18. Welcoming Polycloud
    1. Introduction
    2. Creating a service with Google Cloud Functions
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a service with Azure Functions
      1. Getting ready
      2. How to do it...
      3. How it works...
  19. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: JavaScript Cloud Native Development Cookbook
  • Author(s): John Gilbert
  • Release date: September 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781788470414