大厂容器云实践之路(二)

3-网易蜂巢的DOCKER实践之路

面临问题

img

img

img

 场景分析

img

 如何解决

功能性需求(基础)

第一步 技术支撑公有化

开发流程

img

 场景分析

img

功能性需求(基础)
非功能性需求(SLA)

第二步 产品技术云端化

开发流程

img

 场景分析

img

多版本
服务依赖(SOA,MSA)
规范流程

第三步 云端技术容器化

开发流程

img

三步走
第一步 技术支撑公有化
第二步 产品技术云端化
第三步 云端技术容器化
云计算是互联网+的必然选择

实践之路

为开发者打造的基于DOCKER容器云

开发者定义

img

 问题

img

 研发+Kubernetes+Docker

img

 实践之路-架构

img

img

img

img

img

 场景分析-示例

img

 实践之路

img

 实践之路-反馈三境界

命令无法使用(nt found)
命令无法使用(not found等)
命令无法正常工作(iptables,drop cache等)
命令运行结果不一致(aufs,dm,overlay等)

实践之路-总结

性能优化(镜像架构,编排调度,资源池等)
运行规模(多租户,节点数,POD数等)
掌控底层及SDN网络技术的必要性
线上互联网产品稳定运行多年
更多服务容器化(业界领先RDS,日志,安全等)

目标与展望

img

4-京东弹性计算实践 

私有云面临得挑战

img

 用户需求

1、稳定性

2、性能

3、用户习惯

弹性计算之路

img

 从KVM迁移到Docker

img

 弹性计算架构

img

 弹性计算平台 = JDOS(JD Datacenter OS)+CAP(Cloud Application Platform)。
JDOS实现实现基础设施(网络,物理机,存储)的资源管理、容器的生命周期管理、监控指标采集;
CAP负责应用治理、部署、监控报警、资源利用率统计、手动和自动的弹性伸缩。

OpenStack

img

Docker Driver

img

 网络(OVS/VLan)

img

为了兼容现在的基础设施系统,满足用户习惯,每个容器都有独立的IP。
禁用了Docker网络,采用Neutron集成OVS;
优化OVS转发层,提升网络小包延迟,适用于微服务调用;

存储

img

 镜像分层合并

img

 镜像中心

img

 配置中心

img

 CAP 架构

img

核心是一套工作流,基于Zookeeper分布式调度引擎来实现。能动态注册发现节点;能控制单个节点并发任务数,失败重试次数,确保同一应用互斥任务串行执行。

系统监控指标

img

 监控架构

img

指标数据带有明显的时间特性,每日数据上亿,采用了成熟的OpenTSDB方案。
提供了从应用和实例多个维度查看负载情况,满足用户的需求。
可以对应用配置警策略,进行短信或邮件报警。

宕机探测架构

img

 硬件故障探测

img

 监控页面

img

 调度流程

img

 弹性扩容流程

img

应用在启动之前可能需要数据库授权,启动之后需要挂载VIP,注册统一监控和统一日志。如何能自动发现应用的注册信息,采用了模版方式。应用先申请一个容器,手工注册这些信息,后续的扩容会以该容器为模版来进行自动注册。

故障迁移流程

img

当遇到容器或物理机故障,需要进行快速的迁移,迁移后的容器需要保持原有的IP,避免还要重新申请授权。

弹性调度算法

img

 应用场景

img

双11全面使用弹性云来备战,线上应用在新机房都部署在容器上;
核心应用如:网站,交易,订单履约,配送,售后,无线,拍拍,金融,O2O等等平稳运行在容器上

容器资源利用率

以一小时为单位,计算容器的资源最大使用率;

img

 应用资源利用率

根据应用和容器的关系,统计应用资源使用率;

img

 部门资源利用率

根据负责人、部门、应用和容器的关系,统计部门资源使用率;

img

 一键伸缩

批量快照水平扩容;
批量水平扩容;
批量水平缩容;
批量垂直搜索;

img

 应用部署巡检

定期巡检应用容器部署情况,邮件报告;

img

实践经验

无状态,同时对磁盘IO要求不高的应用,很适合部署到弹性云;
微服务应用由于能自动服务注册发现,辅助均衡,非常适合部署到弹性云
推荐万兆网络和网卡,避免网络共享出现资源竞争;
稳定的操作系统版本;
推荐高配置物理机,合理得CPU和内存比,便于充分利用资源;
采购高质量的交换机和物理机;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/67676.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven介绍,部署在eclipse中

目录 一.Maven介绍 1,什么是maven? 2. 为什么maven会在企业中大量使用? 3.没有使用maven的前后区别? 4.maven在Java开发中的实际效果图 二.maven部署在eclipse中 1.下载maven在其官方网址下载(当然实际下载也要根据个人的…

C语言案例 判断是否为回文数-06

题目:随机输入一个5位数,判断它是不是回文数 步骤一:定义程序的目标 编写C程序,随机输入一个5位数,判断它是不是回文数 步骤二:程序设计 原理:即12321是回文数,个位与万位相同&#…

【C++学习手札】new和delete看这一篇就够了!

​ 食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波: Prover—milet 1:21 ━━━━━━️💟──────── 4:01 …

学习C语言第三天 :关系操作符、逻辑操作符

1.关系操作符 C语言用于比较的表达式&#xff0c;称为“关系表达式”里面使用的运算符就称(relationalexpression)&#xff0c;为“关系运算符” (relationaloperator) &#xff0c;主要有下面6个。 > 大于运算符 < 小于运算符 > 大于等于运算符 < 小于等…

JVM基础篇-直接内存

JVM基础篇-直接内存 什么是直接内存? 直接内存( 堆外内存 ) 指的是 Java 应用程序通过直接方式从操作系统中申请的内存,这块内存不属于jvm 传统方式读取文件 首先会从用户态切换到内核态&#xff0c;调用操作系统函数从磁盘读取文件&#xff0c;读取一部分到操作系统缓冲区…

电影院订票选座网站小程序开发(java开源)

搭建一个电影院订票选座网站小程序需要掌握Java语言和相关的Web开发技术&#xff0c;同时需要使用开源框架和库来实现。以下是一个基本的步骤指南&#xff1a; 确定技术栈 首先&#xff0c;需要确定使用的技术栈&#xff0c;以便更好的开展工作。 设计数据库 设计数据库需要…

H5实现签字板签名功能

前言&#xff1a;H5时常需要实现给C端用户签名的功能&#xff0c;以下是基于Taro框架开发的H5页面实现&#xff0c;非 Taro 的 View 标签换成 div 即可。 一、用到的技术库 签字库&#xff1a;react-signature-canvas主流React Hooks 库&#xff1a;ahooks 二、组件具体实现…

2024考研408-计算机网络 第四章-网络层学习笔记

文章目录 前言一、网络层的功能1.1、网络层功能概述&#xff08;三种功能介绍&#xff09;1.2、SDN基本概念1.2.1、理解转发与路由选择1.2.1.1、转发1.2.1.2、路由选择 1.2.2、数据平面&#xff08;转发&#xff09;1.2.3、控制平面&#xff08;路由计算与选择&#xff09;实现…

【SpringBoot框架篇】33.优雅集成i18n实现国际化信息返回

文章目录 1.简介2.MessageSource配置和工具类封装2.1.配置MessageSource相关配置2.2.配置工具类2.3.测试返回国际级文本信息 3.不优雅的web调用示例(看看就行&#xff0c;别用)4.优雅使用示例4.1.错误响应消息枚举类4.2.ThreadLocal工具类配置4.2.1.ThreadLocal工具类数据封装4…

W6100-EVB-PICO 做TCP Server进行回环测试(六)

前言 上一章我们用W6100-EVB-PICO开发板做TCP 客户端连接服务器进行数据回环测试&#xff0c;那么本章将用开发板做TCP服务器来进行数据回环测试。 TCP是什么&#xff1f;什么是TCP Server&#xff1f;能干什么&#xff1f; TCP (Transmission Control Protocol) 是一种面向连…

selenium爬虫,配置谷歌浏览器的driver

用selenium爬虫时&#xff0c;明明已经安装了selenium模块&#xff0c;程序却运行不了。在使用selenium之前必须先配置浏览器对应版本的webdriver 本文主要涉及驱动有问题driver 网上有很多手动的方法&#xff08;查看谷歌浏览的版本然后在其他博主分享的webdriver中下载与自己…

研发工程师玩转Kubernetes——通过PV的节点亲和性影响Pod部署

在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中&#xff0c;我们利用Node亲和性&#xff0c;让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上&#xff0c;而系统为了让Pod可以部署成功&#xff0c;则让PVC与Pod…

【Windows系统】磁盘、Partition和Volume的联系与区别

1、磁盘 Disk&#xff0c;磁盘。 以下摘自微软 磁盘设备和分区 - Win32 apps | Microsoft Learn 硬盘由一组堆积的盘片组成&#xff0c;其中每个盘片的数据都以电磁方式存储在同心圆或 轨道中。 每个盘片都有两个头&#xff0c;一个在盘片的两侧&#xff0c;在磁盘旋转时读取…

idea-常用插件汇总

idea-常用插件汇总 码云插件 这个插件是码云提供的ps-码云是国内的一款类似github的代码托管工具。 Lombok Lombok是一个通用Java类库&#xff0c;能自动插入编辑器并构建工具&#xff0c;简化Java开发。通过添加注解的方式&#xff0c;不需要为类编写getter或setter等方法…

1. CUDA编程手册中文版---CUDA简介

1.CUDA简介 1.1 我们为什么要使用GPU 更多精彩内容&#xff0c;请扫描下方二维码或者访问https://developer.nvidia.com/zh-cn/developer-program 来加入NVIDIA开发者计划 GPU&#xff08;Graphics Processing Unit&#xff09;在相同的价格和功率范围内&#xff0c;比CPU提供…

【C++】多态的底层原理(虚函数表)

文章目录 前言一、虚函数表二、派生类中虚函数表1.原理2.例子&#xff1a; 三、虚函数的存放位置四 、单继承中的虚函数表五、多继承中的虚函数表六、问答题 前言 一、虚函数表 通过观察测试我们发现b对象是8bytes&#xff0c;除了_b成员&#xff0c;还多一个__vfptr放在对象的…

易服客工作室:7个优质WordPress LMS线上教育系统插件比较(优点和缺点)

您是否正在为您的 WordPress 网站寻找最好的 LMS 插件&#xff1f;在线学习管理系统 (LMS) 插件允许您使用 WordPress 创建和运行类似 Udemy 的在线课程。 一个完美的 WordPress LMS 插件包括管理在线课程内容、处理订阅、运行和评分测验、接受付款等功能。 在本文中&#xf…

lwip使用收发线程和不使用收发线程差异

使用收发线程的方式相对于不使用收发线程的方式&#xff0c;效率可能会稍低一些&#xff0c;这取决于具体的应用场景和实现方式。 lwIP&#xff08;轻量级IP协议栈&#xff09;是一个针对嵌入式系统的开源TCP/IP协议栈。它可以在单个线程中运行&#xff0c;也可以在多个线程中…

Golang bitset 基本使用

安装&#xff1a; go get github.com/bits-and-blooms/bitset下面代码把fmtx换成fmt就行 //------------基本操作------------//构建一个64bit长度的bitsetb : bitset.New(64)//放入一个数b.Set(10)fmtx.Println("add-10&#xff1a;", b.DumpAsBits()) // 0000000…

MyBatis查询数据库之三(#{}vs${},like查询,resultMap,as,多表查询)

目录 查询操作 1.单表查询 1.1 参数占位符#{}和${} 1.2 ${}的优点 1.3 sql注入问题 ​编辑 面试常问&#xff1a;${}与#{}的区别 1.4 like查询 2.多表查询 2.1 返回字典映射&#xff1a;resultMap 2.2 多表查询 &#xff08;1&#xff09;建立 Articalinfo 实体类&a…