身份认证
企业设立第一件事情就是给每一个成员创建登录账号,管理相关权限,此类产品归类为IDaaS 或者 authentication-as-a-service。比较成熟的解方案包括:
- Azure Active Directory:通常包括在Microsoft 365中,适合使用微软全家桶的大型企业
- OKTA:也是常用的身份认证解决方案,适合非微软用户
- Google Cloud Identity:谷歌提供的身份服务,适合选择谷歌全家桶(特别是Gmail)的企业
- OpenLDAP:开源系统,适合有能力自己管理LDAP的企业
网络与安全
第二件事情就是设立一个安全且独立的企业办公网络环境,它需要能够实现这些功能:
- 环境隔离:将内部网络资源与外网环境隔离
- 安全审查:监控内外网之间的信息传递,提升网络安全
这通常通过设立连接到企业机房(或者云上内网)的VPN来实现,主要的产品包括:
- Cisco AnyConnect
- Citrix Gateway
- ZScaler
除此以外,还需建立企业信息安全管理制度,从流程规范上避免安全事件。
辅助业务系统
企业内部各部门的运作依赖与一系列的软件,这些都需要在内网中准备就绪,例如:
- HR系统,如workday,pageuppeople
- 财务系统,如Xero,MYOB,SAP
- 办公软件,如MS365,Google Docs
- 邮件系统,如Outlook,Gmail
- 项目管理,如Trello,JIRA
- 后勤支持与工单系统,如Zendesk,ServiceNow
- 文件共享,如OneDrive,Dropbox,Google Drive,Nextcloud
- 通讯、会议软件,如Teams,Slack,Zoom,Rocket.Chat
- 文档与知识库管理,如Confluence,notion,sharepoint,github pages
- 白板、流程图工具,如miro,lucid
- 其他IT系统
所有这些系统都需要支持:
- 通过内网VPN访问,适当屏蔽外网连接
- 支持统一身份验证(如Active Directory 或者OKTA)
权限系统
每个人在不同系统中可以访问的内容应当是不同的,取决于每个人不同的职责。企业中应当有一个中心化的权限管理流程和机制,确保每个系统只被需要它的人使用。一个完整的权限系统一般会包含这些概念:
- 用户/User
- 用户组/User Group
- 角色/Role
- 政策/Policy
- 资源/Resource
- 行为/Action
所有这些信息的管理不仅需要合适的系统,也需要规范的审批和审计流程确保信息安全。在企业发展初期人员不多时,并不一定需要引入这样的权限管理,只需要IT部门进行手动一次性授权即可。只有达到一定规模以后才需要考虑引入专业的商业软件进行权限管理,如Sailpoint
IT开发环境基础资源
对于有IT开发职能的企业,则需要为开发者架设基础的开发环境:
- 云计算平台,如aws,gcp,azure
- 网络拓扑设计:内外网环境设计与资源隔离
- 监控系统:监控所有IT资源的运行状况并实时响应紧急事件
- 日志系统:存储所有监控信息用于后续分析
- 云计算财务控制:监控所有云计算资源的费用,到一定规模后可以考虑Cloudability等产品
- 基础设施自动化:如terraform / spinnaker
- 代码管理工具:如Gitlab,Github,Bitbucet
- 内部共享库:存储内部开发并共享的库(如Artifactory)、docker镜像(如Container Registry)等
- CICD工具:如Jenkins,Gitlab Runner, Github Action
管理与规范(WIP)
组织管理
- 组织架构:分组、分工、责任人
- 目标管理:从宏观目标到分拆给个人的OKR
- 例行沟通:每日站会分工 / 每周大会信息同步 / 定期一对一沟通
- 人员管理:职业发展 / 项目产出 / 个人福祉
- 决策流程:任何决策的流程
技术规范
- 文档规范:
- 代码规范:
- 协作流程:如敏捷
- 复盘流程:
- 架构规范:
数据平台设计(WIP)
企业的每一个子系统都是一个数据孤岛,需要一个数据平台将所有信息整合起来,达到最大效率的使用。这就是数据平台的使命。
可以参考Databrick提出的Lakehouse[1]架构,一个数据平台一般分为3层概念模块:
- Bronze:导入层,从分散的众多系统中获取数据,主要以数据的迁移(复制)为主
- Silver:加工层,对原始数据进行加工,达到可用程度。这阶段需要进行格式转换、数据建模等,同时考虑增加Slowly Changing Dimension
- Gold:分析层,对前一层数据进行分析、整理、预测,供报表或机器学习模型使用,通常业务逻辑在这一层有各个业务部门来完成
在每一层均可混合使用不同的存储和计算软件。存储软件技术上需要考虑的模块包括:
- 数据湖存储:如S3,GCS
- 数据仓库:GCP BigQuery,snowflake,AWS Redshift
- 流数据处理:Kafka、GCP Pub/Sub
- 数据处理:Spark,GCP Dataflow,AWS EMR
- 报表,如PowerBI,Tableau
运维角度需要考虑的内容包括:
- 数据质量检查、监控、反馈流程
- 生产/测试环境的设计
- 数据管道的触发规则
- 执行日志管理
- 数据建模
数据治理角度需要考虑:
- 数据沿袭(Data lineage)
- 数据字典(data dictionary)
- 权限管理
架构设计(WIP)
产品开发端:
- 前端开发:React
- 后端开发:nodejs 或 python-flask, python-django
微服务架构
- 如果没有特殊的性能和可靠性要求,微服务架构是最为敏捷的选择
- 以ApiGateway为核心的微服务架构设计,例如Kong的使用
- Docker运行环境,如k8s、GKE 或 cloud run
- 内部API设计规范