AWS Infrastructure Management
Overview
My role: Product concept to deployed system.
Challenge: Efficiently manage the infrastructure and cloud application for SME client, including deployment processes, backup/restore and monitoring from Windows and macOS workstations
Solution: Multi-platform desktop application integrating infrastructure-as-code, status monitoring and log analytics
Technologies: Avalonia, C#/.NET, AWS SDK
Infrastructure As Code
But whose code? That was always my question when I looked at Terraform or CloudFormation. If I build on top of that, then I am actually putting yet another layer between the programmable infrastructure and my code. That is why we had a suite of infrastructure as code components in Python to manage the cloud infrastructure. The good part of this is that it does exactly what we want. The bad part is that it's command line and not for the faint-hearted. Transitioning from Python to C# and still using the AWS SDK allowed overlaying beautiful modern Avalonia UI over our existing infrastructure management capabilities.
Standard Processes
Running and monitoring deployment processes was also part of our Python suite of tools. With the new UI, the processes are much easier to initiate the progress. It is safer to eliminating any chance of mistakes, executing command line calls, the right (or wrong) parameters. This also makes deployment and recovery accessible to decision makers who previously had to delegate technical team members.
Log Analytics
Logs are very useful. And logs are huge! There are various analytics tools available and AWS Console also has CloudWatch log review capabilities. But it's one of those things that if I use an existing system that I need to tailor, or I use something bare bones like AWS Console, there is either way some big effort to interpret our logs the right way. Now we have the ability to run analytics locally, interpret various log message formats semantically, and have other useful capabilities like histogram charts to understand when various events occur.

