本文由  网易云发布。

作者:张亮

如果说一个项目的发展历程就像一段未知的旅程,那《云原生应用架构实践》就像一张地图,基于前人的探索标明了在这段旅途中将会碰到的障碍,并注明了越过这些障碍的方法

最近,利用碎片化的时间把团队写的《云原生应用架构实践》通读了一遍。

作为一个解决方案架构师,我感觉收获很多,主要是对云原生架构有了一个系统的认识,并了解了一个从无到有、从小到大的项目,在整个成长过程中可能碰到的问题,以及解决这些问题的思路、方法和工具

这本书首先介绍了云原生架构的发展历程,解释了企业为什么要采用原生架构。然后以一个业务通常的发展路径(即从无到有、快速成长到比较稳定的大型应用)为例,讲述在各个阶段的不同业务目标下,企业在可用性、可扩展性、可维护性、安全性等方面的需求,结合网易实际业务的经验,给出了建议,并讲解了常见的技术和工具。

如果说一个项目的发展历程就像一段未知的旅程,那么这本书就像一张地图,标明了在这段旅途中将会碰到的障碍,并且注明了用什么办法去越过这些障碍。而且这张地图是别人已经走过一遍的,因此这些问题不是凭空想象出来的,而解决这些问题的经验,也都是花费了很多时间,进行了大量测试,在不断迭代不断改进之后得到的。对于拿到这份地图的人来说,一路的障碍并没有减少,但却可以少走很多弯路,可以更从容、更自信地抵达他们的目的地。这也是我认为这本书最有价值的地方。

这些内容会让我们对项目从小到大发展过程中遇到的问题和解决办法,有一个较为全面的认知,当项目真正碰到问题时,我们对问题的关键以及主要的解决手段能做到心中有数。我们不一定会立刻用得上这些知识,因为项目目前可能还没有达到那么庞大的规模,但是我们可以为即将面临的技术挑战做好必要的准备,这样当项目不断发展壮大,并确确实实暴露出书上描述的问题时,我们不至于欠太多的技术债从而导致应用或者难以扩展,或者难以协同开发,或者难以维护,或者改造的成本非常高昂,以至于最终影响了业务的发展,为最初没有做良好的设计而付出沉重代价。

书中提到的云、微服务、DevOps,这些概念其实已经被提出来很久了,尤其是云,那是前几年非常热门的话题。行业内的人会感觉这些概念已经是尽人皆知,没有新意。因为他们天天都在用,都在实践。但从我接触到的不少客户来看,实际却不是这样的。比如一些传统行业的客户,并不是很了解云计算到底是什么,对使用云服务到底能带来多少好处、会有哪些风险也不是很清楚;有一些做Web开发的程序员,还不知道Redis这样的缓存服务;也有很多开发者,还不清楚容器是什么,使用容器有什么好处

这很正常,因为在这些概念被炒得热火朝天的时候,这些客户的业务大部分都并没有像互联网公司的业务那样有指数级的用户增长,有双11的海量访问,有秒杀、抢购的突发流量,有业务剧烈波动带来的波峰波谷,因而也没有面对海量访问保证服务稳定可用同时还要保持成本尽可能低的需求。正因为他们的业务还没有碰到这些问题,弹性伸缩、秒级启动、动静分离、无状态服务、服务治理、分布式应用、分布式事务等等在大规模互联网业务中常见的技术,对他们而言是屠龙之技,或者是可用可不用,因为带来的价值不高。

然而,现在他们开始关心这些技术了。根据我的观察,这主要有三个原因:

  1. 这些客户看到了IT能力将慢慢变成企业核心竞争力的一部分,他们的部分或全部业务依赖软件来为自己或他们的客户提供服务。
  2. 客户的业务规模扩大了。
  3. 市场变化越来越快,客户需要尽可能快地根据市场调整业务,因而开始有了应用快速迭代、便于多个团队协同开发、尽量自动化、减少维护、成本随业务发展而变化等需求。

因此,这些客户目前就碰到了之前那些大型互联网业务所碰到的同样的问题。这时候,这本书中那些解决这些问题的经验就能给他们带来很大的帮助。

当然,由于云原生架构涉及到非常多的技术领域,比如Web前端、负载均衡、数据库、缓存、CDN、监控、日志收集、微服务等等,每一个领域详细解析都可以写不止一本书,这本书并没有涉及每个技术的原理、安装配置、使用维护和开发,因而我们对于那些内容需要参考其他相关材料。

在IT领域,技术总是不断发展,新技术层出不穷。可以断言,未来一定会出现能更好地解决问题的技术和产品。就当下而言,这本书能给那些在上云、微服务化、DevOps方面寻求业界经验和最佳实践的读者一些启发,能让我们将这些经验用在业务开发当中解决我们的实际问题,并为将来应用更多新技术做好准备,是一本值得一读的cookbook。

了解 网易云 :
网易云官网:https://www.163yun.com/
新用户大礼包:https://www.163yun.com/gift
网易云社区:https://sq.163yun.com/

上云、微服务化和DevOps,少走弯路的办法的更多相关文章

  1. QQ全量上云,你想了解的技术细节都在这

    腾讯的业务体量非常庞大,在2019年,腾讯已拥有超过了100万台服务器,其中,社交业务包括QQ和空间的体量有近20万台服务器,且分布在全国三地. 把QQ这头大象搬到云上并非易事.作为腾讯最庞大.最悠久 ...

  2. 从DevOps到Cloud Native,应用上云姿势全解锁

    本文由  网易云发布. 作者:林帆 序文 伴随着IaaS.PaaS等云端基础设施技术的成熟,“应用上云”成为许多企业软件部门的心头大事.通过把传统软件系统搬到云上,一方面可以让业务方获得更多的资源灵活 ...

  3. Go-Zero 短链项目 DevOps 实战,利用 Drone CI/CD 打通上云(Kubernetes)迭代流程

    Go-Zero 官方短链项目教程:快速构建高并发微服务 关于 go-zero,大家可以看文档.为少认为它是中国目前最好用的 golang 微服务框架. 完整的 Go-Zero ShortUrl Dev ...

  4. 前端静态站点在阿里云自建 K8S DevOps 集群上优雅的进行 CI/CD

    目录 网站 域名 K8S DevOps 集群 私有 Gitlab 使用 Docker 编译站点 * Dockerfile * 构建编译 Image * 测试编译 Image * 推送镜像到 Aliyu ...

  5. 拷问传统企业CIO:微服务化值得吗?

    所谓数字化转型升级,就是以数字技术优化传统资源,企业需要谨慎地选择合适的技术逐步完成自己的数字化战略.以推出轻舟微服务平台的网易云为代表,云计算公司正在微服务领域发力,促进企业数字化创新.那么,微服务 ...

  6. Kubernetes才是微服务和DevOps的桥梁

    一.从企业上云的三大架构看容器平台的三种视角 一切都从企业上云的三大架构开始. 如图所示,企业上的三大架构为IT架构,应用架构和数据架构,在不同的公司,不同的人,不同的角色,关注的重点不同. 对于大部 ...

  7. 039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践

    http://dockone.io/article/2967 基于 Kubernetes 和 Spring Cloud 的微服务化实践 写在前面 网易云容器平台期望能给实施了微服务架构的团队提供完整的 ...

  8. 【山外笔记-云原生】《Docker+Kubernetes应用开发与快速上云》读书笔记-2020.04.25(六)

    书名:Docker+Kubernetes应用开发与快速上云 作者:李文强 出版社:机械工业出版社 出版时间:2020-01 ISBN:9787111643012 [山外笔记-云原生]<Docke ...

  9. CODING DevOps 系列第三课:云计算、云原生模式下 DevOps 的建设

    本文首先会和大家分享当前整个应用生命周期的演变历程,然后讲解云计算模式下 DevOps 建设包含的过程.流程规范和标准,最后讲解云原生时代到来会带来哪些改变,以及标准化的建设会有哪些改变和突破. 应用 ...

随机推荐

  1. ecplice中去掉提示信息的步骤

    Window-->preferences-->Java-->Editor-->Hovers-->将Combined Hover前面的对勾去掉-->ok.

  2. 对于某些浏览器不支持placeholder的解决办法

    $(function () { if (!placeholderSupport()) { $('[placeholder]').focus(function () { var input = $(th ...

  3. PAT 1053 住房空置率 (20)(代码+思路)

    1053 住房空置率 (20)(20 分) 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 ...

  4. Package gtk+-3.0 was not found in the pkg-config search path

    问题描述: 在fedora21系统上通过rpmbuild构建fcitx的二进制包时出现以上错误,经老程序员指点:“是相应的开发包没有安装” 解决办法: yum installl gtk3-devel  ...

  5. Eclipse下配置TinyOS开发环境

    通过给Eclipse安装Yeti 2 - TinyOS 2 Plugin for Eclipse来配置TinyOS IDE,从而可建立TinyOS Project Yeti 2的介绍请参考网站:htt ...

  6. Laravel Nginx 站点配置文件(Homestead)

    server {     listen 80;     listen 443 ssl http2;     server_name fmtmis.local;     root "/home ...

  7. [Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?

    我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html: <div id="mailEditorDiv" style=" ...

  8. Jmeter的一个jmx文件(备忘)

    <?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1. ...

  9. 并发编程(三)Promise, Future 和 Callback

    并发编程(三)Promise, Future 和 Callback 异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这 ...

  10. Response.Redirect原理图解