Sponsored Content
Top Forums UNIX for Advanced & Expert Users Recruiting for an open source project Post 302905867 by steadyonabix on Sunday 15th of June 2014 03:56:07 PM
Old 06-15-2014
Good advice, thanks.

I might be getting ahead of myself here as I'm not able to release the current version I have working at my employers site. The code contains too many references to proprietary server and project names.

It was only ever intended as a Proof of concept, but of course it then became so useful we couldn't do without it.

I should explain that I work as a senior test analyst with a heavy emphasis on automation across a cluster of server types that host an online Security as a Service suite of applications. This is my 41st year in engineering and I have been developing the new automation harness with a view to replacing continuous integration as a code promotion model with something inherently agile.

My idea is that no developer or tester ever works on a cluster that is more than 24 hours behind production.

To do that I have designed an agile code promotion model and am developing an automation harness that will not only test a release but become a part of the deliverable itself. Having tested that the upgrade and rollback work, it will then deliver the code to the production environment and deploy it.

The POC using blocking ssh connections and is not able to maintain state, and so doesn't meet the requirement. Although I am currently using it for integration, resilience and OAT testing. It runs thousands of distributed tests several times a day via Jenkins, so the development team know within a few hours if they have checked in any duff code. Its doing stuff like jumping on to servers and creating firewall rules to block ports being used by the application under test. As well as consuming disk space on critical servers, leaking memory. For integration testing, its configuring a distributed application, (a data warehouse), with different configurations. Loading data, running 800+ queries through a WREST API and confirming that each returns the expected results for that query against that data set.

I did a presentation on this to a large multinational telecom giant recently, and they offered me Technical Release Manager, but I turned them down as they wanted to close source MUSE.
I haven't put this much effort into it to just sign it away like that.

==========

My new version comprises of a master server running as a state machine and it launches slaves that are also state machines. The communicate via a secure messaging service.

Between the state machines and the messaging service, I am able to implement event driven code on the master that reacts to failures on the slaves and takes appropriate action for the failure type, (Fatal, non fatal). All plugins run by the slaves produce reports that are collected on the master and summarised by the application itself. Typically I am summarising tens of thousands of lines of output from a little over 1600 plugins on every run. Because - via a simple mechanism - I can customise what constitutes an error for each plugin, I can reduce all of that output to a summary file that tells me that an error exists in a single report. So I can immediately home in on the problem without having to wade through every report.

I am hoping that the security model I have implemented - using single purpose keys - will prove effective enough for adoption ion the financial services sector.

And I have implemented all of the above in bash would you believe...

I chose bash shell for two main reasons -

1) It is everywhere. At my last place of employment in the banking industry, the security teams would not allow us to install any languages onto the production servers. So we had to implement all of our tools in shell.
2) By using shell, (rather than stepping down to the shell from a high level language and making system calls), I have been able to leverage tools written in any language. Because the plugins run by the slaves provide a SHELL, (not a shell script) on the remote host, I can run any tool written in any language that can be run on that host. Therefore people picking up the harness can leverage their existing toolsets without refactoring and so hit the ground running.

All of the development has taken place in my spare time for my own amusement, (with the exception of the suites and plugins for my employer).
Frankly, I want my life back Smilie
So I need help in the areas mention in my OP.

With regard to putting together an open source community, you can see from my OP that I am pretty clueless and would appreciate it if I could find someone with experience of pulling something like this together. Keeping it organised and building up a presence on the web. The thought of doing all of that in addition to all the work I am doing already is enough to make me shudder frankly. You can see from the amount of time it took me to reply that I am swamped right now and just don't have the time to keep up with it. Coming back to this every other weekend has killed my velocity and I don't think I'll get it back without collaborating with someone else.

My top priority is finding someone who can sort out hosting a collaborative development site and someone who is experienced enough to be able to review my code and design. When you develop something this big on your own, you inevitably end up with all sorts of defects and design flaws that you don't get time to address as you need to move onto the next part of the framework.

So if you are a good scripter who enjoys distributed automation, and you know what a state machine is and how to understand it, I'd appreciate hearing from you.

==========

With regard to making it a project for the community here, that's probably a great idea. Particularly if I don't have to organise it.
 

2 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Open source project

Hi Guys, This might not be the right place to ask but I want to contribute to some open source project. Can anyone please help me to how to start and where to start? (3 Replies)
Discussion started by: tapan singh
3 Replies

2. Shell Programming and Scripting

Feedback on "withsome" open source project

I have been developing an open source UNIX project for a few years and am looking for feedback on whether further development of the "withsome" project is of interest to other programmers. One simple example to give an idea of the project is: withsome ./pugs vi Pugs.pm 1)... (0 Replies)
Discussion started by: ronaldxs
0 Replies
All times are GMT -4. The time now is 04:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy