Spring Batch to AWS Cloud: Transferring with Ease

Transferring Spring Batch Apps to AWS Cloud

Rik Scarborough Articles, AWS, Cloud, Development Technologies & Tools, Spring, Spring Batch, Tutorial 2 Comments

The last few years have seen a lot of movement to bring applications that don’t require manual intervention from the mainframe to Unix, Linux, Windows servers, or even to the desktop. This concept is commonly known as batch programming, and Spring Batch has been the tool many of us are using to accomplish this. Another trend that is gaining steam is to move from an internally-hosted server to a cloud-hosted system.

In this post, we discuss multiple ways for transferring Spring Batch applications up to the AWS Cloud, including EC2, Docker, Lambda, and others. I concentrate on AWS in this post, but, from my experience in Google Cloud, the same ideas will apply…

AWS Consulting

At Keyhole Software, we specialize in helping businesses unlock the full potential of Amazon Web Services (AWS). As an AWS Consulting Partner, we assist clients with designing, building, and optimizing cloud-based applications and infrastructures to meet unique business needs. Services include AWS Cloud Migration:
Migrating applications & infrastructure to AWS by analyzing existing systems, planning a strategic migration plan, and executing migration while ensuring uninterrupted operations. Cost Optimization: Optimizing AWS infrastructure for cost-effectiveness by assessing resource utilization, identifying cost-saving opportunities, and providing recommendations for optimizing AWS usage and billing. AWS Architecture Design: Designing scalable and efficient architectures on AWS, working closely with client teams to understand requirements and design efficient architectures for scalability and longevity. Serverless Computing: Helping clients design and implement serverless architectures, leveraging AWS Lambda functions for event-driven and microservices-based applications to increase flexibility and speed.

AWS SNS Push Notifications

Matt McCandless Articles, AWS, Cloud, Development Technologies & Tools, Java 1 Comment

Have you ever received endless notifications from the latest application you just downloaded? For example, a bank application that tells you your balance is less than $50. It is likely a message sent directly to your phone through Apple Push Notification Service, Firebase Cloud Messaging, or some other like service.

While you can use any of these services directly, there is a lot to gain by using something like AWS SNS to manage, send, and organize your notifications.

In this post, we show an example of the Push Notification feature of Amazon Simple Notification Service (SNS) using Firebase to handle the iOS and Android messages. Code examples are in Java using Eclipse.

Do note that this blog is solely focused on Push Notification feature of SNS. Keep in mind that SNS can be used for email and SMS messaging, but for brevity, we will steer clear of those.

.NET Memory Management with dotMemory

Jason Schmidtlein .NET, .NET Core, Articles, Development Technologies & Tools 3 Comments

Given the maturity of the .NET Framework and the automated nature of its memory management, many developers are guilty of glossing over (or even outright ignoring) whether their code is optimal in terms of CPU and memory usage. Personally, I have caught myself making sure my code is maintainable, testable, and extendable while forgetting to consider memory management in terms of nonfunctional aspects.

While the .NET runtime does a great job and memory corruption is extremely rare, we should still be concerned with memory management, particularly in large-scale .NET base applications.

This concern isnโ€™t limited to on-premise applications. Itโ€™s easy to forget about memory usage with cloud computing. Azure Functions and AWS Lambda have billing structures based upon the average memory size per second of function execution. The direct correlation between memory usage and cost couldnโ€™t be more transparent.

Fortunately, there are many great tools to help profile and analyze your memory footprint. JetBrains has a fantastic tool called dotMemory which makes it easy to profile processes, auto detect issues, perform deep analysis, and determine traffic. dotMemory can be installed as either a stand-alone tool or as a part of the ReSharper package integrated into Visual Studio.

In this post, weโ€™ll show how to use dotMemory to generate a memory profile and analyze a memory leak in a .NET Core application.