cheap medications premarin 1.25mg tablets estrogen contents, cheap medications buy wellbutrin no rx needed, cheap online buy baclofen online, cheap online order flagyl er pay pal online without prescription, pharmacy cheapest where to buy buy doxycycline online, online cheap medications buy overnight delivery lasix fedex, buy cheap purchase diflucan, cheap online buy neurontin online overnight cod, cheap pharmacy fedex acyclovir overnight without a rx, order cheap what is norvasc, buying cheap buy arimidex free consultation,

存档

2018年6月 的存档

Consul服务发现和容器化DNS服务

2018年6月29日 没有评论

服务发现 – consul 的介绍、部署和使用

Consul架构

Image

Consul角色:

  • client: 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群;
  • server: 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯。

Consul使用场景:

  • Docker 实例的注册与配置共享
  • CentOS 实例的注册与配置共享
  • DC/OS 集群
  • SaaS 应用的配置共享
  • 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

资源:

初体验下:

$ docker pull consul
启动节点1(server)

docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node1 consul agent -server -bind=172.17.0.2  -bootstrap-expect=3 -node=node1

启动节点2、3(server)
docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node2 consul agent -server -bind=172.17.0.3  -join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node2

docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' --name=node3 consul agent -server -bind=172.17.0.4  -join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node3 -client=172.17.0.4

启动节点4(client)
docker run -d -e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' --name=node4 consul agent -bind=172.17.0.5 -retry-join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}')  -node=node4

查看集群
docker exec -t node1 consul members

consul

$ docker run -p 8500:8500 consul

2018/04/09 06:55:50 [INFO] agent: Started DNS server 0.0.0.0:8600 (tcp)

2018/04/09 06:55:50 [INFO] agent: Started DNS server 0.0.0.0:8600 (udp)

2018/04/09 06:55:50 [INFO] agent: Started HTTP server on [::]:8500 (tcp)

http://127.0.0.1:8500/ui/

consul-01

Consul通过8600端口提供DNS服务

Consul Forwarding DNS 支持 BIND, dnsmasq, Unbound, and iptables

Dnsmasq a lightweight, caching DNS proxy with integrated DHCP server.

Consul DNS 转发配置到 dnsmasq

/etc/dnsmasq.d/10-consul

# Enable forward lookup of the 'consul' domain:
server=/consul/127.0.0.1#8600

# Uncomment and modify as appropriate to enable reverse DNS lookups for
# common netblocks found in RFC 1918, 5735, and 6598:
#rev-server=0.0.0.0/8,127.0.0.1#8600
#rev-server=10.0.0.0/8,127.0.0.1#8600
#rev-server=100.64.0.0/10,127.0.0.1#8600
#rev-server=127.0.0.1/8,127.0.0.1#8600
#rev-server=169.254.0.0/16,127.0.0.1#8600
#rev-server=172.16.0.0/12,127.0.0.1#8600
#rev-server=192.168.0.0/16,127.0.0.1#8600
#rev-server=224.0.0.0/4,127.0.0.1#8600
#rev-server=240.0.0.0/4,127.0.0.1#8600

重启dnsmasq

使用dnsmasq镜像

$ docker pull andyshinn/dnsmasq

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq --address /api.test.com/127.0.0.1

$ ping api.test.com
PING api.test.com (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.050 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.060 ms

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq -S /consul/10.17.0.2

dnsmasq和consul是不同定位的产品,但可以工作在一起。

mesos-consul:Mesos to Consul bridge for service discovery  将Consul引入Mesos。


OpenShift PaaS 容器云安装

2018年6月28日 没有评论

跨过Mesos直接在CentOS上部署OpenShift,由Kubernetes管理Docker集群。

参考架构

OpenShift

更多OpenShift细节>>>

使用Minishift快速部署。

$ brew install --HEAD xhyve
$ brew cask install minishift
$ brew install docker-machine-driver-xhyve
$ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
$ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
$ minishift start
$ minishift oc-env
$ oc new-app https://github.com/openshift/nodejs-ex -l name=myapp
$ oc logs -f bc/nodejs-ex
$ oc expose svc/nodejs-ex
$ minishift openshift service nodejs-ex --in-browser
$ minishift stop

minishift start的结果

Image pull complete

OpenShift server started.

The server is accessible via web console at:

https://192.168.64.2:8443

You are logged in as:

User:     developer

Password: <any value>

To login as administrator:

oc login -u system:admin

Could not set oc CLI context for: minishift

https://192.168.64.2:8443 system/admin

正在部署一个Java应用

openshift-jee

App运行

openshift-jee-02

在192.168.0.249通过minishift的方式安装openshift,遇到以下问题:minishift Checking if Libvirt default network is active … FAIL 

通过下载其它用户提供的minishift版本,问题解决。

minishift oc-env

export PATH=”/root/.minishift/cache/oc/v3.6.0:$PATH”

存在的问题无法Pulling image openshift/origin:v3.6.0,反复minishift stop & minishift strt

或直接下载OpenShift Origin安装包直接安装。

wget https://github.com/openshift/origin/releases/download/v3.7.1/openshift-origin-server-v3.7.1-ab0f056-linux-64bit.tar.gz

ln -s openshift-origin-server-v3.7.1-ab0f056-linux-64bit /opt/openshift

vim /etc/profile

PATH=$PATH:/opt/openshift/

source /etc/profile

openshift version

openshift start

启动存在的问题

created clusterrolebinding.rbac.authorization.k8s.io/system:openshift:controller:deployer-controller

F0228 11:12:06.622842    6175 node.go:264] failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: “systemd” is different from docker cgroup driver: “cgroupfs”

vim /etc/docker/daemon.json

“exec-opts”: [“native.cgroupdriver=systemd”]

$ cat /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=systemd --storage-driver=overlay

OK

https://192.168.0.249:8443

dev/dev

openshift-01

openshift-02

创建本地镜像仓库

openshift-03

openshift-04

web控制面板出现

openshift-05

172.30.2.245:5000Push image出错

error: build error: Failed to push image: Get https://172.30.2.245:5000/v1/_ping:http: server gave HTTP response to HTTPS client

需修改docker的配置让docker以非https的方式连接到registry。

[root@localhost system]# vim /etc/docker/daemon.json 注意后面有,

{

“registry-mirrors”: [“https://registry.docker-cn.com“],

“insecure-registry”: [“https://172.30.0.0/16“],

“exec-opts”: [“native.cgroupdriver=systemd”]

}

修改 “insecure-registry”: [“https://172.30.0.0/16“], 为

“insecure-registries”: [“172.30.2.245:5000”],

然后 systemctl daemon-reload & systemctl restart docker

镜像发布成功

openshift-06

参考 https://github.com/openshift/origin/tree/master/examples 多实验一些例子。

使用Cockpit管理OpenShift集群和容器

openshift-07

root:123456

使用APIMan做API网关,服务治理。

http://www.apiman.io/

oc new-app apiman/on-wildfly10:1.3.1.Final 或

https://github.com/openshift/origin-apiman

传统安装 http://www.apiman.io/latest/installation-guide.html

kong拥有更多优势,使用kong

https://github.com/john-deng/kong-openshift


分类: Cloud Computing, Java, OpenShift 标签:

数据模型

2018年6月28日 没有评论

数据模型是电商ERP的核心,数据模型的设计、数据存储方式将决定最后的应用和商业模式。

大家可关注E3 data model,我们会持续更新。

模型描述业务对象,比如一次机会,一个销售订单,或者业务伙伴(消费者,供应商等等),模型拥有一个属性列表(可理解为表字段),模型是使用派生自模板类的Java/Python类来实现。这些模型被直接地翻译为数据库对象,当安装或者升级模块时系统也会自动地处理它们。将模型文件放到一个models子目录内可以看作是最佳实践。

  • 人与组织
  • 产品模型
  • 产品订购模型
  • 工作计划模型
  • 旅行业模型
  • 电子商务模型
  • ….

类似这样的数据模型视图和维护界面

Image

书籍《数据模型资源手册(卷3)——数据模型通用模式》

149421267859263344


DC/OS负载均衡

2018年6月26日 没有评论

DC/OS 通过 Marathon-LB & Edge-LB & HAProxy 提供整个系统的负载均衡服务,所有相关的软件集群都依赖于它们。

marat

可考虑引入Traefik,这是一个更加通用的负载均衡解决方案,Go语言编写,后端支持Kubernetes、Marathon、Etcd,比Marathon-LB更具优势。

Traefik

Marathon-LB一个很好的开始:my-crappy-website.json

{
  "id": "/my-crappy-website",
  "cmd": null,
  "cpus": 0.5,
  "mem": 64,
  "disk": 0,
  "instances": 2,
  "acceptedResourceRoles": [],
  "container": {
    "type": "DOCKER",
    "docker": {
      "forcePullImage": true,
      "image": "brndnmtthws/my-crappy-website",
      "parameters": [],
      "privileged": false
    },
    "volumes": [],
    "portMappings": [
      {
        "containerPort": 80,
        "hostPort": 0,
        "labels": {},
        "protocol": "tcp",
        "servicePort": 10012
      }
    ]
  },
  "healthChecks": [
    {
      "gracePeriodSeconds": 10,
      "ignoreHttp1xx": false,
      "intervalSeconds": 15,
      "maxConsecutiveFailures": 3,
      "path": "/",
      "portIndex": 0,
      "protocol": "HTTP",
      "timeoutSeconds": 2,
      "delaySeconds": 15
    }
  ],
  "labels": {
    "HAPROXY_0_USE_HSTS": "true",
    "HAPROXY_0_REDIRECT_TO_HTTPS": "true",
    "HAPROXY_GROUP": "external",
    "HAPROXY_0_BACKEND_HTTP_OPTIONS": "  option httplogn  option forwardforn  http-request set-header X-Forwarded-Port %[dst_port]n  http-request add-header X-Forwarded-Proto https if { ssl_fc }n",
    "HAPROXY_0_VHOST": "diddyinc.com,www.diddyinc.com"
  },
  "networks": [
    {
      "mode": "container/bridge"
    }
  ],
  "portDefinitions": []
}

192.168.0.249/haproxy?stats 或 http://192.168.0.249:9090/haproxy?stats

# dockr exec -t -i 61a8b98705c2 /bin/bash 进入 Marathon-LB容器

Marathon-LB

一些应用的负载均衡/高可用情况。

Haproxy-statistics-report-01

访问Public Agent:http://192.168.0.249:10012 请求被负载均衡到 240和241两个Private Agent节点上。

关机241节点后,负载均衡节点会自动重建,这样就保证了系统的高可用性。

Haproxy-statistics-report-02


分类: Architecture, Mesos & DC/OS 标签:

Donkey Car

2018年6月13日 没有评论

自动驾驶汽车现在很火很热,它代表着未来的发展趋势,但我们大多数人都没有机会去接触这些酷酷的技术,想学习怎么办?

DonkeyCar开源项目给我们提供了一个学习相关技术的入门途径,它有趣、低成本,可以带着孩子一起探索、一起玩。

donkey-car-01

donkey-car-04

donkey-car-02

donkey-car-03

DonkeyCar小车是基于树莓派和Python构建的,利用Keras深度学习框架训练和实现自动驾驶小车,是一个Python驱动的玩具车。

Maker:S,Date:2017-10-17,Ver:6,Lens:Kan03,Act:Lar02,E-Y

Keras 是一个基于 Theano 和 TensorFlow 构建的深度学习框架,使用 Python 语言开发。

DonkeyCar提供了完整的软件、硬件清单,你可购买套件并完成硬件组装和软件安装。

它能抓取、分析训练数据集, 这点很牛逼。

donkey-car-06

项目还提供了模拟器软件,你可以直接下载去感受下。

donkey_sim-01

donkey_sim-02

见到这个开源项目我的第一感觉就是:太酷了!

更多信息可参考:
DonkeyCar官网
https://diyrobocars.com/
http://docs.donkeycar.com/
https://github.com/wroscoe/donkey
《Donkey Car入门教程》
https://keras.io/
https://makezine.com/projects/build-autonomous-rc-car-raspberry-pi


分类: AI-BI-ML-DL-NLP, 树莓派 标签:

Mozilla Research Projects

2018年6月11日 没有评论

这些是浏览器/JS相关的开源项目,大家可关注。

Servo:浏览器引擎

Rust:编程语言

Shumway:Flash虚拟机和运行时

sweet.js:宏扩展

LLJS(Low-Level JavaScript)

Emscripten:在Web上运行C/C++

asm.js:JavaScript子集

Parallel JS:多核并行处理

Mozilla_Research_projects


分类: Browser 标签: