Reproducible Builds in Java

Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code. https://reproducible-builds.org/ Reproducible builds are important and provide benefits in many areas, including: Security. Because the same input source code always provides the same output binary artifact, you know that no attacker modified the toolchain to inject vulnerabilities … Continue reading Reproducible Builds in Java

Version Controlling Database Schemas and Data with Liquibase

Version controlling database schemas facilitates repeatable deployments and consistent environments. The alternative is have a human manually perform database modifications; since humans are human, we tend to make mistakes especially when performing repetitive tasks, and our time is also very expensive compared to that of machines, so automating database schema changes is superior approach. More … Continue reading Version Controlling Database Schemas and Data with Liquibase

Migrating Message Queue Based SOA Applications to the Cloud

The Service Oriented Architecture (SOA) pattern is commonly found in the enterprise. SOA is an approach where components (services) communicate with each other over the network. Each service focuses on a specific goal. For example, an SOA ecommerce store may have a service for credit card processing, another inventory checking, another for user management, and … Continue reading Migrating Message Queue Based SOA Applications to the Cloud

Moving to the Cloud: Get Started With the Basics

In my role with Isobar, I’ve successfully migrated a number of enterprise applications to the Azure and AWS clouds. In the process, I’ve noticed a number of commonalities and taken some lessons learned. I keep these thoughts in mind at all times and have found they greatly contribute to success. Focus on “Why” It is … Continue reading Moving to the Cloud: Get Started With the Basics

Linters: Keys To Secure, Maintainable, Quality DevSecOps

Linters are static analysis tools that analyze source code and report problems. The term goes all the way back to Bell Labs in 1978 but the concept is still very important today. In my opinion, linters are a key ingredient of a successful DevSecOps implementation, and yet not enough people are aware of linters, how … Continue reading Linters: Keys To Secure, Maintainable, Quality DevSecOps

The Importance of Upstreaming Issues

Any software builds upon other software – nothing truly starts from scratch. Even the most trivial “Hello World” demo program relies on a compiler, (most likely) a standard library, and then all of the low level system services, such as the operating system, drivers, and hardware. In any of those areas, it’s pretty much certain … Continue reading The Importance of Upstreaming Issues

Securing and Rotating WordPress Database Credentials with AWS Secrets Manager

AWS Secrets Manager is a simple and powerful way to handle secrets (such as database username/password credentials). It provides support for storing, retrieving, managing, and rotating credentials at an affordable cost (currently $0.40 per secret per month). However, it’s not terribly easy to use with WordPress. I have not been able to find any documentation … Continue reading Securing and Rotating WordPress Database Credentials with AWS Secrets Manager

AWS Secrets Manager Rotation in CloudFormation

I found AWS’s documentation for how to setup Secrets Manager secret rotation in CloudFormation to be severely lacking as no AWS documentation explains how to use the secret rotation templates provided by AWS within CloudFormation. Automating Secret Creation in AWS CloudFormation gives an example of how to setup the CloudFormation resources for the secret and … Continue reading AWS Secrets Manager Rotation in CloudFormation

Using Dynamic References to AWS Systems Manager Parameter Store Secure Strings with Elastic Beanstalk

Dynamic references in CloudFormation to secure strings are very handy, providing a simple way to keep secrets (such as passwords) secure. However, SSM Secure String Parameters are only supported in a limited set of places and Elastic Beanstalk environment variables are not one of them (feature request for adding support). Therefore, if you want to … Continue reading Using Dynamic References to AWS Systems Manager Parameter Store Secure Strings with Elastic Beanstalk