蘭陵N梓記

一指流沙,程序年华


  • 首页

  • 归档

  • 关于

  • 搜索
close

运维模式

时间: 2017-07-08   |   分类: 技术     |   阅读: 1815 字 ~4分钟

背景

最近一段时间由于工作内容重心变化,从PaaS系统的设计到运维系统的设计。运维系统的设计对我来说,还是一项全新的领域,需要学习的理念与技术很多。全司虽有大量的产品涉及到软件系统,但本质还是一个硬件盒子,运维的对象还是偏硬件。

熟悉电信IT系统的人或许听说过:OSS(Operation Support System),运营支撑系统,它是运营商IT系统中三大支柱系统之一。其它两大系统是:BSS(Bussiness Support System), MSS(Management Support System)。

OSS是面向资源的后台支撑系统。资源主要包括网络,电信设备,计算系统等。系统的主要功能是包括专业网络管理,综合网络管理,资源管理,业务开通,服务保障等。但公司的产品线众多,产品形态也是千差万别,公司的OSS产品也一直在探索与发展。产品开发部门也是分分合合,一直是想打造一套统一的运营支撑平台。

阅读全文 »

为什么我写不下去

时间: 2017-06-26   |   分类: 感想   杂记     |   阅读: 1826 字 ~4分钟

近一年来,写博客很少。总结起来有如下三点:

  • 没有时间
  • 没有素材
  • 没有心情

我很佩服那种每天都能写上千字博文或公众号的人,因为坚持写作需要很强的毅力。我没有能够坚持下来,其实最重要还是没有心情,动力不足。那作为一位内心深处又想写点东西的人,如何破?

阅读全文 »

Install MySQL on MacOS

时间: 2017-06-03   |   分类: 笔记     |   阅读: 615 字 ~2分钟

最近在家想写的东西,在MacOS上需要使用到MySQL。在MacOS下,使用brew来安装软件是最便捷。关于brew是什么,可在brew官网查看:brew官网

安装:

➜  ~ brew info mysql
mysql: stable 5.7.18 (bottled)
Open source relational database management system
......
➜  ~ brew install mysql
阅读全文 »

PaaS的发展

时间: 2017-03-04   |   分类: 技术     |   阅读: 3210 字 ~7分钟

云计算按提供服务层次,通常划分为三层:

  • IaaS :基础构架即服务。这一层主要是对基础设施进行管理以给用户提供资源使用,如提供计算服务、安全备份、负载管理等。
  • PaaS :平台即服务。这一层主要是基于IaaS之上,简化应用的部署、维护等,提供一些通用平台软件能力,如数据挖掘、系统管理、编程模型等。
  • SaaS :软件即服务。这一层主要是面向终端客户,提供一站式的解决方案。如提供CRM、HRM、SCM等,是可以直接使用其服务。

个人一直从事PaaS的研发,而我们做的又是面向电信领域的PaaS。与外面的朋又交流发现,大家对PaaS的理解是不一样的,主要还是由于PaaS的本质是要解决的问题是:

简化开发,打通DevOps,实现业务应用的敏捷与弹性。

不同的业务领域,要面对是不同的传统应用架构如何通过PaaS平台迁移到云上,这就会导致各自对PaaS的需求或多或少有着不同的差异,理解不一样也是正常的。

阅读全文 »

Design for Failure

时间: 2017-02-16   |   分类: 技术     |   阅读: 3316 字 ~7分钟

背景

故有的思维会影响创新,在传统的软件设计考虑高可靠性,主要方法论是”防“,处处保护,让系统的每一处能长时间运行,不中断地提供服务。事实上电信级高可用性(HA)也只能宣称达到5个9,这意味着一年也就只有5分半钟的中断时间。但每增加一个9却实施成本非常地高,有些是建立在硬件可靠基础之上,并且不少是实验数据或理论上支持。传统的思维认识,在泥沙上建房子不可靠的。但软件架构设计,即完全不一样,在不可靠的基础设施上构建上可靠的系统,那才是真正NB的。

依稀记得云计算刚出来时,大家都是持怀疑态度:性能下降的虚拟化技术、安全不可控的网络、变化复杂的资源管理,在其上如何构建可靠稳定的软件系统?事实上,Netflix完全基于AWS云基础设施,认为都有可能发生任何的故障(Failure),更何况资源也不掌握在自己手上。Netflix基于Design for Failure理念却构建出用户无感知的高可用系统,支撑他的业务飞速发展。事实上,故障无所不在,尤其是在云计算环境中:

  • 资源层次:电能失效,整个数据中心不可用;部分计算失效,网络不通,存储IO高等
  • 应用层次:资源泄露;软件Bug;系统处理能力不足等
  • 数据层次:数据丢失;数据不一致等
阅读全文 »

35还能做技术吗

时间: 2017-02-08   |   分类: 感想     |   阅读: 2686 字 ~6分钟

最近我司心声社区到处充斥着在40岁左右惯例的帖子,之前觉得这些觉得离自己很远。不经意发现自己今年也35岁了,惯例这一天迟早会来临,只是早晚而已,按目前现状,再为公司奋斗也不会有太多年了,你想奋斗关键公司不让你啊。最近也陆续听到之前曾经共事的同事,或由于身体原因,被沟通退休或离职;或由于绩效平平,合同到期不再续签;或由于种种原因,被进入战备预备队前途不明。公司主营业务已遇到瓶颈,整个行业暮色深沉,新的领域就开拓不足,公司高层也不断地发文要打粮食,熵减等等。总之:“山雨欲来风满楼”。

35岁应该是一个年富力强的年龄,不应该发出“今年35,还能做技术吗?”这样的话题,其中透露出一丝不自信。话说三十而立,但目前这个年龄段,我是上有老,下有小,身上还背着几百万的房贷,说没有压力不是可能的。作一名软件工程师,在国内来说其职业生涯是相当短的。而我一直从事软件相关的工作,目前虽是做软件架构设计,但还是喜欢写写代码,一直没有找到自己明确的发展方向,一方面有我自身的性格原因,一方面能力的确有些偏科。

阅读全文 »

再说说微服务

时间: 2017-02-07   |   分类: 技术     |   阅读: 1487 字 ~3分钟

Why

我司从15年开始学习互联网的微服务构架,到今16年的全云化战略,微服务已作为架构体系的重要工作。但微服务看似美好,在IT界应用非常的成熟与成功,但这个本质没有革命性的技术架构,在我司却非常地难以落地。主要原因:传统的CT应用太过厚重,面临着软件交付模式完全不一样,历史包袱改造面临短期看不到收益的成本投入:

  • IT界:软件是自运维,借助于微服务构架,DevOps工程化,以及相对扁平的组织结构。软件向微服务转变相对阻力比较小,按康威定律,组织决定架构,微服务构架与扁平化、轻小的、精英化的组织是完全匹配的。在微服务构架实施上可以快速迭代演进,同时形成回路反馈,架构更符合良性的发展。同时像BAT等公司,业务上爆发式的增涨,也会加速微服务构架软变与满足。
  • 我司:软件非自运维,做的是产品卖给运营商,DevOps当前无法直接打通。微服务构架对交付与运维来说,没有直接带来价值,反而会带来更多的问题。运营商是不可能像IT界每日构建灰度升级的。当然运营商自己也在改变,但这个改变是基础设施平台化,上层业务应用会拉入IT厂商,反而像我司这类传统的设备供应商会被旁落。说起来,这是另一个更大沉重的话题,不就再展开了。
阅读全文 »

Go性能优化小结

时间: 2017-02-03   |   分类: 技术     |   阅读: 2869 字 ~6分钟

内存优化

小对象合并成结构体一次分配,减少内存分配次数

做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go runtime底层也采用内存池,但每个span大小为4k,同时维护一个cache。cache有一个0到n的list数组,list数组的每个单元挂载的是一个链表,链表的每个节点就是一块可用的内存,同一链表中的所有节点内存块都是大小相等的;但是不同链表的内存大小是不等的,也就是说list数组的一个单元存储的是一类固定大小的内存块,不同单元里存储的内存块大小是不等的。这就说明cache缓存的是不同类大小的内存对象,当然想申请的内存大小最接近于哪类缓存内存块时,就分配哪类内存块。当cache不够再向spanalloc中分配。

建议:小对象合并成结构体一次分配,示意如下:

for k, v := range m {
    k, v := k, v // copy for capturing by the goroutine
    go func() {
        // using k & v
    }()
}

替换为:

for k, v := range m {
    x := struct {k , v string} {k, v} // copy for capturing by the goroutine
    go func() {
        // using x.k & x.v
    }()
}
阅读全文 »
7 8 9 10 11 12 13 14 15
兰陵子

兰陵子

Programmer & Architect

164 日志
4 分类
57 标签
RSS 订阅
GitHub 知乎
© 2009 - 2022 蘭陵N梓記
Powered by - Hugo v0.101.0
Theme by - NexT
0%