最近,我在想 1987 年的电影《华尔街》,更具体地说,是迈克尔·道格拉斯的角色, .当时,20 岁版本的我在电影上映的那天晚上看到了这部电影,专注于他的大学教育。我试图尽可能多地吸收,希望提取一些可以应用于我的学士学位的教育优势。 戈登壁虎 我将永远记住戈登·盖科的名言: “我所知道的最有价值的商品是信息。” 快进 35 年,Gordon Gekko 的声明在今天仍然适用——尤其是当我们意识到“信息”可以被广泛定义时。信息可以是拥有并受到高度追捧的实际数据,但信息也可以被视为创新者计划推向市场的一些差异化因素。 信息的不利之处在于,当它变得众所周知并被充分消费时,它会转变为常识,并失去其作为商品的价值。这就是为什么创新者必须尽快抓住机会,在竞争对手击败他们进入市场之前抓住机会。 我相信 Gordon Gekko 会同意 Benjamin Franklin 的结论,即“ ”并且初创公司有有限的时间将他们的知识产权(或信息)公之于众。 时间就是金钱 因此,让我们来探索一家初创公司如何在几小时而不是几天内推出其概念。 渲染统一云回顾 在我的“ ”一文中,我使用 Render 平台进行了测试,并演示了基于 git 的应用程序的部署速度。事实上,如果你想问我的基于围棋的 Magic 8-ball 服务问题,只需启动 使用 Render PaaS 在 DevOps 上花费零时间 它。 作为后续,我深入了解了 Render 平台,并在“ 写到了它。我发现这是一个可靠的设计,它不仅提供了“零 DevOps”方法,而且是一个基于云的平台,可以从启动阶段很好地扩展以跟上成功的生产实施,同时保持公平的成本结构。 完美的云:AWS、GCP 和 Azure 一体化”中 凭借我之前文章的成功结论,我觉得 Render 是一个理想的解决方案,可以在一天之内验证启动创意的挑战。 此外,我完全希望 Render 提供的服务能够简单地工作并且不碍事,从而将重点放在将新想法推向市场上。 创业理念 为了让事情变得有趣,假设我们的创业公司在网上购物方面有一个颠覆市场的想法。我们的想法允许某人将产品放入他们当前在一家在线零售商的购物车中,然后使用我们的浏览器插件根据以下设置找到最佳商家: 最好的价钱 有现货并准备发货 最快的交货 商家声誉 这些设置可作为插件的一部分进行配置,允许客户决定什么对他们最重要。 安装浏览器插件后,我们的创业想法将允许消费者从他们认识的零售商开始,并让他们首先专注于寻找他们想要的产品。一旦购物车准备就绪,插件将进行必要的分析并为最佳商家构建购物车,让客户简单地完成购买。 我们的环境 由于我们的启动想法纯属虚构,让我们假设必要的代码存储库已经存在: 启动想法客户端:ReactJS 应用程序 startup-idea-plugin:基于 Javascript 的插件,用于与客户端和服务层进行通信 startup-idea-service:基于 Go 的服务,包含 PostgreSQL 模式 这些存储库都在 GitLab 上,如下所示: 下面的简单插图演示了客户浏览器与上述存储库和组件之间的连接: 客户将使用我们的浏览器插件与当前的购物车进行交互。需要时,插件将对客户端 (React) 和服务 (Go) 层进行必要的服务调用。我们解决方案的数据将驻留在数据库 (PostgreSQL) 中,所有必要的通信都通过服务层进行。 我们的目标 从 DevOps 的角度来看,我们的创业公司有几个目标: 我们需要我们的托管平台与我们现有的基于 git 的存储库“正常工作”。 我们必须在几个小时内启动我们的想法……而不是几天。 同一个托管平台应该能够适应设计各个方面的高度重构……而不会引入任何新的挑战。 如果我们的需求增加,通过在流行出版物或社交媒体影响者中的提及,以简单的方式扩展我们的服务将节省大量时间和压力。 我们对 Render 的希望是我们甚至没有意识到它的存在。我们需要 Render 响应我们的请求和指令,然后生成预期的服务和客户端应用程序。 启动启动技术 由于浏览器插件安装会从 React 应用驱动,所以本刊只需要重点关注以下几个方面:** 静态反应应用 基于 Go 的 RESTful API PostgreSQL 数据库 登录我的 Render 帐户后,我到达仪表板,在那里我可以看到我的 Magic 8-ball 服务: 接下来,我将逐步完成添加数据库、RESTful API 服务和客户端应用程序的过程。 添加 PostgreSQL 可以使用 将新的 PostgreSQL 数据库添加到我的帐户中。 菜单选项: New | PostgreSQL 接下来,我为我们的启动数据库提供了基本信息,然后单击 按钮(未显示): Create Database 几秒钟之内,新的 PostgreSQL 数据库就可以使用了。 内部连接字符串是为在渲染生态系统中运行的服务和工作层组件自动计算的。此隐藏属性的值格式如下所示: postgres://admin_id:admin_password@hostname/database_name 现在返回仪表板会显示可供使用的 PostgreSQL 实例: 添加服务层 要将基于 Go 的服务添加到 Render,我选择 选项。 New | Web 服务 由于我已经在我的帐户中安装了 GitLab 集成(了解如何执行此操作 ),我所有可用的存储库都自动显示在选择列表中: 这里 在选择 选项后,我注意到 Render 设置的默认值与我的基于 Go 的服务的预期完全一致。我需要做的就是提供一个 (startup-idea-service),选择一个 (本出版物的免费层),然后单击 按钮。 startup-idea-service 名称 计划 Create Web Service 几秒钟之内,我们的新服务就创建好了,几分钟后,基于 Go 的服务就完全建立起来了。 对于 PostgreSQL 连接,我使用 Environment 部分来存储对数据库连接的必要引用。 这会因服务层而异,但您可以阅读有关数据库连接的更多信息 . 这里 此时,基于 PostgreSQL 和 Go 的服务层出现在仪表板中: 添加客户端层 由于我们将 React 用于我们的客户端框架,我们可以通过选择 设置使用静态站点。 选项。 New | 静态站点 与服务配置类似,可用存储库列表显示在 GitLab 中,我需要做的就是选择 startup-idea-client 存储库: 这一次,我只是提供了静态站点的名称 (startup-idea-client) 并单击了 按钮。 创建静态站点 此处无需指定层级,因为 Render 平台上的静态站点不收费。 静态站点在几秒钟内创建完毕,几分钟后安装了 React 应用程序的所有必要依赖项。静态应用程序已准备好使用。 渲染仪表板现已完成,我们的客户端、服务和数据库层均可用。 结论 我们的目标是在一天内启动我们的创业想法,我们能够在几分钟内完成所有事情——甚至不是几小时!利用 React、Go 和 PostgreSQL 无疑有助于减少这一时间,但我们可以选择以下任何选项来获得同样快的结果: 灵药 节点 PHP Python 红宝石 锈 静态站点(Jekyll 和 Gasby) 对于其他一切,我们可以只使用 Docker 并使用生成的容器与 Render 平台进行交互。 这种设计最好的部分是平台处理每个请求,当提交被推送到 Render 正在监视的分支时自动响应。当开发生命周期中出现更新和重构需求并且需要快速提供时,这一点很重要。 自 2021 年以来,我一直在努力遵循以下使命宣言,我认为它适用于任何 IT 专业人士: 将时间集中在提供扩展知识产权价值的特性/功能上。将框架、产品和服务用于其他一切。 - J.维斯特 考虑到让我们的创业想法运行所需的少量时间,很明显 Render 平台与我的个人使命宣言的紧密程度。随着对服务需求的增加,这个相同的生态系统可以随着我们的初创公司一起发展——而不会产生不合理的成本后果——进一步巩固了该解决方案作为云交付领域具有前瞻性思维的领导者的地位。 虽然本文的重点是快速启动一个新的创业理念,但更广泛的结论是,Render 为客户提供了快速启动和运行的能力,并允许将重点放在推动解决方案的业务需求和优先事项上。凭借零 DevOps 的承诺,该解决方案消除了基于云的交付的担忧,并且不妨碍客户创新。 回想《华尔街》和戈登·盖科,我觉得这句话在今天也适用:“ ” 在我的书中,你要么做对,要么被淘汰。 使用 Render 平台当然属于“做对了”的范畴。 有一个非常棒的一天!