Monday, February 1, 2016

Have the ability to rapidly build and run micro-applications

All life is an experiment. The more experiments you make the better.
- Ralph Waldo Emerson

I'm in the process of developing my own application 'stack' (generic application slices with reusable cross-cutting concerns - e.g. Security, Configuration, and Logging).

I have most of it in place at the moment, but still need to work out how I will secure my API's.  Presently, I am looking at IdentityServer as a possible solution for this.

This is the sort of solution that I want to be able to design/develop/build/package/release quickly:

* Web API Service Bus
* Typescript Client
* Identity Management Server (this probably only needs to be build and deployed once)

I have lots of little ideas that I want to be able to push out and host as an Azure AppService.  One of them is a Garden Maintenance Planning application, another one is a Habit Kicker service.

The Habit Kicker application let's you create a habit that you want to kick - in my case, I am aiming to have alcohol free days (AFD's) and then record success outcomes.  The system will push out an alert asking for feedback about whether you have achieved your goal for the day.

You can see from the user interface that, even for such a simple little idea, there are many problems to be solved:
  • How will notifications be implemented
  • How will schedules be implemented
  • What technologies will be used to develop the user interface
  • How are users identified
For these types of micro-applications, it would be desirable to have a consistent, repeatable recipe for build/package/release that would scale across the different application types - e.g. Typescript client, DNX Web application, ASP.NET 4.6.

Being able to create the infrastructure components and deployment pipeline rapidly, means that you can focus on developing value from as early in Sprint 1 as possible.

In terms of infrastructure, my plan is to use Visual Studio Team Services for source code hosting, and for Build/Package/Release.  Using Azure AppServices as my hosting platform provides me with a high level of control and flexibility.  Azure AppServices also have useful platform components such as WebJobs that I can take advantage of.

The next major problems that I want to solve are:

  1. Identity and Access Management - I want a low touch solution that is as decoupled from my Application as possible
  2. Build/Package/Release - recipes for different flavors of app, as mentioned above

Please feel free to leave any tips or comments to let me know how you achieve rapid deployment for your little ideas.

Relevant posts

No comments:

Post a Comment