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:
|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
The ‘Cloud Syndicate’ is a mixture of brief time period visitor participants, curated assets and syndication companions masking quite a lot of attention-grabbing generation similar subjects. Touch us for syndication main points on methods to attach your generation article or information feed to our syndication community.