写在前面
博主上一篇博客讲到一些比较简单通用的架构体系,那么本篇博客,我们来聊一下最为普通的单机或者分布式应用在服务器上是如何做设计和划分的
搭建最简单的网络架构
服务器
早在几年前(包括现在),依然会有大批传统公司并未使用分布式系统,而是非常简单的一个或者多个单机应用组合成集群,更别提前后分离等。因为在大部分公司,对于互联网的技术并没有高要求,只要实现业务即可。 So~大家如果在传统企业,千万别觉得这个代码是哪个xx写的,真xx的xx。哈哈
首先,应用离不开服务器,所以,我们需要搭建服务器。博主以java与centos7为主
资源组功能暂时不会使用(这个功能分组非常棒),因为这个是企业级的,而博主使用个人的,所以就懒得分资源组来
选择大区
不同大区或者不同VPC之前通信,需要走高速通道(炒鸡贵哦~)
首先登陆阿里云后,在工作台选择云服务ECS,搭建之前,我们选择我们选择大区,这里博主选择上海区
创建服务器
1.点击创建服务器
2.基础配置
- 计算方式分为:按量付费以及包年包月,大家懂得
- 地域:这里博主随机选择,如果有自己的VPC,那么需要在不同交换机上选择不同可用区,这个在后续VPC系列博客中会给大家展示
- 实例:这里博主多bb两句,目前阿里云尽可以支持买什么机器用什么机器(aws支持计算因子,即选择了某中类型的机器,那么钱和型号绑定,而不是机器),这里博主选择最便宜的即可。一般情况下,大部分传统企业没有高并发和频繁业务,对内2核4g可以解决一切问题。ToC市场下,一半以4核8G起。
- 镜像:这个一般情形下,选择公共镜像,是比较纯净的。镜像市场有很多环境都安装好的镜像。后续博主会出关于服务器与镜像的博客为大家介绍
- 存储:这个就是硬盘空间,注意。这里可以挂载云盘。so,空间扩展根本不是问题。
3.网络和安全组
- 网络:选择VPC,企业级肯定自己搭建VPC(后续博主会有博客专门讲解),这里博主暂时选择默认
- 公网带宽:这里是一个很重要的选择。企业级绝对不可能选择公网IP,一定所有服务器全部是内网IP,这里博主因为搭建最简单的单机网络架构,所以博主选择外网ip
- 安全组:这个来设定服务器哪个端口可以开放,有入和出。比如服务器部署了一个web服务,别人想访问网站,首先,得开放一个出方向的80端口,这样用户可以通过80端口来访问你的网站
4.系统配置
- 登陆凭证:一般情况下,选择密钥对来管理机器,而不是账号密码,这样会更加安全,这里博主选择账号密码,简单一些
- 实例信息:名称、描述、主机名称等等,根据自己场景填写即可
- 实例释放保护:这个一定要选,因为选了之后,你想删除实例是无法删除的,需要取消保护才能删除,防止不小心误删服务器
5.分组配置
这就是博主上面说的资源组,这里博主暂时不实用。企业一定要用哦。很方便管理
6.确认订单
确认订单之后,在控制台就可以看到服务器了
单服务应用云架构
服务器搭建完毕之后,剩下的就是把自己的应用上云了。一般情况下,大部分企业都是mvc的java程序,自带后台服务和前端,所以说,一个服务对应一个服务器没什么问题。
这样就会有个问题:每台服务器的外网IP都不一样,域名怎么搞?所以说,再来一台服务器搭建一个nginx,来做反向代理,将域名映射到不同的服务器上
RDS数据库
创建数据库
这里博主选择按量付费,mariaDB
专有网络和交换机在博主后续博客会讲解,这里只是粗略拉取一个数据库,所以我们直接默认即可
配置管理
账号管理
尽可能将查询和修改用不同权限不同账号哦。高权限账号比较有风险,慎用
创建schema
白名单
这里就可以利用vpc的IP池。也可以单独设定某个ip
数据库连接
外网域名慎重选择,一个数据库是不应该有外网域名或者ip的
参数设定
数据库的时区的确是一个头疼的因素,在参数设定中,可以设置时区
云架构演进
上面为大家演示如何拉取服务器,加入公网ip,然后应用发布上去之后,前面做一个反向代理,就可以各种玩了。
这样的架构会有一个比较大的问题:动态扩展以及业务划分会变得极为困难。会造成以项目(而不是module)为基准,无限制的进行扩张。最终导致一个团队可能需要维护成百上千个项目,甚至于说,每个项目之间有一定关联,或者又没有任何关联。往往这样的架构体系,一般情况下出现在传统企业(传统IT)。所以产生了很多项目管理sop、sow。
由此发展,抽取模块,构建微服务业务集群,打造私有机房,慢慢形成组件底层、业务与数据中台、前端交互这样的架构。
所以本质上来说,并没有一个所谓企业架构解决方案可以解决所有企业的问题。只有为当下环境打造一个合适的架构才是最好的选择。