[ 
https://issues.apache.org/jira/browse/SAMZA-468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Riccomini updated SAMZA-468:
----------------------------------
    Attachment: SAMZA-468-1.patch

[~navina] and I would like to propose that we use 
[Zopkio](https://github.com/linkedin/Zopkio) for Samza's integration test 
framework. Zopkio is a basic set of scripts that can be used to help manage the 
lifecycle of tests for distributed systems such as Samza, Kafka, etc. 
Distributed systems typically start with a few convenient scripts to manage the 
setup/teardown of their integration tests. Problems with this approach are:

# The scripts quickly evolve into a mess of system-specific spaghetti code.
# There is no code sharing between projects that are doing similar distributed 
systems testing (log aggregation, performance testing, test lifecycle 
management, deployment, reporting), so a lot of work is duplicated.

Zopkio is a library that's meant to address these problems, and a few others. 
The library also has nice integration with 
[Naarad|https://github.com/linkedin/naarad], which can be used to gather 
performance data about all of the tests being run (including integration with 
[SAR](http://linux.die.net/man/1/sar), GC logs, etc). Rather than write 
yet-another system-specific integration test suite, Navina and I took a stab at 
implementing Samza's integration tests using Zopkio.

While it's true that Zopkio is still a young framework, I'm aware of at least 
one other distributed system that's working on using it, and a second that will 
likely convert in the near future. Even if no one else converts, it seems ideal 
to leverage a library that already exists, rather than write our own.

Please have a look and provide feedback. Here are some screenshots to give 
everyone a feel for what we get:

!https://issues.apache.org/jira/secure/attachment/12688759/zopkio1.png|thumbnail!
!https://issues.apache.org/jira/secure/attachment/12688760/zopkio2.png|thumbnail!
!https://issues.apache.org/jira/secure/attachment/12688761/zopkio3.png|thumbnail!
!https://issues.apache.org/jira/secure/attachment/12688762/zopkio4.png|thumbnail!
!https://issues.apache.org/jira/secure/attachment/12688763/zopkio5.png|thumbnail!

Attaching patch. RB at:

  https://reviews.apache.org/r/29342/

* Added {{bin/integration-tests.sh}} script to run integration tests.
* Wrote a deployment script, which is responsible for starting up YARN, 
ZooKeeper, and Kafka, and installing all Samza test jobs.
* Wrote a Samza job deployer for YARN. Manages install/start/stop/uninstall 
lifecycle of Samza jobs in a YARN grid. Meant to be used with yarn.package.path 
URIS that are file:/// URIs.
* Wrote a simple smoke test suite that runs a single job (NegateNumbers).
* Updated {{contribute/tests.md}} and {{README.md}} to document integration 
tests.
* Moved tests from SAMZA-14 into samza-test directory.

Notes:

* Please download and try this. I hit some SSH key turbulence when I initially 
began. I'd like to make sure the scripts are as hardened as possible.
* SAMZA-14 tests are not yet migrated executed.
* Integration tests are currently executed locally on the machine from which 
{{bin/integration-tests.sh}} was executed.

Follow on JIRAs:

# Migrate existing integration tests (stateful task, join jobs).
# Hook [Naarad|https://github.com/linkedin/naarad] up, so we get performance 
metrics (GC, etc).
# Update log paths in perf.py to point to YARN container logs dir when [Zopkio 
#17|https://github.com/linkedin/Zopkio/issues/17] is resolved.
# Use a proper python package instead of CP'ing the raw scripts in 
{{bin/integration-tests.sh}}.
# Support multi-node integration tests.

> Create an integration test suite
> --------------------------------
>
>                 Key: SAMZA-468
>                 URL: https://issues.apache.org/jira/browse/SAMZA-468
>             Project: Samza
>          Issue Type: Test
>          Components: test
>            Reporter: Navina Ramesh
>            Assignee: Navina Ramesh
>         Attachments: SAMZA-468-1.patch, SAMZA-INT-TEST.patch, zopkio1.png, 
> zopkio2.png, zopkio3.png, zopkio4.png, zopkio5.png
>
>
> We don't have a standardized test framework for integration tests. This task 
> explores Zopkio as a potential test framework and prototypes a simple 
> functional integration test for Samza.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to