Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save DenisIzmaylov/f9db2487277f55d8931ba7f5e068f923 to your computer and use it in GitHub Desktop.
Save DenisIzmaylov/f9db2487277f55d8931ba7f5e068f923 to your computer and use it in GitHub Desktop.
Note on tools for building micro-services based architecture: CI, CD, Cluster Management, etc

Tools for buiding microservices architecture (May 7, 2016)

We are obviously in the age of Microservices, Mobile first, Polyglot, post-Java JVM languages, GitHub and Docker uprise. In this world, Open Source usage dominates, and the speed of change is intense. Knowing the direction of DevOps tools and picking the right one for the project is crucial.

Terms

Continuous Integration is the practice of running your tests on a non-developer machine automatically everytime someone pushes new code into the source repository.

This has the tremendous advantage of always knowing if all tests work and getting fast feedback. The fast feedback is important so you always know right after you broke the build (introduced changes that made either the compile/build cycle or the tests fail) what you did that failed and how to revert it.

If you only run your tests occasionally the problem is that a lot of code changes may have happened since the last time and it is rather hard to figure out which change introduced the problem. When it is run automatically on every push then it is always pretty obvious what and who introduced the problem.

Built on top of Continuous Integration are Continuous Deployment/Delivery where after a successful test run your instantly and automatically release the latest version of your codebase. Makes deployment a non-issue and helps you speed up your development.

Cluster Management Tools abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

Building MVP

If you are planning to build your first MVP, start simple consider Dokku!

Dokku - a docker-powered PaaS that helps you build and manage the lifecycle of applications. Dokku can be installed on any hardware and be used on inexpensive hosting providers.

Dokku relies on Nginx, the world’s most popular FREE open source web server and load balancer for high-traffic sites, powering over 140 million properties

Along with Redis which is an open source, in-memory data structure store, used as database, cache and message broker, bare-metal server with 16Gb RAM and SSD drive can sustain quite a lot of traffic of work-load.

Recommended hosting providers

Getting BIG

Once your MVP is up and running, it's time to think how to scale BIG!

Below is the collection of links on the most used or fast-growing DevOps tools and communities.

Continuous Integration & Continuous Deployment/Delivery Tools

Cluster Management Tools

Data Replication, Clustering

Node.js tools

Good reading

Best tool?

Not sure which tools is the Best? Go talk to people who used your best pick in production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment