marklam / EverythingAsCodeFSharp

Cloud projects with devops, deployment and build all done in code. In F#.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Everything As Code

(In F#)

This project implements some cloud services, with two main objectives and one main non-objective

Objectives

  1. To show how much can be done with code instead of having to use Web UIs or shell prompts. Automation is better than manual steps because there's less to remember and less to get wrong.
  2. To show how to do all these things can be done in F#, and hopefully how simple the code is.

Non-objectives

  1. The cloud function is pretty pointless.

Documentation

The numbered markdown files contain a description of 'the journey' in adding functionality to the project. I suspect they're written in a distracting mixture of 'voices', and that the earlier ones have the most detail. I should probably go over them all and make them a bit less uneven.

What constitutes 'Everything'?

Currently:

  • Deployment - Pulumi
  • Creating a Github Repo from Pulumi
  • Azure functions in .net 5
  • Paket package manager
  • Deploying to Azure from Pulumi
  • Unit tests
  • Integration tests
  • Property-based testing with FsCheckHedgehog
  • Build scripts in Fake
  • Aws Lambdas in .net 5
  • Infrastucture and Deployment to AWS from Pulumi
  • Typed processing on json-format logs
  • Generating Javascript from F# with Fable
  • Javascript Azure Function
  • Javascript Aws Lambda
  • Github workflows for automated builds

Progress

I currently have a TODO list of remaining topics to cover, but it's all dependent on how much free time I have and what other shiny things might come along and distract me.

About

Cloud projects with devops, deployment and build all done in code. In F#.


Languages

Language:F# 100.0%