后端即服务演进:Scorocode的第二次亮相

哈Ha

我们打破了很长一段时间的沉默,并宣布了第二版Scorocode。
这甚至不是进化,而是新服务的诞生。

一年的工作经验,Docker,Kubernetes,Yandex.Cloud等。

警告问题“为什么这里有Go Hub?”,我回答-所有Scorocode服务都是用Golang编写的,这是我们在技术堆栈中用作主要语言的语言。

我要求猫下提供详细信息。

历史背景


Scorocode v1于2016年夏季推出,在3个月内收集了20,000个注册,历时2.5年,它是我们面向公众的免费工具,用于部署私有云,在此期间开发了8个不同级别的系统:通过服务打车到生产管理系统。


在第一个版本中,存在用于与NoSQL MongoDB DBMS一起使用的自写服务,其自己的数据库查询解析器,在服务器上提供JavaScript代码执行的服务,而所有这些都是云中的一个整体。


v1平台的主要缺点:


  1. 资源在应用程序之间泛滥成灾,不可能获得有保证的资源,而在我们看来,这种资源至少看起来已经很奇怪了。
  2. 没有启动成熟节点WEB服务器的机制,只能执行一次执行时间有限的脚本。
  3. 事实证明,我们的大多数NoSQL客户端都不需要MongoDB;相反,每个人都要求使用关系MySQL / PostgreSQL。
  4. 起始付费关税的成本很高,大约为3,000卢布/月,并且不了解用户所支付的费用。

去年年底,我们的团队了解了所有的成就和失败之后,决定参与新版本的开发,从根本上重新设计架构。


v2中有什么新功能?


逻辑没有改变。 有一个帐户,用户帐户所有者可以在其中创建应用程序。 但是应用程序的结构已更改。 现在它是独立的,托管在专用资源上(在公共云中-专用虚拟服务器上)。


评估完成的工作,我们知道我们已经走了很长一段路。 首先,我们构建了一个基础架构,其基础是驻留在docker容器中的服务,这些服务又组合成依赖组,它们位于Kubernetes管理的Pod中。 通常,一切都是该类型的经典。


使用现成的服务:



下一步是编写和构建自己的服务。


验证码

使用HTTP授权方法(类型Bearer)的应用程序授权服务。


经纪人

打包您自己的服务的服务(对不起您的重言式)。 今天,它以节点服务器的形式呈现,您可以在其中部署带有源代码的完整应用程序,也可以部署现成的节点程序集(有关此内容,请参见scorocode-cli的说明)。 我们正在朝着打包DTR的现成服务和自写服务的可能性的方向开发服务。 当然,我们对使用golang编写的服务进行了第一个实验。


数据库API

提供对所有PostgreSQL数据库表提供RESTful API操作的服务。
也就是说,在数据库中创建表后,所有CRUD操作都可以通过API使用。


网络套接字

通过WebSocket协议连接客户端时,它将标识客户端,然后可以从服务器API发送命名消息或广播消息。 此外,我们将开发服务以缓冲和保证消息传递。


FS

使用应用程序存储的文件夹和文件。



发送推送通知。 Android / iOS证书绑定在您的帐户中。


控制台实用程序scorocode-cli


使用第一个版本的2年用户告诉我们,无论用户个人门户网站上显示的工具多么精美,经过一段时间的“纵容”,开发人员都希望返回他们熟悉的环境-他们的本地计算机。 因此,我们离不开控制台实用程序。


今天,scorocode-cli(sc-cli二进制)为开发人员提供了以下功能:



连接到云中的应用程序,授权,将配置保存在.cli文件夹中。


初始化

获取存储库并部署基础应用程序,然后构建并保存到云中。 基本的应用程序仍然是一个,如何开始使用-我们将编写更多不同类型的应用程序。



将本地项目文件与云同步。



将本地项目文件保存到云中。


regdb

注册数据库。


日志

从服务获取日志。



将本地端口转发到云以获取所有服务。 例如,启动网桥后,您可以将任何客户端作为本地客户端连接到多云的PostgreSQL。


服务

应用程序的本地启动。 用于本地调试。


问题所在


路上有很多问题。 而且仍然有很多。 基本上,它们出现在开源产品的交界处。 有时,基本操作导致每周进行挖掘,并因此导致对产品存储库的拉取请求。 很难将所有内容都整理成一篇文章。 我希望我会写更多有关特定问题和解决方案的文章。


发展计划


首先,我们将编写服务。 很多服务。 但是我们不会抽象地编写它们,而是应客户的要求。 我们还将开发应用程序模板,以便用户编写更少的代码来连接新功能。


关于事业


我们将重点从私人用户转移到B2B市场领域。 我们改变了基础-现在我们在Yandex.Cloud中 。 有关此内容的更多信息将成为我们产品Korbut的文章。 正因为如此,试用版出现在公共云的新版本中-1个月,此后我们想了解用户是否对我们失去了兴趣,或准备为该服务付费(应用程序基本配置的成本为990卢布/月)。


关于关税


现在我们有了绝对透明的资费。 用户看到为他的IaaS应用程序分配的资源,我们的成本只是以百分比为单位。 百分比是浮动的,取决于消耗的数量。 在启动Yandex.Cloud市场之后,这为我们提供了收费透明性和能力,使其可以向Yandex.Cloud帐户中的用户部署带有收费的私有云。


是的,我们非常小心。 考虑到我们为每个应用程序分配了资源,因此试用期的应用程序池很小,大约为一百个。 首先,我们从旧版本发送了邀请给我们的用户,但是我们继续在scorocode.ru页面上接受与试用期相关的申请


结语


我非常感谢我们的团队,即使在最僵局的情况下,他们也不会灰心。 顺便说一下,关于命令:


  • Anya Korbut-产品经理
  • Zhenya Khramtsov-建筑师,开发人员
  • Levan Kiknadze-建筑师,开发人员
  • Roma Gayazov -JS /前端开发人员
  • 塔吉尔·哈利洛夫Tagir Khalilov)-DevOps
  • Dasha Golubeva-系统分析师

当然,非常感谢Yandex.Cloud团队的及时,支持和参与新兴问题。


感谢您阅读到最后。 我都拥有

Source: https://habr.com/ru/post/zh-CN431714/


All Articles