What is Preflight

Problem:

Deployments are often delayed for hours or days at times because of environment issues. The more dependencies an application has on other system resources, services etc… the more likely you are to encounter deployment problems because of incorrect configuration or issues with a dependency. Often times teams tend to first suspect that the problem is due to a potential bug and end up wasting a lot of valuable time trying to figure out the cause.

Solution:

Preflight enables your application to answer a simple question at any time: Do you have everything you need to function?

Preflight is a simple framework that enables you to plug in a set of verifications which are exposed through a secure RESTful service that a remote client can then connect to. Preflight will enable you to find out the following:

  • What resources does your application point to
  • If your application cannot access the resource, the reason or exception that is preventing access.

Preflight provides a set of reusable verifications that you can use or you can build your own. A verification is a simple check that can run in a production environment without altering the state of the system. Take for example SQL Server verification, it simply attempts to open a connection using your application’s configured connection string and will report failure if an exception occurs or success if the database is accessible.

Diagram

What Preflight DOES NOT DO:

  • Preflight will tell you whether your dependencies are accessible but it is not a substitute for smoke testing or regression
  • Preflight is not meant for any sort of acceptance testing. It is production code that ships as part of your application and should be treated as such.

Last edited Aug 12, 2012 at 6:07 AM by aelamiri, version 4

Comments

No comments yet.