Building an Erlang microservice from A to Z
Microservices are the new black, but what are they and why should you use them? This workshop's goal is to demonstrate the advantages of microservice architecture and teach you how to build your first production-ready Erlang microservice! Together we will build a simple distributed key-value store with a RESTful API and go over all aspects of an Erlang project (from build tools to scaling out our microservice).
Outline/structure of the Session
In this workshop, you'll build a simple distributed key-value store with a RESTful API using Erlang.
We will cover to following topics:
- what's a microservice?
- microservice architecture
- build tools
- dependency management
- code (Erlang)
- tests (unit, functional, property)
- code analyzers (Xref, Dialyzer)
- documentation tools (EDoc)
- deployment strategies
- monitoring (availability, performance)
- scaling (load-balancing, clustering)
Learning Outcome
After this workshop, you will understand the advantages of microservice architecture and should be able to build your own microservice.
Target Audience
Anyone interested in microservice architecture and in building a production-ready Erlang microservice!
Comments
hi Louis, i am one of the participants in your workshop... is there a github repo, that has setup instructions for this workshop.....
I moved the code to:
https://github.com/lpgauth/ms
This way each service is split in it's own repository.
Tried compiling the code just now on Ubuntu 14.04 (32 bit) - there is some problem with compiling eleveldb ... tested on a 64 bit system and it seems to work fine. From the gcc error log, it looks like the code will not compile on 32 bit systems. Are there any workarounds for this?
Actually, I'll use HanoiDB. I'ts pure Erlang.
https://github.com/krestenkrab/hanoidb
can you try building this backend?
https://github.com/basho/bitcask
Oh, I don't think it will be easy to fix. I'll try to find another backend to replace eleveldb as a workaround.
Code will be at:
https://github.com/lpgauth/kv
No instructions yet, work in progress.
Is knowledge of erlang required to attend this workshop?
I will explain most Erlang concepts, but knowledge of the syntax is expected.