陈沙克

Feb 232018
 

对于Php的程序,已经很久没搞过安装,这次安装,也遇到一些麻烦,这里就记录一下,主要是php版本的问题。

Testlink目前的版本是1.19.6,对php 7.1支持有bug,所以我就换成php 5.6. CentOS 7 带的mariadb版本是5.5,Testlink要求是5.6以上的版本。

Continue reading »

Feb 222018
 

春节前结果就出来了,上班第一天,整理一下。

会说中文。那么一共是12个项目,11位PTL。zhurong一个人担任两个项目Murano和Solum项目的PTL。

61个项目里,有一部分的基础项目,是属于OpenStack管理的项目,例如 Infrastructure,RefStack,和用户没太多直接关系。真正和用户有关的项目应该就30个左右。

1     * Barbican                             Ade Lee
2     * Blazar                                 Masahito Muroi                               
4     * Cinder                                 Jay Bryant                                 
5     * Cloudkitty                           Christophe Sauthier                        
6     * Congress                             Eric Kao
7     * Cyborg                                Zhipeng Huang                            
8     * Designate                            Graham Hayes                               
10     * Dragonflow                          Omer Anson                                 
11     * Ec2 Api                                Andrey Pavlov                              
12     * Freezer                                 Saad Zaher                                 
13     * Glance                                 Erno Kuvaja                             
14     * Heat                                     Rico Lin                                   
15     * Horizon                                Ivan Kolodyazhny                                 
16     * I18n                                     Frank Kloeker                              
17     * Infrastructure                      Clark Boylan                               
18     * Ironic                                    Julia Kreger                             
19     * Karbor                                  Ying Chen                          
20     * Keystone                              Lance Bragstad                             
21     * Kolla                                     Jeffery Zhang                         
22     * Kuryr                                    Daniel Mellado    
23     * Loci                                      Sam Yaple 
24     * Magnum                               Spyros Trigazis                            
25     * Manila                                   Tom Barron        
26     * Masakari                               Sampath Priyankara                 
27     * Mistral                                   Dougal Matthews                                
28     * Monasca                               Witold Bedyk                               
29     * Murano                                 Rong Zhu                          
30     * Neutron                                Miguel Lavelle                               
31     * Nova                                     Melanie Witt                             
32     * Octavia                                 Michael Johnson                            
33     * OpenStackAnsible               Jean-Philippe Evrard                       
34     * OpenStackClient                 Dean Troyer
35     * OpenStackSDK                     Monty Taylor                                
36     * OpenStack Charms              James Page                                 
37     * OpenStack Helm                  Matt McEuen
38     * Oslo                                      Ben Nemec                                      
39     * Packaging Rpm                    Javier Peña                      
40     * Puppet OpenStack               Mohammed Naser                             
41     * Quality Assurance                Ghanshyam Mann                            
42     * Rally                                      Andrey Kurilin                             
43     * RefStack                                Chris Hoge                                 
44     * Release Management            Sean McGinnis                              
45     * Requirements                        Matthew Thode                              
46     * Sahara                               Telles Mota Vidal Nobrega                  
47     * Searchlight                            Steve McLellan                             
48     * Senlin                                    XueFeng Liu                                
49     * Solum                                     Rong Zhu                                        
50     * Storlets                                  Kota Tsuyuzaki                             
51     * Swift                                       John Dickinson                             
52     * Tacker                                     Yong Sheng Gong                            
53     * Telemetry                               Julien Danjou                               
54     * Tricircle                                  Zhiyuan Cai                                
55     * Tripleo                                    Alex Schultz                               
56     * Trove                                      Zhao Chao                               
57     * Vitrage                                  Ifat Afek                                  
58     * Watcher                                 Alexander Chadin                           
59     * Winstackers                           Claudiu Belu                               
60     * Zaqar                                     Wang Hao                               
61     * Zun                                        Feng Shengqin                                

Feb 082018
 

从2010年到现在,OpenStack差不多走过了8年的历程。2017年,对OpenStack来说,其实算是令人难忘。

OpenStack作为全球最大的Python的开源项目,他所取得的成就,其实是任何一个开源项目都是不容易超越。不过任何一个开源的项目,都会有他的生命周期,上升的过程和走下坡路,OpenStack也是不会例外。

在K8S如日中天的时候,其实OpenStack未来可以讲的故事,空间越来越小。OpenStack走下坡路的过程,其实某种意义,也表明他的成熟,可以让大家像linux一样,使用OpenStack。

有一次和朋友聊天,说OpenStack厂商最近几年干啥?除了改改UI,好像真的啥也不干。

回顾

巅峰之作

如果说OpenStack的发展看中国,那么如果2年前,这肯定当笑话。不过到了2017年,真的不得不承认,OpenStack现在比美国还要热门。

2017年7月份,在北京举办OpenStack China day,我想这个应该是OpenStack在国内的最高峰的时刻。我听到我最爱听的评价就是:China Day上的现场Demo,超过OpenStack的峰会。这个时候,其实可以告诉大家,当时China Day上演示OpenStack升级和OpenStack故障的恢复,都是基于Kolla,和我的想法。

这也算是我的OpenStack的最后告别之作,有点悲壮,不过还是不得不承认,OpenStack已经在走下坡路。我是知道大会的实际参会人数的。

大帐篷模式

其实到了2017年,基金会也开始反思当初的所谓Big Tent模式。这个改变,给OpenStack带来什么?

对我来说,OpenStack项目从10多个,直接扩大30多个。不过最后真正活下来的项目,其实真的没几个。如果从我的角度,目前看到,经过3年的发展,真正能投入生产的,就只有kolla的这个OpenStack部署工具。

真正对OpenStack产生威胁的不是Docker,而是K8s。

目前OpenStack基金会,引入kata容器,不过也很难逃脱挂掉的命运。在红帽收购了CoreOS后,其实就真的没啥机会。

信心不足

自从2016年,Mirantis算是部分退出OpenStack,转向K8s。其实背景就是OpenStack无法支撑公司的估值和成长。这种影响,也直接影响到国内的OpenStack厂商。已经逐步没有所谓的pure OpenStack厂商。

基本上所有的OpenStack厂商,都要和用户交流K8s,不然就真的没法出门。OpenStack的基金会,也在考虑如何转型,包括搞出一个kata,改名 Open Infra。

如果从我角度,OpenStack其实有很多不足,计费,监控都远远没达到生产的需求。形同摆设。不过大家都没法顾及。

让OpenStack厂商去折腾K8s,搞所谓的Kata,基本都是死翘翘。

目前单纯的OpenStack,已经无法解决OpenStack创业公司的估值问题,都在寻找出路。

无法颠覆

当我们把OpenStack定义成公有云和私有云,就会发现他在公有云上无法和AWS PK,在私有云上,无法威胁到vmware。这基本就是老二打不过老大,把吃饭的家伙开源出来的故事。

OpenStack对开源产生了很大的贡献,至少大幅提高了Python程序员的地位。培养了大量的开源的人才。

不过在商业上,技术上,和Docker比起来,所带来的变化,真的不是颠覆性的。

市场乱象

国内的OpenStack 2B市场,基本都是靠销售和市场,年底,Gartner出来辟谣,没有搞过所谓的OpenStack厂商评选。

最近两年,国内的OpenStack公司,基本上都已经没在技术上有啥投入,也就导致非常没有追求。都在搞市场。忽悠用户。

两热一冷

随着大家对OpenStack熟悉,也就熟悉OpenStack的游戏规则。OpenStack社区是很民主。

  1. 独立董事
  2. TC,技术委员会成员
  3. PTL,项目负责人

PTL目前半年选一次,独立董事和TC都是一年选一次。其实无论国内还是国外,大家都比较积极参加独立董事和TC的选举。PTL最近两年,经常出现冷场,很多项目没人想当PTL。

简单点说,干活的,要承担责任的,没人想做。开开会议,指导江山的,大家都比较喜欢。

展望

其实如果展望2018年,国内的OpenStack发展,其实没那么悲观。因为OpenStack没有对手,尤其在国内的国产化的环境下,OpenStack也是唯一的选择,让各方比较容易达成共识。

China infra Day

OpenStack基金会会不会改名,这都是可能的。这是将要在2018年6月份在北京举办的大会,这也注定是一个风向标。

一个美国主导的开源项目,最后在中国繁荣发展,这个本来是我们最开始希望看到的,不过真正到来的时候,我们又感觉我们是否是冤大头,人,就是那么矛盾。

竞争对手

基金会,应该还是会搞出不少的项目,不过这些项目离生产还是很远。目前我也真没看出那个项目,会给用户带来眼前一亮的感觉。

留给OpenStack基金会的时间不多了。

CNCF基金会,其实类似OpenStack基金会,未来会是Openstack基金会的竞争对手。压力真的很大。如果OpenStack的白金会员出现空缺,那么就真的是一件很危险的事情。这也是大概率发生的事情。

其实你看一下就知道,这两个基金会成员高度重合。

Kolla

如果我写OpenStack文章,不涉及Kolla,是不太可能的事情。2018年,kolla-ansible,还是可以笑傲江湖,无人能匹敌。红帽都要使用kolla的镜像,来部署红帽的OpenStack。

对我有实际意义的事情,就是kolla-Kubernetes。因为OpenStack是足够复杂,如果OpenStack可以跑在Kubernetes上,那么其他的所谓有状态的应用,都可以放到Kubernetes上,那么对传统企业来说,Kubernetes就真的能体现出他的价值。

企业内部99%的应用都是有状态的,Kubernetes能不能支撑这些应用,其实就要靠kolla-Kubernetes证明。

华为

目前OpenStack国际上就是红帽,国内就靠华为来扛,哪个离场,都马上会制造很大的悲剧。当年Mirantis宣布部分退出OpenStack,导致很多OpenStack项目的PTL都失去工作,更别说Core。

华为在国内推OpenStack的公有云,这是一件十分凶险的事情,经常有朋友说我老黑华为。如果我夸华为,华为公有云就可以做好,我肯定无条件支持华为。

华为目前是投入2000人在OpenStack公有云业务上,什么概念,2000人一年的工资是多少?如果平均是50万,1年工资就10亿。

华为有钱,可以长期投入,我没疑问。不过如何应对未来的技术的变化,很可能出现的Kubernetes管理资源,而不是IaaS来管理资源呢?

我也只能祝华为好运,因为OpenStack真的靠你了。

Jan 022018
 

blog已经有两年时间没动过。上次把内存改成2G后,使用了1年,又出现内存不足,无法连接数据库的问题。最终解决的办法就是升级php。

先升级系统,发现update,也是把系统升级到centos 7.4

yum update

查看升级结果

# uname -a
Linux chenshake.com 3.10.0-693.11.1.el7.x86_64
#1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
添加IUS的repo源,这是专门针对红帽系统提供rpm包更新的。应该是品质很高
yum install https://centos7.iuscommunity.org/ius-release.rpm

删除php

yum remove php-common mod_php php-cli

升级php7

yum install php70u php70u-pdo php70u-mysqlnd \
php70u-opcache php70u-xml php70u-gd \
php70u-devel php70u-mysql

重启httpd

systemctl restart httpd

查看结果

# php -v
PHP 7.0.26 (cli) (built: Nov 27 2017 11:26:34) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.26, Copyright
	 (c) 1999-2017, by Zend Technologies
Dec 292017
 

最近朋友给别人介绍我是做OpenStack,对方提了一句,如何用一句话告诉我OpenStack是什么。

我想OpenStack就是AWS公有云的开源实现。功能可以满足企业私有使用。

接下来我就要给朋友深入介绍一下OpenStack的技术相关内容,对方是Python开发者,我就努力写一篇OpenStack的介绍文章,让技术人员可以快速了解OpenStack。

起源

在2010年的时候,AWS当时在国外已经是风生水起。当时云计算的老二,Rackspace,觉得无法和AWS继续拼下去。那么就决定联合多家一起搞一个OpenStack,和AWS PK一下。

Nova是美国宇航局内部的IaaS项目,就是一个用python写的IaaS管理平台,不过维护的成本很高,所以美国宇航局和Rackspace达成共识,就把nova项目交出来,大家一起搞OpenStack项目。

Rackspace拿出自己的对象存储产品进行开源,就是swift。项目在2010年7月份成立。

对于swift来说,确实是从Rackspace生产环境拿下了的代码,支撑过10个PB的对象存储代码。不过在OpenStack的后续发展中,swift,并不是必须的,因为很多企业,也根本用不上。那么后续我就基本不会提到swift这个组件。

开发原则

  1. 所有的项目,都是必须用python开发
  2. 采用apache 2.0 的license
  3. 项目间是松耦合,这个是必须的
  4. 各个组件只提供管理功能,(swift是一个例外)。例如nova,他是管理hyperv,glance管理镜像,存储是什么,是可以选择。
  5. 自动化测试,强大的ci,代码需要review,原则上需要一个项目两位core同意才能merge
  6. 全局的requirements,各个项目都必须遵守,这就避免软件依赖的冲突。
  7. 发布周期,就是1年2个版本,定期发布。
  8. 全部功能API

OpenStack是全球最大的python的项目,也应该是最大的公开的CI,CD项目。

对于OpenStack项目来说,每个项目结构是差不多

  1. api服务,对外提供api服务
  2. server,完成相关的工作,可能会拆分多个服务
  3. 每个项目都有client端

OpenStack项目介绍

OpenStack目前官方管理项目其实不少,未来管理OpenStack项目,官方也自己开发了一些工具,成立了一些项目。不过对用户能用到,真正目前能用的项目,其实是不多的。我就介绍几能用的项目

Nova

最早的nova,其实是一个具备基本功能的IaaS平台,能管理计算,存储和网络。不过这个并不符合OpenStack当初的设计理念。所以就对nova项目进行拆分。

到了现在nova项目,就管理hyper-v,其实在真实场景下,基本都是kvm的天下,剩下的别的hyper-v,基本都是市场行为。

Nova,更多的是intel,红帽的天下,很多硬件,kvm的特性,都加入到nova上。

nova对应AWS的EC2,很多术语都是来自AWS,

目前OpenStack的nova开发,其实已经进入稳定的阶段,已经很难有更大的突破,更多的是在虚拟机迁移等上面做点工作。

Keytone

这是提供身份验证的项目,那么他本身对外只是提供api接口,通过底下调用各个组件来实现身份验证,例如mysql,ldap,AD来实现身份验证。

作为keystone,还有一个很重要的功能,所有openstack服务的endpoint,就是告诉用户,你访问的服务的地址。这个有点类似现在的微服务,不过就是在微服务里,服务是自动注册。对于OpenStack来说,各个服务,需要手工注册到keystone上,并且创建服务的账号。

对于nova来说,就是需要在keystone注册一下,告诉用户,nova的服务的地址是什么。这样就可以使用相关服务。

keystone是OpenStack所有服务的入口。

Glance

镜像管理,创建虚拟机的镜像,都是通过这个项目来管理。功能其实还是比较单一。未来加快虚拟机的创建,大家想到的就是把glance的存储和虚拟机的存储合并在一起,这样创建虚拟机的时候,直接做一个link,这样就创建出来一个虚拟机。所谓的秒级创建,就是差不多这个意思。

Cinder

这是OpenStack的存储管理,目的就是管理卷。存储可以是Ceph,也是可以商业存储。

以前aws的玩法是:创建虚拟机,系统盘是固定大小,你可以选择通过EBS,也就是OpenStack的cinder,创建一块硬盘,挂载到虚拟机里。

由于系统盘是存放机器本地盘里,会导致不少问题,例如无法迁移,机器挂掉,数据就丢失,用户比较爱在系统盘里存放数据等。

那么大家就想到,把系统盘,也放到存储上,这就所谓 boot from volume。这样就可以搞定虚拟机的迁移。

目前主流就是用Ceph作为存储。这样虚拟机可以实现迁移。

Neutron

这是OpenStack管理网络的项目。对于网络厂商来说,这个项目是比较要命的,和存储厂商的态度是完全不一样的。neutron实现的功能,就是让用户可以自己创建网络,router,这就是所谓SDN。

其实aws在2010年以前就实现这个功能,OpenStack,其实是一致到2015年,这个功能才算是能用。目前来说,已经算是可用。在100个节点的环境下,还是能顶住的。

网络上,大家玩的最多的就是负载均衡,那么对neutron来说,这个他是不管的,交给另外一个项目来实现。

Horizon

这就是OpenStack的Dashboard,UI。目前是用python开发的,前端的用户体验很差,后来改成用js开发,目前也在调整中。

Horizon上的功能,仅仅是部分的OpenStack功能,不少功能,没有在UI上实现。需要命令行下通过client进行操作。

以前openstack每个项目都有一个client端,后来进行了合并,就一个客户端,openstack-client。你就可以在上面利用命令行去管理各个项目。

消息队列和数据库

对于OpenStack来说,项目间的通讯,我的理解就是通过api,消息队列来进行的。OpenStack目前大家使用的基本就是mysql和rabbitmq。

对OpenStack来说,压力最大的是消息队列。所有的虚拟机,创建,删除,都是要经过消息队列的。

OpenStack的规模,其实目前最主要的局限就是消息队列的承载能力。

部署架构

其实目前OpenStack的部署架构基本都是一样的。基本上就是通过3个控制节点,把服务都装在上面实现HA,这点上,其实和K8s,也是非常相像。

目前主流的HA实现方式,就是haproxy+keeplive来实现。

部署工具

对于openstack来说,所谓产品,其实基本就是一套部署工具。2017年的时候,其实目前的部署工具,就剩下那么几个。

  1. kolla ,把openstack组件容器化后,通过ansible来进去编排和配置管理
  2. 红帽产品,通过kolla的docker镜像,采用puppet来实现编排和配置管理

openstack的复杂性,升级,其实单纯靠OpenStack自身,或者操作系统厂商,代价是很高的。最后发现必须利用容器,才能彻底解决问题。

kolla就是目前最好的OpenStack部署工具。

Dec 272017
 

今天练习了一下使用github。当然肯定是用命令下来玩。

创建repo

我需要创建一个gittest的repo,需要使用github的api接口才行。

curl -u 'shake.chen@gmail.com' \
https://api.github.com/user/repos -d '{"name":"gittest"}'
这个时候,就提示输入密码,成功创建后,会看到一堆的输出。

删除Repo

删除gittest的repo,也是需要用api才行
curl -X DELETE -u "shake.chen@gmail.com" \
https://api.github.com/repos/shake/gittest

保存密码

由于github默认采用https,通过https的缺点就是不能使用密钥,每次push都是需要输入用户名和密码。那么可以用下面的办法,只需要第一次输入后,就会保存起来。

git config --global credential.helper cache

cache生效时间15分钟

git config --global credential.helper 'cache --timeout=3600'
当希望永久生效
git config --global credential.helper store

git config

整理一下我的git config
git config --global credential.helper store
git config --list
git config --global user.name "shake"
git config --global user.email "shake.chen@gmail.com"
git config --list

初始化repo

下面就是我的步骤

cd /home
mkdir test
cd test
echo "# ks" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/shake/gittest.git
git push origin master