Browsed by
标签:Google

从虚拟机到容器,详谈各种服务虚拟化技术及其应用场景

从虚拟机到容器,详谈各种服务虚拟化技术及其应用场景

閱讀本文約花費: 17 (分鐘) 本文主要梳理了为何需要服务虚拟化技术,服务虚拟化技术的分类,并举例说明了虚拟机技术和容器技术他们的区别与联系,希望对您的学习有所帮助。 前言 近几年容器(Container)、Kubernetes等技术在数据中心、云计算、各互联网公司的业务服务中得到广泛应用,和20世纪60年代就兴起的虚拟机(Virtual Machine,VM)技术一样,容器也是一种服务虚拟化技术(Server Virtualization),但是它更加轻量,同时将焦点从Machine转移到Application,极大提高了开发、测试、生产环境部署的效率,不过其安全性和隔离性比虚拟机稍逊一筹,在一些场景下也无法完全替代虚拟机。本文主要从以下几部分来梳理虚拟机和容器技术,详细讲一下他们的区别与联系。 1.为何需要服务虚拟化技术 2.虚拟化技术分类 3.Host-based server virtualization(虚拟机)架构 4.OS virtualization(容器)架构 5.内核对容器的支持 6.虚拟机技术举例(VMWare ESXi) 7.容器技术举例(Docker Container) 8.虚拟化技术在云平台的应用( Google Cloud Platform, GCP ) 为何需要服务虚拟化技术? 节省硬件资源(机房、服务器、冷却系统等),提高资源利用率:12306…

Read More Read More

Kubernetes(k8s)容器运行时(CRI)简介

Kubernetes(k8s)容器运行时(CRI)简介

閱讀本文約花費: 11 (分鐘)Kubernetes节点的底层由一个叫做“容器运行时”的软件进行支撑,它负责比如启停容器这样的事情。最广为人知的容器运行时当属Docker,但它不是唯一的。事实上,容器运行时这个领域发展迅速。为了使Kubernetes的扩展变得更容易,我们一直在打磨支持容器运行时的K8s插件API:容器运行时接口(Container Runtime Interface, CRI)。 CRI是什么? 每种容器运行时各有所长,许多用户都希望Kubernetes支持更多的运行时。在Kubernetes 1.5发布版里,我们引入了CRI–一个能让kubelet无需编译就可以支持多种容器运行时的插件接口。CRI包含了一组protocol buffers,gRPC API,相关的库,以及在活跃开发下的额外规范和工具。CRI目前是Alpha版本。 支持可替换的容器运行时在Kubernetes中概念中并非首次。在1.3发布版里,我们介绍了rktnetes项目,它可以让rkt容器引擎作为Docker容器运行时的一个备选。然而,不管是Docker还是Rkt都需要通过内部、不太稳定的接口直接集成到kubelet的源码中。这样的集成过程要求十分熟悉kubelet内部原理,并且还会在Kubernetes社区引发巨大的维护反响。这些因素都在为容器运行时的初期造成了巨大的困难。我们通过提供一个清…

Read More Read More

分布式服务框架 Zookeeper

分布式服务框架 Zookeeper

閱讀本文約花費: 1 (分鐘) ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 1- 分布式服务框架 Zookeeper入门学习 https://coolshell.me/articles/zookeeper-intro-01.html 2- 分布式服务框架Zookeeper介绍、原理及应用 https://coolshell.me/articles/zookeeper-intro-02.html 3- ZooKeeper实际应用案例-开发实战 https://coolshell.me/articles/zookeeper-intro-03.html 4- Zookeeper典型应用场景介绍 https://coolshell.me/articles/zookeeper-intro-04.html 5- 分布式服务协调框架ZooKeeper https://coolshell.me/articles/zookeeper-intro-05.html 6- Zookeeper到底是干嘛的 https://coolshell.me/articles/zookeeper-intr…

Read More Read More

甲骨文:有史以来最伟大的25个Java应用程序

甲骨文:有史以来最伟大的25个Java应用程序

閱讀本文約花費: 22 (分鐘)作者 | Alexa Morales译者 | 刘雅梦策划 | TinaJava 的故事始于 1991 年,当时 Sun Microsystems 试图将其在计算机工作站市场的领先地位扩展到新兴且发展迅速的个人电子产品市场。几乎没有人预料到 Sun 即将创建的编程语言会使计算大众化,激发了一个全球范围的社区,并成为了一个由语言、运行时平台、SDK、开源项目以及许多工具组成的持久软件开发生态系统的平台。经过 James Gosling 领导的数年秘密开发之后,Sun 于 1995 年发布了具有里程碑意义的“一次编写,随处运行” 的 Java 平台,并将重点从最初的交互式电视系统设计转到了新兴的万维网应用程序上。在本世纪初,Java 就已经开始为从智能卡到太空飞行器的一切制作动画了。 如今,数以百万计的开发人员在使用 Java 编程,Java 仍然在以越来越快的步伐向前发展。在 Java 诞生 25 周年之际,Java Magazine(Oracle 的双月刊)联合 Oracle Java 开发团队,共同撰文回顾 Java 是如何塑造我们这个星球的。 以下是迄今为止,最具创意和影响力的 25 个 Java 应用程序, 包含了从 Wikipedia Search 到美国国家安全局的 Ghidra 等。这些应用包罗万象,覆盖了包括:太空探索、视频游戏…

Read More Read More

Top 100 Most Visited Websites by Search Traffic (as of 2020)

Top 100 Most Visited Websites by Search Traffic (as of 2020)

閱讀本文約花費: 7 (分鐘)Joshua Hardwick Updated: May 12, 2020 1.3K shares Looking for a list of the most popular websites in the US (and Worldwide) in 2020? We pulled the top 100 most visited sites by organic traffic in the US and Worldwide. We then used Site Explorer and Keywords Explorer—our competitive analysis and keyword research tools—to delve deeper into why some of those websites are popular and where their traffic comes from. Let’s kick things off with our US data. Top 100 most visited websites in the US (as of 2020) # Domain Monthly traff…

Read More Read More

分布式服务框架 Zookeeper入门学习

分布式服务框架 Zookeeper入门学习

閱讀本文約花費: 17 (分鐘) 本文主要讲解了ZooKeeper是什么,它的角色及架构,ZooKeeper数据模型Znode,ZooKeeper服务中操作,Zookeeper下载安装与配置和命令相关。 ZooKeeper介绍 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,是Google的Chubby一个开源的实现。 提供功能: 命名服务 配置管理 集群管理 分布式锁 队列管理 特性: 顺序一致性:从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到ZooKeeper中。 原子性:所有事务请求的结果在集群中所有机器上的应用情况是一致的,也就是说要么整个集群所有集群都成功应用了某一个事务,要么都没有应用,一定不会出现集群中部分机器应用了该事务,而另外一部分没有应用的情况。 单一视图:无论客户端连接的是哪个ZooKeeper服务器,其看到的服务端数据模型都是一致的。 可靠性:一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会被一直保留下来,除非有另一个事务又对其进行了变更。 实时性:通常人们看到实时性的第一反应是,一旦一个事务被成功应用,那么客户端能够立即从服务端上读取到这个事务变更后的最新数据状态。这里需要注意的是,ZooKeeper仅仅保证在一定的时间段内,客户端最终一定能够从服务端上读取到最新的…

Read More Read More

分享 10个我经常逛的国外技术社区,真的受益匪浅!

分享 10个我经常逛的国外技术社区,真的受益匪浅!

閱讀本文約花費: 3 (分鐘)自己经常访问的10个国外技术社区分享出来。想要玩转这些资源的前提,要么自身外语水平不错,要么找个好的翻译工具,不然….。 不过,也不要一味的崇拜国外的技术,其实你看一圈下来国外社区不错的也就那几个,而国内的技术社区像掘金、思否也都是比较优秀的。当你在羡慕外边的景色时,殊不知别人也在羡慕着你。 授人以渔 1、dev dev社区和国内的掘金社区很相似,技术分类也比较多,像Java、Python、js、分布式等应有尽有,文章质量普遍都还不错,其实如果平时多留意不难发现,掘金上有一些文章是翻译自dev社区。 不过,在这还是要吹一波彩虹屁,无论界面布局还是文章质量,更喜欢掘金一点,难得的高质量技术社区。 地址:https://dev.to/ 2、stackoverflow stackoverflow 一个问答类的技术社区,和国内知乎比较相似,但与知乎不同的是stackoverflow 更垂直于技术,不像知乎内容比较杂。 地址:https://stackoverflow.com/questions 3、simpleprogrammer simpleprogrammer :简单的程序员,这个网站上纯技术文章不多,指导建议性的文章比较多。讲述一些职场、以及软件开发中的一些“ 潜规则”。 地址:https://simpleprogrammer.com/ 4、…

Read More Read More

【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

閱讀本文約花費: 51 (分鐘)环境搭建概述 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管理,我们不必再费心于负载均衡的选型和部署实施问题,不必再考虑引入或自己开发一个复杂的服务治理框架,不必再头疼与服务监控和故障处理模块的开发。总之,使用kubernetes提供的解决方案,会大大减少开发成本,同时可以将精力更加集中于业务本身,而且由于kubernetes提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅降低。 2.为什么要用K8S? Docker 这个新兴的容器化技术当前已经被很多公司所采用,其从单机走向集群已成必然,而云计算的蓬勃发展正在加速这一进程。Kubernetes 作为当前唯一被业界广泛认可和看好的 Docker 分布式系统解决方案。可以预见,在未来几年内,会有大量的新系统选择它,不管是运行在企业本地服务器上还是被托管到公有云上。 3.使用K8S有哪些好处? 使用Kubernetes就是在全面部署微服务架构。微服务架构的核心就是将一个巨大的单体应用分解为很多小的互相连接的微服务,一个微服…

Read More Read More

基于 Docker 和 Kubernetes 的微服务实践

基于 Docker 和 Kubernetes 的微服务实践

閱讀本文約花費: 12 (分鐘) 本文来自微信公众号,本文介绍基于Docker和Kubernetes的整个微服务实践过程,我们在实践微服务过程中做了9件重要的事情, 简化了操作流程,提高了工作效率。 一、微服务化 微服务架构 微服务 是将单一的应用程序拆分成多个微小的服务,各个小服务之间松耦合,高内聚,每个小的服务可以单独进行开发,不依赖于具体的编程语言,也可以使用不同的数据存储技术,各个服务可以独立部署,拥有各自的进程,相互之间通过轻量化的机制进行通信(如基于HTTP的API接口),所有的服务共同实现具体的业务功能。 客户端与服务端通信有2种方式,第一种是客户端直接与各个微服务进行通信,这样的架构有4个缺点: (1)多次服务请求,效率低; (2)对外暴露服务接口; (3)接口协议无法统一; (4)客户端代码复杂,服务端升级困难。 第二种方式是由API网关统一代理各个服务,对外提供统一的接口协议,该架构有3 个优势: (1)封装服务接口细节,减少通信次数; (2)统一通信协议,减少客户端代码耦合; (3)统一鉴权,流控,防攻击; 在该架构下,网关也有可能成为系统瓶颈。 相应地,这2种架构也带来了2种服务注册发现的方式,第一种是客户端通过向服务的注册中心查询微服务的地址与其通信,第二种是增加统一的API网关来查询。前者会增加客户端的复杂度,开发成本高,第二种操作会显得更加简洁,因此我…

Read More Read More

第六章 Sleuth–链路追踪

第六章 Sleuth–链路追踪

閱讀本文約花費: 11 (分鐘) 本文介绍微服务架构中最重要的设计模式:微服务之间的数据通讯。更多请看全文。 6.1 链路追踪介绍 在大型系统的微服务化构建中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。 互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题 于是就出现了下面几个 问题 如何快速发现问题? 如何判断故障影响范围? 如何梳理服务依赖以及依赖的合理性? 如何分析链路性能问题以及实时容量规划? 分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节点上的耗时、请求具体到达哪 台机器上、每个服务节点的请求状态等等。 常见的链路追踪技术有下面这些: cat 由大众点评开源,基于Java开发的实时应用监控平台,包括实时应用监控,业务监控 。 集成方案是通过代码埋点的方式来实现监控,比如: 拦截器,过滤器等。 对代码的侵入性很大,集成成本较高。风险较大。 zipkin 由Twitter公司开源,开放源代码分布式的跟踪系统,用于收集服务的定时…

Read More Read More