Recently I ran into a few circular dependency problems when creating resources with AWS CloudFormation. While creating the stack AWS will throw a “Circular dependency between resources: [ ResourceA, Resource B, …]”. The error message is not very specific on where exactly this happened. The message can even set you on the wrong track while solving the problem.
These days lots of really good libraries and frameworks exist to build well structured web frontends. This is true if we start a new project on a greenfield. However using them to modernize legacy code can be quite difficult if rewriting major parts from scratch is not an option (i.e. due to time, budget or technical constraints). In this article we will incrementally modernize a jQuery web frontend by rendering fragments of HTML with templates. This article is part of a series of blog posts in which we’ll have a look at different strategies for incrementally modernizing legacy web applications.
CloudFormation is the core component of AWS for implementing Infrastructure as Code. It allows easy creation and management of related AWS resources by writing CloudFormation templates. Originally those templates were all written in JSON but nowadays there is also an option to use YAML (AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution). Good stuff! Surprisingly the vast majority of example templates is still written in JSON. So here is my take on why I think you should definitely give CloudFormation in YAML a try.
In this article we will see how to implement a DevOps pipeline with Jenkins that can handle concurrent builds. Some stages of a pipeline require resources that can only be used by one build at a time. For example we might have a single test or staging environment. Instead of limiting the number of concurrent builds of our pipeline we will marshal the access to resources with the “lock” functionality.