未来 10 年,C++5 个非常有前景的就业方向
一、后台服务器开发
1.1 C++后台所需要具备的技能
如果要从事 C++后台服务器开发,那么先要了解 C++后台服务器需要具备的技能。
所需技能可以参考如下:
软件基础(数据结构与算法,设计模式,C++新特性,Linux 工程管理)
高性能网络(网络编程,网络原理,协程,用户态协议栈)
基础组件(池式组件,高性能组件,开源组件)
中间件(MySQL,Redis,Nginx,MongoDB, Elasticsearch)
开源框架(Skynet, DPDK, TARS)
Rust(Rust 特性, 网卡速度监控, OAuth2 第三方登陆, tokio, Warp, hyper)
性能分析(测试框架 gtest 以及内存泄漏检测, 火焰图的生成原理与构建方式)
分布式架构(分布式消息, 分布式服务, 分布式 API 网关, 分布式存储)
微服务( IM 消息服务器/文件传输服务器, 消息服务器/路由服务器, 数据库代理服务器设计, 文件服务器和 docker 部署)
1.2 C++后台薪资情况
薪资想必是很多人关心的,只要大家把 C++后台的技术学到家,薪资收入非常可观,当然有个好学校会更好。下面列列举了 C++后台服务器的薪资。
1.3 应用场景
很多没有做过 C++后台的朋友,对于 C++后台能做什么,主要用在哪些场景往往模糊不清楚。下面介绍 C++后台使用场景。
1.2.1 处理大规模用户
1.2.2 分布式计算
1.2.3 处理大容量搜索 大规模响应
1.4 企业
当然,我们也关心,正在使用 C++在哪些地方有使用,国内的大企业都有 C++后台开发,因为他们需要处理大规模用户,分布式计算,大规模响应等。
1.5 相关配套视频
二、云原生
云原生其实是一套指导进行软件架构设计的思想。
云原生的最大价值和愿景,就是认为未来的软件,会从诞生起就生长在云上,并且遵循一种新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。
2.1 云原生的四要素
微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没 b 格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。
微服务架构的好处就是按 function 切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的技巧据说是依据 DDD 来搞。
容器化:Docker 是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于 LXC 技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S 是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker 和 K8S 都采用 Go 编写,都是好东西。
DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上 DevOps 应该还包括测试,DevOps 是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。
持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑。
2.2 云原生薪资情况
2.3 云原生关键技术点
如何构建自包含、可定制的应用镜像;
能不能实现应用快速部署与隔离能力;
应用基础设施创建和销毁的自动化管理;
可复制的管控系统和支撑组件。
2.4 云原生关键技术点
2.4.1 深度学习应用场景
云原生深度学习方案的基础架构模型
容器化封装深度学习框架
服务目录的形式提供多种板卡驱动
GPU 多机多卡的高效调度
2.4.2 区块链应用场景
区块链场景下的云原生架构图
2.4.3 边缘计算场景
边缘计算按功能角色主要分为三个部分:
云--传统云计算的中心节点
边--又称基础设施边缘(Infrastructure Edge)
端--又称设备边缘(Device Edge)
2.4.4 传统业互联化应用场景
1、项目周期短,需求快速变化。
2、互联网高并发,不可预测的承载需求。
3、兼顾数据安全和用户体验。
三、音视频流媒体
3.1 音视频流媒体所需要具备的技能
音视频基础(FFMPEG 环境搭建,音视频基础)
FFMPEG 编程(FFMPEG 命令,音视频渲染,FFmpeg API,音视频编码,音视频封装格式,音视频过滤器,播放器开发,ffplay 播放器,ffmpeg 录制转码)
流媒体(rtmp 流媒体,hls 流媒体,http-flv 流媒体,RTMP/HLS/HTTP-FLV 流媒体服务器,RTSP 流媒体)
WEBRTC(WebRTC 中级开发,WebRTC 高级开发,Janus 服务器源码)
3.2 音视频流媒体薪资情况
3.3 音视频流媒体应用场景
视频点播
视频会议
远程教育
远程医疗
短视频
在线直播系统
3.4 主流的流媒体协议
主流的流媒体协议主要有: RTMP, HLS, RTSP 等。
3.5 音视频流媒体学习资料
音视频流媒体权威资料整理,500+份文章,论文,视频,实践项目,开源框架,协议,业界大神名单。
四、虚拟化
4.1 虚拟化所需要具备的技能
4.1.1 两种架构、三个知识点
两种架构
共享存储的传统架构
SAN 的"超融合"架构
三个知识点
在这两种架构中,主要用到三个设备:服务器、存储、网络交换机与光纤存储交换机,这对应计算、存储、网络三方面的知识。
计算,是指服务器,要了解常用服务器的基础配置、最高配置(CPU、内存、硬盘接口与数量、单个硬盘支持的最大容量、网卡接口、速度,底层管理等),对项目中所需要用的服务器进行选择。
存储,要了解常用存储的接口(iSCSI、SAS 或 FC)、配置(硬盘类型、数量)、支持的 RAID、可扩充性、报价。
网络,要了解常用网络交换机、光纤存储交换机的品牌、型号,了解网络交换机的速度、接口数量、可扩充性等。
4.1.2 虚拟化系统集成
(1)去企业机房,看总体,有多少机柜,每个机柜中有那些设备。机柜中是否有足够的空闲机位、网络剩余接头。
(2)企业现有服务器与存储数量、配置,接口等。
(3)网络拓扑,出口带宽,网络防火墙、路由器、交换机等。
4.1.3 硬件知识
交换机、存储、服务器
4.1.4 网络与软件知识
要了解 TCP/IP 协议、了解 IP 地址的分类、子网划分等内容。要了解华为交换机的基本配置(划分 VLAN、配置 LACP 等)。
掌握 Windows 的 Active Directory 的知识,掌握 Windows Server 中 DHCP、DNS、Active Directory、证书、KMS 的知识。
4.1.5 熟悉 vSphere 产品安装、配置、故障排除
vSphere 5.5 系列:vCenter Server 安装、ESXi 安装、配置,创建虚拟机等。虚拟机备份、恢复。
vSphere 6.0 系列:vCenter Server 安装、ESXi 安装、VSAN、配置等。
vSphere 6.5 系列:vCenter Server、ESXi、vCenter HA、VSAN。
Horizon View 桌面系列:Horizon View 7.0、6.0。
VMware P2V 工具、VMware VDP、vCops 等。
4.1.6 熟悉或精通 VMware Workstation
4.2 虚拟化薪资情况
4.3 虚拟化方案应用场景及优劣
4.3.1 Xen
应用场景:x86、IA64 和 AMD、Fujitsu、IBM、Sun 等公司的 ARM 以及 x86/64 CPU 商家和 Intel 嵌入式的支持的全虚拟化和半虚拟化解决方案。
优势:Xen 支持准虚拟化,需要修改客户机操作系统,而修改过的客户机操作系统能有更好的性能;此外 Xen 也支持全虚拟化,未经修改的操作系统也可以直接在 Xen 上运行(如 Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到 hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。
劣势:如果你需要更新 Xen 的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。
4.3.2 KVM
应用场景:X86 架构且硬件支持虚拟化技术(Intel V 或 AMD-V)的 Linux 的全虚拟化解决方案。
优势:不需要重新编译内核,也不需要对当前 kernel 做任何修改,它只是几个可以动态加载的.ko 模块,结构更加精简、代码量更小。所以,出错的可能性更小,并且在某些方面,性能比 Xen 更胜一筹。
劣势:KVM 可以运行在不支持虚拟化的 CPU 硬件上,但是在这样的话,效率会很低;KVM 也可能会和虚拟机 virtualbox 冲突; KVM 只是提供命令行接口,用户可以写脚本来管理 KVM,并没有一个友好的 GUI。
4.3.3 Hyper-v
应用场景:适用于 Monolithic Hypervisor 架构服务器虚拟化解决方案。
优势:设备驱动不需要为每个设备都纳入 Hypervisor 层或者 VMM Kernel;由于微软没有提供应用程序编程接口(API)来访问“Hypervisor 层”,受到攻击的可能减小,没人可以插入外部代码到“Hypervisor 层”;设备驱动不需要 Hypervisor 的感知,所以这种架构可以使用更多的设备;不需要关闭“Hypervisor 层”,包括设备驱动程序。
劣势:在操作“Hypervisor 层”之前,需要在“控制层”安装操作系统,这是最大的一个缺点;如果在“控制层”正在运行的操作系统任何原因的崩溃,那么所有的虚拟机也都会崩溃;需要花费更多的经费在“控制层”的操作系统与“Hypervisor 层”的虚拟机上。
4.44 VMware vSphere
应用场景:适用于 Microkernelized Hypervisor 架构服务器虚拟化解决方案。
优势:没有操作系统的要求,来控制所有的组件,这是它最大的优势超过微软的 Hyper-V Microkernelized Hypervisor 的架构;在“控制层”运行的组件没有安全补丁。
劣势:Vmware 的 vSphere 硬件支持不好;VMware vSphere 不安全,因为 VMware 在“Hypervisor 层”提供 API 的入口,恶意的代码有可能会进入到这层,甚至黑客可以控制“Hypervisor 层”之后就可以控制运行在 vSphere 服务器上所有的虚拟机。
五、网络安全
5.1 网络安全所需要具备的技能
如果想做逆向,那么要掌握汇编
如果想做数据库注入,那么要学 SQL
如果想做 XSS,那么要学 JavaScript
如果想找驱动和内核的漏洞,那么要熟悉内核
5.2 网络安全薪资情况
5.3 网络安全应用场景
园区门禁(网络隔离):工业防火墙、工业网闸
楼宇门禁(区域隔离):工业防火墙
办公室门禁(具体职能单元/主机安全):工业主机安全卫士
摄像头安防系统(网络监测与告警):工业安全审计监测、网络入侵检测
中控室控制大厅(安全管理、安全运维、安全审计):安管平台、日志审计、堡垒机
车联网安全
城市安全
社区安全
家庭安全
移动应用安全
5.4 网络安全前景价值
网络安全为数字未来创造的价值。
智能制造时代,工业大数据作为制造企业的核心资产之一,其重要性不言而喻。“工业 4.0”浪潮下,制造企业加快了迈向“数字化”和“智能化”的步伐,以云计算、大数据、5G、人工智能为代表的新兴技术正在深度渗透至工业生产领域,在推动工业生产体系与运营模式升级的同时,也带来了新的网络安全挑战。网络安全公司最新发布的报告称,制造业企业已成为网络犯罪分子、勒索软件和国家黑客的首要目标。其中,61%的企业工厂发生过网络安全事件,其中 3/4 的网络攻击导致线下生产停摆。随着工业信息安全事件频发和政策标准的落地,单纯的工业信息安全防护产品已无法满足工业企业用户需求。同时,由于工业企业普遍缺乏对工业信息安全防护策略的落地能力,安全体系设计和规划服务需求应运而生。
版权声明: 本文为 InfoQ 作者【hanaper】的原创文章。
原文链接:【http://xie.infoq.cn/article/fdc100719595b8165c71b7220】。文章转载请联系作者。
评论