Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2021.5


软件工程领域中的逆全球化趋势

过去的二十年间软件工程领域的全球化趋势曾被视作技术发展的必然方向跨国企业通过统一的云基础设施和分布式系统实现全球服务覆盖CAP定理指导下的分区容忍性设计让跨地域数据同步成为可能微软的CosmosDb和国内的TiDB等技术验证了这种模式的可行性但2020年后的地缘政治变化正在改写这一逻辑国家间的数据流动面临前所未有的信任危机客户开始要求服务必须在物理隔离的空气墙环境中依然完整运行这种需求催生了软件工程的逆全球化转型当分布式系统的分区不再由网络延迟定义而是由政治和技术壁垒切割时传统的SaaS模式面临根本性挑战私有云的本地化部署和数据主权的重新定义成为刚需更极端的场景要求将整个组织结构作为服务交付对象而非仅仅是代码这种变革不仅颠覆了技术架构更重构了商业逻辑当数据跨境流动需要如同人员出入境般办理数字签证时当软件销售从交付产品转向交付人才与组织时我们是否正在见证一种新的数字时代地缘政治如何在CAP定理的框架下重新定义软件工程的边界?当全球化与逆全球化的力量在代码层面持续角力时未来的技术架构将如何在信任与安全的天平上找到新的平衡点?--Qwen3

Multi-tenant China Software Development AirGap Globalization CAP Theorem

Build a package that can be used in browser and node with TypeScript

本文探讨了如何构建一个兼容浏览器与Node环境的TypeScript库项目并实现标准化发布。通过初始化npm项目配置TypeScript与Webpack构建工具链创建UMD模块化输出方案开发者可以将核心逻辑封装为类型安全的类并通过Webpack配置实现生产环境代码压缩与多环境适配。文章展示了从项目结构搭建到tsconfig编译选项设置再到webpack打包配置的完整流程最终通过npm发布实现代码共享。这种构建方式既保留了TypeScript的类型优势又通过UMD格式兼容了不同运行环境的调用需求。当开发者需要在前端框架中复用算法或构建可复用组件时如何平衡类型系统与兼容性如何设计模块的导出结构以及如何优化打包体积成为值得关注的技术命题。--Qwen3

Web npm TypeScript node webpack JavaScript Front-end

Use Azure Key Vault to store connection strings for App Service.

本文探讨了如何通过Azure Key Vault解决Azure App Service协作管理中的敏感信息泄露风险。传统环境变量配置方式存在隐患,当多人协作时可能导致数据库连接字符串暴露进而引发意外操作。文章提出使用Azure Key Vault作为安全中间层,通过权限分级管理实现服务托管与密钥保护的分离。具体方案包括创建独立密钥库、启用基于角色的访问控制、配置托管身份验证以及构建密钥引用链路。这种架构不仅保障了连接字符串的机密性,更允许团队成员在无需知晓具体凭证的前提下完成应用服务的日常维护。文章最后引发思考:当安全需求与协作效率产生冲突时,如何设计既能满足权限最小化原则又不阻碍团队协作的技术方案?你是否考虑过如何在不暴露密钥的前提下实现团队协作?或者,是否有更高效的安全策略等待探索?--Qwen3

Azure App Service Azure Security Key vault Environment Variables Azure Key Vault

Programmatically connect to the remote server via SSH and execute remote command.

文章围绕如何通过程序化方式实现SSH远程服务器连接与命令执行展开重点探讨了.NET Core环境下借助SSH.NET库完成自动化运维任务的实践路径。开发者通过创建控制台项目并集成SSH.NET库实现了从连接认证到命令执行的完整流程验证了使用代码替代人工SSH操作的可行性。示例代码展示了如何通过Renci.SshNet命名空间下的SshClient类构建连接执行"apt upgrade"命令并输出执行结果同时处理连接状态与错误信息。这种程序化方案为服务器管理工具开发提供了新思路但也引发关于自动化运维边界与风险的思考——当机器接管了原本需要人工判断的运维操作后如何确保指令执行的准确性如何处理敏感操作的认证安全如何应对网络波动导致的连接中断等问题。文章提供的代码框架虽然实现了基础功能但实际应用中可能需要更复杂的逻辑处理例如异步执行、结果解析、异常重试等机制的补充。SSH.NET作为支持并行操作的开源库其文档中提及的高级特性如端口转发、文件传输等功能是否能与现有代码形成更强大的组合如何构建可扩展的服务器管理架构这些都值得进一步探索。当代码开始远程操控物理服务器时我们是否正在见证运维工作的范式转移?自动化程度的提升是否会让服务器管理变得更加透明还是反而带来新的复杂性?这些问题或许能在文章提供的实践基础上找到启发性的答案。--Qwen3

C# .NET Core bash Linux SSH Renci.SshNet