CloudTweaks | The use of AWS AppConfig Extensions

The use of function flags and different runtime configuration varieties is a fast-evolving generation phase. Adjusting your device conduct with a minor configuration replace as a substitute of deploying code shall we groups transfer sooner and extra safely. Moreover, freeing a function the use of a function flag permits engineering groups to activate options to a restricted set of customers after which measure the have an effect on. The aptitude can immediately flip off and roll again if one thing is going mistaken, considerably proscribing the exchange’s have an effect on. At Amazon, we name the follow of the use of function flags and runtime configuration, Steady Configuration.

AWS AppConfig began in 2017 as an inside software for Amazon. It briefly become a top-used provider for inside groups that sought after a protected and measured technique to arrange their function flags and operational flags. In 2019, AWS introduced AppConfig for exterior consumers. This providing had all the realized courses and very best practices for using runtime configuration and have flags constructed into the product. Now we’re saying AppConfig Extensions, which permits consumers to increase the facility of dynamic configuration and have flags in new and cutting edge techniques. After studying this publish, you’ll perceive what AppConfig Extensions are, what issues they clear up, and what extension varieties you’ll be able to construct.

What are AppConfig Extensions?

For the reason that inside release of AppConfig in 2017, and the exterior release in 2019, we’ve added many options that buyers have asked. Those come with integrations with Lambda, AWS CodePipeline, and Amazon CloudWatch, in addition to freeing an opinionated structure for function flags in 2021. We’ve innovated on behalf of our consumers, and we regularly obtain many requests for brand new capability. One remark we’ve had on those requests is that there are facets to them that lead them to impractical to construct in a generic method. Every other remark was once seeing how some consumers have constructed answers on peak of our provider in ways in which had been particular to their very own workflows. Alternatively, as a substitute of getting the AppConfig group construct all new options as asked, we determined to empower others to construct on peak of AppConfig. We knew that permitting different engineers, each inside and exterior, to make use of a framework to increase AppConfig could be a pressure multiplier, plus give the liberty to strengthen integrations into customer-specific programs and processes.

AppConfig Extensions are add-ons to AppConfig that improve the facility and protection of the principle AppConfig provider. Managing configuration most often follows a lifecycle very similar to creating code: create/replace, validate/check, deploy, and track. The AppConfig Extension framework exposes hooks, referred to as motion issues, at every of those lifecycle milestones. When an motion level is caused, no matter movements (e.g. calling a Lambda serve as) are outlined within the set of AppConfig Extensions acceptable at that lifecycle step might be invoked.

The framework permits for more straightforward integration of alternative products and services (AWS and differently) to assist consumers beef up their speed and protection. Over the approaching months and years, we predict the choice of extensions to develop considerably, offering bespoke answers created by way of AWS and our consumers.

Self-authored AppConfig Extensions

To supply a way of the capability that AppConfig Extensions may give, we’ll illustrate some examples similar to the lifecycle steps discussed above, beginning with the primary section: the introduction of configuration information. Let’s say, for instance, that you just sought after so as to add a timestamp within your hosted configuration information’s JSON every time it will get up to date. With an extension, you want to hook into the PRE_CREATE_HOSTED_CONFIGURATION_VERSION motion level and write a easy AWS Lambda to insert the timestamp. You might subsequent come to a decision that you wish to have to export a duplicate of every model of your hosted configuration information right into a supply repository like Github, without reference to its information structure. It is advisable to create some other extension that still hooks into the PRE_CREATE_HOSTED_CONFIGURATION_VERSION motion level to export the hosted information into your repo each and every time the information adjustments. Whilst each extensions may well be related to a selected Configuration Profile, you want to as a substitute affiliate this extension to an Software which can motive it to routinely follow to all hosted Configuration Profiles for your Software, even the ones created at a later date. Proceeding down the lifecycle steps, it’s possible you’ll wish to merge information from some other supply, equivalent to a legacy configuration database, into your configuration information sooner 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 information. As a last instance, you want to cause check automation to run after you’ve deployed new configuration information by way of hooking into the ON_DEPLOYMENT_COMPLETE motion level that publishes a message to an SNS subject.

To be had Motion Issues

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

Motion level Description
PRE_CREATE_HOSTED_CONFIGURATION_VERSION happens when an AppConfig hosted configuration is created or up to date, however simply sooner than it’s stored
PRE_START_DEPLOYMENT happens simply sooner than a deployment begins
ON_DEPLOYMENT_START happens when an AppConfig deployment begins
ON_DEPLOYMENT_STEP happens all the way through a deployment, and increments relying at the deployment technique step proportion
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 whole
ON_DEPLOYMENT_ROLLED_BACK happens if a deployment roll again initiates

AWS-authored AppConfig Extensions

Along with the AppConfig extensions you create, now we have a handful of extensions which are already to be had so that you can use. The AppConfig Notification Extensions permit consumers to be notified for the ON_DEPLOYMENT_START, ON_DEPLOYMENT_COMPLETE, and ON_DEPLOYMENT_ROLLEDBACK motion issues. Shoppers will have those notifications despatched to Amazon EventBridge, Amazon Easy Notification Carrier (Amazon SNS), or Amazon Easy Queue Carrier (Amazon SQS). We even have an AppConfig Characteristic Flags Helper extension, which performs a job in our Characteristic Flags function and is routinely related to Characteristic Flag Configuration Profiles, in addition to a Jira Integration extension that creates and manages Jira Problems related for your function flags.

Having a look forward

This preliminary release of AppConfig Extensions lays the basis for the platforming of configuration information and have flags. Alternatively, that is just the beginning. Sooner or later, we predict to free up many AWS-owned extensions and a few third-party extensions. Additionally, we’re taking a look ahead to speaking to consumers concerning the extensions they’ve authored, and proceeding to innovate with our consumers in how they’re using function flags and runtime configuration.

Get began with AWS AppConfig Extensions.

Via Steve Rice and Jonathan (JT) Thompson

Jonathan Thompson

Jonathan (JT) Thompson is a Essential Engineer at AWS. He has labored with many groups throughout AWS to construct and lengthen their products and services, with a specifically deep center of attention on API Gateway, Lambda, and, maximum lately, AWS AppConfig.

Steve Rice

Steve is the Essential Product Supervisor for AWS AppConfig. He’s loves construction merchandise that beef up other people’s lives, and is keen about function flags and dynamic configuration, and serving to builders get their code to customers as briefly and safely as conceivable.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous post CKE Eating places
Next post Villa in Albufeira with 4 bedrooms, swimming pool and sea view