[
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)