Welcome to DROP (Distributed Reliable Operation Platform)
" ___ ___ ___ "
" _____ /\ \ /\ \ /\ \ "
" /::\ \ /::\ \ /::\ \ /::\ \ "
" /:/\:\ \ /:/\:\__\ /:/\:\ \ /:/\:\__\ "
" /:/ \:\__\ /:/ /:/ / /:/ \:\ \ /:/ /:/ / "
" /:/__/ \:|__| /:/_/:/__/___ /:/__/ \:\__\ /:/_/:/ / "
" \:\ \ /:/ / \:\/:::::/ / \:\ \ /:/ / \:\/:/ / "
" \:\ /:/ / \::/~~/~~~~ \:\ /:/ / \::/__/ "
" \:\/:/ / \:\~~\ \:\/:/ / \:\ \ "
" \::/ / \:\__\ \::/ / \:\__\ "
" \/__/ \/__/ \/__/ \/__/ "
"
DROP - Serverless Functions Made Simple
Any process can be packaged as a function enabling you to consume a range of any events or other functions.
Run code without thinking about servers.
Installing DROP
Prerequisites
- CentOS 7.3 or later, for the 64-bit x86_64 architecture.
- Yum package management application installed.
- Root or sudo access to the system.
Installation from Vagrantfile (local)
curl -O https://raw.githubusercontent.com/droopp/vagrant/master/Vagrantfile .
vagrant up
Installation from RPM packages
curl https://dropfaas.com/RPMS/drop-bootstrap.sh | sudo sh
Configuring DROP node (after set up - systemctl restart drop-core)
Inter-node communication interface (Optional)
If you have more than one network interface and don't want to use default interface, you need configure name of inerface
sudo echo 'export DROP_IFACE=eth1' >> /home/drop-core/.bashrc
eth1 - example name of network interface
By default node will be used default network interface
Declare nodes (Optional)
If your network not support multicast you need declare your nodes
For example
sudo echo '192.168.50.4
192.168.50.5
192.168.50.6' > /var/lib/drop/drop-hosts
By default nodes will declare self by multicast
Linux system optimisation (Optional)
In production you need tune linux parameters for better performance
ulimit -n
vm.swappiness
vm.vfs_cache_pressure
vm.dirty_ratio
vm.dirty_background_ratio
vm.dirty_writeback_centisecs
vm.dirty_expire_centisecs
kernel.panic
fs.file-max
net.core.netdev_max_backlog
net.core.somaxconn
net.ipv4.tcp_syncookies
net.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_tw_buckets
net.ipv4.tcp_tw_recycle
net.ipv4.tcp_timestamps
net.ipv4.tcp_tw_reuse
net.ipv4.tcp_fin_timeout
net.ipv4.tcp_keepalive_time
net.ipv4.tcp_keepalive_probes
net.ipv4.tcp_keepalive_intvl
net.core.wmem_max
net.core.rmem_max
net.core.rmem_default
net.core.wmem_default
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem