{"id":13563390,"url":"https://github.com/Chabane/generator-mitosis","last_synced_at":"2025-04-03T20:30:40.450Z","repository":{"id":14065053,"uuid":"75561374","full_name":"Chabane/generator-mitosis","owner":"Chabane","description":"A micro-service infrastructure generator based on Yeoman/Chatbot, Kubernetes/Docker Swarm, Traefik, Ansible, Jenkins, Spark, Hadoop, Kafka, etc.","archived":false,"fork":false,"pushed_at":"2022-12-06T19:48:29.000Z","size":704,"stargazers_count":78,"open_issues_count":6,"forks_count":23,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-04-14T12:31:07.199Z","etag":null,"topics":["ansible","chatbot","docker","elasticsearch","golang","jenkins","kafka","kibana","kubernetes","logstash","machine-learning","rust","sonarqube","spark","swarm","traefik","vagrant","yeoman-generator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chabane.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-04T20:07:36.000Z","updated_at":"2024-01-27T09:15:08.000Z","dependencies_parsed_at":"2023-01-13T20:00:14.474Z","dependency_job_id":null,"html_url":"https://github.com/Chabane/generator-mitosis","commit_stats":null,"previous_names":["nirbyapp/generator-mitosis"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chabane%2Fgenerator-mitosis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chabane%2Fgenerator-mitosis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chabane%2Fgenerator-mitosis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chabane%2Fgenerator-mitosis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chabane","download_url":"https://codeload.github.com/Chabane/generator-mitosis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222988761,"owners_count":17069279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","chatbot","docker","elasticsearch","golang","jenkins","kafka","kibana","kubernetes","logstash","machine-learning","rust","sonarqube","spark","swarm","traefik","vagrant","yeoman-generator"],"created_at":"2024-08-01T13:01:18.700Z","updated_at":"2024-11-04T16:30:29.321Z","avatar_url":"https://github.com/Chabane.png","language":"JavaScript","readme":"# Mitosis - Microservices infrastructure generator\n\n\u003ch1\u003eThis repo is severely outdated!\u003c/h1\u003e\n\n[![npm version](https://badge.fury.io/js/generator-mitosis.svg)](https://badge.fury.io/js/generator-mitosis)\n[![build](https://travis-ci.org/Chabane/generator-mitosis.svg?branch=master)](https://travis-ci.org/Chabane/generator-mitosis)\n[![coverage](https://codecov.io/gh/Chabane/generator-mitosis/branch/master/graph/badge.svg)](https://codecov.io/gh/Chabane/generator-mitosis)\n[![dependency](https://david-dm.org/Chabane/generator-mitosis.svg?theme=shields.io)](https://david-dm.org/Chabane/generator-mitosis)\n\nA microservices infrastructure yeoman generator. Mitosis is inspired from solutions like AWS Cloudformation and Google Cloud Deployment Manager.\n\nIt allows developers to load, organize, execute, evolve, administrate and stop microservices using few mitosis commands lines.\n\nAnd It takes advantage of the following solutions/technologies (alpha):\n\n- `Vagrant` development mode \n- `Ansible` provisionning\n- `Kubernetes/docker swarm` orchestrate and replicate docker containers\n- `ELK Stack` log analytics\n- `Traefik` HTTP reverse proxy\n- `Jenkins 2` CI/CD of microservices using Job DSL and Pipeline Job\n- `Aritfactory` artefacts deployment\n- `Sonarqube` quality\n\nTo prove it efficiency, mitosis generates 2 default microservices, connected to an event's bus using kafka\n\n1 consumer [NodeJS](https://github.com/Chabane/mitosis-microservice-nodejs-angular) \u0026 1 consumer [Apache Spark](https://github.com/Chabane/mitosis-microservice-spark-cassandra) \u0026 1 producer [Java](https://github.com/Chabane/mitosis-microservice-spring-reactor)\n\n\u003cimg src=\"http://chabanerefes.info/prez_1/images/swarm_diagramme.png\"/\u003e\n\n### Prerequisites\nYou need the following installed to use this generator.\n- [`NodeJS`](https://nodejs.org/en/download/), Node 6 or higher, together with NPM 3 or higher.\n- [`VirtualBox`](https://www.virtualbox.org/wiki/Downloads) (optional), tested with Version 5.1.14 r112924.\n- [`Vagrant`](https://www.vagrantup.com/docs/installation/) (optional), version 1.9.1 or better. Earlier versions of vagrant may not work.\nwith the Vagrant Ubuntu 16.04 box and network configuration.\n- [`Ansible`](http://docs.ansible.com/ansible/intro_installation.html) (optional), tested with Version 2.2.0. \n- `Docker registry` (optional), at least a docker hub account.\n- Internet access, this generator pulls Vagrant boxes from the Internet as well\nas installs Ubuntu application packages from the Internet.\n\n### Getting started\n\n```\nnpm install -g yo\nnpm install -g generator-mitosis\nyo mitosis\n```\n\nThe code generated contains a `Vagrantfile` and associated `Ansible` playbook scripts\nto provisioning a nodes Kubernetes/Docker Swarm cluster using `VirtualBox` and `Ubuntu\n16.04` (CentOS7 \u0026 CoreOS soon).\n\nVagrant will start two machines. Each machine will have a NAT-ed network\ninterface, through which it can access the Internet, and a `private-network`\ninterface in the subnet 192.168.77.0/24. The private network is used for\nintra-cluster communication.\n\nThe machines created are:\n\n| NAME | IP ADDRESS | ROLE |\n| --- | --- | --- |\n| appname-manager1 | 192.168.77.21 | Cluster Manager |\n| appname-worker1 | 192.168.77.31 | Node Worker |\n| appname-workern | 192.168.77.3n | Node Worker |\n\nAfter the `vagrant up` is complete, the following command and output should be\nvisible on the cluster manager (**appname-manager1**).\n\nFor Docker-swarm\n```\nvagrant ssh appname-manager1\ndocker service ls \n```\n```\nID            NAME            REPLICAS  IMAGE                COMMAND\n654jtwzg8n8k  jenkins        replicated  2/2       mitosis/jenkins:1.0.0-alpha.0\n7xrhx2d74b3l  sonarqube      replicated  2/2       mitosis/sonarqube:1.0.0-alpha.0\n9y8ycnri8e3s  kibana         replicated  1/1       kibana:5.2.0\nm4n86is529p0  viz            replicated  1/1       manomarks/visualizer:latest\nn49nex6feeh8  artifactory    replicated  2/2       mitosis/artifactory:1.0.0-alpha.0\nncccc0wi7j2l  registry       global      2/2       registry:2\np7znkv9p41sx  portainer      replicated  1/1       portainer/portainer:1.11.3\nr8dznb7p4dpj  logstash       replicated  1/1       logstash:5.2.0\nvxlnldtnrdlh  traefik        replicated  1/1       traefik:v1.1.2\nwmgihhys4z9j  elasticsearch  replicated  1/1       elasticsearch:5.2.0\n```\n```\ndocker service inspect --pretty artifactory \n```\n```\nID:\t\t3ou58zc7xlrwwegyh40xxcuq0\nName:\t\tartifactory\nMode:\t\tReplicated\n Replicas:\t2\nPlacement:\nUpdateConfig:\n Parallelism:\t1\n On failure:\tpause\nContainerSpec:\n Image:\t\tmitosis/artifactory:1.0.0-alpha.0\nResources:\nNetworks: atqmyyz6jctr34t64o69tyolu\nPorts:\n Protocol = tcp\n TargetPort = 8080\n PublishedPort = 9999\n```\n\nFor Kubernetes\n```\nvagrant ssh appname-manager1\nkubectl -n appname get service \n```\n```\nNAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE\nartifactory      10.108.148.112   \u003cnodes\u003e       9999:30003/TCP   35m\njenkins          10.105.77.103    \u003cnodes\u003e       8082:30001/TCP   35m\nsonarqube        10.102.141.79    \u003cnodes\u003e       9000:30002/TCP   35m\ntraefik          10.107.95.12     \u003cnodes\u003e       8080:30004/TCP   35m\n```\n```\nkubectl describe svc artifactory -n appname \n```\n```\nName:                   artifactory\nNamespace:              appname\nLabels:                 name=artifactory\nSelector:               name=artifactory\nType:                   NodePort\nIP:                     10.108.148.112\nPort:                   \u003cunset\u003e 8080/TCP\nNodePort:               \u003cunset\u003e 9999/TCP\nEndpoints:              \u003cnone\u003e\nSession Affinity:       None\n```\n\n### Switch to another orchestrator\n```\nvagrant destroy -f \u0026\u0026 vagrant --caas-mode=swarm up // or vagrant --caas-mode=k8s up\n```\n### Availables soon\n\nExpected for the beta version :\n - Provisioning of a single server (Docker-compose/MiniKube)\n - Deployment on AWS, GCE, OpenStack, CloudStack, etc.\n - Registering/unregistering of micro services `mi create/delete my_microservice.yml`\n - Add security (SSL/TLS, SELinux, etc.)\n - UI Responsiveness Monitoring\n - Serverless infrastructure (sub project : [`serverless-playground`](https://github.com/Chabane/serverless-playground)).\n - Big Data infrastructure (sub project : [`bigdata-playground`](https://github.com/Chabane/bigdata-playground)).\n - Add new default microservices : Rocket (Rust), Iris (Go), Django (Python), iOT (Akka Actors)\n - Add new solutions like : Rancher, Chef, Puppet, Terraform, HAProxy, etc.\n\n### Follow the development\nYou can follow the development of Mitosis via the public Mitosis board on [`Trello`](https://trello.com/b/TCgfbNXK/mitosis)\n\n## Contributing\n`Pull requests` are welcome;\n\n## License\nMitosis generator is released under version 2.0 of the [Apache License](LICENSE).\n","funding_links":[],"categories":["JavaScript","chatbot","vagrant"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChabane%2Fgenerator-mitosis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FChabane%2Fgenerator-mitosis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChabane%2Fgenerator-mitosis/lists"}