云原生是一种利用云计算交付模型的优势来构建和运行应用程序的方法论。
(云计算:分布式操作系统聚集起来的计算资源。)
云原生架构有几个特征:
- 符合12模式(Twelve-Factor App):云原生应用架构的模式集合
- 微服务架构(Microservices):独立部署的服务,一次只做一件事
- 自助服务敏捷基础设施(Self-Service Agile Infrastructure):用于快速、可重复和一致地提供应用环境和服务的平台
- 面向API接口的通信(API-based Collaboration):服务之间的交互基于接口,而不是本地方法调用
- 抗脆弱性(Anti-Fragility):系统能抵御高负载
简单来说就是:
- 模块化(Modularity)
- 可观测性(Observability)
- 可部署性(Deployability)
- 可测试性(Testability)
- 可处理性(Disposability)
- 可替代性(Replaceability)
云原生开发融合了 DevOps、连续交付、微服务和容器。
云原生架构原则:DevOps、Microservices、Containers、Security。
应用容器化、面向微服务、容器编排、声明式 API 和服务网格。
实现快速交付价值且具有持续改进能力
Devops 理念:一系列价值观,原则,方法,实践及工具的集合,目的是实现快速交付价值且具有持续改进能力,其核心是用于打破研发和运维之间的隔阂、加快软件交付流程、提高软件质量。
devops平台搭建工具
- 项目管理(PM):jira。 运营可以上去提问题,可以看到各个问题的完整的工作流,待解决未解决等;
- 代码管理:gitlab。 jenkins或者K8S都可以集成gitlab,进行代码管理,上线,回滚等;
- 持续集成CI(Continuous Integration):gitlab ci。 开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
- 持续交付CD(Continuous Delivery):gitlab cd。 完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
- 镜像仓库:VMware Harbor,私服nexus。
- 容器:Docker。
- 编排:K8S。
- 服务治理:Nacos。
- 脚本语言:Python。
- 日志管理:Cat+Sentry,还有种常用的是ELK。
- 系统监控:Prometheus。
- 负载均衡:Nginx。
- 网关:Kong,SpringCloud Gateway。
- 链路追踪:SkyWalking。
- 产品和UI图:蓝湖。
- 公司内部文档:Confluence。