All Projects → mfactory-lab → lagom-on-kube

mfactory-lab / lagom-on-kube

Licence: Apache-2.0 License
This tutorial describes how to bootstrap a production-ready Lagom microservices cluster in a Kubernetes environment.

Programming Languages

scala
5932 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to lagom-on-kube

Micro Bot
🤖 Zero-configuration Telegram bot runner
Stars: ✭ 173 (+198.28%)
Mutual labels:  telegram-bot, telegram-api
echotron
An elegant and concurrent library for Telegram bots in Go.
Stars: ✭ 95 (+63.79%)
Mutual labels:  telegram-bot, telegram-api
Telegram Bot Api
First Telegram Bot API node.js library
Stars: ✭ 205 (+253.45%)
Mutual labels:  telegram-bot, telegram-api
LilSholex
A project containing web apps and Telegram API bots.
Stars: ✭ 32 (-44.83%)
Mutual labels:  telegram-bot, telegram-api
telegram
📚 Golang bindings for Telegram API
Stars: ✭ 15 (-74.14%)
Mutual labels:  telegram-bot, telegram-api
Node Telegram Api
A simple API to create and control Telegram bots
Stars: ✭ 117 (+101.72%)
Mutual labels:  telegram-bot, telegram-api
Python Telegram
Python client for the Telegram's tdlib
Stars: ✭ 246 (+324.14%)
Mutual labels:  telegram-bot, telegram-api
Drone Telegram
Drone plugin for sending Telegram notifications
Stars: ✭ 67 (+15.52%)
Mutual labels:  telegram-bot, telegram-api
grouphelperbot
A Telegram Bot made to help group admins, with Italian/English support.
Stars: ✭ 26 (-55.17%)
Mutual labels:  telegram-bot, telegram-api
tdlight-telegram-bot-api
The TDLight Telegram Bot API is an actively enhanced fork of the original Bot API, featuring experimental user support, proxies, unlimited files size, and more.
Stars: ✭ 71 (+22.41%)
Mutual labels:  telegram-bot, telegram-api
Novagram
An Object-Oriented PHP library for Telegram Bots
Stars: ✭ 112 (+93.1%)
Mutual labels:  telegram-bot, telegram-api
Telegram-PHP-App
App base for Telegram bots
Stars: ✭ 14 (-75.86%)
Mutual labels:  telegram-bot, telegram-api
Mattata
A powerful, plugin-based, multi-purpose Telegram bot designed to serve a wide variety of purposes
Stars: ✭ 107 (+84.48%)
Mutual labels:  telegram-bot, telegram-api
Sentry Telegram
Plugin for Sentry which allows sending notification via Telegram messenger.
Stars: ✭ 168 (+189.66%)
Mutual labels:  telegram-bot, telegram-api
Turibot
TuriBot is a simple way to communicate with Telegram APIs in PHP
Stars: ✭ 68 (+17.24%)
Mutual labels:  telegram-bot, telegram-api
Core
PHP Telegram Bot based on the official Telegram Bot API
Stars: ✭ 2,899 (+4898.28%)
Mutual labels:  telegram-bot, telegram-api
Mypackbot
🤖 Your own unlimited pack of Telegram-stickers
Stars: ✭ 18 (-68.97%)
Mutual labels:  telegram-bot, telegram-api
Lulzbot Telegram Bot
Moved to https://gitlab.com/bhavyanshu/lulzbot-telegram-bot
Stars: ✭ 18 (-68.97%)
Mutual labels:  telegram-bot, telegram-api
Bybit-Auto-Trading-Bot-Ordes-placed-via-TradingView-Webhook
Python based Trading Bot that uses TradingView.com webhook JSON alerts to place orders(buy/sell/close/manage positions/TP/SL/TS etc.) on Bybit.com. Hire me directly here https://www.freelancer.com/u/Beannsofts for any assistance
Stars: ✭ 235 (+305.17%)
Mutual labels:  telegram-bot, telegram-api
teleirc
Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
Stars: ✭ 112 (+93.1%)
Mutual labels:  telegram-bot, telegram-api

Lagom on Kube

This tutorial describes how to bootstrap a production-ready Lagom microservices cluster in a Kubernetes environment.

alt lagom on kube

The Problem

Lagom is a great java- and scala-based reactive microservices framework. Lagom is free to use in both development and production. However, as detailed later in this doc, deploying lagom requires some extra weight lifting by the end user or using Lightbend's ConductR (which is free to use up to three nodes).

With this tutorial, you can bootstrap a Kubernetes cluster hosting Lagom microservices, which is free-to-use, however production-ready.

The Lagom framework lacks following fuctionality and attributes required for a production-ready microservices framework:

  • Service orchestration
  • Scalability
  • Monitoring
  • Resilience
  • Load balancing
  • Service discovery

Turns out, all of the above can be achieved with Docker and Kubernetes. (I'm pretty sure it's also possible using Docker Swarm or Apache Mesos, but those ways are outside of the scope of this tutorial.)

The Solution

  • Service orchestration: we package all of the Lagom services into Docker containers, which are then 'orchestrated' (i.e. deployed, scaled, managed, etc.) through standard Kubernetes tools.

  • Scalability is provided on two levels

    • Within a Kubernetes cluster, scaling is performed by Deployments and Replication controllers
    • AWS offers Auto Scaling group for further scalability when a Kubernetes cluster hits its limit
  • Monitoring is provided on two levels as well

    • Heapster (InfluxDB and Grafana) to monitor containers and nodes
    • New Relic to monitor everything at service level
  • Resilience

    • Kubernetes Pods can be configured to track the health status of Docker containers
    • Deployments keep number of active containers in line with current load
  • Load balancing is provided by Kubernetes services which select a Pod randomly for each request (more complex load balancing strategies are available using Ingress or an external load balancer, however these methods are outside of the scope of this document)

  • Service Discovery was the only part which had to be implemented, not just configured. It is based on the free-to-use Lagom develempent-mode service register and received a number of improvements making it resilient, persistent and compatible with the Kubernetes architecture.

The Technologies

  • AWS as a cloud platform
  • kops to bootstrap Kubernetes on AWS
  • Kubernetes for service orchestration
  • Ansible for configuration management
  • Docker as a container
  • Lagom as a microservices framework
  • Heapster for container and node monitoring
  • New Relic for application monitoring
  • Cassandra as a persistent storage for service registry

The Description

The Demo infrastructure is described in this document

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].