云原生是一种可以利用云计算按需分配计算能力和即用即付定价模式等优势,构建和运行应用程序的方法。这些应用程序以云计算平台快速响应特性为基础构建和部署,能够为管理者提供云平台间更高的灵活性、弹性和可移植性。
本博客阐释了构建云原生应用程序的重要性、优点及其实现方式。
FANG(Facebook,Amazon,Netflix和Google)等早期技术公司在软件发布方面有着一些共同的特征。他们投入巨资以构建能够定期(每周,每天,某些情况下甚至是每小时)发布新特性的能力。他们已能够在应用程序安全可靠运行的情况下,快速发布; 从而更有效地响应客户需求。
他们通过超越特定领域的自动化,及使用有可预测功能的云原生实践,达到这种敏捷性。DevOps、持续交付、微服务和容器是云原生模式的四条主要原则。其共同目标都是通过自动化,来提高应用程序开发和运营团队的效率。
尽管在这一点上,这些技术只能在这些软件驱动的公司得到成功地证明。更小、更灵活的公司同样也意识到其价值所在。但是,乔·贝达 (Kubernetes创始人、Heptio CTO)却有极少数将这些理念应用到技术为中心的公司之外的例子。
任何团队/公司如果想在降低风险的同时更快地发布软件,进而博得客户满意的话,都应认真考虑采用云原生的做法。
云原生方式包括四个主要原则。
采用这些方法论有如下优点:
现在,让我们来了解一下用以实现上述目标的云原生堆栈的各种构建模块。此处,我们根据针对的问题对工具和解决方案进行分组。我们从底层的基础设施层开始,然后是用于配置基础设施的工具,接着是容器运行时环境; 在此之上,是容器环境集群的管理工具,最后,是最顶层的应用程序开发工具和框架。
基础设施层:处于最底层的是基础设施层,它通常由云服务商(AWS,GCP,Azure,OpenStack,VMware)提供的计算、存储、网络和操作系统等组成。
配置层:配置层由基础设施配置、镜像管理和应用程序部署等自动化工具组成。Chef,Puppet和Ansible是配置及环境管理的DevOps工具。Spinnaker,Terraform和Cloudformation等工具提供了基础架构配置的工作流。Twistlock和Clair则能够强化容器镜像。
运行时:运行时为应用程序提供了运行环境。它由包含应用程序运行所依赖的存储及网络的容器引擎组成。containerd和rkt是使用最广泛的容器引擎。Flannel和OpenContrail可以为容器提供必要的网络覆盖,以便容器之间及与外部世界的交互,而Datera,Portworx,AppOrbit等则提供必要的持久性存储,方便容器在云服务器间的迁移。
编配和管理:Kubernetes,Docker Swarm和Apache Mesos等工具对容器集群管理进行了抽象,从而简化了容器在多主机间的调度和编配。etcd和Consul为发现提供服务注册,而AVI和Envoy提供代理、负载平衡等服务。
应用程序定义和开发:我们能够为跨语言(Python,Spring / Java,Ruby,Node)的应用程序构建微服务。Packer,Habitat和Bitnami为应用程序提供镜像管理,使其能在所有基础架构(容器或其他)之上运行。
Jenkins,TravisCI,CircleCI和其他自动化构造服务器提供了建立持续集成和交付流程的能力。
所有现代监控平台,如Datadog,New Relic和AppDynamic等都支持容器和微服务的监控。
Splunk,Elasticsearch和fluentd可以帮助打包日志,而Open Tracing和Zipkin则有助于调试应用程序。
团队文化:采用云原生实践之后,团队不再相互独立地工作,团队文化也需随之改变。端到端的软件交付流程自动化只有在开发和IT运营团队与精密协作及责任共享的情况下才可能实现。
当把所有的部分整合到一起时,我们可以得到完整的云原生概况,如下所示。
我希望这篇文章能够给出一些为什么云原生是重要的、及其主要优点的想法。正如在以上信息图中您可能已经注意到的那样,有些项目、工具和公司正在试图解决类似的问题。接下来的问题可能就是:“我如何开始?哪些工具适合我?等等。我将在接下来的文章中对这些话题及其拓展进行介绍。敬请关注!
请让我们知道您在DZone上的想法,您也可以在Twitter上联系chirag_jog或velotio。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有