如何在六个月甚至更快的时间内成为一名DevOps工程师。第6部分。启动应用程序

如何在六个月甚至更快的时间内成为一名DevOps工程师。第1部分。简介
如何在六个月甚至更快的时间内成为一名DevOps工程师。第2部分。配置
如何在六个月甚至更快的时间内成为一名DevOps工程师。第3部分。版本
如何在六个月甚至更快的时间内成为一名DevOps工程师。第4部分。软件
包装如何在六个月甚至更快的时间内成为一名DevOps工程师。第5部分。部署



上图显示了传统应用程序部署的速度。如果您花了一个月的时间进行培训,那么现在您已进入路线图的第5阶段:



准备推出了吗?


因此,我们将代码编写,打包和部署在某个地方。我决定将代码部署视为不可变的机器工件(例如EC2),而将重点放在容器上。为什么?

因为在源代码中烘焙一个不变的AMI,所以将其复制到各处然后运行非常困难。这是一个很好的模板,但仅在绝对必要时使用。因此,我敦促您考虑是否真的需要这样做,如果不需要,则尝试将微服务重组为容器或无服务器功能。

如果无法使用容器,则由于您决定将软件编写,打包和部署为整体应用程序,因此请考虑不可变的AMI模板。如果您需要运行自己的非云应用程序或按原样交付的商业软件,请执行相同的操作。但是,这不是本文的主题。

如果我们的容器包装整齐,如何启动它们?

真正工作的容器


您可以做的最简单的事情就是简单地运行docker run myImage命令并结束它。但这不是一个好主意,因为在以下情况下,这种解决方案不起作用:

  • 这个容器会突然“死”;
  • 您需要有多个容器来处理负载
  • 您需要实现零停机时间的部署;
  • 您想完全控制您的微服务
  • 您想使用CI / CD传送带将产品快速交付给客户
    ,等等。

换句话说,当您需要创建真正的分布式企业级应用程序时会发生什么?显然,这是一个复杂的过程,原始docker run命令根本无法处理它。

请注意,docker-compose命令技术存在一系列非常相似的问题。Docker-compose允许您使用单个命令运行许多服务,但不适用于生产部署。其目的是进行本地原型制作,快速功能测试或非常小的部署(例如,个人住宅)。简而言之,它是用于不产生业务收入的用户工作负载的工具。

因此,容器编排急于救援!

容器编排方法概述


与生活中的其他一切一样,解决问题的方法不止一种。第一个也是最明显的是KubernetesKubernetes来自Google内部项目,是容器编排的事实上的标准。



另外,如果您在以下位置运行应用程序,则这是唯一的选择:

  • 私人数据中心;
  • 谷歌云
  • 微软Azure
  • 任何其他公共云。

但是,如果您在AWS中工作,则还有另一种选择-ECS。虽然,严格来讲,这并不完全正确:您有Hashicorp的Nomad(这些人是给您Terraform的人),而您有Docker的Docker Swarm问题是,有很多利基平台的实施很少,因此为了职业快速发展,我们忽略了它们。
无论如何,请回到AWS Elastic Container Services(ECS)。它是一个完全托管的容器编排服务,入门非常简单,并且与其余的AWS生态系统紧密集成。他只做几件事,但他做得很好。简而言之,这与Kubernetes恰恰相反,如果ECS对麦当劳足够好,那么对您来说也可能足够好。

但是,仅就立即职业发展而言,毫无疑问,Kubernetes是最佳选择。尽管我敢打赌,在AWS中工作的企业中有99%的企业也会完全满意ECS。

因此,现在您可以做出选择。如果您是该领域的新手,则可以使用Kubernetes锻炼自己,因为在志同道合的DevOps工程师团队之外,他们可以为您的旅途提供支持,这绝非易事!下图显示了未来的DevOps工程师将如何探索基于Kubernetes角色的访问系统。



但是,这绝对是可能的,尤其是在Google和AWS免费提供,YouTube / Udemy教程以及AWS现货价格的情况下。如果您选择此路线,建议您从免费的Google Cloud Platform免费套餐或kops级别开始,该级别将启动现货AWS实例。在亚马逊上运行的Kubernetes(EKS)需要花费金钱,尽管适合生产产品工作负载,但这不是开始学习如何正确运行应用程序的好方法。而且我对Azure的了解还不足以推荐它。
但是,如果您不是该领域的新手,并且确实在AWS生态系统中工作,那么我的建议如下。将您的微服务容器化,并将其部署到ECS,使其在晚上安然入睡,并并行工作以创建世界一流的Kubernetes平台。事实是,沉浸在Kubernetes中就像是“剃刀牛”,这是您甚至无法想象的,并且不可避免地会分散您的真正使命-快速有效地向客户交付产品。

注意:“ Y牛刮胡子”是一个编程术语,表示在项目可以前进到下一个里程碑之前必须完成的一系列任务。它是由Carlin Vieri创作的,灵感来自“ The Ren&Stimpy Show”一集。该术语的名称暗示着所执行的任务似乎毫无用处,即使它们对于解决更大的问题可能是必要的。

您真的需要Kubernetis吗?没有。如果您真的想和他一起工作?好的”。明确?市场上说:“要么Kubernetes,要么回家。”因此,让我们通过联系此内容来快速查看您要订阅的内容。

首先,尽管有尖端技术的印象,但Kubernetes的想法还是比较古老的。当Google在2015年从Borg(Kubernetes的前身)移除包装纸时,那时已经是一个相当古老的想法。

阅读以下内容:“我们简要描述了Borg系统的体系结构和功能,重要的设计决策,对某些政治决策的定量分析以及对从十年工作经验中吸取的教训的定性分析。”再读一次! 2015年(!),Google分享了启动类似于Kubernetes的系统的细节,当时该系统已有10多年的历史了。



但是,他们本身并不害羞。这是Kubernetes主页上的第一句话:“ Kubernetes(K8s)是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。它将组成应用程序的容器分组为逻辑块,以便于管理和发现。 Kubernetes拥有15年的Google工作负载经验,并结合了社区的最佳创意和做法。”

因此,下一次您听到有人提出Kubernetes作为一个新的“热门”想法并准备占领世界时,请记住他代表着至少已有15年历史的技术。有点创新吗?
其次,考虑目标受众。 Google正在创建工具来解决Google和Google的问题。同样,Kubernetes主页对此非常清楚地说明了这一点:“规模扩展:基于允许Google每周启动数十亿个容器的相同原理设计,Kubernetes可以在不增加运营团队的情况下进行扩展。”

最后,Kubernetes最初的开发者之一和他最积极的支持者Kelsey Hightower也强调了这一点:“ Kubernetes适用于构建整个平台的人们。如果您是创建自己的平台(AppEngine,Cloud Foundry或Heroku克隆)的开发人员,则需要Kubernetes。”

因此,如果您的工作规模庞大,或者每周要启动数十亿个容器,或者为其他用户创建云,那么Kubernetes是正确的选择。如果没有,那么这还不是故事的结局。而且我不在乎您的祖母在午休时间读了很多凯尔西推文,然后在一周内使用CI / CD和自动金丝雀分析将其花店网站转换为Kubernetes。除非您的产品性质要求您使用它,否则这不是适合您的工具。

但这真的重要吗? Kubernetes = $$$。因此,升级,尽情享受DevOps世界的旅程,并与我分享您的经验。
译者注:关于基于ELK Stack监视应用程序的第7条尚未发布。

即将继续...

一点广告:)


感谢您与我们在一起。你喜欢我们的文章吗?想看更多有趣的资料吗?通过下订单或向您的朋友推荐给开发人员的基于云的VPS,最低价格为4.99美元这是我们为您发明的入门级服务器 独特类似物:关于VPS(KVM)E5-2697 v3(6核)的全部真相10GB DDR4 480GB SSD 1Gbps从$ 19还是如何划分服务器?(RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

阿姆斯特丹的Equinix Tier IV数据中心的戴尔R730xd便宜2倍吗?在荷兰2台Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100电视戴尔R420-2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB-$ 99起!阅读有关如何构建基础设施大厦的信息。使用Dell R730xd E5-2650 v4服务器花费一欧元9000欧元的c类?

All Articles