DevOps和云计算初识
什么是云计算
分类
公有云:云服务提供商对基础设施实施维护,不需要自己维护;多租户;Pay For Use 成本较低,按需付费就像用水用电一样(阿里云、腾讯云等)
私有云:自己维护云基础设施;单租户或狭义上的多租户;Pay For Cloud 成本较高,需要为整个云服务付费(VMware等)
混合云:云服务提供商维护自己的云设施;用户范围内租户隔离(公有云和私有云两种服务方式的结合)
特点
虚拟化是基础(资源包括网络,服务器,存储,应用软件,服务)
产品服务化(IaaS、PaaS、SaaS)
弹性伸缩、无边界
服务形式
云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。
IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。
PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。
SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。
下面一张知乎大神的图解释这三者的区别:
什么是DevOps
DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。DevOps其实包含了四个部分:产品、开发、测试和运维。主要特点就是:极速的迭代和快速的用户反应。
两张图说话:
参考一下阿里的DevOps实践
DevOps工具
监控工具:Zabbix,Nagios
性能分析/APM工具:Pinpoint、Zipkin、CAT、SkyWalking
批量+自动化运维工具:Puppet、Ansible、Chef、Saltstack
集中日志分析工具:ELK组合
持续集成/发布工具:Jenkins
IaaS集成:各种云服务
简单实践DevOps
参考:
https://github.com/avenssi/newweb
http://www.imooc.com/learn/910
传统开发部署模式:
1、创建GitHub项目
2、本地进行开发 ——push代码
3、服务器执行部署命令(包括pull代码等)
DevOps模式:
1、创建GitHub项目
2、本地进行开发 ——push代码
3、服务器单独启用一个部署代码的服务,提供http接口,接口被调用即执行部署命令
4、GitHub添加WebHock:每次有代码push时调用服务器部署服务http接口
5、push代码自动完成服务器项目重新部署