某股份制银行:容器云平台建设实践
容器云平台建设行业背景
当前银行业普遍的共识之一是要以金融科技为依托,通过科技创新引领银行的转型升级。云计算、大数据、人工智能成为各银行科技部门重点的投资建设领域。云计算领域的建设主要集中在IaaS和PaaS,目标是降低数据中心成本的同时,为上层应用的创新、快速迭代和稳定运行提供有效支撑。传统的IaaS调度的是虚拟机或者物理机,粒度较大,相对传统的虚拟化技术,在资源使用率、灵活性和弹性方面提升度并不高。依托传统IaaS建设而成的PaaS,也会面临同样的问题。而容器技术恰好可以比较好的解决这些问题,并且在微服务、DevOps、分布式等方面天生具备优势,因此成为数据中心新一代云基础架构的选择。
建设容器云平台的意义
1.让应用真正意义上弹性扩缩容
传统方式下应用和基础环境资源(计算、网络、存储、监控等) 是紧耦合的关系,应用的扩容、缩容意味着基础环境资源的扩容和缩容。基础环境的扩、缩容耗时会非常长,因为涉及到非常多需要人工介入的环境,而且都是串行的,比如创建主机、分配存储、网络接入、操作系统安装、网络访问关系开通、应用部署、监控审计部署、接入负载均衡等等。整个流程走下来通常需要数天到数周的 ...
混沌工程详细介绍——Netflix持续交付实践探寻
本篇来自于本人6月-7月参加的“DevOps案例深度研究”活动Netflix案例研究的第五部分,详细介绍了Netflix的混沌工程。经过一个月的战斗,四个版本的迭代,Netflix战队最后交付了让所有人满意的战果,并获得了全场唯一的案例研究最佳小组奖杯。感谢我们的战友,还有指导老师,姚冬老师和徐磊老师。
Netflix实施混沌工程的背景
08年Netflix决定把它的业务迁移到aws上,从自身运维的角度考虑,它有很多担忧的地方。
很长时间内有两套系统在同时运行,运维的复杂度更高了。
NetFlix的用户量已经达到了1亿,对应用稳定性依赖很高,如果出现故障对用户的影响非常大,甚至是致命的。
它的业务不断复杂,引入微服务架构,对应用的高可用性要求越来越高。
生产环境非常复杂,是多样性的,很难在测试环境中完全模拟生产的状态。
因此Netflix决心探索一种在生产环境验证应用高可用性的一种方法,这就是现在大家所熟知的混沌工程。
混乱工程的发展
2010年,捣乱猴子诞生
2011年,猴子军团,有了更多场景下的工具集
2012年,开源了捣乱猴子的代码,建立社区,影响了越来越多的 ...
查看Java应用状态
jps查看123$ jps16 jar547 Jps
jmap -heap1$ jmap -heap 16
jstat -class pid1$ jstat -class 16
玩转Openshift中Pod调度
大部分情况下,Openshift中的Pod只是容器的载体,通过Deployment、DaemonSet、RC、Job、Cronjob等对象来完成一组Pod的调度与自动控制功能。Pod调度也是由Scheduler组件完成的。
Deployment/RC:全自动调度
Deployment/RC主要是自动部署应用的多个副本,并持续监控,以维持副本的数量。默认是使用系统Master的Scheduler经过一系列算法计算来调度,用户无法干预调度过程与结果。
12345678910111213141516171819202122apiVersion: apps/v1kind: Deploymentmetadata: name: nginx labels: app: nginxspec: replicas: 1 template: metadata: name: nginx labels: app: nginx spec: containers: - name: nginx ...
白化Kubernetes网络
引自:http://www.10tiao.com/html/217/201708/2649694873/1.html
容器的网络是在CaaS集群中无法避免的话题,作为当下最主流的一种容器集群解决方案,Kubernetes对网络进行了合理的抽象,并采用了开放的CNI模型。面对各种容器网络实现,他们有什么不同,应该如何选择?本文将带大家回顾Kubernetes各种主流网络方案的发展历程,并透过现象清本质,用形象的例子展示Weave、Flannel、Calico和Romana等网络解决方案背后的原理。
这次讲一讲容器集群中的网络。其实不同的容器集群解决方案,在网络方面的核心原理都是相似的,只不过这次我们将以Kubernetes为线索,来窥斑见豹的一睹容器网络的发展过程。
我是来自ThoughtWorks的林帆,我们从Docker的0.x版本开始就在对容器的应用场景进行探索,积累了一线的容器运用经验。这次分享会用简洁易懂的方式告诉大家我们对容器网络方面的一些知识归纳。
初入容器集群的人往往会发现,和单节点的容器运用相比,容器的网络和存储是两个让人望而却步的领域。在这些领域里,存在大量的 ...
研发项目管理实践
项目的特征
唯一性、2. 存在风险、3. 临时的、4. 跨部门的团队、5. 渐渐明晰
项目的三约束(QBT)Q:质量、B:资金、T:时间
按时、在预算之内、满足性能指标、满足或超出客户的预期完成就是一个成功的项目。
优秀的项目经理在完成一个项目的过程中,让Boss、客户、团队成员都满足。
做项目时要时刻考虑到项目的目的。
项目的来源
合同驱动、2. 市场驱动、3. 变更Change
项目周期
与不同干系人的沟通干系人指的是对项目成败有利益,对项目有影响的人。
识别干系人。核心团队成员一起来识别。
分析干系人。
对不同的干系人采取不同的策略。
影响力来源
信誉、2. 互惠、3. 说服
项目进展
核心团队成员融入到项目里面,能够将项目说清楚
做计划。计划的过程很重要。做计划的过程是把核心团队消化项目的过程,也是责任转移的过程。项目经理要将项目分成模块,细节让负责部分的核心团队成员来做。
团队建设模型(Tuckman模型)
团队建设分为四个阶段:形成阶段、磨合阶段、规范阶段、贡献阶段
四个阶段中间不能跳过
保证核心成员的完整性
项目经理,二件事:管项目,管 ...
给非技术人员说清楚容器是什么
小明要造一个房子,开始自己买木头、砖头自己造。
出现了一个开发商,他有一个机器,可以在几分钟内造出一个毛坯房,小明只需要按照自己的风格做装修。
巫婆出现,给了小明一个魔法袋,它可以把房子的模型装入袋中,想造房子念个咒语就行。
小明造了很多模板,可以轻松地就能造出很多房子。
来了个商人,告诉小明可以把魔法袋租出去,别人也可以放入模板,也能够造房子,坐收租金。
参考文章https://zhuanlan.zhihu.com/p/53260098
网络相关工具简单汇总
lscpi查看Mac地址和网卡带宽12[root@localhost] $ yum install pciutils -y[root@localhost] $ lspci -vvv
里面的mac地址格式:46-8d-80-6d-06-07
ip a查看Mac地址与IP12[root@localhost] $ yum install iproute[root@localhost] $ ip a
里面的mac地址格式:46:8d:80:6d:06:07
iperf 对集群进行网络流量测试启动服务端
12[root@localhost] $ yum install iperf3 -y[root@localhost] $ iperf3 -s
客户端进行测试
12[root@localhost] $ yum install iperf3 -y[root@localhost] $ iperf3 -c 10.2.2.2 -P 5
以上默认为作TCP测试,如果要UDP测试,服务端启动与客户端测试都需要加上-u
1234## 服务端iperf3 -s -u## 客户端iperf3 -c 10.2.2.2 ...
自定义Service添加到Openshift中的Prometheus
prometheus.yml中定义了keep, drop, update等状态1234567891011121314151617181920212223242526272829303132333435363738394041424344- job_name: 'kubernetes-service-endpoints' tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt # TODO: this should be per target insecure_skip_verify: true kubernetes_sd_configs: - role: endpoints relabel_configs: # only scrape infrastructure components - source_labels: [__meta_kubernetes_namespace] action: keep regex: ...
通过curl访问OpenShift上部署的Prometheus获取监控数据
Prometheus作为最常用的集群的监控组件,它收集了集群最全的状态信息。那么当我们需要将它与现有的监控告警平台打通,或者根据它开发一个自己的监控展示平台时,就不得不需要获得Prometheus的监控数据了。这时就不得不访问Prometheus的API接口。根据场景的不同有两种方式能够获取到Prometheus的数据
集群外部,通过访问Prometheus UI的链接来获取指标数据
集群内部,进入Prometheus容器中,获取指标数据
1. 集群外部,curl访问Prometheus UI地址由于OpenShift上部署的Prometheus应用对接了OpenShift的用户认证oauth-proxy,所以必须先获取用户的Token后再通过curl访问prometheus服务获取数据,具体操作如下。
123456789101112# #登录[root@master ~]# oc login -u adminAuthentication required for https://master.example.com:8443 (openshift)Username: admin ...