02 April 2015

前言

再开一个坟,云计算和自动化,对高效率的生产力追求永不止境。就目前的接触而言,存在这样的几个扩展点:

  • vagrant - 用来构建和分发开发环境的工具
  • chef - 系统集成框架,为整个基础设施构建配置管理
  • puppet - 应用程序和服务器自动框架
  • capistrano - 服务器部署工具,现有一些轻量级的竞争对手mina
  • Docker - 应用程序虚拟化容器,新进的革新工具

以上的工具,打算形成这样的工具链: vagrant/chef/capistrano/Docker。该工具链的形成,估计要花个好几年。

Docker

传统软件开发的流程:

  1. 确定产品定位和需求,确定首次迭代的范围。 - pm 的工作
  2. 制作界面原型。 - UI的工作
  3. 技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈,例如 Java 环境、Python 环境、Ruby 环境、数据库、中间件等等。 - CTO的工作
  4. 构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数据源、集群扩展等等。
  5. 模拟用户容量,构建测试环境。 - 使用监控,动态的扩展基础设施。
  6. 开始编写真正的业务代码,实现产品功能。
  7. 迭代开发/测试,生生不息,周而复始,直到头发掉光为止……

备注: 参考自Docker 传奇之 dotCloud

完善的云端技术(PaaS)可以削减 3 - 5 步的工作量,云端的基础技术去中心化的含义是: 底层基础设施随时可以迁移,可以迁移到任何地方(物理的、虚拟的机器、云端)

云技术的发展历程:

  • 云是新一代IT资源供给技术
  • 大数据处理能力是未来应用的基本需求

资源整合(网格技术/集群技术) –> 虚拟化(服务器虚拟化/存储虚拟化/网络虚拟化) –> Iaas(自动部署/异构资源/服务模板) –> PaaS & SaaS (云平台- All-in-One)

  1. 运行期的包管理: 多站点、多版本部署,版本-补丁-代码的关系管理

  2. 应用生命周期管理

    • 部署、配置、运维
    • 软件管理、补丁管理
    • 资源监控、资源调度
    • 性能监控与统计分析
    • 应用拓扑 - server的部署
  3. 应用分发工具

手机端应用市场 / 服务端的应用市场(企业环境,创业的方向)

  • 基础OS(VM镜像) -> 基本镜像
  • 应用组件(二进制包 + meta描述文件) -> 软件安装
  • 自定义配置语言 + 执行引擎 -> Dockfile + Docker Engine
  • 软件仓库(OpenSack Glance) -> Docker Hub

新的理念: Build - Ship - Run , 应用开发的变革。 应用开发流程 & 应用发布流程。

未来和机会

  • 云技术热点从基础架构转入应用层: DevOps, 应用生命周期管理
  • 基于容器的资源管理/调度和性能管理技术
  • 行业应用开发、分发/交付模式
    • 企业应用市场

一句话概括企业/公司/网站的使命。系统运维 - 云服务业务。 Dev与Ops紧密的结合。

Docker的业内实践越来越多了,时代潮流越来越汹涌。 某些技术成为基础后,为更加复杂的应用铺平了道路。

Docker建设私有云,解决资源利用的问题。

可以多多关注一下InfoQ上关于Docker的相关的新闻。下一份工作也可以从Docker上着手。

Docker的问题:

  • 安全性的问题,不过,这很正常,现在的云环境,没有几个是绝对安全的
  • 网络的问题,
  • 是否适合的问题

后记

最近,东拉西扯的坏习惯又犯了,专注、专注。仔细想想,自己是不是摊子铺太大了,集中收缩。




傲娇的使用Disqus