Generator infrastruktur layanan mikro. Mitosis terinspirasi dari solusi seperti AWS Cloudformation dan Google Cloud Deployment Manager.
Hal ini memungkinkan pengembang untuk memuat, mengatur, mengeksekusi, mengembangkan, mengelola, dan menghentikan layanan mikro menggunakan beberapa baris perintah mitosis.
Dan Ini memanfaatkan solusi/teknologi berikut (alfa):
Vagrant
Ansible
Kubernetes/docker swarm
mengatur dan mereplikasi container buruh pelabuhanELK Stack
Traefik
HTTPJenkins 2
CI/CD layanan mikro menggunakan Job DSL dan Pipeline JobAritfactory
Sonarqube
Untuk membuktikan efisiensinya, mitosis menghasilkan 2 layanan mikro default, terhubung ke bus peristiwa menggunakan kafka
1 konsumen NodeJS & 1 konsumen Apache Spark & 1 produsen Java
Anda perlu menginstal yang berikut ini untuk menggunakan generator ini.
NodeJS
, Node 6 atau lebih tinggi, bersama dengan NPM 3 atau lebih tinggi.VirtualBox
(opsional), diuji dengan Versi 5.1.14 r112924.Vagrant
(opsional), versi 1.9.1 atau lebih baik. Versi gelandangan yang lebih lama mungkin tidak berfungsi. dengan kotak Vagrant Ubuntu 16.04 dan konfigurasi jaringan.Ansible
(opsional), diuji dengan Versi 2.2.0.Docker registry
(opsional), setidaknya akun hub buruh pelabuhan. npm install -g yo
npm install -g generator-mitosis
yo mitosis
Kode yang dihasilkan berisi Vagrantfile
dan skrip playbook Ansible
terkait untuk menyediakan cluster node Kubernetes/Docker Swarm menggunakan VirtualBox
dan Ubuntu 16.04
(segera CentOS7 & CoreOS).
Vagrant akan menyalakan dua mesin. Setiap mesin akan memiliki antarmuka jaringan ber-NAT, yang dapat digunakan untuk mengakses Internet, dan antarmuka private-network
di subnet 192.168.77.0/24. Jaringan pribadi digunakan untuk komunikasi intra-cluster.
Mesin yang dibuat adalah:
NAMA | ALAMAT IP | PERAN |
---|---|---|
nama aplikasi-manajer1 | 192.168.77.21 | Manajer Klaster |
nama-pekerja1 | 192.168.77.31 | Pekerja Node |
pekerja nama aplikasi | 192.168.77.3n | Pekerja Node |
Setelah vagrant up
selesai, perintah dan output berikut akan terlihat di manajer cluster ( appname-manager1 ).
Untuk kawanan 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
Untuk Kubernet
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
Diharapkan untuk versi beta:
mi create/delete my_microservice.yml
serverless-playground
).bigdata-playground
). Anda dapat mengikuti perkembangan Mitosis melalui papan Mitosis publik di Trello
Pull requests
dipersilakan;
Generator mitosis dirilis di bawah Lisensi Apache versi 2.0.