February 2018

Uncategorized

在Service Fabric上运行微服务

原文:Microservices à la Service Fabric 作者:Chase Aucoin 翻译:张鑫健;审校:孙薇 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。 Service Fabric框架对微软而言是一大进步。其核心部分是一个分布式系统平台,用于构建可扩展的可靠应用。在便于封装可部署代码的同时,还内置了微服务最佳实践案例。 本文将带您最快地上手使用Service Fabric框架,并保证您会爱不释手。但想要了解Service Fabric框架以及它的重大意义,就有必要了解现代软件发展到今天,在采用Service Fabric框架前,前人们血与泪的历史。 面向对象的黄金时代 在引入面向对象和现代的计算模式之后,计算机界发生了翻天覆地的变化。Visual Basic在1991年面世,真正揭开了现代风格软件开发的序幕,使得开发人员可以专注于商业价值,而不用像之前那样顾虑一大堆硬件特性的问题。之后在这种开发思路下,出现了后来的运行库,比如1995年的Java,2000年的.NET framework和C#。尽管在之后几年中,Java和C#出现了些许变化,但采用的模式和实践方式却没有太大变化。 […]

Uncategorized

超长干货:基于Docker的DevOps CI/CD实践——来自iHealth的分享

本文由1月31日晚iHealth运维技术负责人郭拓在Rancher官方技术交流群内所做分享的内容整理而成,分享了iHealth从最初的服务器端直接部署,到现在实现全自动CI/CD的实践经验。文末添加Rancher小助手为好友加入技术交流群,可实时参加下一次技术分享~ 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外。人类所有伟大的变革都是迫不得已,可又是那么顺其自然。比如容器(docker)技术的诞生,比如箭在弦上的创业,比如野心勃勃的kubernetes,比如如今已作为左膀右臂的rancher,比如这篇文章。 不同于郑兄的CI/CD实践《如何利用Docker构建基于DevOps的全自动CI》,我们结合自身状况,构建了一套我们自己的DevOps CI/CD流程,更轻更小,更适合Startup。 合适的才是最好的(Node.js & Docker) 如果世界只有FLAG、BAT,那就太无趣了。iHealth是一家初创型公司,我所在的部门有大概10名研发人员,在担负着三端研发工作的同时,所有围绕服务的交付和运维工作也都是我们来做。 技术的选型上,服务端、Web端和移动端(Android、iOS)都要上,但人少。所以招人的时候并没有以貌取人的资格,部门对外的Title都是全栈。能一门语言通吃三端,群众基础广泛,恐怕没有比Javascript/Typescript(Node.js)更合适的了。 服务端有Express、Koa、Feather、Nest、Meteor等各有其长的框架,前端大而火的Reactjs、Vuejs和Angular,不管是Server Render还是前后端分离,都可以得心应手。因为公司的健康设备(血糖仪、血压计、体温计、血氧、体脂秤等等)会有专门的部门研发设计以及提供SDK,所以移动端的研发工作更多是在设计实现和性能优化上,React Native是一枚大杀器。虽然现在公司并没有桌面端的需求,但不能否认的是Electron是一个很有趣的项目,也为“全栈”这个词增加了更多背书。     另外,选择使用Node/Js/Ts作为全栈的基础会附带有RPC的好处。无需集成传统意义上的RPC框架(如gRPC),只需在编写远程(微)服务方法时,编写相应的npm package,也可以达到相同的目的,且成本更小,更易理解。 运维环境的选型上,所有的业务都运行在云端,省去了机房维护和服务器运维的成本。其实在盘古开荒时,我们也是编写了Node程序后,使用PM2部署在服务器上,并没有使用Docker。当然也存在没有使用Docker所带来的一切问题:三端不同步、环境无法隔离……而Docker带给我最大的惊喜除了超强的可移植性,更在于研发人员可以非常容易对程序的顶级架构进行推理。 事实上,我们直接使用docker-compose做容器编排着实有一段时间,在一次大规模的服务器迁移中,发现需要重新思考越来越多的container管理和更完善的编排方案。Rancher(Cattle)就是在这时被应用到技术栈中。 一切从Github开始

Uncategorized

nginx-status开启及参数说明

方法一: 本模块在编译的时候默认是不编译的,如果你是从源码编译安装的nginx,那么需要在编译的时候加上对应的模块 ./configure –with-http_stub_status_module 使用 ./configure –help 能看到更多的模块支持。然后编译安装即可。 如果是直接 apt-get install 安装的 nginx,那么使用命令来查看是否支持 stub_status 这个模块。如下命令: www.it165.net nginx -V 看看是否有 –with-http_stub_status_module

Uncategorized

微服务架构技术栈选型手册(万字长文)

作者|杨波 编辑|郭蕾 一、前言 2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了”Microservices”一文,正式提出微服务架构风格;二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;三是 Pivotal 将 NetflixOSS 开源微服务组件集成到其 Spring 体系,推出

Uncategorized

Linux脚本之>/dev/null 2>&1,以及2>1 VS 2>&1

1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null 空设备,相当于垃圾桶 3. 重定向符号:> 3. 2>1 与 2>&1 的区别 2>1, 把标准错误stderr重定向到文件1中 2>&1,把标准错误stderr重定向到标准输出stdout 4. 举例: 假设有脚本test.sh,内容如下,t是一个不存在的命令,执行脚本进行下面测试。 # cat

Uncategorized

使用fluentd实现实时收集日志文件

目前线上服务使用了k8s进行部署,一个服务配置了多个副本,然后日志是挂载到宿主机器的目录的,所以当服务部署到三台机器时,这时要查看业务日志,就必须依次登录三台服务器来看日志。显然,这非常地不方便。团队想把日志收集到一个地方统一查看。于是开始尝试各种方案。 尝试 1. elasticsearch + fluentd + in_tail(input) + fluent-plugin-elasticsearch(output) + kibana 刚开始就测试使用网络上推荐的日志收集方案,elasticsearch + fluentd + kibana,部署完成后,经过使用,并不能很方便地对日志进行检索,因为日志格式非常多,不方便对日志进行格式化,所以收集过来的日志并不是结构化的。另一个原因是elasticsearch占用的CPU很高,这个不知道什么原因,可能给的资源不够或配置不当。不过更主要是团队成员希望最好是直接把日志收集到一台服务器,然后能够使用linux的工具,如grep,awk,less来查询日志,所以最终放弃此方案。 2. rsyslog +

Uncategorized

fluentd 安装与使用

最近为了做一些数据分析,把我自己服务器上所有应用的日志都通过 fluentd 转存到 mongodb 了,第一次用 fluentd,记录一些笔记。 因为是初学,绝大部分内容来源于官方文档2,等实际线上使用一段时间后再来更新一些心得。 一、Install fluent 比较烦的一点是,从 gem 安装和从 rpm、yum 安装的名字不一样,连配置文件的路径都不一样,需要记住的是: 从 gem 安装的,配置文件和执行程序都叫做 fluent; 从 rpm

Uncategorized

可视化-对接Grafana

更新时间:2018-01-24 13:13:08     阿里云日志服务是针对日志类数据的一站式服务,用户只需要将精力集中在分析上,过程中数据采集、对接各种存储计算、数据索引和查询等琐碎工作等都可以交给日志服务完成。2017年9月日志服务升级日志实时分析功能(LogSearch/Analytics),可以使用查询+SQL92语法对日志进行实时分析。 在结果分析可视化上,除了使用自带Dashboard外,还支持DataV、Grafana、Tableua、QuickBI等对接方式。本文主要通过Grafana示例演示如何通过日志服务对Nginx日志进行分析与可视化。 在线成果演示请查看线上Demo。配置视频: 流程架构 日志从收集到分析的流程架构如下。 配置流程 日志数据采集。详细步骤请参考5分钟快速入门。 索引设置与控制台查询配置。详细步骤请参考索引设置与可视化或最佳实践网站日志分析案例。 安装Grafana插件,将实时查询SQL转化为视图。 本文档演示步骤3。 在做完1、2步骤后,在查询页面可以看到原始日志。 配置步骤 安装Grafana Grafana的详细安装步骤请参见Grafana官方文档。 以Ubuntu为例,安装命令为: wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.5.2_amd64.deb

Scroll to Top