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