Introduction
Openssl 是一个很牛逼的工具,基本能搞定 PKI & HTTPS 证书相关的事情。这篇博文归类了一堆常用的命令,全部都是关于 key & csr & crt。
本文分成两部分,第一部分对 SSL/TLS 证书最核心的几个名词概念,第二部分则是一系列 openssl 常用命令。
活捉一只程序猿。。。
Openssl 是一个很牛逼的工具,基本能搞定 PKI & HTTPS 证书相关的事情。这篇博文归类了一堆常用的命令,全部都是关于 key & csr & crt。
本文分成两部分,第一部分对 SSL/TLS 证书最核心的几个名词概念,第二部分则是一系列 openssl 常用命令。
本篇主要介绍除RFC2544四项指标外的其它指标的测试方法。其中的性能测试项主要来源于RFC3511中的定义,并根据实际需求,更新或舍弃了部分指标项。
本系列分为以下四部分:
文章中会涉及到一些术语,现总结如下,供参考。
以下主要包括CPS、TPS、HTTP吞吐、TCP最大连接数及其它性能指标的测试方法。
目前在移植 BBR 拥塞控制的算法,这部分文章就不直接转载。把开发过程中,看过的几篇好文章链接直接贴在下面。
Bomb250 这个人写的 TCP 相关的东西,是写的真好。剖析的很深入,但居然很易懂 [赞]。
slice 切片是对底层数组 Array 的封装,slice 就可以看作一个长度可变的数组使用。slice 可以通过两种方式定义,一种是从原数组中衍生,一种是通过make函数定义,本质上来说都是一样的,doit是在内存中通过数组的初始化的方式开辟一块内存,然后将其划分为若干个小块用来存储数组元素,然后slice就去引用整个或者局部数组元素。
从数组中切片构建slice
1 | a := [10]int {1,2,3,4,5,6,7,8,9,0} |
通过 make 函数定义 slice
1 | ss := make([]int, 5, 20) |
slice 的容量,如果通过 make 函数创建 slice 的时候指定了容量参数,那内存管理器会根据指定的容量的值先划分一块儿内存空间,然后才在其中按长度,存放数组元素,多余的部分处于空闲状态。
在 slice 上追加元素的时候,首先会到这块儿空闲的内存中,如果添加的元素的个数超过了容量的值,内存管理器会重新划分一块容量值为原容量2倍大小的内存空间。append 函数返回的是一个新构造的 slice,虽然其指向的 Underlay Buffer 可能保持不变(未发生 Reallocate 情况时),因此如果要完整实现 slice 的 append,则需要将 append 的返回值拷贝给原有的 slice。
1 | a := [5]int{1, 2, 3, 4, 5} |
大家好,我是黄惠波,今天分享的主题是kubernetes在微服务化游戏中的探索实践
随着Docker技术在近几年的快速发展,国内外掀起了一股容器之风。而我们也在这时,开启了游戏容器化的探索之路。最开始在Docker容器的应用上,还是以VM的模式去部署,毕竟游戏是非常复杂的应用,没有统一的模式。除此之外,对于一项全新技术的应用,大家都很谨慎,一步一步地去实践。
而在近一两年,部分游戏的架构也逐渐往微服务化方向转变,以下是一款游戏的架构:游戏的逻辑层按不同的服务划分为不同的模块,每个模块都是高内聚低耦合,之间的通信通过消息队列(或者API)来实现。模块的版本通过CI/CD,实现镜像标准交付,快速部署。在这些模块中,大部分是无状态服务,很容易实现弹性伸缩。
我们再来看另一款微服务化游戏的架构:也是按功能模块划分不同的服务,前端通过HAProxy来代理用户请求,后端服务可以根据负载来实现扩缩容。在服务发现模块中,通过Registrator来监视容器的启动和停止,根据容器暴露的端口和环境变量自动注册服务,后端存储使用了Consul,结合consul-template来发现服务的变化时,可以更新业务配置,并重载。
在之前的文章中,我们从容器OS、容器引擎,基础架构的容器网络、存储、安全,容器运行必不可少的镜像仓库、编排,及运维关注的监控、日志,多维度关注并解读了容器生态圈中的各个玩家。总体而言,较为活跃的有Google主导的kubernetes生态,和Docker公司主导的docker生态。选择哪个技术流派从某种意义上,也决定了选择哪种生态,这也是当前使用容器的公司面临的一大难题。
本文将从容器引擎为切入点,说明这两大流派的历史、初衷和技术对比。
看到这个标题,你的表情可能是这样滴[惊愕]:纳尼?容器引擎不就是docker么?这时,CoreOS可能在后面默默地流泪,因为CoreOS的rkt也是玩家中的一员。虽然目前Docker的容器使用者相对更多,但rkt的发展也不可忽视。
这里让我们先来八一个卦,故事要从2013年开始说起。是的,Docker公司在2013年发布了后来红遍大江南北的docker产品,一场新的技术带来一次新的革命,也带来新的市场机遇,CoreOS也是其中的一员,在容器生态圈中贴有标签:专为容器设计的操作系统CoreOS。作为互补,CoreOS+Docker曾经也是容器部署的明星套餐。值得一提的是,CoreOS为Docker的推广和源码社区都做出了巨大的贡献。
然而好景不长,CoreOS认为Docker野心变大,与之前对Docker的期望是“一个简单的基础单元”不同,Docker也在通过开发或收购逐步完善容器云平台的各种组件,准备打造自己的生态圈,而这与CoreOS的布局有直接竞争关系。
Bandwith Limit to 12Mbps
1 | # tc qdisc add dev ens4 handle 1: root htb default 11 |
Latency with 300ms and 3% Loss (Be careful about the limit argument)
1 | # tc qdisc add dev ens4 root handle 1:0 netem limit 102343600 delay 300ms 0ms loss 3% |
Bandwith Limit + Latency + Loss
1 | # tc qdisc add dev ens4 handle 1: root htb default 11 |
Metrics
1 | # tc -s qdisc ls dev ens4 |
更多 TC 内部机制细节,请参考 http://perthcharles.github.io/2015/06/12/tc-tutorial/
An SD‐WAN has several advantages over a traditional WAN.
✓ Simplified WAN:
✓ 精简的 WAN :
✓ Efficient WAN utilization:
✓ 高效的网络利用率
✓ Assured application performance:
✓ 高性能服务
✓ Highly available WAN:
✓ 高可靠服务
✓ MSP ready:
✓ Manage Service Provider 托管服务友好
In a nutshell, SD-WAN
- Virtualizes the network
- Enables a secure overlay
- Simplifies services delivery
- Provides interoperability
- Leverages cost effective hardware
- Supports automation with business policy framework
- Monitors usage and performance
- Supports interoperable and open networking
- Enables managed services
SD‐WAN as a network overlay enables application traffic to be carried independently of the underlying physical or transport layer, offering a transport‐independent overlay. Multiple links, even from different service providers, constitute a unified pool of resources, often referred to as a virtual WAN.
This capability enables SD‐WAN to provide high availability and performance for applications. It also increases the utilization of resources and simplifies the network.
SD-WAN 能够对底层物理传输层进行抽象,对各种各样的物理链路进行整合统一,为应用程序提供高可用和高性能的虚拟 WAN 服务。
Network operators can add new links and applications easily because no static tie exists between the application and the link it must use – a key benefit of the abstraction principle. The virtualization also provides self‐healing as links experience degraded performance.
SD-WAN 将应用程序和物理链路之间进行了解耦,这样使得网络运行商可以随意引进新的传输链路或者部署新的应用程序。
软件定义网络 (SDN) 和网络功能虚拟化 (NFV) 在近两年已经成为全球网络行业的热点话题。它们之前显然是有关系的, 但是它们有哪些地方类似呢?不同之处又在哪里?二者如何做到相互辅助,相辅相成的呢?
SDN 的本质是把网络软件化,提高网络可编程能力和易修改性。SDN没有改变网络的功能,而是重构了网络的架构。
NFV没有改变设备的功能,而是改变了设备的形态。NFV的本质是把专用硬件设备变成一个通用软件设备,共享硬件基础设施
NFV 的软件设备(统称VNF)快速部署以及 VNF 之间网络快速建立,需要支持网络自动化和虚拟化能力,这需要 SDN 网络提供支持。
在 SDN 网络情况下的一些网络诉求,比如能够快速提供虚拟网络,快速部署增值业务处理设备和网络设备等这些快速业务上线需求,需要NFV的软件网络设备(FW、vRouter)才能达成目的。
本文转载至:http://developer.huawei.com/ict/forum/thread-10097-1-1.html