Docker、微服务日益火热的今天,相信标题上这些名词大家都不陌生。但也相信有很多同学并不够清楚他们的概念,不理解它们的关系,也可能有这样的疑惑:不知道跟我有没有关系?要不要学习?怎么去学习?学哪些东西?没关系,今天我们就从头捋捋,让大家都能得到自己的答案。

Docker诞生于2013年,之后就是迅速串红、火的已经发烫。它为什么会火呢?有什么牛x的技术吗?并没有,docker的技术都是linux内核早已存在的技术,像LXC呀,cgoup呀,namespace呀,都是很早就存在的。那docker有啥高明的地方?很重要的一个就是image,它定义了一个交付标准,早期docker官网首页的三个最大的单词:build,ship,run。诠释了docker和核心:image的构建,image的传输,image的运行。docker就是定义并且实现了这些标准。那为什么直到2013年docker才出现呢?以前怎么没有人有这样的想法?其实想法一直都有,只是docker出现的时机更好,往往决定性的因素并不是技术本身,而是互联网的发展,市场的需要。

时至今日-2018年,Docker已历经5年发展,Docker公司揭露了今年最新的Docker年度数据报告,至今在Docker上的容器镜像下载次数已经超过了370亿次,容器化的应用有高达350万个,目前在LinkedIn网站上的Docker相关职缺也有15,000个。全球活跃的Docker使用者社群已有200多个,包括台湾也有。

随着docker、容器的日渐成熟,容器编排的问题就凸显出来,大量的容器怎么去管理,怎么调度,怎么启停都成了迫切需要解决的问题。有需求就有人去解决,ApacheMesos、kubernetes、docker swarm陆续登场,大有三足鼎立之势,而随着各自的发展,到了2017年下半年,google的亲儿子kubernetes的呼声越来越高,社区也更加活跃、成熟。2017年底,docker swarm和ApacheMesos陆续宣称支持kubernetes,预示着容器编排大战的结束,kubernetes已然成为容器编排领域的事实标准。

服务编排框架的成熟,使得容器的管理越来越方便、高效,容器带来的好处也随之凸显:提升资源利用率节省成本、更高效的持续集成,持续交付、解放运维、快速扩缩容,应对突发流量...

服务编排框架的成熟也让微服务的概念得以落地,同时也催生了java界微服务化的方案,像SpringBoot,SpringCloud。然而服务编排一定是对微服务的编排吗?也就是我们容器里运行的一定是微服务吗?不是的,我们可以运行任何服务,我们现有的业务可以不做任何改造就运行到容器中,让kubernetes去管理、调度。至于微服务呢,只是有了kubernetes,让微服务变得容易管理了。让我们有条件把服务拆分的足够小,足够简单。再也不用担心运维管理的复杂了。了解了docker,服务编排,微服务的关系,我们在看看他们在企业的落地情况。

下面是数人云2018年初做的it行业系统调查报告

这张图纵向的是系统更新频率,其中互联网行业的更新频率最高,有92%的服务要每月都更新,并且其中一定有很多的服务要一个月更新多次。

这张图统计的是目前企业it系统支撑所存在的问题。我们看两个比重最大的问题,一个是系统的复杂性越来越高,一个是运维管理复杂。在传统单体架构或者SOA架构下,应用如果频繁升级更新,开发团队会非常痛苦。为什么呢?企业的业务系统经过多年发展,系统往往会非常庞大,复杂性越来越高,要改动其中任何一小部分,都需要重新部署整个应用,敏捷开发和快速交付根本无从谈起。还有传统企业在长期的IT建设过程中,往往会使用到不同的技术,这导致技术栈之间差异很大,统一的管理和运维变将得非常复杂。随着这样一些问题越来越凸显,企业向微服务架构转型的需求也越来越强烈。

这张图是目前微服务架构在企业的落地情况:有6%的企业已经部分引入了Spring Cloud开发框架。另外,9%的受访企业采用了Dubbo等其他微服务框架。此外,还有51%的企业在考虑往云原生方向转型,包括公有云、私有云。由此可见,绝大部分企业是有架构转型的需求的。

这张图是2017年docker的使用情况。在接受调研的企业中,在生产环境中采用Docker的比例为9%,测试环境使用达22%。而且规模越大的企业,尤其是服务器规模在500台以上的,是Docker容器的主要采用者。另外,正在考虑评估中的占到被调研企业的一半以上。企业的关注度急剧升高,Docker使用正在快速普及。而容器和微服务相辅相成,他们成熟的时间点也非常契合。

接下来我们看几个大厂在docker上的进程。

由此可见,docker,服务编排将是企业发展的必经之路。也是我们每一位开发、架构、运维同学必须了解的内容。如果你正在找工作,docker,k8s,微服务也一定能给你的简历增加一个大大的亮点!

这么多的内容我们要怎么去系统的学习呢?

别着急,慕课网给我们准备了很好的入门课程哦:《Docker+Kubernetes微服务容器化实践》

真心的希望这门课程能够帮助到大家!让我们一起努力,变成更好的自己!

作者:
链接:https://www.imooc.com/article/28359?block_id=tuijian_wz
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作

Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?的更多相关文章

  1. 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南

    [SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...

  2. 微服务Spring Cloud与Kubernetes比较

    转 http://www.tuicool.com/articles/VnMf2y3 Spring Cloud或Kubernetes都宣称它们是开发运行微服务的最好环境,哪个更好?答案是两个都是,但他们 ...

  3. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  4. 手把手教你用Spring Cloud和Docker构建微服务

    什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...

  5. 使用 Spring Cloud 和 Docker 构建微服务架构

    如何使用Spring Boot.Spring Cloud.Docker和Netflix的一些开源工具来构建一个微服务架构. 本文通过使用Spring Boot.Spring Cloud和Docker构 ...

  6. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  7. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  8. [置顶] Docker学习总结(7)——云端基于Docker的微服务与持续交付实践

    本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...

  9. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...

随机推荐

  1. ASP.NET MVC多语言 仿微软网站效果(转)

    本文转自: https://blog.csdn.net/Cooldiok/article/details/7831351 2017年10月22日 21:31:22 Cooldiok 微软作为ASP.N ...

  2. python列表中元素插入位置总结

    要完成的操作是把一个列表里的元素通过for循环添加到另外一个列表里,但是通过insert()方法添加到另外一个列表后却发现元素的位置与原始列表的颠倒了.如以下实例: li1 = ['] li2 = [ ...

  3. 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  4. 【原】关于AdaBoost的一些再思考

    一.Decision Stumps: Decision Stumps称为单层分类器,主要用作Ensemble Method的组件(弱分类器).一般只进行一次判定,可以包含两个或者多个叶结点.对于离散数 ...

  5. 教你一招:使用最快速的方式激活windows10专业版

    1.安装win10专业版 2.在桌面新建“文本文档.txt” 3.复制如下代码到新新建的“文本文档.txt”中 slmgr /ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T slm ...

  6. vue条件与循环

    通过vue控制切换一个元素的显示也相当简单: <div id="app-3"> <p v-if="seen">Now you see m ...

  7. Caltech数据使用详情

    Caltech官网: http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/ 以Caltech测试集为例(大概是4095个图片 ...

  8. mysql语法 -- concat函数

    mysql CONCAT(str1,str2,…)                        返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL.或许有一个或多个参 ...

  9. Kubernetes集群部署之三ETCD集群部署

    kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点复用 kubernetes 集群机器k8s-master.k8s-node-1.k ...

  10. [转]如何通过 App Store 审核(iOS 开发者经验分享)

    CocoaChina交流社区曾经发起一个主题讨论,关于iOS开发者遇到审核失败的原因及解决办法的,有价值的回复内容如下: wubo9935 App中设计的图标与Apple原生图标类似,Apple原生图 ...