走向云原生:你需要知道的6件基本事情

 

云本土简史

根据您的要求,云原生可能意味着很多不同的东西。十年前,它是由Netflix等公司创造的,他们利用云技术,从邮购公司转向世界上最大的消费者点播内容交付网络之一。Netflix开创了我们所谓的云原生,重塑,转型和扩展我们都希望进行软件开发的方式。
凭借Netflix的巨大成功及其向客户更快地提供更多功能的能力,公司希望了解他们如何实施云原生技术以获得如此巨大的竞争优势。
从本质上讲,术语云原生是一种提高业务速度的方法,也是一种构建团队的方法,可以利用Kubernetes和容器等云原生技术提供的自动化和可扩展性。

云原生架构:它看起来像什么?

Monolith与微服务架构

使用错误的分号进行灾难性发布之后  ,前Netflix云架构师Adrian Cockcroft将他们的整个架构从整体架构转移到微服务。
单片架构的问题在于,在开发和测试新功能时,将这些更改部署到生产中需要花费相当大的精力:
  • 需要多个团队来协调他们的代码更改。
  • 一次部署多个功能需要大量的前期集成和功能测试。  
  • 开发团队仅限使用一种或两种语言。
向微服务的转变使Netflix开发人员能够更快地向客户提供新功能。

微服务导致具有有界上下文的松散耦合,面向服务的体系结构。这意味着如果每个服务都必须同时更新,那么它就不会“松散耦合”; 同样,如果你必须对周围的服务了解太多,那么你就没有“有界的背景”。

微服务,Docker和Kubernetes

Docker容器非常适合微服务。通过在单独的容器中运行微服务,如果您愿意,它们都可以独立部署,甚至可以使用不同的语言部署。容器化消除了语言,库或框架之间任何摩擦或冲突的风险。由于容器是可移植的并且可以彼此隔离地操作,因此使用容器创建微服务架构并在需要时将它们移动到另一个环境非常简单。

容器编排

一旦你有大量的微服务都在Docker容器中运行,你需要一种方法来管理或编排这些容器,以便它们作为一个应用程序有意义。这是您需要像Kubernetes或Docker Swarm或其他人一样的协调器(集群管理器)的地方。
在过去的某个时候,你必须明智地选择使用哪个orchestrator,但现在管弦乐队的战争已经取得胜利,而Google的Kubernetes则名列前茅。所有主要云提供商都通过易于安装的解决方案为Kubernetes提供支持。
这个讨论的要点是,为了使大多数公司具有竞争力,他们必须围绕微服务构建应用程序并在Kubernetes集群中运行它们 - 尽管有些公司也在其他协调器上运行Docker容器。

部署

随着应用程序在容器中运行并在Kubernetes中进行协调,下一步是自动部署。不断自动化的功能流是DevOps与其他软件开发理念和实践的区别,例如瀑布模型,其中开发遵循有序的阶段序列。
连续并不意味着工程师每周7天每天24小时更新代码,或者每次更改代码行时都会部署更新。在这种意义上,连续性是指通过自动化持续集成和持续部署管道(CICD)定期推出的软件变更和新功能。 
可以在构建持续交付管道中找到更多用于构建CICD管道的DevOps策略  

监控

使用容器和微服务,监控解决方案必须管理比以往更多的服务和服务器。不仅需要管理更多对象,而且云原生应用程序还会生成大量需要跟踪的额外数据。
从由如此多的移动部件组成的环境中收集数据是复杂的。Prometheus是这些动态云环境的最佳现代解决方案。它专门用于监控大规模容器中运行的应用程序和微服务,并且是容器化环境的原生。

文化变迁

在您的组织中实施云原生技术和DevOps最佳实践的成功在很大程度上取决于您现有的公司文化。内部团队不仅要学会采用跨功能方法来确保软件以连续的节奏进行迭代,而且还要补充公司的业务目标。实际切换到云原生可能是您旅程中最简单的部分; 让这些变化坚持并在整个组织中传播它们可能是这个过程中最困难的部分。 
 
 
 
 
文章节选自外网Dzone:
https://dzone.com/articles/going-cloud-native-6-essential-things-you-need-to
讲师赵韶磊
 

 ie-lab网络实验室针对思科认证,ccie,ccna,ccnp认证,华为认证等课程!
授课经验丰富,师资力量雄厚!
通过网络报名所有课程6折起!咨询微信13126705344,电话同步