Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
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...好乱!到底要不要学?的更多相关文章
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...
- 微服务Spring Cloud与Kubernetes比较
转 http://www.tuicool.com/articles/VnMf2y3 Spring Cloud或Kubernetes都宣称它们是开发运行微服务的最好环境,哪个更好?答案是两个都是,但他们 ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- 手把手教你用Spring Cloud和Docker构建微服务
什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...
- 使用 Spring Cloud 和 Docker 构建微服务架构
如何使用Spring Boot.Spring Cloud.Docker和Netflix的一些开源工具来构建一个微服务架构. 本文通过使用Spring Boot.Spring Cloud和Docker构 ...
- Spring Cloud和Docker搭建微服务平台
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- [置顶]
Docker学习总结(7)——云端基于Docker的微服务与持续交付实践
本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...
随机推荐
- String拼接字符串效率低,你知道原因吗?
面试官Q1:请问为什么String用"+"拼接字符串效率低下,最好能从JVM角度谈谈吗? 对于这个问题,我们先来看看如下代码: public class StringTest { ...
- 【SqlServer】解析SqlServer中的事务
目录结构: contents structure [+] 事务是什么 控制事务 数据并发访问产生的影响 事务的隔离级别 锁 NOLOCK.HOLDLOCK.UPDLOCK 死锁分析 在这篇Blog中, ...
- 查看修改添加环境变量的工具——Rapid Environment Editor
工欲善其事,必先利其器! 特别是公司或者有其他限制的时候,更需要一个比较简单.实用.强大的工具了! 原来的公司都是小公司,给电脑安装系统.软件等都是自己直接上手,现在在一个大点的公司了,电脑运维有单独 ...
- windows环境telnet发送命令
telnet *.*.*.* port ,然后crtl+]进入命令模式,使用send发送消息,如:send hello,murphy 常用命令: open : 使用 openhostname 可以建立 ...
- linux下编译安装pthreads扩展
这里讲的是如何编译安装pthreads,以后编译安装其他PHP扩展可以参考此方法. 下载pthreads源码:http://pecl.php.net/package/pthreads 首先确定安装的p ...
- openssl 非对称加密DSA,RSA区别与使用介绍
在日常系统管理工作中,需要作一些加解密的工作,通过openssl工具包就能完成我们很多需求! 1. openssl RSA 加解密 RSA是基于数论中大素数的乘积难分解理论上的非对称加密法,使用公私钥 ...
- Java知多少(56)线程模型
Java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程.实际上,Java使用线程来使整个环境异步.这有利于通过防止CPU循环的浪费来减少无效部分. 为更好的理解多线程环境的优势可以将它与它 ...
- html5中的input和label写法与取值
demo 效果图如上 label是html5特有的,是定义 input 元素的标注.凡是input前面要有个label标识下,label和input真是一对好兄弟啊.<label> 标签的 ...
- idea java 非web程序打包
以下打包非常暴力.O(∩_∩)O哈哈~ 方法一: 第一步:选择需要打包的程序 第二步:选择需要打包的文件 第三步:artifacts->jar->from modules with... ...
- spark 解析非结构化数据存储至hive的scala代码
//提交代码包 // /usr/local/spark/bin$ spark-submit --class "getkv" /data/chun/sparktes.jar impo ...