From 8777ce032b8fd38149b07dd26ab852adb7bafe9a Mon Sep 17 00:00:00 2001
From: Eduardo Trujillo <ed@chromabits.com>
Date: Fri, 22 Apr 2016 22:31:58 -0400
Subject: [PATCH] feat(posts): Add Haskell + Docker post

---
 blog.cabal                                |   6 +-
 images/posts/haskell-containers.png       | Bin 0 -> 60079 bytes
 posts/2016-04-20-haskell-travis-docker.md | 161 +++++++++++++
 server.hs                                 | 266 +++++++---------------
 site.hs                                   |  30 +--
 stack.yaml                                |   3 +-
 6 files changed, 268 insertions(+), 198 deletions(-)
 create mode 100644 images/posts/haskell-containers.png
 create mode 100644 posts/2016-04-20-haskell-travis-docker.md

diff --git a/blog.cabal b/blog.cabal
index e1bf90c..b5b685a 100644
--- a/blog.cabal
+++ b/blog.cabal
@@ -17,7 +17,9 @@ executable blog
   default-language:    Haskell2010
   ghc-options:         -threaded
   build-depends:       base == 4.*,
+                       lens,
                        hakyll == 4.7.*,
+                       hakyll-serve,
                        filepath == 1.4.*,
                        split == 0.2.*,
                        random,
@@ -33,10 +35,12 @@ executable server
   build-depends:       base == 4.*,
                        safe == 0.3.*,
                        text,
+                       lens,
                        bytestring == 0.10.*,
+                       hakyll-serve,
                        warp == 3.*,
                        warp-tls == 3.*,
                        wai == 3.*,
-                       wai-extra <= 3.0.14,
+                       wai-extra >= 3.0.14,
                        wai-app-static == 3.*,
                        streaming-commons == 0.1.*
diff --git a/images/posts/haskell-containers.png b/images/posts/haskell-containers.png
new file mode 100644
index 0000000000000000000000000000000000000000..04fef08ce3e7b1adaf7dc38ec8e52495451cff4f
GIT binary patch
literal 60079
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
Uc|LyNEP_CHv<x&$)olX*3$K@nCjbBd

literal 0
HcmV?d00001

diff --git a/posts/2016-04-20-haskell-travis-docker.md b/posts/2016-04-20-haskell-travis-docker.md
new file mode 100644
index 0000000..a4b50c5
--- /dev/null
+++ b/posts/2016-04-20-haskell-travis-docker.md
@@ -0,0 +1,161 @@
+---
+title: Continuous integration for Haskell projects with Docker
+date: Wed April 20 14:21:00 EDT 2016
+author: Eduardo Trujillo
+uuid: ccdac18a-4592-4560-9505-8940bb69df46
+---
+
+At my current job, we are starting to adopt Haskell to write some of our
+backend APIs and, like other projects at the company, we are using Docker for
+deploying them to staging and production environments.
+
+Working with Haskell required some re-thinking on how we do certain parts of
+our workflow, but it also led to a much improved image size, with some extra
+room for improvement.
+
+![](/images/posts/haskell-containers.png)
+
+Unlike PHP or JavaScript, Haskell is a compiled language, meaning that some of
+previous approaches we were using for building Docker images did not port that
+well.
+
+For dynamic languages, we followed roughly these steps to build our images:
+
+- Use a base image with packages for the software we need (Debian, Alpine).
+- Install server software, such as Nginx, Node.js, and PHP.
+- Install language tools and package managers.
+- Copy application sources.
+- Download dependencies.
+- Final optimizations and cleanup.
+
+This is a hybrid approach where we have both build and runtime dependencies on
+the same Docker image, which is useful because image builders such as Quay.io
+can automatically build the docker image for you on every commit without the
+need of an additional step in the CI pipeline, and this also has the slight
+advantage of having enough tooling inside a container for light debugging.
+
+As a result, the image size is not the smallest it could be since there is a
+lot of things that are not commonly used during runtime. However, the added
+convenience sort of out weighs the issues of having a larger image for these
+cases.
+
+For Haskell projects, though, things are bit different, and not in a bad way:
+
+The community has made an excellent build tool called [Stack][3]. `stack` takes
+care of mostly everything related to setting up your project: Installing GHC,
+pulling dependencies, building, testing, coverage reports, documentation. When
+paired with Nix, it can even pull non-Haskell dependencies for reproducible
+builds.
+
+<div class="callout-quote">
+Stack takes care of mostly everything related to setting up your project.
+</div>
+
+If we try to do a hybrid image approach like above using Stack, we mainly have
+to do the following on a Dockerfile:
+
+- Download and install Stack.
+- Copy application sources.
+- Install GHC (`stack setup`).
+- Compile project (`stack build`).
+
+This works, but it is extremely slow and the resulting images are huge
+(+800MB!).
+
+On every Docker build, `stack` would have to download and install GHC, and then
+proceed to download and compile every dependency of the project, which tended
+to a good 30 minutes on a [Quay.io][2] worker node.
+
+When developing locally, you only have to go through this process every now and
+then because most of it is cached in directories such as `~/.stack` and
+`.stack-work`.
+
+Looking for faster build times and smaller images, I decided to experiment with
+splitting the build and runtime aspects of the project.
+
+The build part was already setup since we were using Travis CI for running
+unit and some integration tests. When compared to basic Docker image builders,
+Travis CI has the clear benefit of having a cache that can be reused across
+builds without too much work. This cache allowed us to keep our built
+dependencies across builds, which reduced the build time to under 5 minutes.
+
+This enable caching of Stack builds, you just need to add the work directories
+to the cache section of `.travis.yml`:
+
+```yaml
+cache:
+  directories:
+    - "$HOME/.stack"
+    - .stack-work
+```
+
+So, getting the runtime half working meant taking the resulting build from the
+previous steps and building a Docker container with enough dependencies and
+data files for running the application.
+
+FPComplete has [a great article][1] out there on how to create minimal Docker
+images for Haskell projects.
+
+The main difficulty with this process is that Haskell programs are not built
+statically by default, meaning that you have to identify all the libraries the
+binary is linked against and include them in the final runtime image.
+
+<div class="callout-quote">
+The main difficulty with this process is that Haskell programs are not built
+statically...
+</div>
+
+In order to keep things simple, I decided to stick to using a base image, which
+we could use to pull in any dependencies we don't have, like `libcurl-dev`.
+
+I initially tried to use Alpine, since its known for being one of the smallest
+images out there. However, getting a Haskell program running in it was not
+trivial since it requires cross-compiling GHC.
+
+So I settled with `debian`, which is a larger image, but has almost everything
+we need out of the box.
+
+Building a Docker image on Travis CI is a fairly simple process. Pushing it to
+a registry and correctly tagging it was the annoying part. After a couple of
+hours of trial and error, I made a small shell script for authenticating with
+the registry and pushing a tagged image matching the current git tag and
+branch.
+
+This script is called on the `after-success` step of the Travis CI build:
+
+```bash
+#!/bin/bash
+set -euo pipefail
+IFS=$'\n\t'
+
+docker build -t myapp .
+
+# If this is not a pull request, update the branch's docker tag.
+if [ $TRAVIS_PULL_REQUEST = 'false' ]; then
+  docker tag myapp quay.io/myorg/myapp:${TRAVIS_BRANCH/\//-} \
+    && docker push quay.io/myorg/myapp:${TRAVIS_BRANCH/\//-};
+
+  # If this commit has a tag, use on the registry too.
+  if ! test -z $TRAVIS_TAG; then
+    docker tag myapp quay.io/myorg/myapp:${TRAVIS_TAG} \
+      && docker push quay.io/myorg/myapp:${TRAVIS_TAG};
+  fi
+fi
+```
+
+As a result, we now have Docker images for our Haskell projects that are about
+80 MB, which is not terrible, but can definitely be improved on.
+
+The next steps for me are investigating how to make our images even smaller by
+using a smaller base image, and automate the deployment of development
+and staging environments by having Travis CI notify a scheduler that a new
+image has been built.
+
+I'm including some of my scripts and an example Dockerfile on a
+[GitHub Gist][4] for reference. You will most likely have to modify them to
+meet your needs.
+
+[1]: https://www.fpcomplete.com/blog/2015/05/haskell-web-server-in-5mb
+[2]: https://quay.io
+[3]: http://haskellstack.org/
+[4]: https://gist.github.com/etcinit/d484b72de336836a956eb51b3da231ad
diff --git a/server.hs b/server.hs
index 3c57426..ee45716 100644
--- a/server.hs
+++ b/server.hs
@@ -1,193 +1,93 @@
 {-# LANGUAGE OverloadedStrings #-}
 
-import           Control.Concurrent                   (forkIO)
-import qualified Data.ByteString                      as BS (ByteString, pack)
-import           Data.Maybe                           (fromMaybe, mapMaybe)
-import           Data.Monoid                          ((<>))
-import           Data.Streaming.Network               (HostPreference)
-import           Data.String                          (fromString)
-import qualified Data.Text                            as T (Text, concat, pack)
-import qualified Data.Text.Encoding                   as TE (encodeUtf8)
-import           Network.Wai                          (Application, Middleware,
-                                                       pathInfo)
-import           Network.Wai.Application.Static       (defaultWebAppSettings,
-                                                       ss404Handler,
-                                                       ssAddTrailingSlash,
-                                                       ssIndices, ssMaxAge,
-                                                       ssRedirectToIndex,
-                                                       staticApp)
-import           Network.Wai.Handler.Warp             (defaultSettings, runSettings,
-                                                       setHost, setPort)
-import           Network.Wai.Handler.WarpTLS          (runTLS,
-                                                       tlsSettingsChain)
-import           Network.Wai.Middleware.AddHeaders    (addHeaders)
-import           Network.Wai.Middleware.ForceDomain   (forceDomain)
-import           Network.Wai.Middleware.ForceSSL      (forceSSL)
-import           Network.Wai.Middleware.Gzip          (def, gzip)
-import           Network.Wai.Middleware.RequestLogger (logStdout)
-import           Network.Wai.Middleware.Vhost         (redirectTo)
-import           Safe                                 (lastMay)
-import           System.Environment                   (lookupEnv)
-import           WaiAppStatic.Types                   (MaxAge (MaxAgeSeconds),
-                                                       toPiece)
-
--- | The core application.
--- It serves files from `_site` whic is where Hakyll will place the generated
--- site.
-staticSite :: Maybe String -> Application
-staticSite path = staticApp
-              (defaultWebAppSettings $ fromString $ fromMaybe "_site" path)
-              { ssIndices  = mapMaybe (toPiece . T.pack) ["index.html"]
-              , ssRedirectToIndex = False
-              , ssAddTrailingSlash = True
-              , ss404Handler = Just redirectApp
-              , ssMaxAge = MaxAgeSeconds 3600
-              }
-
--- | 404 handler.
--- We will redirect users to a 404 page if we can't locate the resource they
--- are looking for.
-redirectApp :: Application
-redirectApp req sendResponse = sendResponse $ redirectTo "/"
-
--- | Gzip compression middleware.
-gzipMiddleware :: Middleware
-gzipMiddleware = gzip def
-
--- | Domain redirection middleware.
--- When the site is live, we want to redirect users to the right domain name
--- regarles of whether they arrive from a www. domain, the server's IP address
--- or a spoof domain which is pointing to this server.
-domainMiddleware :: Middleware
-domainMiddleware = forceDomain
-                    (\domain -> case domain of
-                                 "localhost" -> Nothing
-                                 "chromabits.com" -> Nothing
-                                 _ -> Just "chromabits.com")
-
--- | Common headers middleware.
-headersMiddleware :: Middleware
-headersMiddleware = addHeaders
-  [ ("X-Frame-Options", "SAMEORIGIN")
-  , ("X-XSS-Protection", "1; mode=block")
-  , ("X-Content-Type-Options", "nosniff")
-  ]
-
--- | Strict Transport Security middleware.
-stsHeadersMiddleware :: Middleware
-stsHeadersMiddleware = addHeaders
-  [("Strict-Transport-Security", "max-age=31536000; includeSubdomains")]
-
--- | Content Security Policy middleware.
--- Here we add the CSP header which includes the policies for this blog.
-cspHeadersMiddleware :: Middleware
-cspHeadersMiddleware = addHeaders
-  [("Content-Security-Policy", TE.encodeUtf8 $ glue policies)]
-  where
-    glue :: [T.Text] -> T.Text
-    glue [] = "default-src 'none'"
-    glue [x] = x
-    glue xs = T.concat $ map (\x -> T.concat [x, "; "]) (init xs) ++ [last xs]
-
-    policies :: [T.Text]
-    policies = [ "default-src 'self'"
-               , "script-src 'self' 'unsafe-inline' https://use.typekit.net"
-                  <> " https://cdn.mathjax.org https://connect.facebook.net"
-                  <> " https://*.twitter.com https://cdn.syndication.twimg.com"
-                  <> " https://gist.github.com"
-                  <> " https://*.google-analytics.com"
-               , "img-src 'self' https: data: platform.twitter.com"
-               , "font-src 'self' data: https://use.typekit.net"
-                 <> " https://cdn.mathjax.org"
-               , "style-src 'self' 'unsafe-inline' https://use.typekit.net"
-                 <> " platform.twitter.com https://assets-cdn.github.com"
-               , "frame-src https://www.youtube.com https://www.slideshare.net"
-                 <> " staticxx.facebook.com www.facebook.com"
-               ]
-
--- | De-indefify middleware.
--- Redirects any path ending in `/index.html` to just `/`.
-deindexifyMiddleware :: Middleware
-deindexifyMiddleware app req sendResponse =
-  if lastMay (pathInfo req) == Just "index.html"
-     then sendResponse $ redirectTo newPath
-     else app req sendResponse
-      where
-        newPath :: BS.ByteString
-        newPath = TE.encodeUtf8 $ processPath oldPath
-
-        processPath :: [T.Text] -> T.Text
-        processPath xs = case xs of
-                           [] -> "/"
-                           _ -> T.concat $ map prefixSlash xs
-
-        oldPath :: [T.Text]
-        oldPath = init $ pathInfo req
-
-        prefixSlash :: T.Text -> T.Text
-        prefixSlash x = T.concat ["/", x]
-
--- | Serves a WAI Application on the specified port.
--- The target port is printed to stdout before hand, which can be useful for
--- debugging purposes.
-listen :: Int -> Application -> IO ()
-listen port app = do
-  let settings = setHost "*6" (setPort port defaultSettings)
-
-  -- Inform which port we will be listening on.
-  putStrLn $ "Listening on port " ++ show port ++ "..."
-  -- Serve the WAI app using Warp
-  runSettings settings app
-
--- | Serves a WAI Application on the specified port.
--- The target port is printed to stdout before hand, which can be useful for
--- debugging purposes.
-listenTLS :: Int -> Application -> IO ()
-listenTLS port app = do
+import Control.Lens
+import Data.Monoid ((<>))
+import Data.Maybe (fromMaybe)
+import System.Environment (lookupEnv)
+import Hakyll.Serve.Main (TLSConfiguration(..), Stage(..),
+  defaultServeConfiguration, port, stage, middleware, stagingTransform,
+  tlsConfiguration, tlsPort, prodTransform, path, serve)
+import Hakyll.Serve.Middleware (Directive(..), (<#>), gzipMiddleware,
+  domainMiddleware, securityHeadersMiddleware, stsHeadersMiddleware,
+  cspHeadersMiddleware, deindexifyMiddleware, forceSSLMiddleware,
+  loggerMiddleware)
+import Hakyll.Serve.Listeners (TLSSettings, tlsSettingsChain)
+
+directives :: [Directive]
+directives
+  = [ DefaultSrc ["'self'"]
+    , ScriptSrc [
+        "'self'", "'unsafe-inline'", "https://use.typekit.net",
+        "https://cdn.mathkax.org", "https://connect.facebook.net",
+        "https://*.twitter.com", "https://cdn.syndication.twimg.com",
+        "https://gist.github.com"
+      ]
+    , ImgSrc ["'self'", "https:", "data:", "platform.twitter.com"]
+    , FontSrc [
+        "'self'", "data:", "https://use.typekit.net", "https://cdn.mathjax.org"
+      ]
+    , StyleSrc [
+        "'self'", "'unsafe-inline'", "https://use.typekit.net",
+        "platform.twitter.com", "https://assets-cdn.github.com"
+      ]
+    , FrameSrc [
+        "https://www.youtube.com", "https://www.slideshare.net",
+        "staticxx.facebook.com", "www.facebook.com"
+      ]
+    ]
+
+getTLSSettings :: IO TLSSettings
+getTLSSettings = do
   certPath <- lookupEnv "BLOG_TLS_CERT"
   chainPath <- lookupEnv "BLOG_TLS_CHAIN"
   keyPath <- lookupEnv "BLOG_TLS_KEY"
 
-  let tlsSettings = tlsSettingsChain
-                      (fromMaybe "cert.pem" certPath)
-                      [fromMaybe "fullchain.pem" chainPath]
-                      (fromMaybe "privkey.pem" keyPath)
-  let settings = setHost "*6" (setPort port defaultSettings)
-
-  -- Inform which port we will be listening on.
-  putStrLn $ "Listening on port " ++ show port ++ " (TLS)..."
-  -- Serve the WAI app using Warp
-  runTLS tlsSettings settings app
+  return $ tlsSettingsChain
+            (fromMaybe "cert.pem" certPath)
+            [fromMaybe "fullchain.pem" chainPath]
+            (fromMaybe "privkey.pem" keyPath)
 
 -- | The entry point of the server application.
 main :: IO ()
 main = do
-  stage <- lookupEnv "BLOG_STAGE"
-  path <- lookupEnv "BLOG_PATH"
-
-  let liveMiddleware = logStdout
-                       $ cspHeadersMiddleware
-                       $ headersMiddleware
-                       $ domainMiddleware
-                       $ forceSSL
-                       $ deindexifyMiddleware
-                       $ gzipMiddleware
-                       $ staticSite path
-
-  -- Depending on the stage we will choose a different set of middleware to
-  -- apply to the application.
-  case fromMaybe "dev" stage of
-    -- "Production"
-    "live" -> do
-      forkIO $ listenTLS 443 $ stsHeadersMiddleware liveMiddleware
-      listen 80 liveMiddleware
-    "staging" -> do
-      forkIO $ listenTLS 8443 liveMiddleware
-      listen 8080 liveMiddleware
-    -- "Development"
-    _ -> listen 9090 (logStdout
-                     $ headersMiddleware
-                     $ deindexifyMiddleware
-                     $ gzipMiddleware
-                     $ staticSite path
-                     )
+  rawStage <- lookupEnv "BLOG_STAGE"
+  rawPath <- lookupEnv "BLOG_PATH"
+
+  tlsSettings <- getTLSSettings 
+
+  let liveMiddleware
+        = mempty
+        <#> loggerMiddleware
+        <#> cspHeadersMiddleware directives
+        <#> securityHeadersMiddleware
+        <#> domainMiddleware "chromabits"
+        <#> forceSSLMiddleware
+        <#> deindexifyMiddleware
+        <#> gzipMiddleware
+  let prodMiddlware = (mempty <#> stsHeadersMiddleware) <> liveMiddleware
+
+  let tlsConf = TLSConfiguration (const liveMiddleware) tlsSettings 8443
+
+  let serveConf
+        = defaultServeConfiguration
+        & stage .~ case rawStage of
+          Just "live" -> Production
+          Just "staging" -> Staging
+          _ -> Development
+        & port .~ 9090
+        & middleware .~ mempty
+          <#> loggerMiddleware
+          <#> securityHeadersMiddleware
+          <#> deindexifyMiddleware
+          <#> gzipMiddleware
+        & path .~ rawPath
+        & stagingTransform .~
+          ((set tlsConfiguration $ Just tlsConf)
+          . (set middleware liveMiddleware)
+          . (set port 8080))
+        & prodTransform .~
+          ((set tlsConfiguration $ Just (tlsConf & tlsPort .~ 443))
+          . (set middleware prodMiddlware)
+          . (set port 80))
+
+  serve serveConf
diff --git a/site.hs b/site.hs
index 31ad74a..b3003ec 100644
--- a/site.hs
+++ b/site.hs
@@ -3,16 +3,17 @@
 
 import Control.Applicative
 import Control.Monad (liftM)
-import Control.Monad.IO.Class
+import Control.Lens ((&), (.~))
 import qualified Data.Map as M
 import Data.Maybe (fromMaybe)
-import Data.Monoid (mappend)
 import Data.List (intersperse, isSuffixOf)
 import Data.List.Split (splitOn)
 import Hakyll
+import Hakyll.Serve (ServeConfiguration, defaultServeConfiguration,
+  hakyllConfiguration, hakyllServeWith)
 import Text.Highlighting.Kate.Styles (haddock)
 import Text.Pandoc.Options
-import System.FilePath (combine, splitExtension, takeFileName)
+import System.FilePath (splitExtension)
 import System.Random (randomRIO)
 
 --------------------------------------------------------------------------------
@@ -21,6 +22,9 @@ data SiteConfiguration = SiteConfiguration
   , siteGaId :: String
   }
 
+serveConf :: ServeConfiguration
+serveConf = defaultServeConfiguration & hakyllConfiguration .~ hakyllConf
+
 --------------------------------------------------------------------------------
 hakyllConf :: Configuration
 hakyllConf = defaultConfiguration
@@ -37,18 +41,18 @@ siteConf = SiteConfiguration
   , siteGaId = "UA-47694260-1"
   }
 
-feedConf :: String -> FeedConfiguration
-feedConf title = FeedConfiguration
-  { feedTitle = "Chromabits: " ++ title
-  , feedDescription = "Personal blog"
-  , feedAuthorName = "Eduardo Trujillo"
-  , feedAuthorEmail = "ed@chromabits.com"
-  , feedRoot = "https://chromabits.com"
-  }
+-- feedConf :: String -> FeedConfiguration
+-- feedConf title = FeedConfiguration
+--  { feedTitle = "Chromabits: " ++ title
+--  , feedDescription = "Personal blog"
+--  , feedAuthorName = "Eduardo Trujillo"
+--  , feedAuthorEmail = "ed@chromabits.com"
+--  , feedRoot = "https://chromabits.com"
+--  }
 
 --------------------------------------------------------------------------------
 main :: IO ()
-main = hakyllWith hakyllConf $ do
+main = hakyllServeWith serveConf $ do
   let writerOptions = defaultHakyllWriterOptions
         { writerHtml5 = True
         , writerHighlightStyle = haddock
@@ -159,7 +163,7 @@ main = hakyllWith hakyllConf $ do
       teaser <- loadAndApplyTemplate "templates/project-teaser.html"
         siteCtx $ dropMore compiled
 
-      saveSnapshot "teaser" teaser
+      _ <- saveSnapshot "teaser" teaser
 
       saveSnapshot "content" full
         >>= loadAndApplyTemplate "templates/default.html" siteCtx
diff --git a/stack.yaml b/stack.yaml
index e64e9f5..35b9bae 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,11 +1,12 @@
 # For more information, see: https://github.com/commercialhaskell/stack/blob/release/doc/yaml_configuration.md
 
 # Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
-resolver: lts-5.2
+resolver: lts-5.11
 
 # Local packages, usually specified by relative directory name
 packages:
 - '.'
+- '/home/etcinit/src/github.com/etcinit/hakyll-serve'
 
 # Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
 extra-deps: []
-- 
GitLab