Elastic BeanStalk相关概念

童话世界中存在着一种魔力beanstalk(豆荚),种在花盆里可以无限的向上生长,越长越高直达云端。AWS Elastic Beanstalk也采用类似概念,用户只需部署代码即可自动处理包括容量预置、负载均衡、自动扩展和应用程序运行状况监控在内的部署工作。同时能够完全控制为应用程序提供支持的 AWS 资源,并可随时访问基础资源。Elastic Beanstalk服务本身不收取任何费用,客户只需支付业务所需的服务器和存储资源所需的基础费用。

引用AWS官网https://docs.aws.amazon.com对Elastic BeanStalk服务的优势总结:

1.入门迅速,使用简单

2.提升开发人员生产效率

3.无限扩展

4.完善的资源控制

无Elastic BeanStalk的传统部署业务流程如下:

以简单web服务+ELB负载均衡的典型应用举例,需要运维和开发完成以下步骤:

  1. OPS部署一台服务器用于web服务。
  2. OPS在这台服务器内安装web服务器和其他应用软件比如php,jdk等。
  3. OPS修改配置文件,调试后将服务器完全启动。
  4. OPS建立个ELB负载均衡器,与后端web服务器联调好。
  5. OPS把业务服务器交付给DEV。
  6. DEV开始在服务器上部署代码。

采用Elastic BeanStalk的DevOps环境部署业务流程如下:

以简单web服务+ELB负载均衡的典型应用举例,需要运维和开发完成以下步骤:

  1. DevOps在Elastic BeanStalk服务种选择需要部署的服务架构后创建服务。
  2. DevOps在服务器上部署代码。

 可以看出,基于Elastic BeanStalk服务的DevOps部署方式比传统部署方式方便灵活很多,摆脱了传统环境下开发和运维按部就班泾渭分明的生产关系,Elastic Beanstack可以做到开发运维一体化,one shot for everything且业务无限弹性扩张。

Elastic BeanStalk入门使用介绍

上图:点击Elastic BeanStalk界面。然后点击Create one now。

上图:选择建立个web server的开发使用环境。

上图:输入环境名称。

上图:应用code平台这里根据客户需求进行选择,本例这里选择PHP平台。

上图:本实例中上传的代码选择sample application,用户也可以选择下方的upload your code选择上传自己已经有的代码(zip包或者war包)。最后点击Create environment创建。

上图:基于PHP的web服务正在启动中,一步到位的部署方式免去了传统环境中启动服务器,下载相关应用,配置应用等繁琐工作。

上图:Dashboard上可以看到应用已经部署成功。点击URL即可访问。

上图:web服务已经可以访问了,将来业务更新升级只需上传更新代码即可。

总结一下刚才的实验中,AWS Elastic BeanStalk替用户做了哪些工作:

  1. 创建SecurityGroup
  2. 创建EIP
  3. 创建EC2虚拟机
  4. 为EC2虚拟机部署PHP和web服务等应用
  5. 上传PHP代码到EC2虚拟机中
  6. 启动EC2并提供公网访问地址

补充: 基于AWS ElasticBeanStalk的业务的升级

上图:点击Dashboard页面running version处的Upload and Deploy按钮即可上传新版本的代码对服务进行升级改版。

上图:Action按钮下的选项中,clone Environment选项能对本环境进行克隆移植,保存配置或者是环境重构等操作,非常的方便。

总结:AWS ElasticBeanStalk对比传统环境下应用服务平台部署最大的优势便是简单无脑,方便灵活。一键部署的方式比传统环境下运维从创建服务器开始一步步的配置完成再交付给开发部署代码流程省时省力,扩展和移植也便捷,是一种颇受欢迎的云上DevOps工具。

by:白刃霜飞

多年海内外系统,网络,信息安全从业经验。参与并主导多个世界500强企业大型IT项目,现任职于Simba Innvation的云计算专家。

DevOps on AWS之Elastic BeanStalk的更多相关文章

  1. AWS Add Key Pair to Elastic Beanstalk Instance 给EB实例加密钥

    Go to Elastic Beanstalk -> Configuration -> Security -> Virtual machine permissions -> E ...

  2. How to ssh to your Amazon Elastic Beanstalk instance?

    Well, if it's ec2 or a digital ocean server, it would be a lot easier- you do what you normally do f ...

  3. How to force https on amazon elastic beanstalk

    假设您已在负载平衡器安全组中启用https,将SSL证书添加到负载平衡器,将443添加到负载平衡器转发的端口,并使用Route 53将您的域名指向Elastic Beanstalk环境(或等效DNS服 ...

  4. DevOps on AWS之Cloudformation概念介绍篇

    Cloudformation的相关概念 AWS cloudformation是一项典型的(IAC)基础架构即代码服务..通过编写模板对亚马逊云服务的资源进行调用和编排.借助cloudformation ...

  5. 利用 AWS Elastic Beanstalk 部署 Wordpress 环境

    1. 准备 wordpress 代码 从https://wordpress.org/download/ 将代码压缩包下载到本地, 解压,会有一个 wordpress 目录 复制 wp-config-s ...

  6. DevOps on AWS之OpsWorks初体验

    AWS OpsWorks 是一款配置管理服务,提供 Chef 和 Puppet 的托管EC2虚拟机实例.Chef 和 Puppet 是自动化平台,允许用户使用代码来自动配置服务器.用户借助OpsWor ...

  7. DevOps on AWS之Cloudformation实践篇

    cloudformation入门实践 AWS cloudformation通过模板对AWS云资源进行编排和调用.并且可以通过模板代码层面的修改就可以对现有环境进行升级改造,云端业务的灵活便捷特点展现无 ...

  8. AWS In Action

    Core Services of AWS Elastic Cloud Compute(EC2) Simple Storage Service(S3) Relational Database Servi ...

  9. [转]基于AWS的自动化部署实践

    作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...

随机推荐

  1. 【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别

    Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Cla ...

  2. Day1 Spring初识(一)

    在网上看到一篇文章,感觉写得挺不错的,转载一下,本文转载自:http://www.cnblogs.com/xdp-gacl/p/3707631.html和http://www.cnblogs.com/ ...

  3. 20145203盖泽双 《Java程序设计》第9周学习总结

    20145203盖泽双 <Java程序设计>第9周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的:让Java程序设 ...

  4. saltstack之编写自定义模块

    编写自己的模块 1 默认会放在/srv/salt/_modules vi hello.py """ CLI Example : salt '*' hello.world ...

  5. C++ pair(对组)的简单了解

    类模板:template<class T1,class T2> struct pair 参数:T1是第一个值得数据类型,T2是第二个值的数据类型. 功能:pair将一对值组合成一个值, 这 ...

  6. c++—— 函数重载(Overroad)

    5 函数重载(Overroad) 函数重载概念 1 函数重载概念 函数重载(Function Overload) 用同一个函数名定义不同的函数 当函数名和不同的参数搭配时函数的含义不同 2 函数重载的 ...

  7. ASP.NET Razor引入命名空间(视图中数据序列化)

    问题描述: 视图有时可以作为保存数据的载体,使用Razor语法给我们带来便捷的同时,也会使我们陷入局限.@可以保存int.bool.string等类型,但却保存不了对象类型,例如Dictionary. ...

  8. POJ 1321 棋盘问题(非常经典的dfs,入门题)

    棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 66277   Accepted: 31639 Descriptio ...

  9. C# lambda表达式参数的正确使用姿势

    C#的lambda表达式的好用就不多说了,中午吃饭的时候突然想到一个以前(有年头了,难道屌丝上岁数了就回忆这个么...)和同事争执的坑.. 列个demo吧.. 先是一个类,这个类的对象就是为了吃堆内存 ...

  10. 新版u-boot移植到s3c2440开发板(一)--建立单板

    由于没有系统的学习shell,所以Makefile大多数看不懂,一个小小的细节,把我难住了几天.现在开始分享我的操作过程 本文所有linux下的操作是root用户,如果你使用普通用户,请在命令前加上 ...