What and Why
Technologies to consider while developing large scale distributed application.
See wiki for awesome modules to speed up your development.
Server Back End:
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Companies using Go https://github.com/golang/go/wiki/GoUsers
Checkout what people are building using GO
A rich framework for building applications and services hapi enables developers to focus on writing reusable application logic instead of spending time building infrastructure.
Companies using HAPI
Agility, scalability, performance
JSON like Datastore
Flexible Data Model
Robust Operational Tools
Expressive Query Language
Companies using Mongodb
Mongoose provides a straight-forward, schema-based solution to modeling your application data and includes built-in type casting, validation, query building, business logic hooks and more, out of the box.
Companies using Mogoose
Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs.
Companies using Redis
Client Front End:
Jade is a terse language for writing HTML templates. It Produces HTML, Supports dynamic code and reusability (DRY).
Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques that allow you to make CSS that is more maintainable, themable and extendable.
Less runs inside Node, in the browser and inside Rhino. There are also many 3rd party tools that allow you to compile your files and watch for changes.
HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.
Create a visual language that synthesizes classic principles of good design with the innovation and possibility of technology and science.
Create mobile apps with the web technologies you love. Free and open source, Ionic offers a library of mobile-optimized HTML, CSS and JS components, gestures, and tools for building highly interactive apps. Built with Sass and optimized for AngularJS.
Package Manager & Dependency Manager
Automate and enhance your workflow. gulp is a build system as compared to a task runner, such as Grunt, although for all intents and purposes both tools can be used to accomplish the same result. gulp differentiates itself by focusing on optimized file operations with a limited Application Programming Interface (API) and strict set of plugin authoring guidelines.
Companies using GULP
Bower is a package manager for web. Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.
#Test Runner :
Protractor is an end-to-end test framework for AngularJS applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would.
Docker is an open platform for building, shipping and running distributed applications. It gives programmers, development teams and operations engineers the common toolbox they need to take advantage of the distributed and networked nature of modern applications.
Companies using Docker
Test and Deploy with Confidence. Easily sync your GitHub projects with Travis CI and you’ll be testing your code in minutes!
Companies using Travis
Continuous delivery from code to deployment. Bamboo is a continuous integration and delivery tool that ties automated builds, tests and releases together in a single workflow. It works great alongside JIRA and Stash providing a fully traceable deployment pipeline.
Companies using Bamboo
Host your code online in as many public and private repositories as you want. Free five-user tier accounts! Manage your projects with confidence with built-in issue trackers, wikis, code comments, and pull requests.
The flexible and scalable issue tracker for software teams. Plan and track your work. Ship on time. JIRA is built for every member of your software team. Plan and track your work while moving towards the next release.
Build and Run Your Apps, Your Way. Once you push your application source code, Heroku prepares it for execution by retrieving the necessary dependencies specific to the frameworks and languages you use in your app. Heroku supports Ruby, Node.js, Python, Java, Go and PHP by default, but you can also choose another language by using a custom buildback.
Companies using Heroku
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.
Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web services interface to store and retrieve any amount of data from anywhere on the web. With Amazon S3, you pay only for the storage you actually use. There is no minimum fee and no setup cost.
Nodemon is a utility that will monitor for any changes in your source and automatically restart your server. Perfect for development.Just use nodemon instead of node to run your code, and now your process will automatically restart when your code changes.
Production process manager for Node.JS applications with a built-in load balancer.
A simple CLI tool for ensuring that a given node script runs continuously (i.e. forever)
Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
Other Tools and Technologies:
Elastic believes getting immediate, actionable insight from data matters. As the company behind the three open source projects — Elasticsearch, Logstash, and Kibana — designed to take data from any source and search, analyze, and visualize it in real time, Elastic is helping people make sense of data. From stock quotes to Twitter streams, Apache logs to WordPress blogs, our products are extending what's possible with data, delivering on the promise that good things come from connecting the dots.
Companies using Elastic Search
Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
API Documentation Viewer
Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability.
Connect your code in any language, on any platform.
Carries messages across inproc, IPC, TCP, TIPC, multicast.
Smart patterns like pub-sub, push-pull, and router-dealer.
High-speed asynchronous I/O engines, in a tiny library.
Backed by a large and active open source community.
Supports every modern language and platform.
Build any architecture: centralized, distributed, small, or large.