generator mitosis
1.0.0
微服務基礎設施自耕農生成器。 Mitosis 的靈感來自 AWS Cloudformation 和 Google Cloud Deployment Manager 等解決方案。
它允許開發人員使用很少的有絲分裂命令列來載入、組織、執行、發展、管理和停止微服務。
它利用以下解決方案/技術(alpha):
Vagrant
開發模式Ansible
配置Kubernetes/docker swarm
編排與複製 docker 容器ELK Stack
日誌分析Traefik
HTTP 反向代理Jenkins 2
CI/CD 微服務Aritfactory
工件部署Sonarqube
質量為了證明其效率,mitosis 產生 2 個預設微服務,使用 kafka 連接到事件匯流排
1 個消費者 NodeJS 和 1 個消費者 Apache Spark 和 1 個生產者 Java
您需要安裝以下內容才能使用此生成器。
NodeJS
、Node 6 或更高版本,以及 NPM 3 或更高版本。VirtualBox
(選購),使用版本 5.1.14 r112924 進行測試。Vagrant
(可選),版本 1.9.1 或更高版本。早期版本的 vagrant 可能無法工作。使用 Vagrant Ubuntu 16.04 盒子和網路配置。Ansible
(可選),使用版本 2.2.0 進行測試。Docker registry
(可選),至少一個 docker hub 帳戶。 npm install -g yo
npm install -g generator-mitosis
yo mitosis
產生的程式碼包含Vagrantfile
和關聯的Ansible
playbook 腳本,用於使用VirtualBox
和Ubuntu 16.04
(即將推出 CentOS7 和 CoreOS)配置節點 Kubernetes/Docker Swarm 叢集。
Vagrant 將啟動兩台機器。每台電腦都有一個經過 NAT 處理的網路介面(可透過此介面存取 Internet)和子網路 192.168.77.0/24 中的private-network
介面。專用網路用於集群內通訊。
創建的機器是:
姓名 | IP位址 | 角色 |
---|---|---|
應用程式名稱-manager1 | 192.168.77.21 | 集群管理器 |
應用程式名稱-worker1 | 192.168.77.31 | 節點工作者 |
應用程式名稱-workern | 192.168.77.3n | 節點工作者 |
vagrant up
完成後,以下指令和輸出應該在叢集管理器 ( appname-manager1 ) 上可見。
對於 Docker 群
vagrant ssh appname-manager1
docker service ls
ID NAME REPLICAS IMAGE COMMAND
654jtwzg8n8k jenkins replicated 2/2 mitosis/jenkins:1.0.0-alpha.0
7xrhx2d74b3l sonarqube replicated 2/2 mitosis/sonarqube:1.0.0-alpha.0
9y8ycnri8e3s kibana replicated 1/1 kibana:5.2.0
m4n86is529p0 viz replicated 1/1 manomarks/visualizer:latest
n49nex6feeh8 artifactory replicated 2/2 mitosis/artifactory:1.0.0-alpha.0
ncccc0wi7j2l registry global 2/2 registry:2
p7znkv9p41sx portainer replicated 1/1 portainer/portainer:1.11.3
r8dznb7p4dpj logstash replicated 1/1 logstash:5.2.0
vxlnldtnrdlh traefik replicated 1/1 traefik:v1.1.2
wmgihhys4z9j elasticsearch replicated 1/1 elasticsearch:5.2.0
docker service inspect --pretty artifactory
ID: 3ou58zc7xlrwwegyh40xxcuq0
Name: artifactory
Mode: Replicated
Replicas: 2
Placement:
UpdateConfig:
Parallelism: 1
On failure: pause
ContainerSpec:
Image: mitosis/artifactory:1.0.0-alpha.0
Resources:
Networks: atqmyyz6jctr34t64o69tyolu
Ports:
Protocol = tcp
TargetPort = 8080
PublishedPort = 9999
對於 Kubernetes
vagrant ssh appname-manager1
kubectl -n appname get service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
artifactory 10.108.148.112 <nodes> 9999:30003/TCP 35m
jenkins 10.105.77.103 <nodes> 8082:30001/TCP 35m
sonarqube 10.102.141.79 <nodes> 9000:30002/TCP 35m
traefik 10.107.95.12 <nodes> 8080:30004/TCP 35m
kubectl describe svc artifactory -n appname
Name: artifactory
Namespace: appname
Labels: name=artifactory
Selector: name=artifactory
Type: NodePort
IP: 10.108.148.112
Port: <unset> 8080/TCP
NodePort: <unset> 9999/TCP
Endpoints: <none>
Session Affinity: None
vagrant destroy -f && vagrant --caas-mode=swarm up // or vagrant --caas-mode=k8s up
預計測試版:
mi create/delete my_microservice.yml
serverless-playground
)。bigdata-playground
)。您可以透過Trello
上的公共 Mitosis 板來追蹤 Mitosis 的發展
歡迎Pull requests
;
有絲分裂產生器是根據 Apache 授權 2.0 版發布的。