×

微服务与容器技术实践

消耗积分:1 | 格式:rar | 大小:0.6 MB | 2017-10-10

分享资料个

 基于微服务架构的技术实践(点击下载演讲PPT)
  普元信息主任架构师顾伟在演讲中,分享了他们对微服务架构的认识,包括微服务演进过程、常见认知误区等,并阐述了结合容器云技术,分享在微服务架构中做的关键设计,使用技术栈,遇到的问题和存在的欠缺等。
  IT架构经历了四个阶段:最初的单块架构,那时候虽然成本低,但二次开发也比较困难;后来它发展为垂直架构,有一定的模块化,并支持负载均衡;到第三阶段,开始采用SOA架构;最后第四阶段,微服务架构以业务系统需要彻底的组件化和服务化为核心,单个业务系统拆分为多个可以独立开发、设计、运行和运维的独立单元。
  微服务与容器技术实践
  人们对微服务架构普遍存在一些认知误区。顾伟总结了四点误区:1.微服务并不会让开发变得更简单,反而会让一些开发变得更复杂,微服务架构并不解决开发的问题,它更多强调的是一种风格,需要自己总结出最佳实践;2.微服务与SOA之间并不是差了一个ESB,这只是从内部服务间的通信商考虑问题,没有从扩展性、容错性、持续部署等维度考虑,更何况微服务架构下,APIGateway或ServiceBroker机制同样不可或缺;3.有些人认为微服务应该是按照某一种原则来拆分,比如代码量、业务、资源、团队,其实都对,但却又不能以一概全;4.微服务架构不只是某一个部门的事情,它的推动与演进过程中不可忽略各部门、不同角色的需求输入与能力支撑,需要有良好的协作机制和积极有效的反馈与驱动。
  微服务与容器技术实践
  普元的核心概念模型
  在实际的实践过程中,普元参考了很多规范和技术架构,比如CloudNative 12原则,还有Netflix的开源项目Hystrix、Zuul、Genie、Security Monkey、Feign、Governator、Msl、Karyon等。
  在演讲中,顾伟从六个维度分享了团队的经验,包括在开发测试方面开发架构是怎样的,如何做文档与Mock的支撑;在环境管理方面,如何进行异构平台的多环境管理,以及VM与容器的一体化;在监控层面与安全层面,如何发现故障并快速定位,如何做出安全决策;在微服务中非常重要的持续发布方面,如何做灰度发布、熔断、降级、rolling update等;在集成方面如何做统一配置管理等。详细技术分享请观看视频,并下载演讲PPT。
  严伟:Kubernetes的解析(点击下载演讲PPT)
  Kubernetes为我们传递了一个理念,即底层基础设施越简单,上层业务的实现也会相应更加简单。严伟分享了Kubernetes的一些特性,并根据普元团队在使用Kubernetes过程中实际遇到的一些问题,提出了一些解决方法。
  在之后的分享中,严伟从Kubernetes Master节点和Worker节点的类型、关键组件(Pod、Replication Controller、Service、Labels)角度详细介绍了Kubernetes架构,还介绍了两种Kubernetes提供的两种服务发现Service的方式和两种暴露Service到外部网络的方式等。详细技术分享请观看视频,并下载演讲PPT。
  现场沙龙圆桌环节
  参与圆桌环节的嘉宾除了前两位演讲人,还有轻元科技首席架构师王昕。在谈及微服务如何与DevOps结合设计时,顾伟表示,在做平台的设计时,微服务给DevOps一个很好的方式,就是一定要把你的平台原子化、拆分,这样才能让平台与企业更好地对接。而不是为了适应企业的需求把平台做二次开发。
  

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'微服务与容器技术实践',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);