我从高级软件工程师身上学到的那些经验与教训
我猜个人项目或者小型企业的情况可能有所不同,毕竟并不是每个人都有资源来设置自己的一套基础设施。但是,如果大家愿意使用 AWS 以及 Azure 等云服务,这里提到的方法仍然适合各位。大家可以为开发以及生产环境设置单独的集群。AWS ECS 利用 docker 镜像进行部署,因此各环境之间相对一致。比较棘手的部分,就是如果与其它 AWS 服务顺利整合。例如,我们是否从正确的环境中调用了正确的端点? 大家甚至可以更进一步:为其它 AWS 服务下载备用容器镜像,并利用 docker-compose 命令设置完整的本地环境。这样能够加速反馈循环。 如此一来,当我的附带项目启动并开始运行之后,我就能积累到更多经验心得。 消除风险所谓消除风险,就是在部署代码的过程中尽可能降低风险水平的一种艺术。 那么,我们可以采取哪些措施来消除灾难性后果? 如果我们希望推出的一项突破性的变更,那么一旦出现问题,如果确保业务尽可能不受严重影响? “我们不需要对所有的新变化进行全系统部署!”哦,是吗……抱歉,我没想到。 设 计很多朋友可能会问,我为什么要把设计放在编写代码与完成测试之后?好吧,设计在实际流程中可能比较靠前,但如果没有在当前环境中进行编码与测试,我个人很难设计出一套能够与特定环境完美适配的系统。在设计系统时,我们需要考虑很多问题,包括: 资源使用量是多少? 存在多少用户?预计用户会以怎样的速度增长?(这将直接决定未来存在多少数据库行) 未来可能出现的陷阱是什么? 我需要把这些转化成一份名为“要求汇总”的清单。目前我还没有积累到充分的相关经验,根据计划,明年我的工作内容就是着力解决这方面问题。 这个过程有点违背敏捷原则——在开始实施之前,我们能够做出多少设计判断?这是个权衡问题,我们需要选择在怎样的时间点上做什么。我们什么时候该深入剖析,又该在什么时候退后一步进行规划? 当然,这里收集到的要求不需要也不可能真正全面。我认为把开发的过程纳入设计考量也是完全可行的,例如:
我们最近为 BNEF 开发出一套新的搜索系统,这方面工作也给了我们很大的启发。我们必须设计出本地开发流程、思考 DPKG 方法(打包与部署),同时确保敏感信息不致外泄。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |