Node you can run JS code server side  It has non-blocking I/O operations (Asynchronous)  It is event driven (Event Loop)  Event Loop is single threaded
I/O operations  It offloads operations to the System Kernel whenever possible  Modern Kernels are multi-threaded and they can handle multiple operations in background  When an operation completes, the Kernel tells Node so that the appropriate callback is added to the Poll Event Loop queue to be executed
in the world  Currently Node counts more than twice modules than is next competitor (Java)  Node.js has more than half million modules published  More than 450 new packages are published everyday Number of modules Source: http://www.modulecounts.com
perfect platform to deal with all these components  Node brings the accessibility and ubiquity of the web platform and of JavaScript to all these different areas  You can use Node in a variety of different places among relatively small teams
Standard and ESLint to maintain your code quality with ease  JSHint to help detecting errors and potential problems in your JavaScript code  Stylus, LESS, ect. for better writing CSS
 Cordova brings the entire Web platform to iOS, Android and Windows Phone using Node  It is a Node tool chain that brings the entire Node ecosystem across all these different devices
the Web Platform and the entire Node ecosystem to Desktop Development  It allows developers to build cross-platform (Mac OS, Linux and Windows ) Desktop applications using HTML, JavaScript and CSS
It always had a great Cloud story  Every well-known Cloud Provider supports Node out of the box and have a pretty good Node support  Example: Google App Engine, AWS Elastic Beanstalk, Heroku, etc.
moving into the Function as a Service (or Serverless) space  Developers can build their applications out of these discrete functions  Disclaimer !: these functions run on servers, but developers don’t have to worry about it
supported since the beginning (Functions can be written in Node) by Cloud vendors because Node is optimized to run in a single process, with a limited memory space, and it is great to handle a lot of I/O operations  Node starts up quickly  These are very important requirements to successfully running in these Cloud Function services  Indeed, we need a really fast startup timing to be really efficient in a space with very limited resources  Moore’s Law still making computers faster, but we are keeping optimizing resources using less and less of a slice of that computer to run our applications
!  Starting in 2012 the Node ecosystem started to see a big rise in Robots  People working at jQuery built a framework to build Robots in JS called “johnny-five”  Over 75 developers contributed to the project
on their products  Basically today, every new board that’s coming out as an integrated circuit for people’s IoT devices has first-class Node support  IoT manufactures know that the best way to bring developers to their platform is to bring the entire Node ecosystem to their platform as well
build their applications today  For example, Twilio for Text Messages, Mixpanel for Analytics, Google Speech for Speech Recognition, etc.  Most of these API have Node support (SDK)
us package and ship our applications and everything it needs to execute into a standard format  Docker containers are similar to VMs. Our apps run on what seems to be a dedicated hardware instance.  Each container has its own virtualized Filesystem, Memory, Storage, CPU cycles, etc.  Each container is completely isolated from the other containers running on the same machine
Operating System Kernel, not the hardware. Therefore containers must run Linux.  Docker starts with a Linux Kernel that all containers use. Then it layers all the differences on top of the Kernel. Therefore containers do not run the entire operating system. This makes containers lean.
by saying what we we’re starting with, and then we describe only what’s different  Packaging apps in Docker containers allows your application to run the same in all your environments: development, staging, production, etc.
of containerized applications  Project started at Google to run billions of containers a week  Kubernetes is great to run your app containers in production, because it can scale without requiring any extra Ops efforts  It gives you freedom to run it anywhere, hybrid or public cloud  Both Google Cloud Platform and Amazon Web Services also offer Kubernetes as a Service (Google Container Engine, Amazon Elastic Container Service)  Managed K8S make it easy for you to run K8S in the cloud without needing to install and operate your own clusters
build Native apps with only JavaScript With React Native, you don't build a "mobile web app", an "HTML5 app", or a "hybrid app". You build a real mobile app that's indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.