最新技术选型解决方案列表

1    概述

这是一份当前的技术选型方案,针对创业、中小型公司

2    目标
2.1    产品目标
2.1.1    SaaS
2.1.1.1    免安装
2.1.1.2    多租户
2.1.1.3    流量计费

2.1.2    可配置
2.1.2.1    需开通服务
2.1.2.2    服务自动组合
2.1.2.3    服务单独结算

2.1.3    可定制
2.1.3.1    私有云部署
2.1.3.2    按特殊需求开发

2.1.4    可量化
2.1.4.1    SLA服务可用性
2.1.4.2    各个服务质量统计
2.1.4.3    改进建议

2.2    技术目标
2.2.1    LTS平台
2.2.1.1    语言稳定版本

•    Java 11
•    Scala 2.12 (2.13)
•    PHP 8.*
•    Go 1.*
•    Python 3.7.*
•    ES 2017

2.2.1.2    框架稳定版本

•    Spring Boot 2.1.*  (Greenwich)
•    Spring Framework 5.*
•    Laravel 5.8.*
•    Beego 1.10.*
•    NodeJS 10.15.*
•    Npm 6.7.*
•    Vue 2.*
•    React 16.8.*
•    React Native 0.59
•    Electron 4.1.1

2.2.1.3    服务器和容器稳定版本

•    Centos 7.*
•    Docker CE 18.09 (or 19.03)
•    Kubernetes 1.14

2.2.2    DevOps模式

2.2.2.1    指导原理

•    原则
•    方法
•    实践
•    工具

2.2.2.2    实际应用微服务

•    微服务
•    CI/CD
•    A/B, 灰度

2.2.2.3    敏捷精益开发

•    共识
•    看板/Scrum
•    Milestone,Sprint和Backlog文档
•    XP极限编程
•    TDD
•    Code Review
•    Full-Stack 全栈开发

2.3    运维目标

2.3.1    企业级

2.3.1.1    高可用
2.3.1.2    高性能
2.3.1.3    可扩展
2.3.1.4    自动备份

2.3.2    自动化

2.3.2.1    脚本化
2.3.2.2    界面化
2.3.2.3    规模化

2.3.3    可配置

2.3.3.1    友好操作界面
2.3.3.2    弹性伸缩
2.3.3.3    资源限制

2.3.4    安全性

2.3.4.1    权限控制
2.3.4.2    日志记录
2.3.4.3    端口,白名单限制

2.3.5    可预警

2.3.5.1    资源预警
2.3.5.2    黑客攻击
2.3.5.3    核心业务不可用

2.3.6    自我修复

2.3.6.1    丢失数据修复
2.3.6.2    内部异常流量控制
2.3.6.3    DDoS防护
2.3.6.4    漏洞修复
2.3.6.5    木马、后门修复

3    技术选型
3.1    数据库选型
3.1.1    MySQL 
3.1.1.1    Natural key 和 Surrogate key

Surrogate Key不允许修改。
原则上都设置一个Surrogate Key,减少主从、分库分表、分布式等造成的问题。

3.1.1.2    Foreign key

通过Surrogate Key进行外键关联。

3.1.1.3    Relation

关联查询最好两表以内,极限三表。更多业务需求操作可通过缓存+内存,业务报表统计走数据仓库。

3.1.1.4    Data redundancy

互联网产品字段数据冗余在所难免,如不能或不方便通过缓存在前台拼接的只读数据,通过字段冗余实现,减少关联查询。

3.1.2    MyCAT
3.1.3    Sharding-JDBC
3.1.4    Vitness
3.1.5    Neo4j
3.1.6    MongoDB

3.2    发号器选型
3.2.1    UUID

优点
•    本地生成,低延时;
•    无需发布,不需要RPC或者REST接口;
•    扩展性好,基本没有性能上限。

缺点
•    生成的串过于随机,无法保证趋势递增,Range查询比较困难;
•    UUID过长128位,不易存储,往往用字符串表示;
•    网络传输需要传送更多的字节,并且如果是用在业务上(例如让用户报订单号进行技术支持),会不太方便。

3.2.2    Snowflake(推荐)

优点:
•    分布式生成,无单点;趋势递增,生成效率快

缺点:
•    没有全局时钟的情况下,只能保证趋势递增;
•    当通过NTP进行时钟同步时可能会出现重复ID;
•    数据间隙较大

3.2.2.1    Twitter Snowflake

Twitter开源的Scala程序,基于时间戳,开源分布式发号器鼻祖,不维护了。

3.2.2.2    百度 UidGenerator

嵌入式

3.2.2.3    Vesta-id-generator

嵌入式、集中式、REST

3.2.3    Redis + MongoDB

自研, Redis集群 + Lua脚本 + MongoDB

3.3    缓存选型
3.3.1    CDN   静态资源
3.3.2    DNS
3.3.3    OSS/S3
3.3.4    SLB
3.3.5    Client – Browser
3.3.6    Web - Nginx
3.3.7    Distribute Object – Redis(内存数据缓存), SSDB
3.3.8    Monolithic – Ehcache
3.3.9    Application – JVM/PHP Cache
3.3.10    Database Cache
3.3.11    CPU Cache

3.4    RPC选型
3.4.1    Dubbo  70%的国内公司使用,
3.4.2    gRPC
3.4.3    Thrift

3.5    服务代理选型
3.5.1    Nginx
3.5.2    Envoy
3.5.3    Traefik

3.6    API网关选型
3.6.1    Kong
3.6.2    Sentinel

3.7    Service Mesh选型
3.7.1    Zuul
3.7.2    Linkerd
3.7.3    Istio

3.8    消息中间件选型
3.8.1    Kafka  大数据日志处理,10万+
3.8.2    RabbitMQ    5万+
3.8.3    RocketMQ   分布式10万+

3.9    协调/服务发现选型
3.9.1    Eureka
3.9.2    Consul
3.9.3    Zookeeper   强一致性
3.9.4    Etcd

3.10    日志选型
3.10.1    ELK
3.10.2    Fluentd
3.10.3    Grafana Loki
3.10.4    Scalyr

3.11    追踪调用选型
3.11.1    OpenTracing
3.11.2    Zipkin
3.11.3    Jaeger

3.12    混沌选型
3.12.1    Chaos Toolkit 
3.12.2    Chaos Kube

3.13    分布式调度选型
3.13.1    Quartz 
3.13.2    XXL-Job
3.13.3    Helix
3.13.4    DKron
3.13.5    Bistro
3.13.6    Cronicle

3.14    DevOps选型
3.14.1.1    Dev - Virtual Box, Vagrant
3.14.2    Issue, Error Tracking - Sentry
3.14.3    CI – Gitlab, Jenkins
3.14.4    CD – Docker, Kubernetes
3.14.5    Analytics– Grafana, Zabbix, Prometheus

3.15    规则引擎选型
3.15.1    Drools
3.15.2    jBPM
3.15.3    OptaPlanner

3.16    秘钥管理选型
3.16.1    Vault
3.16.2    Keycloak
3.16.3    Gravitational

3.17    大数据选型
3.17.1    Storage – HDFS, Rook, OpenIO, Ceph
3.17.2    Data Integration – Kettle, Alooma, MuleSoft, Talend, Panoply
3.17.3    实时计算 – Spark Streaming,Flink

3.18    AI选型
3.18.1    Deep Learning, Machine Learning – 深度/机器学习
3.18.2    NLP Platforms – 智能助理/客服
3.18.3    Predictive APIs – 智能预测
3.18.4    Image Recognition – 图像识别
3.18.5    Speech Recognition – 语音识别

3.19    后台选型
3.19.1    Spring Boot/Cloud
3.19.2    Laravel

3.20    中台选型
3.20.1    Flask
3.20.2    Beego, Echo
3.20.3    Adonisjs, Meteorjs

3.21    前台选型
3.21.1    Vue, React
3.21.2    Electron
3.21.3    React-native

3.22    测试选型
3.22.1    Java – JUnit, Mockito
3.22.2    PHP – PhpUnit, Mockery
3.22.3    JavaScript – Jestjs, Chai
3.22.4    Browser – Selenium, Puppeteer
3.22.5    Performance – JMeter, Locust, Tricentis Flood

3.23    运维选型
3.23.1    Automation –  Ansible, Puppy, SalkStack
3.23.2    Configuration – Apollo
3.23.3    Planning – Terraform
3.23.4    Self-Service – RunDeck

3.24    项目管理选型
3.24.1    JIRA
3.24.2    Confluence
3.24.3    Swagger
3.24.4    apiDoc
3.24.5    Postman
3.24.6    钉钉
3.24.7    企业微信

4    开发平台及工具

4.1    基础环境
4.1.1    HomeBrew – git, tree, aria2
4.1.2    Virtual Box
4.1.3    Vagrant
4.1.4    Docker - Desktop Version, Docker Plugin, Dry
4.1.5    Kubernates - Minikube
4.1.6    MySQL Client - DataGrip, Navicat

4.2    后台开发
4.2.1    Java – JDK, jenv, IntelliJ IDEA, maven, gradle, sbt
4.2.2    PHP – PhpStorm

4.3    中台开发
4.3.1    Go – Go SDK, GoLand
4.3.2    Python – Pip, PyCharm
4.3.3    NodeJS – Npm, WebStorm

4.4    前台开发
4.4.1    JavaScript – Virtual Studio Code, ES6, TypeScript, LESS, SASS
4.4.2    App – React Native
4.4.3    Desktop – Electron
4.4.4    Compatible – Babel
4.4.5    Package – Bower, Grunt, Webpack
4.4.6    Code Style – ESLint,
4.4.7    SPA – React, Vue, Redux, Vuex

4.5    运维开发
4.5.1    Remote - SecureCRT
4.5.2    DevOps – Shell, Python
4.5.3    Sync – RSync

最新技术选型解决方案列表相关推荐

  1. 技术圈儿007---Redis 生产架构选型解决方案

    在写开源项目的时候,想到了要支持多种redis部署方式,于是对于这块的生产环境的架构选型展开调研 一 引擎版本 推荐使用更新的引擎版本以支持更多的特性, Redis 6.0新特性说明 模块系统新增多个 ...

  2. Redis 生产架构选型解决方案

    以下文章来源方志朋的博客,回复"666"获面试宝典 推荐使用更新的引擎版本以支持更多的特性. Redis 6.0新特性说明: 模块系统新增多个API. 支持SSL/TLS加密. 支 ...

  3. 技术选型解决方案之腾讯云TDSQL数据库实战

    2019年公司搭建微服务平台,实现分布式部署,各服务性能及效率得到稳步提升,并已经趋于稳定.为了进一步提升服务性能,经过服务调研需要对Mysql数据服务进行高可用及高性能的升级.之前服务器部署采用服务 ...

  4. java项目(java project)如何导入jar包的解决方案列表

    右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add ex ...

  5. SAP Cloud for Customer和SAP CRM的行业解决方案列表

    SAP Cloud for Customer Automotive Banking Chemicals Healthcare High tech Higher education Industrial ...

  6. ESP32,ARM,Arduino 摄像头的选型参考列表

    像素(W) 输出分辨率 最大输出帧率 传感器大小 模组参考价格(CNY) 特点 OV2640 200 1632*1220 60 25 OV2680 200 1616*1216 30 1/5.0 40 ...

  7. 手机游戏最新技术选型之Flash AIR

    文章不错,自己留着慢慢看. 相信大家应该对Flash比较了解,但对于Flash AIR可能就不是那么熟悉了,尤其前阵子Adobe宣布将移动版Flash Player停止维护及开发,就让大家误认为Ado ...

  8. java string 截取_java string 怎样截取前n个字符?的解决方案列表

    展开全部 java string 怎样截取前n个字符一般有两种方法: 方法一:使用如下代码: s=32313133353236313431303231363533e78988e69d833133336 ...

  9. vs2017解决方案列表添加文件夹与实际目录中的文件夹对应

    1.在工程头文件以及源文件上分别右键->添加->新建筛选器 2.命令saveFiles 3.将需要添加的文件夹放入工程目录,文件夹名可以与新建的筛选器同名也可以不同名 4.选中头文件下的s ...

最新文章

  1. 牛!月入2w,95后送外卖的程序员,送餐途中改bug
  2. 出一个简单的Spring框架入门教程
  3. 虚拟机配置网络eth1
  4. dedecms mysql 支持_安装dedecms MySQL 支持 不支持无法使用本系统 GD 支持Off解决办法...
  5. 【转】github中origin和upstream的区别
  6. ibatis java_iBatis.java
  7. 一文看懂搜狗招股书:90次提到AI,王小川持股5%,净利3.7亿
  8. 旋转区域_高空旋转雾化机雾桩应用场所、高压喷雾立杆式降尘设备,高压微雾除尘系统原理以及优势...
  9. 做一个网站要多少钱?
  10. Unity 查找资源引用
  11. Django查询关键字
  12. java开源物联网_JetLinks开源物联网平台源码 v1.8.0
  13. 混合正弦余弦算法和 Lévy飞行的麻雀算法-附代码
  14. 一级计算机基础不小心关掉了怎么重新打开,电脑不小心覆盖了文件该如何恢复-电脑自学网...
  15. 正则表达式 - 常用正则表达式
  16. RabbitMq(二)一文彻底弄懂RabbitMq的四种交换机原理及springboot实战应用
  17. OD调试常见断点及原理
  18. 中国体育赛事产业发展现状及未来前景展望报告2021-2027年
  19. 好游戏必须知道玩家需要什么?
  20. Nvidia TX2爬坑过程——1、入手刷机教程

热门文章

  1. linux停止mysql后又自己启动,Linux上 mysql启动/停止/重启/开机启动/开机禁止启动...
  2. linux网络管理原理,Linux__网络管理(物理层 数据链路层 网络层工作原理)
  3. 下拉列表怎么判断html,判断下拉列表中的值,实现页面跳转,请问这个怎么判断?...
  4. 切割图形_模型教程丨切割机使用——结合实例
  5. 基于U-Net图像分割的划痕缺陷分割(课程设计)
  6. POJ - 2446 Chessboard 二分匹配+建图
  7. HDU - 2767 Proving Equivalences tanjar强连通-DAG性质
  8. 树莓派视觉小车 -- 小球追踪(颜色追踪)(OpenCV色彩空间HSV)
  9. 【深度学习】(7) 交叉验证、正则化,自定义网络案例:图片分类,附python完整代码
  10. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?