We have few spring boot micro services deployed on on-prem servers running on embedded tomcat. They don't use config server. Also server side load balancing is used; so there is no separate service discovery server either. Currently these apps are not containerized.
We need to move these spring boot apps to azure cloud. I am seeing two options -
Based on looking at Azure Spring Cloud documentation, it seems to be a PaaS service with managed cloud and discovery services. Also we may not need to do much changes (containerization) to our current on-prem apps to deploy. But given that we do not use config server and service discovery in our current on-prem app, would it be a good option to use Azure Spring Cloud instead of AKS?
Overall, from perspective of ease of deployment, auto scaling, overall cost, monitoring/logging perspectives which would be the better approach?
Azure Spring Cloud and AKS are both great destinations to run your Spring Boot apps. Azure Spring Cloud is a fully managed app platform specifically designed for Spring apps, whereas AKS is a generic Kubernetes service for all containerized applications. For Spring Boot apps, Azure Spring Cloud offers more in-depth support and features than AKS and I’m going to break it up into different perspectives that you asked in your question.
Deployment In Azure Spring Cloud you can directly deploy your apps without containerization. You can connect your existing CI/CD pipeline to Azure Spring Cloud or even directly deploy from source code. In AKS you need to containerize the app first.
Auto Scaling Because Azure Spring Cloud actually leverages AKS as the underlying infrastructure and has built-in integration with Azure monitor, you can auto scaling in both platforms. However, Azure Spring Cloud will get you more metrics on your apps (i.e.: “App CPU Usage”). Only container level metrics are available in AKS.
Overall Cost As a managed PaaS, Azure Spring Cloud will always be more expensive than AKS due to the additional management value. When comparing costs, rather than simply looking at the sticker price, it is also important to consider the following:
Monitoring Azure Spring Cloud offers more key differentiations when it comes to application-level monitoring. In addition to built-in integration with Azure monitor, Azure Spring Cloud also offers out-of-box integration with New Relic, Dynatrace and AppDynamics. All of these can work with AKS also, but will require additional setup and upkeep.