Tuesday, November 29, 2022
HomeCloud ComputingCloudTweaks | Utilizing AWS AppConfig Extensions

CloudTweaks | Utilizing AWS AppConfig Extensions

Utilizing characteristic flags and different runtime configuration varieties is a fast-evolving know-how phase. Adjusting your software program habits with a minor configuration replace as a substitute of deploying code lets groups transfer quicker and extra safely. Moreover, releasing a characteristic utilizing a characteristic flag permits engineering groups to activate options to a restricted set of customers after which measure the affect. The aptitude can immediately flip off and roll again if one thing goes unsuitable, considerably limiting the change’s affect. At Amazon, we name the observe of utilizing characteristic flags and runtime configuration, Steady Configuration.

AWS AppConfig began in 2017 as an inner instrument for Amazon. It rapidly grew to become a top-used service for inner groups that wished a secure and measured solution to handle their characteristic flags and operational flags. In 2019, AWS launched AppConfig for exterior prospects. This providing had all the discovered classes and finest practices for using runtime configuration and have flags constructed into the product. Now we’re saying AppConfig Extensions, which permits prospects to increase the ability of dynamic configuration and have flags in new and revolutionary methods. After studying this submit, you’ll perceive what AppConfig Extensions are, what issues they resolve, and what extension varieties you possibly can construct.

What are AppConfig Extensions?

For the reason that inner launch of AppConfig in 2017, and the exterior launch in 2019, we’ve added many options that prospects have requested. These embody integrations with Lambda, AWS CodePipeline, and Amazon CloudWatch, in addition to releasing an opinionated format for characteristic flags in 2021. We’ve innovated on behalf of our prospects, and we frequently obtain many requests for brand new performance. One statement we’ve had on these requests is that there are points to them that make them impractical to construct in a generic means. One other statement was seeing how some prospects have constructed options on high of our service in ways in which had been particular to their very own workflows. Nevertheless, as a substitute of getting the AppConfig workforce construct all new options as requested, we determined to empower others to construct on high of AppConfig. We knew that permitting different engineers, each inner and exterior, to make the most of a framework to increase AppConfig could be a power multiplier, plus give the liberty to help integrations into customer-specific techniques and processes.

AppConfig Extensions are add-ons to AppConfig that improve the ability and security of the principle AppConfig service. Managing configuration sometimes follows a lifecycle much like creating code: create/replace, validate/check, deploy, and monitor. The AppConfig Extension framework exposes hooks, referred to as motion factors, at every of those lifecycle milestones. When an motion level is triggered, no matter actions (e.g. calling a Lambda perform) are outlined within the set of AppConfig Extensions relevant at that lifecycle step shall be invoked.

The framework permits for simpler integration of different providers (AWS and in any other case) to assist prospects enhance their velocity and security. Over the approaching months and years, we anticipate the variety of extensions to develop considerably, offering bespoke options created by AWS and our prospects.

Self-authored AppConfig Extensions

To offer a way of the performance that AppConfig Extensions can present, we’ll illustrate some examples equivalent to the lifecycle steps talked about above, beginning with the primary part: the creation of configuration knowledge. Let’s say, for instance, that you just wished so as to add a timestamp inside your hosted configuration knowledge’s JSON every time it will get up to date. With an extension, you may hook into the PRE_CREATE_HOSTED_CONFIGURATION_VERSION motion level and write a easy AWS Lambda to insert the timestamp. Chances are you’ll subsequent determine that you just wish to export a duplicate of every model of your hosted configuration knowledge right into a supply repository like Github, no matter its knowledge format. You could possibly create one other extension that additionally hooks into the PRE_CREATE_HOSTED_CONFIGURATION_VERSION motion level to export the hosted knowledge into your repo each time the information adjustments. Whereas each extensions might be related to a selected Configuration Profile, you may as a substitute affiliate this extension to an Utility which can trigger it to robotically apply to all hosted Configuration Profiles in your Utility, even these created at a later date. Persevering with down the lifecycle steps, you would possibly must merge knowledge from one other supply, equivalent to a legacy configuration database, into your configuration knowledge earlier than it deploys. Your extension would include an motion that triggers at PRE_START_DEPLOYMENT and calls a Lambda to retrieve the information and merge it into the to-be-deployed model of configuration knowledge. As a last instance, you may set off check automation to run after you’ve deployed new configuration knowledge by hooking into the ON_DEPLOYMENT_COMPLETE motion level that publishes a message to an SNS subject.

Out there Motion Factors

As famous above, an extension can hook into AppConfig Extension motion factors. Presently, AppConfig exposes the next motion factors:

Motion level Description
PRE_CREATE_HOSTED_CONFIGURATION_VERSION happens when an AppConfig hosted configuration is created or up to date, however simply earlier than it’s saved
PRE_START_DEPLOYMENT happens simply earlier than a deployment begins
ON_DEPLOYMENT_START happens when an AppConfig deployment begins
ON_DEPLOYMENT_STEP happens throughout a deployment, and increments relying on the deployment technique step share
ON_DEPLOYMENT_BAKING happens after the deployment completes, however bake time (if specified) begins
ON_DEPLOYMENT_COMPLETE happens after the deployment and bake time is full
ON_DEPLOYMENT_ROLLED_BACK happens if a deployment roll again initiates

AWS-authored AppConfig Extensions

Along with the AppConfig extensions you create, we now have a handful of extensions which are already obtainable so that you can use. The AppConfig Notification Extensions permit prospects to be notified for the ON_DEPLOYMENT_START, ON_DEPLOYMENT_COMPLETE, and ON_DEPLOYMENT_ROLLEDBACK motion factors. Clients can have these notifications despatched to Amazon EventBridge, Amazon Easy Notification Service (Amazon SNS), or Amazon Easy Queue Service (Amazon SQS). We even have an AppConfig Function Flags Helper extension, which performs a job in our Function Flags characteristic and is robotically related to Function Flag Configuration Profiles, in addition to a Jira Integration extension that creates and manages Jira Points related to your characteristic flags.

Trying forward

This preliminary launch of AppConfig Extensions lays the muse for the platforming of configuration knowledge and have flags. Nevertheless, that is simply the beginning. Sooner or later, we anticipate to launch many AWS-owned extensions and a few third-party extensions. Furthermore, we’re wanting ahead to speaking to prospects in regards to the extensions they’ve authored, and persevering with to innovate with our prospects in how they’re using characteristic flags and runtime configuration.

Get began with AWS AppConfig Extensions.

By Steve Rice and Jonathan (JT) Thompson

Jonathan Thompson

Jonathan (JT) Thompson is a Principal Engineer at AWS. He has labored with many groups throughout AWS to construct and prolong their providers, with a very deep give attention to API Gateway, Lambda, and, most just lately, AWS AppConfig.

Steve Rice

Steve is the Principal Product Supervisor for AWS AppConfig. He’s loves constructing merchandise that enhance folks’s lives, and is keen about characteristic flags and dynamic configuration, and serving to builders get their code to customers as rapidly and safely as potential.



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments