I am working on a mission to integrate a sharing terminal (TTY) , pseudo-tty (PTTY) for my cloud containers.
The game plan is to orchestrate the cloud container to launch with special capability( program ) and access the terminal for debugging from the web browser.
There are bunch of elegant solutions
A nodes based solution https://github.com/chjj/tty.js
But the pain is to dockerize nodejs (https://coding.net/u/duwan/p/docker-web-terminal/git/blob/master/package.json)
More interesting : sharing shell over internet tmate(https://tmate.io)
References
https://www.youtube.com/watch?v=B8lS5Nl_TGI
Archive library of my periodic learning's and thoughts . *For Educational Purpose and references.ONLY*
Tuesday, February 23, 2016
Wednesday, December 9, 2015
Docker Monitoring Tools
I came across recently this article on monitoring options for docker world
http://rancher.com/comparing-monitoring-options-for-docker-deployments/
A Quick Summary looks like below
http://rancher.com/comparing-monitoring-options-for-docker-deployments/
A Quick Summary looks like below
- Docker Stats
- CAdvisor ( https://github.com/google/cadvisor)
- Scout
- Datadog ( Cloud based )
- Prometheus - http://prometheus.io
- container exporter : https://github.com/docker-infra/container_exporter
- https://hub.docker.com/r/prom/prometheus/
- Prometheus Dashboard Builder
Prometheus' main distinguishing features as compared to other monitoring systems are:
- a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
- a flexible query language to leverage this dimensionality
- no dependency on distributed storage; single server nodes are autonomous
- timeseries collection happens via a pull model over HTTP
- pushing timeseries is supported via an intermediary gateway
- targets are discovered via service discovery or static configuration
- multiple modes of graphing and dashboarding support
- federation support coming soon
Inspiring IOT
Came across a neat open source project for IOT platform, a framework to deal with interactions between IOT agents and server.
http://www.kaaproject.org
https://github.com/kaaproject/kaa
KAA Server is a server component written purely in JAVA
http://www.kaaproject.org
https://github.com/kaaproject/kaa
KAA Server is a server component written purely in JAVA
- spring MVC
- NoSQL
- Jenkins
- ...
KAA Client
https://github.com/kaaproject/kaa/tree/master/client/client-multi
Tuesday, December 8, 2015
kodi a personalized media manager
Kodi | Open Source Home Theatre Software
http://cyberrule.blogspot.com/2015/01/tamilkodi-xbmc-add-on-installation-guide.html
http://cyberrule.blogspot.com/2015/01/tamilkodi-xbmc-add-on-installation-guide.html
Tuesday, November 24, 2015
nodejs based web UI Shell Emulator
* Install nodejs in ubuntu
& sudo apt-get update
& sudo apt-get install nodejs
& sudo apt-get install npm
*git clone https://github.com/chjj/tty.js/
& nodejs install tty.js
& cd bin
&./tty.js --daemonize --port 3000
References :
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04
& sudo apt-get update
& sudo apt-get install nodejs
& sudo apt-get install npm
*git clone https://github.com/chjj/tty.js/
& nodejs install tty.js
& cd bin
&./tty.js --daemonize --port 3000
References :
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04
GPG Errors in ubuntu
W: GPG error: https://apt.dockerproject.org ubuntu-trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F76221572C52609D
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F76221572C52609D
sudo apt-get update
Tuesday, November 17, 2015
Setting up golang proto-gen-go
Here is the step by step directions:
- Download protoc-win32.zip from https://developers.
google.com/protocol-buffers/ docs/downloads - Unzip and add location of the protoc.exe to your PATH environment variable
- Run `protoc --version` from command prompt to verify
- Verify the your GOPATH environment variable is set
- Run `go get -u github.com/golang/protobuf/
protoc-gen-go` from command prompt. This should install the binary to %GOPATH%/bin - Add `%GOPATH%/bin` to your PATH environment variable
- Open a new command prompt, navigate to your .proto file, run `protoc --go_out=. *.proto`
NOTE: if you are running from a text editor or ide, you may need to reboot after modifying your environment variables
RabbitMQ and its nuances
I happened to work on AMQP/AMQPS implementation for one of our large server farms.
One side of the RMQ( Rabbit MQ) is in java and other side is in go lang,
Java RMQ Libraries
I had to set up a Executor
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
private final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("RmqExecutor-pool-%d").setDaemon(true).build();
private ExecutorService rmqExecutorService = Executors.newFixedThreadPool(1,threadFactory);
connection = factory.newConnection(rmqExecutorService);
With above code of creating a ThreadFactory and assigning this ExecutorService into
One side of the RMQ( Rabbit MQ) is in java and other side is in go lang,
Java RMQ Libraries
- https://www.rabbitmq.com/api-guide.html
I had to set up a Executor
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
private final ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("RmqExecutor-pool-%d").setDaemon(true).build();
private ExecutorService rmqExecutorService = Executors.newFixedThreadPool(1,threadFactory);
connection = factory.newConnection(rmqExecutorService);
With above code of creating a ThreadFactory and assigning this ExecutorService into
Advanced Connection options
Consumer thread pool
Consumer threads (see Receiving below) are automatically allocated in a new ExecutorService thread pool by default. If greater control is required supply an ExecutorService on the newConnection() method, so that this pool of threads is used instead. Here is an example where a larger thread pool is supplied than is normally allocated:
ExecutorService es = Executors.newFixedThreadPool(20); Connection conn = factory.newConnection(es);Both Executors and ExecutorService classes are in the java.util.concurrent package.
When the connection is closed a default ExecutorService will be shutdown(), but a user-suppliedExecutorService (like es above) will not be shutdown(). Clients that supply a custom ExecutorService must ensure it is shutdown eventually (by calling its shutdown() method), or else the pool’s threads may prevent JVM termination.
The same executor service may be shared between multiple connections, or serially re-used on re-connection but it cannot be used after it is shutdown().
Use of this feature should only be considered if there is evidence that there is a severe bottleneck in the processing of Consumer callbacks. If there are no Consumer callbacks executed, or very few, the default allocation is more than sufficient. The overhead is initially minimal and the total thread resources allocated are bounded, even if a burst of consumer activity may occasionally occur.
Tuesday, July 14, 2015
GO programming Collection
My recent exploration of writing GO programs, i had to refer below
http://www.goinggo.net
http://play.golang.org/
https://www.ardanlabs.com/hardcore-go
https://godoc.org/github.com/capnm/sysinfo
https://plus.google.com/+WilliamKennedy/posts
http://www.goinggo.net
http://play.golang.org/
https://www.ardanlabs.com/hardcore-go
https://godoc.org/github.com/capnm/sysinfo
https://plus.google.com/+WilliamKennedy/posts
Friday, June 5, 2015
Compiling protobuf
How to build protobuf
git clone https://github.com/google/protobuf.git
sudo apt-get update
sudo apt-get install autoconf
sudo apt-get install Libtool
./autogen
./configure
make
Build protobuf jars
git clone https://github.com/google/protobuf.git
sudo apt-get update
sudo apt-get install autoconf
sudo apt-get install Libtool
./autogen
./configure
make
Build protobuf jars
protoc --java_out=src/main/java -I../src \
../src/google/protobuf/descriptor.proto
Subscribe to:
Posts (Atom)