{ "info": { "author": "Da_Blitz", "author_email": "code@pocketnix.org", "bugtrack_url": null, "classifiers": [], "description": "Fission\n========\nFission is static job scheduling program designed to help you run \nworkloads across multiple machines you have ssh access to. while\nprimarily aimed at container based workloads, arbitrary jobs can be\nrun and managed using fission\n\naccompanying tools will be provided for firewall generation and \nnetwork setup as well as hooks to tie into existing ip allocation\nmechanisms\n\nCaveats\n-------\nthe static nature of fission means it is unable to respond to\nevents such as nodes going down in real time like other software\nin the same space (mesos, kerbernatues, docker swarm). this can \nbe mitigated to a degree by having your monitoring system invoke\nor trigger a run of fission on a remote machine. allowing the \nstate of the system to be recalculated and adjusted as required\n\n\nFeatures\n---------\n* Yaml files and symlinks\n* Static setup will not change things behind your back\n* great for small number of hosts or home setups\n* generate firewall policies\n* wire up networking\n* only requires ssh access\n* Audit existing setup and how it differs to desired setup\n\nDesign Goals\n------------\n* Be simple in code, design and use\n* Only do what it should be doing\n* Be extensible\n* Be easy to introspect\n\nTerminology\n-----------\nLike all container software out there, fission makes a mediocre \nattempt to stay in line with the terminology used by other solutions\nand invents new terms where appropriate to confuse users\n\nNodes\n#####\nNodes are simply hosts you have ssh access to that run jobs. Nodes\nthemselves can also be created from jobs for simulating topologies\n\nJobs\n####\nJobs are the workload that fission is managing and running across\nmultiple nodes for you. this is generally a container workload\nbut may also be simple program\n\nFacts\n#####\nFacts are used for selecting which nodes are suitable candidates for\na particular job, eg some nodes may export a HAS_SSD fact that a \nhigh performance disk IO heavy job (eg mysql) may want to select on\n\nExtras\n######\nIf you are using symlinks to templates that expand on the filename\n(eg collection of jobs) then there may be occasions where you want\nto override specific facts (eg code or machine upgrades). normally\nthis would involve updating the config file but as this is symlinked\nyou end up affecting all hosts. the solution for this is a '.extras'\nfile containing additional information that is overplayed on the top\nof the config to allow further customization allowing you to override\na subset or all hosts with information to complete the migration\nbefore updating the main template\n\nTags\n####\ntags are used to limit or select a subset of nodes or jobs, eg for \nlisting purposes. tags can also be used for allocation in a similar\nmanner to facts above however the use of facts is recommended. The\nexception to this rule being geographical placement (ie only allocate\non rack37)\n\nif you need to negate a tag, prepending it with '-' can be used to \nindicate that you want to remove an object from selection if it has\nthis tag. for cli parsing, arguments starting with '-' are interpreted\nas flags and as such if you only need to specify negation an empty\ntag can be placed at the beginning of the list to prevent the \ntag from being interpreted as a cli flag eg \",-physical,-slow\"\n\nAll jobs are tagged with the 'job' tag and all nodes with the 'node'\ntag to make selection easier (eg all nodes but a subset of jobs or \na subset of nodes and all jobs). this can also be used with negation\nto 'carve away' unwanted nodes instead of adding them in.\n\nAll jobs and nodes are tagged with their hostname prepended with '@'\nthis is to facilitate the selection of individual nodes that may\nnot have a unique tag eg \"@mymachine1,@mymachine2,@mymachine30\"\n\nFilters\n#######\nFilters are the counterpart to the tag. These are used by jobs to\nlimit placement decisions. This may be helpful for compliance \n(credit card processing only on nodes tagged 'pci-compliant') or\nto limit jobs to geographical region\n\nFilters may or may not be used to select based on facts, this is\ncurrently undecided due to complexity (ie only on mem > 300MB)\n\n\nTesting\n-------\nfission uses py.test for testing and supports tox for building\nthe environments. if py.test is not installed system-wide for \npython 3 then build a virtual environment with the following commands\n(python 3.4 or newer)\n\n $ python3.4 -m venv venv\n $ . venv/bin/activate\n $ pip install pytest\n\nrunning the tests is then as simple as\n\n $ . venv/bin/activate\n $ py.test", "description_content_type": null, "docs_url": null, "download_url": "http://blitz.works/fission", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://blitz.works", "keywords": "container", "license": "MIT BSD", "maintainer": null, "maintainer_email": null, "name": "fission", "package_url": "https://pypi.org/project/fission/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fission/", "project_urls": { "Download": "http://blitz.works/fission", "Homepage": "http://blitz.works" }, "release_url": "https://pypi.org/project/fission/0.1/", "requires_dist": null, "requires_python": null, "summary": "Container managment software", "version": "0.1" }, "last_serial": 2003028, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d03de1ed3ada7ceb92732298fc2c788c", "sha256": "5eafe8568f8a320708cdf09273120274226a6889bcf1ceae00359fa421cb102b" }, "downloads": -1, "filename": "fission-0.1.zip", "has_sig": false, "md5_digest": "d03de1ed3ada7ceb92732298fc2c788c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32023, "upload_time": "2016-03-12T14:43:44", "url": "https://files.pythonhosted.org/packages/8d/35/d7072334d433a4c7d2e1d1feaceec88d890eb0a8ae1eb4e7f0884b9c287d/fission-0.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d03de1ed3ada7ceb92732298fc2c788c", "sha256": "5eafe8568f8a320708cdf09273120274226a6889bcf1ceae00359fa421cb102b" }, "downloads": -1, "filename": "fission-0.1.zip", "has_sig": false, "md5_digest": "d03de1ed3ada7ceb92732298fc2c788c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32023, "upload_time": "2016-03-12T14:43:44", "url": "https://files.pythonhosted.org/packages/8d/35/d7072334d433a4c7d2e1d1feaceec88d890eb0a8ae1eb4e7f0884b9c287d/fission-0.1.zip" } ] }