
Building Enterprise JavaScript Applications
Learn to build and deploy robust JavaScript applications using Cucumber, Mocha, Jenkins, Docker, and Kubernetes
- 764 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Building Enterprise JavaScript Applications
Learn to build and deploy robust JavaScript applications using Cucumber, Mocha, Jenkins, Docker, and Kubernetes
About this book
Strengthen your applications by adopting Test-Driven Development (TDD), the OpenAPI Specification, Continuous Integration (CI), and container orchestration.
Key Features
- Create production-grade JavaScript applications from scratch
- Build microservices and deploy them to a Docker container for scaling applications
- Test and deploy your code with confidence using Travis CI
Book Description
With the over-abundance of tools in the JavaScript ecosystem, it's easy to feel lost. Build tools, package managers, loaders, bundlers, linters, compilers, transpilers, typecheckers - how do you make sense of it all?
In this book, we will build a simple API and React application from scratch. We begin by setting up our development environment using Git, yarn, Babel, and ESLint. Then, we will use Express, Elasticsearch and JSON Web Tokens (JWTs) to build a stateless API service. For the front-end, we will use React, Redux, and Webpack.
A central theme in the book is maintaining code quality. As such, we will enforce a Test-Driven Development (TDD) process using Selenium, Cucumber, Mocha, Sinon, and Istanbul. As we progress through the book, the focus will shift towards automation and infrastructure. You will learn to work with Continuous Integration (CI) servers like Jenkins, deploying services inside Docker containers, and run them on Kubernetes.
By following this book, you would gain the skills needed to build robust, production-ready applications.
What you will learn
- Practice Test-Driven Development (TDD) throughout the entire book
- Use Cucumber, Mocha and Selenium to write E2E, integration, unit and UI tests
- Build stateless APIs using Express and Elasticsearch
- Document your API using OpenAPI and Swagger
- Build and bundle front-end applications using React, Redux and Webpack
- Containerize services using Docker
- Deploying scalable microservices using Kubernetes
Who this book is for
If you're a JavaScript developer looking to expand your skillset and become a senior JavaScript developer by building production-ready web applications, then this book is for you.
Tools to learn more effectively

Saving Books

Keyword Search

Annotating Text

Listen to it instead
Information
Robust Infrastructure with Kubernetes
- Service discovery tools
- Global configuration store
- Networking tools
- Scheduling tools
- Load balancers
- ...and many more
- Make our application more robust by deploying it with Kubernetes on DigitalOcean
- Understand the features of a robust system; namely availability, reliability, throughput, and scalability
- Examine the types of components a Cluster Management Tool would normally manage, how they work together, and how they contribute to making our system more robust
- Get hands-on and deploy and manage our application as a distributed Kubernetes cluster
High availability
Measuring availability

Following the industry standard
- Google Compute Engine Service Level Agreement (SLA): 99.99%
- Amazon Compute Service Level Agreement: 99.99%
- App Engine Service Level Agreement (SLA): 99.95%
- Google MapsāService Level Agreement (āMaps API SLAā): 99.9%
- Amazon S3 Service Level Agreement: 99.9%
Eliminating single points of failure (SPOF)
Load balancing versus failover
- Load balancing: A load balancer sits in-between the client and the server instances, intercepting the requests and distributing them among all instances:


- Failover: Requests are routed to a single primary instance. If and when the primary instance fails, subsequent requests are routed to a different secondary, or standby, instance:

- Resource Utilization: With the failover approach, only a single instance is running at ...
Table of contents
- Title Page
- Copyright and Credits
- Dedication
- Packt Upsell
- Contributors
- Preface
- The Importance of Good Code
- The State of JavaScript
- Managing Version History with Git
- Setting Up Development Tools
- Writing End-to-End Tests
- Storing Data in Elasticsearch
- Modularizing Our Code
- Writing Unit/Integration Tests
- Designing Our API
- Deploying Our Application on a VPS
- Continuous Integration
- Security ā Authentication and Authorization
- Documenting Our API
- Creating UI with React
- E2E Testing in React
- Managing States with Redux
- Migrating to Docker
- Robust Infrastructure with Kubernetes
- Other Books You May Enjoy
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app