云原生概述
在了解什么是云原生之前,我们先了解一下什么是云计算
什么是云计算
云计算是一种通过互联网提供计算资源和服务的模式。它允许用户通过网络访问虚拟化的计算资源,包括计算能力、存储空间和应用程序,而无需拥有实际的物理设备。云计算的主要特点包括弹性扩展、按需服务、资源共享、灵活性和可靠性。
云计算提供了一种高效、灵活和经济的方式来管理和交付计算资源。用户可以根据自己的需求,按需使用和支付所需的计算资源,而无需购买、部署和维护昂贵的硬件设备。云计算还提供了更高的可靠性和容错性,因为计算资源可以在多个物理设备之间动态分配和管理,以保证服务的持续性和可用性。
云计算广泛应用于各个领域,包括企业 IT 系统、软件开发和测试、大数据处理、人工智能、物联网等。它为用户提供了更高的灵活性和效率,同时也为企业和组织降低了成本和风险。
在了解了云计算的概念后,我们知道了云计算实际上是通过互联网来提供资源,包括服务器,存储,网络等资源,它们构成了互联网基础设置,这之中会需要相当大的成本,所以通常是由大型企业来完成,中小型企业使用大企业开发完成的云计算成果,国外我们所熟知的大型企业包括:亚马逊云、微软云、谷歌云等,国内主要是三大企业:阿里云、腾讯云以及华为云
国内第一家实现云计算的企业是阿里云,领导人是王坚,一共耗时10年,每年马云都投资10亿元,才完成这一壮举,这其中的过程非常艰辛,想了解的小伙伴可以去看**“阿里云的这群疯子”**文章,了解这段故事,非常的励志,在你迷茫的时候千万不要放弃
大型企业通过使用虚拟化技术对大量的基础设施进行统一管理,形成一个个可以动态分配资源的平台,这样可以大大节省成本,我们在使用时也可以按需购买,节省了使用成本,包括云服务器、云mysql、云redis等等
云资源不仅包含基础设施 Iaas,在云上搭建的开发平台、应用等都可以作为一种服务提供给用户,这就是Paas(Platform as a Service,平台即服务)和 SaaS(Software as a Service,软件即服务)。根据云服务的开放范围,又可以分为公有云、私有云、混合云。
什么是云原生
云原生是一种软件开发和交付的方法论,旨在充分利用云计算的优势和特性。与传统的应用程序开发和部署方式相比,云原生将应用程序设计为在云环境中高度可扩展、弹性、可靠和可管理的方式。
云原生应用程序通常采用微服务架构,将应用程序拆分为一组小型、独立的服务,每个服务都可以独立开发、部署和扩展。这种架构使得应用程序更容易理解、维护和扩展,并且可以充分利用云计算平台的弹性扩展能力。
云原生应用程序还通常使用容器化技术,如Docker,将应用程序及其依赖项打包成一个独立的、可移植的容器。容器化使得应用程序在不同的环境中可以以一致的方式运行,从而简化了部署和管理的过程。
除了微服务和容器化,云原生还强调自动化和持续交付。自动化可以帮助提高开发、测试和部署的效率,持续交付则可以实现快速迭代和持续创新。
总的来说,云原生是一种以云计算为基础的现代化软件开发和交付方法,旨在提高应用程序的可伸缩性、可靠性和可管理性,实现更高效的开发和运维。
云原生的英文是 Cloud Native,如果说一个 Cloud Native Application 就是指应用从设计开始就是为部署在云环境上的
云原生设计理念
现如今我们在开发项目时,基本都是用户向我们提出一个需求,我们进行分析,设计UI,开发,部署到本地服务器,测试,然后部署到用户的服务器上
而云原生的设计是一个商店(类似于手机上的 app商城),企业在商店中开发出各种项目(类似于一个个app),用户需要什么项目,自己去商店中选择合适的下载,自定义配置,包括公司的logo,用户、管理员的信息等,配置好服务器后,按需付费,按服务付费,这中设计方法已经开始逐步运用到大型企业上
云原生的优点
云原生具有以下几个优点:
- 弹性扩展:云原生应用程序可以根据需求自动扩展和收缩,根据流量和负载的变化,动态分配和释放计算资源。这样可以确保应用程序始终具备足够的计算能力,同时避免资源浪费。
- 敏捷性和快速交付:云原生应用程序采用微服务架构和容器化技术,使得应用程序可以独立开发、测试和部署。这种模块化和可移植的设计使得开发团队可以更快地推出新功能和修复问题,实现持续交付和快速迭代。
- 可靠性和容错性:云原生应用程序通常具有高可用性和容错性,可以通过在多个地理位置和实例之间分布和复制服务来实现。即使某个服务出现故障,其他服务仍然可以正常运行,从而保证应用程序的可靠性和稳定性。
- 成本效益:云原生应用程序可以根据实际使用情况按需分配和付费计算资源,避免了传统的硬件设备投资和维护成本。同时,云服务提供商通常提供了多种定价模型和计费方式,使得成本管理更加灵活和透明。
- 可移植性和跨平台支持:云原生应用程序通过容器化技术打包应用程序和依赖项,实现了在不同云平台和环境中的一致性运行。这种可移植性使得应用程序更加灵活,可以根据需求在不同的云环境中部署和迁移。
总的来说,云原生通过弹性扩展、敏捷性、可靠性和成本效益等方面的优势,提供了一种现代化的软件开发和交付方式,适应了云计算时代的需求。
云原生前景
在2021年,全球云原生应用持续上升,组织中容器和无服务器技术的使用率在一年内都增长了75%以上。
预测到2025年,将会有超过95%的新数字工作负载被部署在云原生平台上。
**未来的软件一定是长在云上,企业也必将长在云上。**云原生这一提出不到十年的概念迎来了爆炸式增长。
CNCF,即云原生计算基金会,2015年由谷歌牵头成立,基金会成员目前已有一百多企业与机构,包括亚马逊、微软、思科等巨头。
2015年,云原生领域最具话语权的组织 CNCF(Cloud Native Computing Foundation)成立,该组织对云原生的最初定义主要包含三个方面:应用容器化 docker;面向微服务架构 项目拆分部署-网络请求;应用支持容器的编排调度。 docker-swarm、k8s
2018年,随着云原生生态的壮大,CNCF更新了对云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。 平台:阿里云 - 应用 docker 、k8s 、mysql、 redis
云原生是一种系统化方法论和技术的集合,经过不断地演进与发展,目前云原生的核心主要是微服务、容器、服务网格、不可变基础设施和声明式API这五大关键技术。
云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。
公有云与私有云
公有云是指第三方提供商:阿里、腾讯、华为通过**公共Internet:服务器、算力、存储、网络…**为用户提供的云服务,用户可以通过Internet访问云并享受各类服务,包括并不限于计算、存储、网络等。公有云服务的模式可以是免费或按量付费。
公有云的核心属性是共享资源服务(购买大量的服务器,在不同的区域配置,实现灾备,降温…)。第三方提供商将共享的计算、存储、网络等资源按需提供给用户。对于用户来说,由于不需要进行初始IT基础设施投资就可以通过按需付费的方式享受IT服务,数字化门槛和IT成本都大幅降低。
对于多数中小型企业或初创型企业而言,上公有云是最佳选择:
- 从运营的角度来看, 公有云能够按需提供用户所需资源,计量收费,降低TCO,达到节省成本的目的。尤其对于中小型企业来说,没有充足的预算购买设备、短时间使用并释放(测试、验证等)、需要超大规模计算能力等都可以通过公有云满足。公有云大大降低了IT人的创业成本。
- 从运维的角度来看, 传统的企业通过自建数据中心来支撑自身业务,而自建带来的工作量就要包括基础设施(包括风火水电、服务器、存储、交换机、防火墙等等)、系统、中间件服务等等。维护复杂且支出庞大。而通过使用公有云,用户将不需要关注上述问题,这些问题都交给第三方服务商,只需要关注自身业务即可,大大减轻了维护的复杂度及维护开支,转而聚焦业务持续创新。
- 从服务的角度来看, 公有云提供种类繁多的服务,阿里云的mysql服务、阿里云的redis、阿里云的k8s,使用户可以尽情享用云带来的便利。
- 从安全的角度来看, 当前主流的公有云服务提供商的安全等级往往是大部分企业无法达到的。主流的公有云提供商提供服务通过了大部分安全及隐私等级认证,能够高效保障用户的数据及隐私安全。
公有云的架构
公有云常见的架构包含包含IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)、运维、运营、安全六大部分。
- IaaS层主要是将计算、存储、网络资源的抽象化后将资源提供给用户使用,并根据实际运用需求,提供对应服务。
- PaaS层基于IaaS层为用户提供容器服务、微服务开发等服务,即将一个开放平台作为服务提供给用户。
- SaaS层主要提供场景化的应用,即将应用作为服务提供给用户,单一软件服务的提供。
在运维层面,公有云提供面向用户侧和面向平台侧的运维能力。公有云为使用云服务的用户提供用户运维能力,例如权限控制、性能监控,状态监控,故障告警等。而在平台侧,是由公有云保障团队进行运维,保障平台的高可靠性、高可用性及安全性等。
在运营层面,公有云提供面向用户侧和面向平台侧的运营能力。用户拥有提交工单、订单、计费等运营能力,以协助用户了解运营成本、分析业务趋势。公有云运营团队对用户的工单、投资进行处理与管控,同时对于公有云的整体收入进行可视化管理。
在安全层面,公有云需要提供系统安全、平台安全、运维安全及网络安全等方面需求,以保障用户及云服务提供商的数据财产安全。
公有云与私有云的比较
企业部署云计算服务的模式有三大类:公有云、私有云、混合云。其中,私有云是企业自己建设的为企业内部提供服务的一种云计算使用方式。私有云为一个企业单独使用而构建,可部署在企业的数据中心中,也可统一部署在云平台业务提供商的机房。
总体对比,与私有云相比,公有云具备以下优点:
- 更高的弹性和可扩展性:使用公共云,客户可以快速订购计算、存储和网络资源来应对激增的业务需求,而无需购买和部署新的硬件。
- 更低的进入成本:大多数客户可以无需添加自己的物理基础设施就可以使用公共云服务。
- 更快地获取最新技术:在许多情况下,与客户自己购买和安装硬件和软件相比,公有云提供商能够更快地提供最新的硬件和软件,及其对应的升级更新。
与公有云相比,私有云的安全性更好,但成本也更高,且私有云整个基础设施的平均利用率要低于公有云
根据业务需求来设定。大部分业务,其实都可以部署在公有云上。
建设与运行模式对比
- 公有云是一种新的IT能力消费模式,公有云的用户只需关注云服务所提供的能力,并不关注背后的资源所在地,以及建设、交付、运维等问题。公有云用户可以快速租用资源,部署自己的业务,前期投入低,业务上线周期短。在运维层面,公有云提供商提供大部分运维服务,公有云用户只需要关注自身的应用。
- **私有云的资产归属该组织拥有,由该组织主导云的建设、管理和维护,部署在该组织内部的数据中心。**私有云前期建设投入成本较多,建设和调试周期较长。私有云的运维一般需要该组织自身完成。
架构对比
从架构上看,一般认为私有云的 IaaS、PaaS 能力是公有云 IaaS 层、PaaS 层能力的子集。由于私有云是满足某组织的具体业务需求构建的,因此不需要将 IaaS、PaaS 的能力全部都纳入私有云,该组织不使用的能力,可以不部署。例如该组织只使用虚拟机服务,不使用裸金属服务,则该私有云中可以不部署裸金属服务。
公有云架构中除了 IaaS、PaaS 以外,还有 SaaS、运营等主要能力。
公有云一般均提供 SaaS 能力,但是在私有云中,却不一定会部署 SaaS 软件。当 SaaS 软件私有化部署后,私有云拥有者需要投入大量的资源去维护 SaaS 软件,在成本上比使用公有云版本的纯 SaaS 服务要高得多。在实际部署中,不论是公有云、私有云、混合云,其部署都是基于不同客户的需求制定的 SaaS 实施方案,主要取决于客户对于安全、成本、维护等各个因素的综合考虑。
由于私有云的私有属性,在私有云的组织内部一般不涉及费用计算问题,此时不涉及运营。而公有云需通过各种模式向其用户收费,因此其运营能力是必选项。
业务类型对比
- 公有云中一般部署非核心业务、需要快速迭代的业务、对外部提供服务的业务。 小公司,简单业务
- 私有云中一般部署该组织的核心业务、设涉及到信息安全等级高的业务。 高机密业务
- 混合云,兼容兼备。主要考虑成本问题。
常见的云平台
阿里云
腾讯云
华为云
青云
七牛云
金山云
天翼云
…
- 产品:基础设施、带宽、存储。。。
- 服务:mysql、redis。。。
- 解决方案:paas
- 云商店:saas
云平台使用
这里我们使用阿里云
- 注册自己的阿里云账号
- 阿里云云大使功能
相当于销售,分享链接,购买用户可以通过你分享的连接购买阿里云服务器,可以免费试用,你可以拿到返利
这里是我的云服务器分享链接:https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=166mndcu
- 购买服务器:根据自己的要求选择合适的配置,购买可以选择包年包月(按1年或1月付费),或者按量付费(每小时付钱,用完后释放)
推荐有活动时购买,会更便宜
活动链接:https://www.aliyun.com/activity?userCode=166mndcu
购买完后会拿到公网ip、用户名(一般为 root)、密码
- 连接到服务器,使用 ssh工具
XShell 下载地址:https://www.xshell.com/zh/all-downloads/
1、XShell
2、SecureCRT
3、PuTTY
4、WindTerm
5、MobaXterm
6、Termius
7、FinalShell
......
- 配置安全组,外网访问的时候会有限制,所以配置安全组开放要访问的端口,重要。
- 在云平台使用过程中出现任何问题,都可以提交工单。
用钱买,有问题提工单
专有网络VPC
当你想配置集群的时候,需要购买多个云服务器时
最好保证这些服务器都在同一个网段内,但是阿里云服务器默认购买时 ip 都是随机的,无法保证在同一个网段内
这就需要我们去配置专有网络,购买服务器时选择专有网络,这样就可以保证这些服务器都在同一个网段内
网络关系是层层递进的
在同一个网段内的设备是可以互相访问的
如果网段不同,则无法直接 ping 通
在这里购买,选择专有网络,可以保证,我们购买的三台服务器内网是可以 ping 通的
如果没有配置这个,内网 ip 可能是不一样的,这个时候访问就走公网,流量费很贵