Java Spring CI/CD在AWS中 - Hallocasa之旅
#aws #devops #java #ecs

新的开始可能令人生畏,尤其是在改造现有的Java Spring应用程序时。这是我在Hallocasa房地产平台上的旅程,这是我们从部署噩梦到光滑,云机构运营的方式。如果您想改善Java Spring CI/CD体验。与我接触!

也有关于YouTube上Java Spring CI/CD体验的录音。检查一下here

介绍Hallocasa

HalloCasa是一个动态的房地产平台,旨在允许房地产经纪人在几分钟内创建自己的名片。它也用作目录和推荐网络。

我在Hallocasa上工作的动机是我有机会为强大产品的开发做出贡献。我的AWS方面的专业知识可以有效地应用。
与不仅精通业务的联合创始人合作,而且还具有在房地产地区产生引人入胜的内容的诀窍。他有自己的播客https://blog.hallocasa.com/podcasts/。确保检查一下!

部署困境

一开始,我们的部署过程只能描述为拼布:

在本地设置Maven,Tomcat和MySQL。创建一个战争文件,然后将其插入EC2 VM进行转移。每次手动重新启动Tomcat服务器。

我们的NextJS前端没有太大的不同。我们必须进入EC2 VM并手动运行NPM开始。为了使事情更加令人费解,我们的前端位于bitbucket,而后端则居住在AWS CodeCommit中。

部署新的和改进的方式

这是我如何改造我们的部署的方式:

转移到github

从AWS codecommit和bitbucket迁移到github。
利用GitHub的操作进行测试构建并引入了PR AI reviewer以提高效率。

Dockerization

将我们的配置部署为代码,既干净又易于管理。随着Docker-Crompose的发展,地方发展变得无忧。在本地设置Maven,Tomcat和Mysql的日子已经一去不复返了。
进一步利用了这一点来喂养AWS ECS,使部署保持一致。此外,还引入了健康检查,以确保应用程序启动并运行。如果健康检查失败,该应用程序将重新启动,在大多数情况下解决了问题。

CDK管道

实现了CI/CD登台管道,该管道首先将更改更改到QA,然后将其部署到产品上。通过与Postman集成测试来确保鲁棒性。我们为每个阶段设置了专用AWS帐户,确保了清晰的分界和管理。

Pipeline

DB与Flyway迁移

采用飞行道,以授权我们的Java应用程序管理数据库,无需提供对模式修改数据库的访问。

dbmigration

监视指标

引入了大量指标来监视我们的后端。有关关键指标的明智决定,我向Chatgpt寻求有关Java应用程序最重要的指标的建议。
我们改建的生产设置于23年1月8日上线,迁移是无缝的。

Monitoring

反思旅程

翻新Hallocasa重申了几种信念:

Docker是一个救生员。它带给应用程序的可移植性和一致性是无与伦比的。 CI/CD是改变游戏规则的人。它可以自动化手动任务,并确保更快,可靠的交付。 AWS CDK很强大。它简化了云资源提供和管理。 CDK管道简化了部署。有了它,管理多个部署阶段变得轻而易举。一个引人注目的启示是,基础架构和应用之间的界线似乎在我们的设置中似乎模糊了。这种收敛是积极的,表明整合和一致性紧密。

Hallocasa之旅证明了持续学习,适应和创新的力量。现在,我们的用户享受一个更健壮的平台,我们可以在晚上睡得更好,因为知道我们的部署比以往任何时候都更加顺畅。如果您有需要抛光的Java应用程序,请与我联系!

希望您喜欢这篇文章,我期待在下一篇文章中与您见面。

我喜欢从事开源项目。您可以在https://github.com/mmuller88上使用的很多东西。如果您喜欢我的工作和博客文章,请考虑支持我:

Buy me a Ko-Fi

Buy me a Ko-Fi

不要忘记访问我的网站

martinmueller.dev