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 版本下发布的。