应用架构

Choerodon猪齿鱼核心团队创立 BuildRun

a 夏天 提交于 2019-12-16 02:03:41
由Choerodon猪齿鱼核心团队创立的 BuildRun (https://gobuildrun.com),基于猪齿鱼带来了多云架构环境下基于视觉的企业级应用创建、集成、部署、生命周期管理和分发的能力。 BuildRun 以云原生的现代化软件架构来帮助企业提升软件开发生产力和业务敏捷性,提供多云低代码应用平台和多云应用生命周期管理平台,帮助企业隐藏应用开发和运行时的基础架构复杂性,让每个人专注于业务逻辑,促进团队快速、持续地将想法转化为真正的商业价值。 团队在云原生技术和架构(DevOps、持续交付、微服务和容器)应用场景,如企业数字化转型、企业中台等方面拥有丰富的经验,公司客户包括商业地产、建筑工程、医药、家居、汽车配业、大型工业等企业,为您提供最合适的解决方案。 免费注册试用:https://apps.gobuildrun.com/#/base/register-organization 来源: CSDN 作者: BuildRun技术团队 链接: https://blog.csdn.net/Choerodon/article/details/103497275

部署架构(五)

笑着哭i 提交于 2019-12-14 22:27:00
在有关微服务、DevOps、Cloud-native、系统部署等的讨论中,蓝绿部署、A/B 测试、灰度发布、滚动发布、红黑部署等概念经常被提到,它们有什么区别呢?通过搜索相关资料,做一个简单的辨析,如下: 一、蓝绿部署(Blue/Green Deployme nt) 过去的 10 年里,很多公司都在使用蓝绿部署(发布)来实现热部署,这种部署方式具有安全、可靠的特点。蓝绿部署虽然算不上“ Sliver Bullet”,但确实很实用。 蓝绿部署是最常见的一种0 downtime部署的方式,是一种以可预测的方式发布应用的技术,目的是减少发布过程中服务停止的时间。蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝绿配置)。用户访问的时候,只会让用户访问active的服务器集群。在绿色环境(active)运行当前生产环境中的应用,也就是旧版本应用version1。当你想要升级到version2 ,在蓝色环境(inactive)中进行操作,即部署新版本应用,并进行测试。如果测试没问题,就可以把负载均衡器/反向代理/路由指向蓝色环境了。随后需要监测新版本应用,也就是version2 是否有故障和异常。如果运行良好,就可以删除version1 使用的资源。如果运行出现了问题

专题八.多线程编程之thread和threading

家住魔仙堡 提交于 2019-12-14 11:25:43
https://blog.csdn.net/Eastmount/article/details/50155353 有几个知识点是非常重要的,包括:面向对象的思想、如何架构一个项目、设计模式来具体解决问题、应用机器学习和深度学习的方法,当然也包括我这篇文章的内容——多线程和并行化处理数据。 这篇文章主要是参考Wesley J. Chun的《Python核心编程(第二版)》书籍多线程部分,并结合我以前的一些实例进行简单分析。尤其是在大数据、Hadoop\Spark、分布式开发流行的今天,这些基础同样很重要。希望对你有所帮助吧! PS:推荐大家阅读《Python核心编程》和《Python基础教程》两本书~ 强推: http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html 一. 线程和进程的概念 二. Python线程和全局解释器锁 三. thread模块 来源: https://www.cnblogs.com/chenhuan123/p/12038440.html

一文解读分布式架构 (转)

僤鯓⒐⒋嵵緔 提交于 2019-12-14 10:11:52
一、什么是分布式架构   分布式系统(distributed system) 是建立在网络之上的软件系统。   内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。   透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。      在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。   简单来说:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。    分布式系统作为一个整体对用户提供服务,而整个系统的内部的协作对用户来说是透明的,用户就像是指使用一个mysql 一样。 如:分布式mysql中间件 mycat ,来处理大并发大数据量的构架。 二、分布式架构的应用   1、分布式文件系统     例如:出名的有 Hadoop 的 HDFS, 还有 google的 GFS , 淘宝的 TFS 等   2、分布式缓存系统     例如:memcache , hbase, mongdb 等   3、分布式数据库     例如:mysql, mariadb, postgreSql 等   4、分布式webService   5、分布式计算    举例     以分布式mysql 数据库中间件mycat 为例         MySQL

Serverless Architectures(译文)(1)—(Martin Fowler)

三世轮回 提交于 2019-12-13 10:16:32
原文地址: https://martinfowler.com/articles/serverless.html 作者:Martin Fowler, Mike Roberts 1. 摘要   无服务器架构是一种应用程序设计方法,它合并了第三方“Backend as a Service”(BaaS)提供的服务,和/或运行在FaaS(Functions as a Service)平台中的用户代码。使用这样的思路并结合一些类似spa(单页应用)的应用,设计出的架构消除了对传统常驻服务器组件的大部分需求。无服务器架构将受益于显著降低的操作成本、复杂性和工程领先时间,但也会因依赖于服务提供商和相对不成熟的支撑技术而增加成本。 2. 引言   “Serverless computing”,或简称为“Serverless”,是软件架构世界中的一个热点主题。三大云厂商- Amazon, Google, and Microsoft都对无服务器架构进行了重点布局。我们已经看到许多许多书籍、开源项目、会议和软件厂商在致力于这个领域。但是什么是无服务器架构,它是否值得研究?通过这篇文章中我希望能够抛砖引玉。 3. 什么是无服务器架构   对于无服务器架构没有一个清晰的视图。对于初学者,它包含两个不同但重叠的区域: Serverless最初用于描述那些完全包含第三方的、云托管的

[设计模式] 模板模式

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-13 03:37:25
应用场景: 某一事物的具体流程是固定的。 但其中的步骤或者某些步骤可能会变化。 我们将流程虚函数化,架构化。 应用来实现多态。 ===> 前人(架构)写的代码,来调用后来人(工程师)写的代码。 来源: CSDN 作者: natual177 链接: https://blog.csdn.net/natual177/article/details/103464301

微服务

a 夏天 提交于 2019-12-12 03:18:12
微服务 1 微服务的介绍 1.1 微服务的定义 微,狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。 1.2微服务的由来 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理 1.3微服务的特点 微服务架构和其他架构的对比 特点: 1)集中式架构:单体无分散 2)分布式架构:分散压力 3)微服务架构:分散能力 微服务架构优势 1)每个微服务组件都是简单灵活的,能够独立部署。不再像单体应用时代,应用需要一个庞大的应用服务器来支撑。 2)可以由一个小团队负责更专注专业,相应的也就更高效可靠。 3)微服务之间是松耦合的,微服务内部是高内聚的,每个微服务很容易按需扩。 2 微服务的四种原则 2.1

微服务

无人久伴 提交于 2019-12-10 15:49:00
单体应用   早些年,各大互联网公司的应用技术栈大致可分为 LAMP(Linux + Apache + MySQL + PHP)和 MVC(Spring + iBatis/Hibernate + Tomcat)两大流派。无论是 LAMP 还是 MVC,都是为单体应用架构设计的,其优点是学习成本低,开发上手快,测试、部署、运维也比较方便,甚至一个人就可以完成一个网站的开发与部署。   以 MVC 架构为例,业务通常是通过部署一个 WAR 包到 Tomcat 中,然后启动 Tomcat,监听某个端口即可对外提供服务。早期在业务规模不大、开发团队人员规模较小的时候,采用单体应用架构,团队的开发和运维成本都可控。   然而随着业务规模的不断扩大,团队开发人员的不断扩张,单体应用架构就会开始出现问题。我估计经历过业务和团队快速增长的同学都会对此深有感触。从我的角度来看,大概会有以下几个方面的问题。   想要解决上面这些问题,服务化的思想也就应运而生。 什么是服务化   用通俗的话来讲,服务化就是把传统的单机应用中通过 JAR 包依赖产生的本地方法调用,改造成通过 RPC 接口产生的远程方法调用。一般在编写业务代码时,对于一些通用的业务逻辑,我会尽力把它抽象并独立成为专门的模块,因为这对于代码复用和业务理解都大有裨益。   以微博系统为例,微博既包含了内容模块,也包含了消息模块和用户模块等

阿里飞天云平台架构简介

╄→尐↘猪︶ㄣ 提交于 2019-12-10 03:26:02
原贴在这里:http://blog.csdn.net/yangcs2009/article/details/39292097。我做了部分修改。 飞天是由阿里云开发的一个大规模分布式计算系统,其中包括 飞天内核 和 飞天开放服务 。 飞天内核负责管理 数据中心 Linux 集群 的 物理 资源,控制分布式程序运行, 隐藏下层 故障恢复 和 数据冗余 等细节,有效提供弹性计算和负载均衡。如图所示,飞天体系 架构 主要包含四大块: 1、资源管理、安全、远程过程调用等构建分布式系统常用的底层服务; 2、分布式文件系统; 3、任务调度; 4、集群部署和监控。 飞天开放服务为用户应用程序提供了 计算 和 存储 两方面的接口和服务,包括: 弹性计算服务(Elastic ComputeService,简称ECS) 开放存储服务(Open Storage Service,简称OSS) 开放结构化数据服务(Open Table Service,简称OTS) 关系型 数据库 服务(Relational Database Service,简称RDS) 开放数据处理服务(Open Data Processing Service,简称ODPS) 并基于弹性计算服务提供了云服务引擎(Aliyun Cloud Engine,简称ACE) 作为第三方应用开发和Web 应用运行和托管的平台 。反正左右的这些服务

Java应用架构的演化之路

﹥>﹥吖頭↗ 提交于 2019-12-10 00:22:06
当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是如何交互的,使用何种技术实现。 1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为 WS。从字面上理解,它其实就是“基于 Web 的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。如果说得再业一点,WS 其实就是建立在 HTTP 协议上实现异构系统通讯的工具。没错!WS 说白了还是基于 HTTP 协议的,也就是说,数据是通过 HTTP 进行传输的。最早我们是用CXF开发SOAP服务实现WS,后面我们是用REST服务实现WS(这个目前使用比较多,也最我用得最多的这一种)。基于CXF也可以开发REST服务,不过我们一般直接使用springMVC或者其他MVC框架实现REST服务。 但是在很多人的印象中Web service的话一般指十来年前IBM主导的基于XML的各种交互技术,现在除了一些公司在用之外用得人也很少了。广义的话Webservice就是Web 服务了,一切皆服务。 2. 不同系统相同语言之间的交互 常见的不同系统相同语言之间的交互用RPC(远程过程调用),或者RMI(远程方法调用)实现,不用对外部提供服务