Skip to content

Instantly share code, notes, and snippets.

View zubairov's full-sized avatar

Renat Zubairov zubairov

View GitHub Profile
{
"name" : "WebHook to Mailchimp",
"nodes" : [
{
"action" : "elasticio/webhook:receive",
"config": {
"data1" : "value1"
}
},
{
@zubairov
zubairov / article.md
Last active August 4, 2016 14:07
Running a docker private registry on EC2

tl;dr This blog post describes the best way to host private Docker Registry instance on Amazon EC2 and Amazon S3. You can skip the lyrics and go to the 'Resources' section to get the ECS Task Definition JSON.

When working with microservices nowadays you can hardly avoid using Docker. After building your first Docker container your next step woudl be to share it with the world (or your colleauge). To achieve it you have three alternatives:

  1. Use a Docker Hub or any other SaaS registry.
  2. Deploy your own instance of open source Docker Registry project (now called 'Distribution').
  3. Buy an enterprise version of the Docker registry which is based on open source docker registry project with some addons from Docker Inc.

For a small project the Docker Hub 'way' is the best alternative, you can host one 'private' image for free, where commercial pricing plans will allow you to upload more. For a more serious projects we would like to re

"actions":{
"send":{
"main":"./send.js",
"title":"Send Mail",
"metadata": {
"in": {
"type": "object",
"properties": {
"to": {
"title":"To",

Log agregation for Docker containers in Mesos / Marathon cluster

This article will describe several alternatives for grathing Docker container logs in the distributed environment of__Apache Marathon / Mesos__ cluster, like Syslog, Container linking, Docker REST API, embedded logging piping stdout/stderr and Mesos APIs for that. We'll go though a problem statement, different alternatives and descibe the challenges related to each of them.

tl;dr: Docker REST API combined with intelligent 'docker inspect' hooks do a great job.

Background

At elastic.io we are building an integration platform for developers, with the best possible environment to code, test and run integration jobs or flows. Integration flow is a sequence of of integration components that are connected to each other. Each integration component is a individual process running in a Docker container that communicates via persistent RabbitMQ queue with the next component. We provide tooling and monitoring on to

Project plan

Project setup and preparation

task responsible entity status
Clarify requirements for syncing Customer Group Prices SchoolLocker
Providing NAV test instance as described below SchoolLocker
Provide Magento test instance as described below SchoolLocker
Asserting the results Elastic
{
"attributes":{
"type":"Lead",
"url":"/services/data/v25.0/sobjects/Lead/00QE000000Ft9AhMAJ"
},
"Id":"00QE000000Ft9AhMAJ",
"LastName":"Bar",
"FirstName":"Foo",
"Salutation":null,
"Title":null,
{
"page": 1,
"results_per_page": 20,
"results_size": 1,
"total_results_size": 1,
"total_pages": 1,
"next_page": null,
"prev_page": null,
"results": [
{
@zubairov
zubairov / posts.json
Created May 16, 2014 13:38
LinkedIn Groups JSON Sample
{
"attachment": {
"contentDomain": "fundrazr.com",
"contentUrl": "http://fundrazr.com/campaigns/6jQA1",
"imageUrl": "http://s3.amazonaws.com/fundrazr-platform/campaigns/fd5e5c9ab08f43e69f27726913baaccb.jpg",
"summary": "Decided to do 2 things this year. A full marathon and a full triathlon. So I thought it is a good oppertunity to raise some funds to a charity that I care about which is Childline.  I going to start with the triathlon at Wicklow Adventure Race .  ...",
"title": "Raising funds for childline"
},
"category": {
"code": "discussion"
{
"title":"Timer",
"description" : "A task that can be scheduled for one-time or repeated execution by a Timer.",
"fields":{
"interval":{
"viewClass":"SelectView",
"label":"Interval",
"required":true,
"model":{
"minute":"Every Minute",

This document describes generalized approach to describing contacts data based on analyzing various contact data sources.

First version of the generalized contact entity

The initial contacts widget implementation had the following fields:

  • Source.
  • Email.
  • Given name.
  • Family name.

Second version of the generalized contact entity