Several tools in the market that enable the engineering teams to easily roll out the application changes in various environments from a simple config to major code changes. But it often requires some level of technical understanding to make those updates.
Imagine empowering the non-technical business individuals to make those updates themselves by sending a message in a simple language (not in Python language tho 😂) which would save a lot of time on both ends.
🤨 How to make this happen?
It is possible with the combination of a few tools and by developing the solutions in such a way that it can accept parameters to control the features and behaviours.
In this post, we will take a look at how it can be done using Slack as our messaging platform, and AWS AppConfig to host and manage the configurations.
💬 ChatOps
ChatOps is a term used to describe the use of chat platforms, such as Slack or Microsoft Teams, for communicating about and automating tasks related to software development, infrastructure, and operations. The goal of ChatOps is to allow team members to collaborate and work more efficiently by providing a central location for communication, task execution, and status updates.
In ChatOps, team members can use chat commands to trigger automated tasks and processes, as well as view the status and output of those tasks in the chat platform. This allows team members to communicate and collaborate in real-time, without having to switch between multiple tools or applications.
For example, a team member could use a chat command to deploy code to a production environment, view the status of a continuous integration (CI) pipeline, or get the latest logs from a server. This can help teams to streamline their workflow and reduce the time and effort required to complete tasks.
⚙️ AppConfig
AWS AppConfig is a fully managed service that enables developers to quickly and easily roll out new features and updates to their applications. It allows you to create and manage application configurations, and deploy those configurations to specific environments or groups of users.
One of the main benefits of using AppConfig is that it helps you to deploy new features and updates to your applications more quickly and safely. With AppConfig, you can create and test new configurations in a staging environment before rolling them out to your production environment. This helps to reduce the risk of downtime or other issues that can arise when deploying updates to your application.
AppConfig also makes it easy to manage and track the deployment of your configurations. It provides many tools for monitoring the status of your deployments, including real-time alerts and detailed metrics. This allows you to quickly identify and resolve any issues that may arise during the deployment process.
In addition to its deployment capabilities, AppConfig also offers several other features that make it a powerful tool for managing application configurations. These features include:
⦿ Validation: AppConfig allows you to validate the configuration such as verifying the datatype and the formats.
⦿ Versioning: AppConfig provides built-in versioning capabilities, allowing you to track changes to your configurations and roll back to previous versions if needed.
⦿ Integration with other AWS services: AppConfig integrates with most of the AWS services, including Amazon CloudWatch and AWS CloudFormation, making it easier to manage and deploy your configurations.
Let's dive into the design
Based on the diagram above, the user sends a message in the Slack channel such as
/app-update {"background-colour": "black"}
/app-update deploy-to-prod
/edh-generate-report today
any message which starts with /
can invoke a call to the endpoint in Slack, so in this case, we are calling AWS Lambda Function URL to process the message. It can update the configurations in AppConfig, to trigger the pipeline for production deployment or any workflow.
🎥 Demo
👍 Conclusion
In this demo, we invoked a call to the AWS Lambda Function URL with a payload and it returned the response to us as a message.
AppConfig helps to streamline the process of updating your applications and ensures that you can deliver new features and functionality to your users in a timely and reliable manner.
One of the alternatives to this is to build a web-based portal to manage these configurations to be edited by the individuals. Then the question arises whether we need an individual portal for each of those applications, managing user access controls, deployments and so on. Hence investing in a tool like AppConfig and creating a culture will help the organization to stay effective and efficient.
✍️ About the Author:
Mohamed Fayaz is a Data & AI Consultant, and a technical blogger who writes and speaks about the topics such as Software Engineering, Big Data Analytics, and Cloud Engineering. Connect with him on LinkedIn or follow him on Twitter for updates.
Top comments (0)