所在的位置: 前端 >> 前端优势 >> Sekolahmu技术栈

Sekolahmu技术栈

黑色素生成能力检测 http://www.yushiels.com/npxbb/npxlf/1184.html

我不断从其他人那里收到关于Sekolah.mu中技术堆栈的相同问题。当我直接回答这个问题时,他们中的大多数人都对我们的技术堆栈以及我们如何实现它感到非常惊讶。因此,写这篇文章是为了解释我们的“厨房”是什么样的。因此,您可能对我们的使命有更好的理解,即从技术角度使印度尼西亚人民获得质量和负担得起的教育机会民主化。

旧系统

在我于年10月加入Sekolah.mu之前,Sekolah.mu使用了Qlevers(它是一家为学生和教师提供问答的初创公司)的平台,他们的技术栈如下图所示:

从管理面板平台来看,它的架构使用单体设计和PHP(Laravel)作为后端编程语言,而Vue.js和Quasar作为前端框架。他们使用MySQL作为主数据库来存储其数据,他们还利用mongoDB来存储选定的用户数据。那时,用户与平台交互的方式只是使用移动应用程序。我们的团队使用混合移动开发框架Flutter开发了它。在基础设施方面,我们使用DigitalOcean来管理其应用程序和数据库服务器。我们还使用了一个自我管理的GitLab社区版作为代码存储库。

如果我们把它当作MVP,我相信那些架构设计和技术栈就足够了。但是,我们必须意识到,如果我们想扩大规模以同时为数百万用户提供服务,我们肯定需要重写所有内容。

出发

我从年10月开始加入Sekolah.mu。从那时起,我们决定改变很多事情作为我们的基本面,以配合公司的大使命。我们于年10月使用旧堆栈发布了我们的Android应用程序的Alpha版本。然而,在年11月,我们开始从我们的技术堆栈和平台重建一切。

我们决定利用AWS作为我们的主要云基础设施,Python作为我们的后端编程语言,Vue.js作为我们的Web前端框架,Kotlin作为我们的移动原生编程语言。改变一切的主要原因是我们希望提供更好的可扩展性来处理数百万的流量。因此,我们从后端的角度实现了微服务架构。

年1月3日,我们使用Kotlin和Python(Django)成功发布了我们的应用程序的测试版。我们还使用Docker作为容器平台,使用AWSECSFargate作为容器的编排器。它标志着我们使用新技术发布平台的旅程。

如上图所示,我们使用Redis和Elasticsearch来提高我们平台的性能。由于我们没有专门的站点可靠性工程师,我们使用了AWSElastiCache和AWSElasticsearch的托管服务。它确实帮助我们的团队专注于真正重要的事情。尽管如此,我们发现AWSElasticsearch并不是那么完美,因为在高峰流量期间,我们不断在集群的健康检查中获得红色状态。我们也无能为力,因为我们不允许更改/调整AWSElasticsearch配置的管理设置。创可贴解决方案是升级基础设施以匹配流量,这意味着运行更强大的服务器的成本更高。

我们使用Vue.js作为我们的Web技术框架,而不是React.js。我们注意到,几年前,当Facebook不想将其设为开源许可证时,React.js出现了问题。我们也注意到当时使用Vue.js的趋势非常高,因此我们决定使用Vue.js作为我们Web平台的主要框架。

当前技术

由于我们的平台变得越来越复杂并添加了新功能,因此我们在接下来的几年中不断添加新技术。我们开始使用Go和GinGonic作为我们的后端编程语言及其框架,因为与Python相比,它将API性能提高了近10倍。我们还将NuxtJS实现为服务器端渲染框架,以提升我们的搜索引擎优化(SEO)策略。来自移动工程团队,我们使用Swift开发我们的iOS应用程序。

年年中,我们决定开始组建数据团队。我们确实有数据分析和数据科学团队来实施数据仓库、人工智能和商业智能仪表板/报告。我们开始使用Pentaho进行ETL流程,但是由于性能太慢,我们改变了使用ShellScript和Python作为ETL流程的方法,并将所有内容存储在我们的企业数据仓库中。我们使用GoogleBigQuery和PostgreSQL来存储我们的数据用于ETL目的,然后这些数据将作为我们的BI工具显示在Metabase和Tableau上。

我们使用许多工具来支持我们的日常运营。我们确实通过使用UptimeRobot来跟踪我们的SLA正常运行时间平台。因此,每当我们的平台出现问题时,它都会向我们的Slack频道、手机和电子邮件发送通知。我们还使用NewRelic和AWSRDSPerformanceInsight来监控我们的后端服务和数据库的性能。通过跟踪重要指标,我们可以改进很多事情,尤其是与后端和基础设施方面的性能相关的事情。从DevSecOps的角度来看,我们不仅将GitLab用作代码存储库,还用作CI/CD平台。我们将代码存储在该平台中,并根据我们的每个产品配置git流。

下一步是什么?

我们一定会不断增加相关的新功能和新技术,并为我们的公司带来更多价值。我们还继续对新技术进行一些研究,我们可以将其应用到我们的技术堆栈中,以便我们可以改善我们的客户体验。

如果您认为我们的技术堆栈足够具有挑战性,我会鼓励您申请我们这里的空缺职位。我们一直在寻找具有积极态度和出色技能的潜在候选人,为我们带来新的价值观。

期待收到您的简历/简历!让我们共同成长,为印尼教育界带来积极影响!

什么是人才学?

我们还收到了一些关于我们决定使用Talentics作为我们的工作平台的问题。为什么我们首先使用它而不是使用career.sekolah.mu页面?

好吧,我们确实有一些由我们的内部团队开发的平台,例如:

Sekolah.mu

Karier.mu

Talentics.id

Rencanamu.id




转载请注明:http://www.aierlanlan.com/grrz/3914.html