美文网首页
我司CTO一周精华整理,让你少走三年弯路

我司CTO一周精华整理,让你少走三年弯路

作者: 热爱生活的Te小姐 | 来源:发表于2016-01-11 11:17 被阅读628次

今天,Kuick的CTO受邀到数人云做技术分享,现场各位技术大牛拿出的看家干货,据说可以让各位技术伙伴们少走三年弯路,我们CTO更是无比大方地把有关Docker的具体操作详解全部分享给大家。以下就是所有分享内容啦~

1.自我介绍

大家好,我是Kuick的CTO,我叫巫从文。

首先跟大家介绍一下Kuick,Kuick是一家初创型互联网公司,

我们的产品KuickDeal是一款移动端轻量级,

用于远程销售与远程开会的智能远程工具,

可以帮助销售人员在售前与跟进阶段,提升销售效率,也可以让沟通变得更高效更自由。

我主要负责产品的架构设计、处理技术难题、以及产品的上线运维等工作。

喜欢学习新技术并在项目中实践。

2.遇到的问题

部署耗时:由于我们的服务较多,版本发布的时候,需要每个服务都单独编译、打包、部署,一般要1到2个小时才能完成部署任务;迁移麻烦:如果需要部署新的机器,每个新机器还需要配置环境,很麻烦;扩展性差:现在的服务依赖都是单向直接依赖,没有做负载均衡,不能扩展。

3.技术选型

>>>>什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

>>>>什么是Docker Compose

Docker Compose 是一个部署工具,他将所有容器参数通过精简的配置文件来存储,用户最终通过简短有效的docker-compose命令管理该配置文件,完成Docker容器的部署。这样如果用户同时有多个Docker需要启动,就很方便,出现错误时修改也方便。

>>>>什么是Jenkins

首先说什么是持续集成,持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。而Jenkins是一个自动构建服务,使用Java实现,有成百上千插件,使用他可以很方便实现持续集成。

>>>>Mesos和数人云API

Mesos计算框架是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Marathon、Hadoop、MPI、Hypertable、Spark等框架。使用ZooKeeper实现容错复制,使用Linux Containers来隔离任务,支持多种资源计划分配。

数人云作为基于Mesos的最成熟Docker生成环境,其提供的弹性的云生产环境、提升资源利用率、高可用、易部署、易使用等特性,使得搭建高可用高并发的系统变得非常容易。

上图就是使用数人云搭建的Kuick集群,该集群会提供一个网关服务和一个服务发现代理服务。网关服务用于整个集群对外提供服务,一般将80和443端口绑定到网关上;服务发现代理用于内部服务注册和服务代理,有了这套机制就能实现服务的水平扩展了。这里需要注意的是,实现水平扩展的服务需要是无状态服务才行,一般讲服务的状态引出到数据库或者缓存服务里。

4怎么做

>>>>

为每一个子项目编写Dockerfile

为了将我们的项目运行到Docker里面,我们需要用Dockerfile来构建一个镜像。但是每次都从头开始构建镜像会很慢,所以每个项目我们都编写两个Dockerfile。一个用于生成base镜像,另一个用于日常构建。就拿我们的API服务器举例:

>>>>

Docker registry 安装

当我们生成了一个发布镜像,例如 registry.kuick.cn/cc/api-server:1.1.0,为了让其他机器也能访问到这个镜像,我们就需要一个私有的镜像仓库来存储这个新生成的镜像。

>>>>Jenkins的安装

sudo docker run --name jenkins -d -p 49001:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --env JAVA_OPTS=-Duser.timezone=GMT+8 jenkins

配置nginx将域名 jenkins.kuick.cn 转到 本机 49001端口

>>>>配置 web server Job 示例

a、基础配置

b、源码管理

c、构建触发

d、构建

e、构建脚本

f、提交代码后自动构建

>>>>部署集成测试环境

在集成测试环境所有服务跑在一台云主机里,每一个服务都会自动部署,当有开发人员提交代码到对应仓库的开发分支。

>>>>部署QA测试环境-生成镜像

每天晚上2点,集成测试环境的所有服务都将生成一个镜像上传到镜像仓库。通过添加jenkins Job kuick-test-server实现。

>>>>

部署QA测试环境-部署镜像

QA测试环境,由两台云主机构成,部署使用docker-compose来做。

对应节点1的 docker-compose.yml

每天晚上当 kuick-test-server执行完成后将自动触发QA环境的部署

>>>>部署内部测试环境

在准备上线前,需要部署一套预发布版,这是通过创建了一个 kuick-test3-server 的 jenkins任务来执行。

这个任务需要手动触发。

>>>>产品上线

上线通过创建 kuick-prod-server 的 jenkins任务来执行。执行流程跟内测流程一样。

5.总结

自从使用Jenkins后,不再担心忘记部署test2了;自从使用数人云后,不再担心高并发了,哈哈。

以上内容如果大家觉得不够过瘾的话,欢迎来Kuick共同探讨。另外如果有兴趣加入Kuick,可以戳阅读原文,或者联系我哦~

点击http://www.lagou.com/gongsi/93083.html#rd和我们一起工作!

相关文章

  • 我司CTO一周精华整理,让你少走三年弯路

    今天,Kuick的CTO受邀到数人云做技术分享,现场各位技术大牛拿出的看家干货,据说可以让各位技术伙伴们少走三年弯...

  • 再看付费就是捡便宜

    付费就是捡便宜。其实也就是说用自己能支付起的钱来买别人的精华输出,让自己少走一些弯路。 我相信...

  • 【摘抄】

    1,弯路,能少走就少走,能不走就不走。 2,弯路就像悬崖,能离多远就多远。 3,弯路,代表着时间的浪费和金钱的浪费...

  • 遇到高手让我少走几年弯路

    改变从遇到高手开始 我除了去当时的市场不断的走访,只要是生意好的我就去吃,吃饭的时候拍下他们的菜谱和布局,和吃货朋...

  • 亦枫收徒介绍

    ~ ~ ~ ~ ~ 亦枫收徒介绍 QQ:63565013 找一个好师傅可以让你少走很多弯路! 您用诚心来学,我用心...

  • 生活全凭运气

    教育孩子时常说,我这都为你好,就想让你少走弯路,少撞南墙。可事实是,该走的还得走,该撞的墙一个也不会少。 这些话不...

  • 吹风听雨

    就像所有有经验的人都喜欢教育小年轻,然而谁都是从年轻过来的,不要说,让你少走些弯路,不试试怎么知道它是不是弯路。 ...

  • 所有的弯路,其实都是必经之路

    常听父母老师说,我都是为你好,这样你可以少走很多弯路,其实弯路真的可以避免不走吗? 举个栗子,小林从出生到工作,结...

  • 沧浪之水—让你少走五年弯路

    沧浪之水清兮,可以濯吾缨; 沧浪之水浊兮,可以濯吾足。 沧浪之水,取自于屈原的《渔夫》,从字面上可以理解这两句话的...

  • 研究星座可以让你少走很多弯路

    我12岁就开始研究星座了,小时候没什么小伙伴找我玩游戏,我就自己看各种书籍,研究各种自己喜欢的东西。 很多人都知道...

网友评论

      本文标题:我司CTO一周精华整理,让你少走三年弯路

      本文链接:https://www.haomeiwen.com/subject/hhiqkttx.html