三年创业路:技术演进与成长沉淀
时光荏苒,在创业公司担任CTO已满三年。这三年间,我深度参与了从技术团队的精心组建,到关键技术框架的审慎选型;从需求管理的精细把控,到研发流程的高效构建;从国内创作者经济项目的开拓创新,到出海财会 SaaS 服务的勇敢探索,一路砥砺前行,从无到有,逐步构建起公司的技术基石。其间,收获的是宝贵的经验与深刻的感悟,如今恰是总结回顾、沉淀升华的绝佳契机,细致梳理这段波澜壮阔的历程,以文字镌刻下这段难忘的奋斗篇章。
遥忆创业初始,当我试图探寻如何从 0 到 1 搭建创业公司的技术体系时,却发现可资借鉴的资料寥寥无几,且散落各处,不成体系。无奈之下,唯有凭借自身的不懈努力与执着探索,在实践中摸爬滚打,逐步总结出一套契合公司发展需求的技术和工具选型方案。
技术选型:契合创业节奏的智慧抉择
在创业公司的舞台上,技术选型恰似挑选战场上的兵器,其重要性不言而喻,必须紧密贴合公司当下的发展阶段。创业之路,唯快不破,需灵活应对快速迭代的市场需求,甚至要有推倒重来的勇气与魄力。故而,所选用的技术务必能迅速解决各类技术难题,满足广泛应用、成熟稳定、简便易用等多维度考量。
基于此考虑,我们在前端技术框架的初期选型上果断敲定 Vue。Vue 以其低门槛的上手特性和丰富的人才储备优势,让我们快速搭建起前端架构,为项目的启动赢得了宝贵时间。随着项目的推进与团队技术实力的提升,前端技术团队顺势迁移至 React,其更为活跃的社区生态和卓越的灵活性,为我们后续的功能拓展与优化升级提供了强劲动力。
后端技术框架方面,我们选用了在业务领域建模方面颇具专长的 JAVA + Spring Boot 组合。摒弃了初期就采用 Spring Cloud 全家桶这种相对复杂且资源消耗较大的框架选型策略,有效避免了过度设计带来的资源浪费与开发与运维效率低下问题。接着在后期 AI 应用开发时,我们引入 Python + Langchain 技术框架,打造Agent智能体,为我们产品的智能化升级注入新的活力。
在开发工具的选用上,Intellij IDEA 与 VS Code 这两款行业翘楚成为我们的得力助手。通过集成微软的 Github Copilot,每月仅需 10 美金的投入,却为开发效率带来了质的飞跃,可谓物超所值。
图:Github Copilot
代码管理与协作:构建高效开发生态
代码流管理环节,我们在综合权衡隐私性与 DevOps 集成便利性后,毅然选择了阿里云 Codeup。在实际使用过程中,阿里云云效对小型创业团队的友好,让我们使用下来还是非常满意,且其丰富的免费功能极大地降低了我们的研发成本。
图:阿里云Codeup代码流管理
阿里云云效则以其DevOps 一站式体验,不仅替代了传统的 JIRA 进行业务需求管理和项目进度跟踪,且全部免费开放。借助云效的流水线功能,我们得以实现前后端代码在研发环境与生产环境之间的快速无缝发布部署,全方位满足了 DevOps 的各项需求。同时,云效与钉钉的深度集成,确保了消息的即时推送,让团队成员能够第一时间掌握项目发布的动态。
对于那些不擅长使用 git 命令行的开发者,SourceTree 这款免费的 GIT GUI 工具提供了便捷的可视化操作界面,大大降低了代码管理的难度。
图:Git GUI管理
业务建模与开发流程:夯实项目根基
当代码流与研发IDE选择就绪,暂时不要急于投入代码编写,而是秉持着 “谋定而后动” 的理念,习惯先绘制业务模型的 UML 图。这一过程犹如建筑师在动工前精心绘制蓝图,让我能以宏观的上帝视角提前审视自己设计的业务模型是否能精准匹配业务需求。我们选用免费且支持团队协作的 draw.io 软件,通过绘制 UML 类图,清晰梳理业务模型之间错综复杂的关系;绘制流程图,深度剖析业务逻辑的内在脉络;绘制部署架构图,全面掌控项目依赖的部署资源分布情况。这些精心绘制的图表在项目后续的迭代升级过程中发挥着不可替代的作用,犹如一盏明灯,为团队成员在代码的浩瀚海洋中指引方向,避免因业务频繁变动、代码快速更新而迷失方向。
图:类图
图:流程图
图:部署图
随后,我们顺利进入本地开发阶段。在 Mac 电脑上安装 Mysql Server,考虑到初期项目的稳定性需求,我们首选了最为保守可靠的 5.7 版本。随着海外业务的拓展与升级,为满足更高的性能与功能要求,我们适时将数据库升级到 8.0 版本。在本地快速集成数据库后,编写简单的 MVC 代码,并借助 Spring Boot 集成 Swagger 工具,实现了服务在本地启动后,可直接在浏览器中通过 Swagger 进行web请求测试,极大地提高了本地测试的效率和便捷性,确保服务的准确性与稳定性。
图:Swagger
图:本地Swagger
当然你也可以使用Postman这样功能强大的API开发和测试工具,发起任何WEB访问请求来测试发布服务的正确性。
图:Postman
四、云部署与运维监控:保障系统稳定运行
本地服务开发完成后,我们将目光聚焦于云服务部署。为确保运行环境的一致性,有效规避因环境差异引发的各类问题,我们果断采用 Docker 容器化技术。在阿里云平台上,申请个人版的容器镜像服务,将 DevOps 生成的 Docker 镜像妥善存储,以便随时下载并快速部署到服务器上,从而高效完成服务部署。
图:个人版容器镜像服务
图:容器镜像仓库
同时,在阿里云上申请云数据库 RDS 作为核心业务数据的存储载体,在后续实践中,我们发现阿里云的数据库管理平台 DMS 相较于 AWS 系列产品,在易用性和功能性方面具有显著优势;申请云数据库 Tair 用于存储登录缓存数据;申请 OSS 作为文件存储。由于我们首个软件产品聚焦国内创作者经济领域,因此需在阿里云上申请域名并完成备案流程。此外,我们申请了阿里云的免费证书(虽当前有效期缩短至 3 个月,但仍不失为测试阶段的高性价比之选),并在域名管理中将域名映射到阿里云的 ECS 云服务器公网 IP 地址。通过云效将代码发布到测试服务器 ECS 上,并在 ECS 上部署 Nginx,将公网请求映射到后端服务的端口上,至此,一个简单而高效的研发环境搭建完成。
研发环境搭建完毕且研发代码趋近完成时,我们将重心转移到生产环境的部署工作上。生产环境对安全性与稳定性有着较高的要求,阿里云的云速搭 CADT 产品可以通过便捷的拖拽式操作和丰富的模板资源,助力我们快速构建出生产部署图,并有效解决了网络连通性与安全性的关键问题,对于初次涉足生产环境部署的团队而言,还是非常的友好。考虑到系统稳定性需求,我们采用多台服务器负载均衡策略,将请求流量均匀分配到不同服务器上,由于当时项目规模有限且后端为单体应用,我们避开了服务发现等相对复杂繁重的框架,在保障系统稳定运行的同时,有效降低了成本,简化了调用链路。为进一步提升生产环境资源访问速度,我们充分利用了阿里云的 CDN 能力,至此,一整套生产环境部署方案就完成了。
图:阿里云云速搭
生产环境稳定运行后,运维监控工作随即提上日程。后端监控通过规范的日志打印,借助阿里云的 SLS 日志服务,将日志数据高效收集并拖入 SLS 中,进行深度截取分析,建立告警规则,并通过钉钉和短信双通道及时发送给运维监控人员,确保能够第一时间获取实时系统报警信息,及时发现并解决潜在问题。前端监控则采用 Sentry 工具,精准捕捉前端运行过程中的各类异常信息;同时引入 Hotjar 记录用户行为,详细记录每个用户在网站上的访问轨迹,通过对这些数据的深入分析,不仅能够精准定位产品设计中存在的问题与不足,还能为后续的优化改进提供极具价值的参考依据,极大地方便了前端代码的调试与优化工作。
业务拓展与技术创新:顺应时代潮流
随着公司业务的战略转型,我们开启了海外财会业务的新征程。在此过程中,我们对首个项目的基础代码进行了深度抽象与下沉处理,将其封装至基础包内,并通过 mvn 引用方式引入到新项目中,同时将基础包生成的制品妥善存放在阿里云云效的制品仓库中。结合 Spring Boot的后端框架,我们得以迅速搭建起全新的应用系统。鉴于海外云设施的多样性,包括 Aws、Google Cloud、阿里云等,我们引入中间层技术,实现了业务代码与底层基础设施的有效解耦,大大提高了系统的灵活性与可扩展性,为公司在海外市场的拓展奠定了坚实的技术基础。
在海外项目的深入推进过程中,我们通过 Dovecot 自主搭建邮件服务器,为每个客户分配专属的邮箱地址,用于接收邮件信息,同时借助阿里云的邮件推送服务实现邮件的高效发送。此前,我们也曾尝试申请 AWS 的邮件发送服务,但因其审批流程过于严苛繁琐,未能获批。在此,强烈推荐阿里云的新加坡服务,其在邮件发送的稳定性和便捷性方面表现出色,为我们的海外业务通信提供了有力保障。
在探索 Python + Langchain 搭建 AI 应用的创新实践中,我们充分发挥技术创造力,自行部署 Searxng 在线搜索服务,赋予 AI 应用强大的实时信息查询能力。同时,利用 Selenium - Chrome 搭建爬虫服务,不仅能够高效抓取网络数据,还能助力我们开展页面自动化测试工作,提前探测系统代码可能存在的功能性问题,确保系统在上线前经过严格的质量检验,为用户提供稳定可靠的服务。
在海外建站打造公司主页时,我们选用了 Webflow 这款功能强大且易用的工具。它不仅为设计团队提供了丰富的页面元素设计功能,还支持便捷的域名映射操作,能够帮助我们快速搭建出美观大方、功能完备的公司主页,极大地提升了公司在海外市场的品牌形象与用户体验。
总结
回顾这三年的创业历程,上述所提及的技术与工具构成了我们技术体系的坚实骨架,它们在不同阶段各显神通,共同支撑起公司从初创到逐步发展壮大的业务需求,尤其适用于注重成本控制与高效执行的创业场景。正如古人云:“工欲善其事,必先利其器。” 在创业的漫漫长路上,我们需时刻保持敏锐的洞察力和灵活的应变能力,根据不同时期的业务特点与发展需求,精准选择最适合当下的技术工具,方能在激烈的市场竞争中立于不败之地。希望我这三年的创业技术实践与总结能够为广大创业者和技术同行提供一些有益的参考与借鉴,助力大家在创业的道路上少走弯路,勇攀高峰。