From e267eb98ce527621bb2e9ad95015f5b140bba78f Mon Sep 17 00:00:00 2001 From: James Miller Date: Thu, 11 Apr 2024 12:06:55 +0100 Subject: [PATCH 1/3] Create RFC for mobile app backend stack --- rfc-000-mobile-app-backend-stack.md | 80 ++++++++++++++++++++++++++++ rfc-000/containers.png | Bin 0 -> 107374 bytes rfc-000/serverless.png | Bin 0 -> 72219 bytes 3 files changed, 80 insertions(+) create mode 100644 rfc-000-mobile-app-backend-stack.md create mode 100644 rfc-000/containers.png create mode 100644 rfc-000/serverless.png diff --git a/rfc-000-mobile-app-backend-stack.md b/rfc-000-mobile-app-backend-stack.md new file mode 100644 index 0000000..7e32317 --- /dev/null +++ b/rfc-000-mobile-app-backend-stack.md @@ -0,0 +1,80 @@ +--- +status: proposed +implementation: proposed +status_last_reviewed: +--- + +# Back end stack for GOV.UK App backends + +## Summary + +This RFC proposes a back end architecture and tech stack for internet-facing services (i.e. APIs) which underpin the GOV.UK mobile app. It draws on the existing work carried out on the Digital Identity programme to define an extensible, scalable architecture which meets the needs of a high-volume mobile application, and create a solid base for future development. + +The proposal is to adopt an AWS serverless stack, in line with DI, with the predominant implementation approach being to run Node.js Lambda functions to execute business logic. + +## Problem + +The new GOV.UK App is going to require back end services to enable many of its features. The app is a shared product with Digital Identity, where the existing ID Check app that they have in production will be superseded by a new, single app that incorporates both Digital Identity and GOV.UK features. + +The DI Mobile team have an existing set of back ends which are implemented in line with the Digital Identity architecture - namely, AWS serverless using Lambda functions (primarily Node.js with some Java). The decision making process behind this is recorded in the Digital Identity architecture repostitory (for example, [ADR-0001](https://github.com/govuk-one-login/architecture/blob/main/adr/0001-auth-hosting.md)) _(N.B. this is currently a private repo)_. + +As GOV.UK, we need to determine a tech stack for back end services which underpin the GOV.UK elements of the app. + +The following are key considerations we need to take into account: + +1. There is a single app, and it would be most straightforward to integrate the app with a single back end. This means we only need a single set of configuration rather than multiple settings for different features. Additionally, we can centralise concerns like logging, monitoring and alerting. +1. In all likelihood, the various mobile back end services across both DI and GOV.UK will _eventually_ end up being supported and maintained by the same group of people. Therefore, parity of skillset is an advantage. +1. There are broader conversations across GDS looking into our strategy around tech stacks, and we should fold in to those + +## Options + +We have considered two principal options for tech stacks: + +1. Adopt a serverless stack on AWS +2. Adopt a Ruby-based containerised stack on AWS + +### Option 1 - Adopt a serverless stack on AWS + +![Architecture diagram showing a simplified approach to running serverless applications on AWS](rfc-000/serverless.png) + +Under this option, we would adopt a serverless stack which broadly mirrors the approach taken on DI. Connectivity would be provided by API Gateways (see note below about the proposed approach to this). Compute would be based on Lambda functions, running the Node.JS runtime. + +The Lambda functions would be able to call out to other AWS services as needed. While the subject of this RFC is predominantly the connectivity and compute (i.e. API Gateway and Lambda), the proposal would also be to adopt other cloud-native services which commonly form part of a serverless approach, namely using DynamoDB for storage. + +This option has the following advantages: +* Essentially unlimited scalability without the need for active management +* Cost-efficient, pay-for-what-you-use pricing (we can get some cost reports from DI if this would be helpful) +* A step towards no-ops, where we are not responsible for or have the cost/burden of infra maintenance as this would be handled by AWS, so there are no [tricky manual steps](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html) to upgrade to latest versions of underpinning software (only deprecated runtimes need to be considered) +* Lambda functions are small and self-contained, thus easy to reason about. They are written in JavaScript, which is familiar to many developers and therefore the learning curve is not too steep +* Aligns with the DI tech stack so that the entire mobile back end estate could be maintained by a single group of people +* Benefit from existing DI infrastructure for NFRs like monitoring / logging / alerting + +The principal drawback of this option is that it is not currently a stack that is widely used and understood across GOV.UK, so would require some upskilling - particularly in terms of infrastructure management and use of AWS SAM (although we could look at an alternative to this like CDK). + +### Option 2 - Adopt a Ruby-based containerised stack on AWS + +![Architecture diagram showing a possible approach to running containerised Rails applications on AWS](rfc-000/containers.png) + +In this option, we would build a Rails application (potentially more than one, if we deemed it correct from an architectural perspective). This Rails application would sit in a Docker container, and we would host it on Amazon Elastic Container Service (ECS) - or Elastic Kubernetes Service (EKS) if deemed a better fit. + +As noted in the diagram, there are multiple ways to route internet traffic through to ECS or EKS, of which API Gateway is only one. It is not strictly needed because the Rails apps themselves can handle routing of requests through their controller classes, but it is included here as it would help to standardise the approach along with DI - and would potentially allow us to still use a single endpoint for all app back end concerns. + +The principal advantage of this approach is that it draws on the existing skills and knowledge within GOV.UK around building and running Rails apps. Containers are a recognised, modern way of running web framework-based services on cloud providers. + +There are however numerous downsides to this approach: +* Inconsistent tech stack across the app means we could end up with one team having to maintain services built in very different paradigms. Additionally we would have to create separate monitoring and logging stacks across the two approaches +* Whilst containers (and container-hosting services) are designed to scale up and down flexibly, there is manual configuration, intervention and adjustment needed to do this effectively + +## Proposal + +The proposal is to adopt option 1, serverless applications on AWS, using Lambda functions written in Node.js. There should be some flex around some of the specifics - for example, we may decide that proxying to static files on S3 is a better fit for some workloads, or that DynamoDB is not the right option for data storage for some requirements. But the guiding principle should be that for compute, we use Lambda functions. + +## Appendix - Potential sub-options + +The following are potential sub-approaches we could take, which may address some of the considerations above. They are open to discussion. + +### Option 1A +Use serverless but write Lambda functions in Ruby. This approach enables us to make use of the existing Ruby expertise within GOV.UK, but still allows us to get the benefits of the serverless paradigm and align broadly with the DI tech stack. The reason this isn’t the preferred option is that it introduces an additional language into the ‘target stack’. Both Ruby and Node.js are easy to work with on Lambda and so the difference is judged to be minimal. + +### Option 2A +Use containers but embed them within AWS Fargate. Fargate is a semi-managed ‘serverless’ compute engine for containers which takes care of some concerns such as scaling and server management. DI do use Fargate for some front ends, but the feedback from the team is that it is quite difficult to work with, still requires quite a lot of manual intervention, and can be expensive. Therefore we have discounted this option here. diff --git a/rfc-000/containers.png b/rfc-000/containers.png new file mode 100644 index 0000000000000000000000000000000000000000..aee881f9d46c0c1e2c2c4cb2f6a36e8dd04e9635 GIT binary patch literal 107374 zcmeEv2O!n!`*=j5Btj~L5?MJm**j!}lzniFjAIv zb~YFXhvrs(xCz1vQ{j1}vzdhjoSs9Pn~fb*#dscWXl8{%+L_XGii78KRw#r8_zRN3 zr;;l8xCDM-?0PV6J>JvctC+R51wsR1Aa4eGBhAgp%f`tAk{RV?)y^x>b4Y;i7G~xM z@J9w=XpV%6NSN9pEkTMjjDwSn9r_0nRpG{PTeBTiKqEt-;3iw6;#IuDaRq5BC84fq zgH*G;%w;I;yfvDu2wOWdq!niHTx=X{u&oy;Cu_u3stFQlVgVY2sfi9_vumv5lK-k%BRcf|9 z8&;0a8uF$xa9#^}t1D{8nkHABep};qy_SwLws33H^GG8!%#9o|o#KQ#4)xv0X)A?~ zlXok@#CE$KOwXYNRWs-9;h;Ou!ER!2X0$!%ZQvl07AP}o3?wj#hDa+bgdqksFllgG zTcpF+*^H4En9*VKKrqGhb*o=cg6cP5g;F)lj8Fi#AY_KYc=&(KE{iZTF~u~^$AKB2 zC44(GW+Zl|a3iF{R{3vcW($tn(6mJ&L3KMOZs+UmOqPxk2nz_ox8aCs2jJnqU-lPh z*#5G<{x{Xx!EBW|tSp=z^)AX;*s2>_bDfu9#k6r1ZefoB`4$N6P)^%O4Db+T27s>s zH$Ye@BkjykTg$@$i9#VQ!MfhgAZB4^0<9Yq(i)_iqAV@I0}Ooq1du9b!Z1t z$S7T8Q{m?WcLR@|?76p+w5MK91R2o%Z*L+9c4DCF0(gm5%NT>?4T*|@Dg#F$ z9N=gvfrEVq=Gd7dP=*ligyzN?3B)w?P`JhExy1qIOKkme1J)`5rLb{;2EIxBUK;PW zi2&rkEecY$Qh(FJZxf-)ew&7F;p;@`>FX49|F?VnOCwN603Ji#`8o~L>+M8zUB4~8 zmH2h(t+ZcDg9oC*ugY-F*$bfjP0}^hbmws-yKvz0d8qv1h#1G0COP;<0nb@@kxRtFN_^p zc>jNp1dA;U{R^o9KQ|jj)cPH%aeJ}<*aQGWrM^c1zLh3_$^_fu4q8t5m8+v=pubQi z_(=eMPsHEeu>L2-fqxDKz-Yz3M*%p0iU8=%&EH^G@RI`k-%rUnNch!>^+2uc`?!<8We?F!GH5{bA*df*^p-h1$i-Ubz@dRwAJQjd! zh#Q$*1z$~|uZ##b6E=`X(g_$_k&@!TfV`Cl7*Td)`zaUwP2?g8eh%&}BO}_B_)piC z8llnF$N*sSzeivGgR0VRlp~ywxdd8^e>?3c3}dz3p#%NDU{{cU^MkS(jG*!_t!gj~ z`TghfnQt}d{|=u~<^0KE!0vk6rubWn+Ln>-Ym3@e+7F|9;}sJFu0??0{{NwTx8wXP zdCRxE?!Pf}!KmJUGM8;{GtA!PUo)5gZ??Sn*$d3@KG;J@tw@EwCb=e92%pbx)s zwd0eJ;Nb!uj^e;)&&UkyqPN9xE8w*ESCSJL7ylnH|#p7$rZ{0Db796bLlbit^7f1(TI>inNK5_0nWqtNA_xEJ0weEchCQcS*oDVhBL zvg?KT;cv97ifrPL;uK|S2K1`z=np&KLuiV!a01VEW|r0#TVX>S?5t1*EAU}$i!`z~ zLA`L(&75DM8&+1Zo)8^o@)yPvB6;~Vc#WKRG@Kn^ z$~N-K7U~)ZRt)v}BcWp71b}_FLJY~>Nrk_g??2w~w^GLzy6#}6e=^)*N7UI55svuH zt`!O;{xuHnyWmDo%g(h9=>xv^AH7z82_yWw$0&Xm78tg-V{7|gjZypyrt1#{E^f!A z?37ZtxiQP=FOgD^%9rhB9PL!uHI>BpCFJ=WSvC1sq1Z8q?d+JYZx;6df#G$l&EJ?T z|G>iAma%s1BELUO4B&T4EZ@xtLz@Qv#8UooVi3POu5FR+_vZO)@$_G8hA?RJTiO4Q z&e@-UFci)TTII%Q<}q6Y4t~t@jx7S`b|mr6#mA4ql^g5?+ky(B>zS~0+HVxV${z_pC2^R=V$cqpOLlDRQFG;Y7Dji2SopV zpC4~~7yo*k%l`qXN2`qfgn!$ATRg*TSN|o8*pg!Y1UCIZJmPy&IA;7ic!ZRM>K4#{ za)zHl;9KW5{V3-`APj*?0AmjLi#P($mW^fW6C+=4n+*6ci)qJx;D?I`|1L||HmCf~ ziCm!nMn2mhbnSfixAAIpfbM*X*4oBr*?P0*Ie-nG~| z-B1_C&CkZQ19i7`7k_)y-F80uNp*pl{|_B0^>;&E;0yMT#N0oix&J9Ipbxp-J`C;e zhPgnu{Wa=tan-*)&BgdL{uCD=*Q$Rc&E*9C+Fudfe+cGopQ7-4sQX>v_P@P%`p&lJ zcfvx%q+rq<&{pVw*cNWh)?ctgf*fBVycsa%Sen9z_ z1IEk7yW=c#{;xR_*Y=edJH%aHjO*e~S(opJvjA}Xt=N$@xM<777NKWnW1(keWru=W zK^I#5eXxj^=XbG)iyOK~0oow#z#}eRHlFXG(zc)SkF#ysz7uN49$U=L&fe0@$^?uE z+;ap?ovI3mh5`FOTPW-g3iGqtdJQf#0Jq>+!ky7yE=a0E@r7V)P|zS81^!r?fqSl? zU>i&nA%GD2XgU-E9ij+u!4O0{LZOZZ_E3H#=IA&BG2pyS-EY8FL7N9{*6x;a{MK-~x0SvwO$Le_SyB?<^|V_EkhXsWXfn zv(A2?HTCU@H(z^u|8H&|0+e(6?jiIEvfFnLLBQE@`w$O0Xc4^p<^>`s;ZSko%V{(!v5AWX%rBfP8k)F%xjKwD|R9Y+DCt0O<_Mgt9d=+&V@B+?NXO ze1)U0mV{2x*pd#-tPCyejkel@?#11fNYN4}I$>KrM4x#9ovLANi!esm!VS>s!O<_!VNG2kEyNNfjZH$X>LfHRQ6feoDefQ&)og-)OVf50Ie-;ms&V&&F-v48w1 zi$5b)qRGLZSiTsG#ozRNi|iKSkl9)T=uxc}ch~&0tsd$X}zYe3n~KAb)K@(b^$w z;PYoGg89AywpX;5tQl9_Rt2pb&*_Q}-4^7}B;R+Z`|NB)Z9#<4NHqT3*qa2UmN=Yy zp65v%XNUaeCsr0F*f%WiQsLfWxy(`FOS~IqSoN}v?Mlf#PZDM9zI&n+Wa@qQ(k?#7 z@lx;E$Wg;X2%;$=6ThU6wvqE>3o_w!eP?m-yoTNc@JRHW|w$c3I1b^Kzp2j94zGV&m$fO_WwY z-@+M{o$Sg{!cngdrrIr7W&NQHzVx|A_5lZdFxA;paaYz?7JR9NoINKT7e5^laQGaE zyN{ga>Zf;?3LRm|YDw5fJ1sk3zKZeK7*p5CM~z8VNckSbk`H4eYpoQ&Rw+WNaqjLZ zLhCN)M__z%rM>uxi5W{r-fo;F#Ue;P#GvRKKHD6c!8Mww5^pfsndM8#&!JoF>SxuH z5AS?wcC9lwKJh4@HI4J)CqJU&!m@f9#*IwD>K)H@Y(`sX)1Iy_O@(M?U8!y6LG}h7 zpb~JLAn)N8&|pfXyy7>m4}d!D;^dAu{ah11E&ATOip)BR=F@x9kq zmjcR%Gh2${7~k-vcs6LYPn7m7QJDqtGu53*o0C41daLSDpfKOq|C--QUiSQT`PVL(0yi^|g2 zUJ%UI^2yjZxsK~3FR-u|KVHDybEJoffZ6Q?JNw&tP5M}zPq)DUT_U+BGs}r%69;%M zD;p$z!rEh)qNet~T*2&ks3!^D0W320SC0~wn6Q|M``h*OUo%`vdVetK=Bp`J=G$>{ zyW1sj@^}E6iZT)_tB}d{XI-Y(S1k2Sh*PaxQw&z)J7tB%W7;Ar6?)=)YOoaOxE_w0 z+E|=2Hjikjw%W{jei<87pyheGkBd+Dq;!=UykP@ln{LEQOk6QG%`%`rXbpym-6WT$ zh7AVvjtO)pTY$6kOadK1!=$HLds6@ay-Ac+hGP$+_ME zsFZr*Ku1-mryqn?_~;I*RU zlHgH8lQEd!z>Jl05TFcMpr#+RG-%Yo(jZV@>&zu#2ea^m89hw>O;F|gP0DdRN>9+@ z-f&4OFOXYN3Bcmb87y4=ebDG>pR7%oDvU2lFAT#5x+wDmmqmKNmhp9dY` zUnf!Cl?^q?+TgXgg@=NmDX(g!sf*YbX+iT$6j>x_97=@nFnKx4hF%|Fxts z5dGWae@o1_3$%EE-A@35R%A2)bb=l>K`A*j_#2m7gwY-Jk^%TOy*$<8EOe{2^K<3=DA$>N_+b~7>5w<~9pc#Wu zyA>0}t*`-IR_}i>MkQA|j-wdKN2}O0Gg$phH-}X%*I`PRl;u(jd4Aj$J8|U%1hV*u z=Ce!qIFY4y8I;&PHe6E*)Q9UrC4iJU1BByU_8)tTTt?fUX?Z>;9F=;XfhfKI?}IBYNq6=m#i-y>&!tOH-#DE zG-`P>?AcfkZhCrnX?1sZ-#Viw zTyo{E39D=>cGm`8V$niv_)yz_0qpMK${uhQ`-%KX`gbW-~7gB<~_ z-Ny#KXQwRQz2I|OL3w(2t|zy=n^pB0PpMhJ22(>B2pZiRp-dG#cu+sEEz7(^)TXi| zkKQ!MQq25N9CKw^3G>BN#=Jxd$~69@)bpAXs(=@^L%eX|$m|hDN zlLs4~1WV%Mgaf9&EB^I9Aowa{V}XqhQ)%M7IDJ1KsDQsodt4TjctHgT2qtVV8RTdx z0LvwSz3sdOvMWLY%%Sty2h{N?AjYbRW~`SWIcb8k?P#cHBZRJVs*kCFBwKm_8bJBE zH*Cz;`XO$w?d4p8=JLFdG{JPw^AJcKzJB+)#6@hm{s>TXp^?~pw_NEW#N~_lTd7Zj zf&C)k-4l%k6%uf96rm-HX^6=e`^%nD#tsH@KJp114kkPK zpv-eZ0HA&xXne0uP80}$Y{g-noFp+6sG0dnueBu9`?+`N26ds+((Yb&+2H99<@GTD`Q3;w z0zrPFTwNvwM;0phY`27(o3jV?2kXkbJ!$dk*cVStuc?a{y07l0lk}zW(AL&2#$yI@ z=F?|wr?JjL(*J=|wf;Jf6IYgJP6!vB4Vi|g;Vg=LbS^sTd}Z{(5$BMYipl_9zk{bQ zocwYKW*}*kYQ(H86-p+O_mYWTp8ooL5z_BI`4AmH`IN~uJcT@aJ@Dq*1)>$Z zLs-Lxmv#6%R&qBPPem8YdNQiS)f^{aK9eH{>JZL)NkFe}0@d;UI&OSHReQ__wY=*E z$xU|!l*R>dPu%s4wHG!#8pudX*dc8?A6fFAO;ljZ4yEE$Q|8hIF$YXhkPC?dh8uMuU1sDE9^!0 z#v5pRsf^z}<9oBZdB8t$;COk`ot$0vt7j4~EeO-=mp~ny>c-6;DUM|n;S z!_Jv(WVt{m!F zg7Y@XHX1ihF?6mWE11g&FHx0@BQlGOUY{3gq)`pGARaW*v$2my?OACOzHj1%gu0{- z&jY&nj$r>(=R|(}j0#y(56hD>1{wv5^-ktWui2J`>4iR@E{D^}3dl_}h0rnleW@K+^P-zgJmenub9H1944 zZe^i&#}zcMkyxJuxhTze){h4Ws5fzT2)w>U8>^^ZW8Hr7o@WoVL*i8>`xKm=$G%=m z%SP}*6){vXZ~k`0?rxQ`@O^x~)|F`uHMje52WCDz@&_j@l7JK8 zc$ZGPw5~O&N~u(C)|!HSWT_JX<*=X~m3~6qz|{~XMd2Lp;azA(cGkm63sB3S$wO?$;>X9&Eo4<)Mv{&2OkI_83gR3yj9AN#yQ<3 z5j%RMQZ28}iqC09AX?}WF0TAX2P9Z9lwDxL1}v4)o)*z)!>M>S&>`cP|fmZ8U3`S zl<1bVjhp9XTGQ(-wE1~iTLw2ZOZJ70dS9T=h}Q~Z!WuA3Di$G%lzwGUG*f4HgihvZ z7uoVce`aqg|Jg?lOIH#v(jV_m>nZoxERxB8>4#ldT+H)1c5SVF(#JTC$xFSe)*UQ@ zTT0YL()fJD5P{`g`r%=Lw1!ErKu zH*%dOX#Gj+0?!#noUj>qXWD7Ykzpc#Ei{Gb!>7E6L|yLVRY6z0tl{MYz3U94(_Ji| z*5|k~jL+TtV6|{t$ecj0`Lo?&t4H>$W6LA&$R5kz#WR%Q7AuZ<1Mld)dnv<0Bu+ZW z_enhwjl{}Hj%YmM^7waY>lJM&7hpvB4$nSuZxBt17>w4ahYOn@>n(N*5#ZieW~ong zU5tX1vG)+`!+RCs_!BquLi$o-%|IVkI8hZ$^PdV1p1xCEUGs=g<&gzjz=D)Deu&_W z{734U7bv)`sM^`4uDwkTGPkLzPwC4<@bGS9W*LIeIlwF)g2c z-eyizZn;b#8BB^5%KY)w?fAp#7Al946ORlQ9+|48F*4n2rY~er==Bxq+H>N9(czb- zoa#8nPi937d&_z#&cb)=7CHvyXA#t`6gW)b-+6q+zgQ^6u(QF^_XsD`%>&6kb!6@b z{H5o{!vLL``;v4*9UBX%C749RDF^7xEjJ&OPm`z*+tugj6|E4dl%)7^C6$Evv`4!o zu$zq=7dqurt`bErbZ*qE#vUUeuemNqW^348LFl-##?AA5Y;xo(T=aPYUrl(CkU%!G z&%?Gk!XKT&Of>**`O=fkV3@l1Y1m$e~*jeql@dUrtP_W z;~lJl#PJ<87Vp?E32yS{-5l)7C_Y2&BD{2Tvw{C?OJ0{Y{2u=sqS^JE3jwh*9Zb4w zr-ChS4l@&Zb-4=XJY&--4)AZg8E5dN+w{$>hDGOWNaf1PLNeCjj$~hQR*rmBs_y~I zdOGPqMvhcoWUpW11gAbM8#x~0Fx49`+N#UppyQF^TPTt+cb6e&VNX75wWn~_Em}8& zmt*X^Ej8~;2VME1oL@%6m8gaDOzVDG#p#It&+f|kHEZr?h$ZjCJyTb1f zVUG)I=>#v*%~FQP42DlkcfI~pmjwI@M?3W|0XH&$bdZzs)KhEh5$$;$oy_|jB%}Np(Ml&;GgA6BSJMmOcamj?r zITfvB+IN*KXO+w1YiLXxa9=oeqJH;94~YwFk?9L_ zGA6k2M0VGvV^eg&A(zFds+hAqk2i%@St=GHh+ddlF&H&gPL?ERtal*$NpkfHLd*_n z(OmhYX*}pmzt%(*bA6DZC*8VM_io|_P9SxO;w9O@u=iLU@*0$qC1Uc{AKn^OD7{vu ztm)(?pwa7{PgF+WeeMYlAW-+A)9t1R=g!JXt>&M*3SS;=dzXdS1*pLuLml_EX=2!+ zx0UaRgIXV}z%mE@0(I&RJGfkdENAM!!^h(?r)e>*DnG}H9!r9?ozRiHt(SbcF z1)p{7OJ36!n)%N?#~2hNMYAp5Kepru2BsunKl1_hCpc&~5$F>h@*;zs=8AE6HImiv zC2sB)0|u+q-jQ30(>((!boA?l?W26eb&YLh_N_<||bjB0xC&I7&WFSCt9AI7`#fk$9HCuQ((KcH-zc zp)|b`se6~Wr%NQ_TOQ4^a9L_o5>AlajtOPrJvdx9bZ@Wqg1`y4My#G&_Z#J$-C}~9 zuGdCbe|(3NHZ^>vd$&6Ch?LiIy3s^X7lP%uh`V?$W2jWOkmK}Q=BIV8f~|w?RbKp5 zDvz|;-b^h<-_1~$rIk)-?yruy4f|qa{<=_k7q|HZ%7rV3z4R7}T+%N@CTCVN_}dL; zwwz17?C`QsP?RBEq4JgPf!iK}9Y_KHW4zRLO z=;551feJsiuIDVmtMK^;UB38tdCFRMpHRtut-s$c#mD|wFr7#5JfFu09^>=o-Y*|? z^$$Eb+k5j|Snyzi>cT)PiDb~xbMCrv3Ld1)cho8CV#&$W#pn~3_=T<=<-Vf-Wp;Q# zd3~`9={P@nTX6X@n_h9?z0;}&<8PBpd-Ahf(=KNk_m{spxI5tR8R=)5Swp?)hSdhZ zR%qH9cSBoV>?P0zt*uU#)I?&U8lWQKMNm8oH$Z%w^qTO zs{LAh#ddt&-l+CHJ~Em`qE&CzPu3uiP(EpPx5{&r;$y|ogY@-;6-5(v2OGIF)&kw+ zS0uD6f)4eVTWtthlOvc5Ud?^RzP|79#SL%L6Ye?|I(>V2t%M~zsON0vW)R|M-az^+}+5NX?C!Nas-*{c7BmCxRLF)g1O!7gM_&NmIhE9+IgBD0st9`||P^ z67`#^>IJbe3zphF``B8OA4Ia@lP~Fx@;LFUld6YyPk-8=%c~KImXJ;@n>-tGKKP(i z+bB25Uivt>$YdbhK8U+=x;xEDHt>Po;6q`T0*hKUll^3#q2?RngXDJ$SKz&d?NMy! z4XzU%zc{dHJ2Xibmn_y(mZ-vge3tYRn^yjSEcUePEXk6fAhC$9f=x1?OyH7%-=@R~ z7Oi(jZV(s|%ue-N5`9dP+okc6R?2PL7eGVfOZg_LG_YuYD7(Q~zB&)<*t5|vc1q6)u9-utfk?Q(omd|zh1)l;bKdNJyb|BND zuUO~$-PQv)h*uXDC$-Whl?l@NJT`SCPwm5{n^^l?Ff~0GBI4B@!DHzU$ZNoIEZzqp z(z`=~4xhD=TG!Ur1}Kc1BK@jEj@MJRG}cG(roC0txGgfW$TC64Y&%kj`rLi_V^G}l zD{aZ9?_NCWE>C|gby6$%#-M&wbF|Q10Y{U9?Il;*n20Za+O3mwi;?z-D&n!)iy^h1T){&&hj>fxhzJCnmD-zN8}uR9 zA!_amBBk5<-#xAHoU(S3i9jl6n zzC%Z&7^=6BWvQ+inQX^!>I-f1+STN>!E<}Z7bmL+4)`T<*d^Nzjj;@xw!VCPCZXOp>69Q=<7s!|$P^!qd~6@F6UvJyW1?ld{jGx#a7S(bmmo2ISxq0LFjwL~OMzgjCN zdP)Q**n9Y}DjTVlnN-jf0>@$R@XfpD?lIoBz?%J_I3xB*JYAx?hVdG)x+|Zm(LH7j z#p_3N-m{PiFXs)TCfZqTigH714AxBi%M2RAVY5R1gjOdql$Bc_#Ea^~u9Iw@7i)=^ zA<}E)HhYZ&6vMB8&b~s&@c3y|nGew!E!~OsXNTa@CLvwkq^zGj8Xs~GJA3cN-6zGo zk4j)MPc7+!Y&iR)G@dcka8r~P4$BQv9k%xK)d6Ksfgi`~kdx=`)GRXKw(5DT-vHR| z=(fJp=OJH2T22~S6=|y#>SpvP+)!_@!q1yd%HLPDhLtG|9V%KEyg@%CaCxg4^LL zwyjXLM!~B~EIKx#)QPTlEy~BEYZg?m44rxXCJvM`eP8E2&`yDjn#Z`Tl+`-TdySJ{R>LlwY>a8s?G-MxTY_bbd}a}wx?9b?bW|iKL+<`D z&$|iFd7xf?Iz9S{$vzB3`IQ~pNFzHI~<6JzclJQlx`zd_tBT5RAom@ao zMNs4%R2|@L*Wbc_@8e>hNkW}SG%D6rK;2_=DkJy0&??)VNo4^g6y1Xq^Sb4a?!f`q zKBJ0j!q()-n{OIc_aLH{Su)OR=8Np7UWf=h{9&zGFMjAXgOXmHTqE(jqNRI>J3{5% z!w&BqRcj3$2)}$P$nxVb>7E4*`KaXBJ8xDaAMP^rT)y=-{T64>HU?IGX-CDDDk%QhNihO_5%wj7TS|zIvp*YErlA zT5Hfy_ubu7>!8(P_ja;_Du{~ObSkSs4#mK@mQ&fA6p2^$&gPDAzq9o%yqQE*1D_~vTXUfFp!mI{BeMkO|-=)%%xT_LyWoCGEP z%HBmPUCLjhsZzM)Q?f`{oi#x%8_j~Hu$cxM?sMMUIH6mzLDU*IgBx&${{+yUopg$% zle8AQQ;|-5YCn>|Ie4FWhsnGMqact2gDGHfblQ9zFCu*!mN#w$I9M<^U$kM74W~sC{$u?M8xg50g^4j@owlSK{S{9M54?r)>!+QLB-)n)Qg z%cJmq7ZNz6h2|43nZ9{?o>411)#7|BE6gC-eSJYA$@?>r4z<-eP1}?}M>hWhRlMm3 z@>M?V?&6RPrJdebD%te&jKv#lKAp_CCl67%S(!oTzgxii;|;4L-nC;_xv#vH#i76@ z>tW7!4-}J+63D_MC3w^r!CQav_z{k(0IkQUnTEcHM#lmZ=yspDA9U@@%%DeYXJcBe zaaXow?@IZXntP}32DX_Lk@8pZJe|4YX~Vgy2$PwS|4_**Lb&%%@ZG#b4)>35lHzKZ zHD4yqKhW|C+qI%Bxmm^)o6|=P zyZp3_1FH=_><-6nz#CZ1Tc|b<lGu9#Nq*qCu(rYNhTUzak1q4jP7K{Y zk`vkx(9F~5VVui#GtuA^an9K=R;^P_#8RY{M=L#vPb!7^2sTtB-kRYotVSvm;9I#! z`;(r_?yvE`VNZ4Tsshf5eL3yzX?kZipVlLMIR-67;@$II0Y6^6Qgtv0^_^r5g^9_zr$_RXy0MV-QFl#p>YTKU%s#RvEf0H=g~0= z#@D%%#=d9U8v(DwdbM%%z#*N}?lEPz4g?Xa0%GA$z1Vi}gtWxRCd$=Pz7ypBl(PeF zq~~waa2rJLzg=a1M8T?1$_($EZbz<-A#s?rJ}*CvC|o5_;0yUFs?$yT>g&VKNHNa1 z3z!BL7_#uC*Kr!mh*zG>qOfot3h(HeN2`+y?#Bg9b^o@Z!Lb$g;k7S{f@e7&ygEM8u=GU zC2l%`ozXo!rn$22iw*CMbobvj+-TPW8(c|!8<*Q!^4)s|BMe-vk5$$DziJFbS(mgcTkS@OkGAn`e@AD$-QJ1`e(p)0T9<8>#_Kkgdfs`8oe z@;yi`Yv8&Wy3Ap9IODi9?DcsH{%ptNyXS*)Xq=*E79SJ4R87rTid0=yd3WShZ};cN zqa2Z}@r3z0ff{sYY!PyM2}Jh9bKVa!Xu{)3sIP*lsM*Q~uX7OKl8)TQZW?jDaL`8n zmfLWb|4>~StGdk6P%ab?(4OOT6t63Z`N*I02r zD*4v(&}$w_z=~XQEi1!mP83&-cplMi3>;?xEF~x0mWKTnML{JiOMB%SLpuwpx^Umd zpq5j2^x#quA51`jR1{^$_;Q&iRu5~Y{ZovSPPajPI4oO_HLKiGv583U&5=xW!l;m0aKZ5b;`W zk-^n*;(5Af;N-eXvCxs($vuyev~GlNcyn_Z18#k!zPD)QBH1xn66^WK<(_9e$+W!M zkuI;Q+(s#~9JZ`?$FW3mHib(fD?QDl-#F+uA5^utr4ksHQ{38-(A+Efk&<8$G}f;gS~7@L8KqBdnSO(=}^!bw%l`)Lc!6U)a=;9d)@Dkt5i zpww?;XXV-MeS5TRjn{jOA-qbzyQa!^Ia6;CMuk+{7pACmfA{m0w-ht3W*syElba zCF}HgOm~m$pV+rsE$y6|dbxk4jxvqMp1hIP_z^}eCtpgq0a>Pq-LQc;# zr>9)I!YdlJDt$Ofbs?zqN|s!yE`E3blM9vi;#qwhmb2~T=(-0kE}McUWKyRsaz0(Y8!(q)yFk02DqSSurH95PecFVq;}`!+SbX*!(QUyip1a5rWQZ+L6gX@el88n7qS<8ja0Q z)TYhxz5B3jHl9tD&~@dc-7DUY0$FE5Xv;O~h+(8W3Wa0Odav1+?!NBC)znGWGXuo! z50!Hrj2DuR^E{ip0mz@MG%9A0-+HvrH)7&&LcG!YYvICqp&e^k6I_RqE}WF~$wmzI z8!Y-bWjLN}ZDL(ld3jLp4(zhRZlBarpoT9Do`G+Yv%P2dQeZ?yXzsZLbmxu_u3Zu= zx!a)k!2ju>tze9x%;u~5bkr9t{^Qo~V)Gd_coL2%y;;%8*}#(y>7$u=B$;kO!IS$u za(8X{gP0OW??Hy{nT`+pma~RJ!r7nVLzb%KEa^wKmEGY2<@dZ0^Dk~PYOOGgT@@YC zh)VW!TO3uFD>Z{`rVo?uQ{_dr4PBId_!PJ9eiN+^YY1h*#f-w{$k%nv8*j)m-kveGA~Jnc zGurJYeDgr6cf*4_af;N6H@r}MC1Z0I`HDI>CdPl}F3*RCyoh(jt*B7} zsS6*x9^76Ud1+fx9mG$k%hJ~M#1OYaL3wKKf!EB*Imc9-1)J4z1@l$h;r;G5C__1oJ6197U3rCmCE^@G3DnNL6chFe3Y*SKJLw`HS|^)uv`t zp)B_aRSY|-Dpl{EJX_fMInid~WM*-fXXm^8_1uQZ2nKm#*ucm$75-NPMeOkh8>5(m zj8M(t!hU#@7bi{hfoUt8D?7>P9CW9#Q{NEQ#Xq~C+tHBR#ov`b2C#j zDOl0Kx{RGaupmI+e-g6V)=GK^2Q$*djVD!$15M54VCC9}6TJKb*RehcM)Ei`z3nF_ zlOk)LG*>I}^}XX~_|Tux@zWPU2uqt$?d_A=Z$05Nc>(YIgBER^gCSA;Hg8cU zNpdK=)_Ll~5;fCT4kmXTVI@LZF+>SD?6Vn^4l_hZhiHWy3wv5$k4MTsmXTfFW1b0f z>19(0FFd!=7=Mm&=whnCb&rjsr?H<%MVRFd3h&$P!*Wc8^So4hAyQ3)j zvnf3$k1-Lg0!z)KOSf72vneWDfDz!9u#UkHbN8W;siwoUV$qQi5joV(eoQ6fLhH?Z zB2sO@V5dddJj}dQSV1^qI^OV%Z*I!*!=;j19KmAFzOH)Qn~53o$Lzl}7(G_FEn1QH z#QtrTDsDhr^7-lqe6B-uADgfE1RlBL>9!8jB0!o*+BVLNJ^)t8`H&039-4vKi-5AbE}?QN!OyC6Sq z8ifNkDx#50`LwPrFRUY)={4=Y2(&KsJ<=$tw7rh!9dcQ~fic9rDA{m+d13UmTd`}1 zcmQ_)@;L`5_Ae}|3|wJ*Pf)QCz{mwIh#VgMEUz|0+w*wXs6j7Rqw}$6eCC^HOW4E) z!u3g;L6!MI9)rMMeTl32-rD^#8vCa_xlT?u`6&7r))cdEI$ov1RVx-8V>d3_qs_

x>Jwqb!Qan&gSxS3t?;(6M$&vaZAYad+w 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 literal 0 HcmV?d00001 diff --git a/rfc-000/serverless.png b/rfc-000/serverless.png new file mode 100644 index 0000000000000000000000000000000000000000..91b6420f3d1be3932164b9929aaf03d9bc896735 GIT binary patch literal 72219 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

vOecq^*s)szM_(Cso;ctzaN0X!))1``3aZ` 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

    ;B7k^%(%+^OWQ$STQ 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 Date: Thu, 11 Apr 2024 12:12:53 +0100 Subject: [PATCH 2/3] update numbering of RFC --- ...-stack.md => rfc-170-mobile-app-backend-stack.md | 4 ++-- {rfc-000 => rfc-170}/containers.png | Bin {rfc-000 => rfc-170}/serverless.png | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename rfc-000-mobile-app-backend-stack.md => rfc-170-mobile-app-backend-stack.md (98%) rename {rfc-000 => rfc-170}/containers.png (100%) rename {rfc-000 => rfc-170}/serverless.png (100%) diff --git a/rfc-000-mobile-app-backend-stack.md b/rfc-170-mobile-app-backend-stack.md similarity index 98% rename from rfc-000-mobile-app-backend-stack.md rename to rfc-170-mobile-app-backend-stack.md index 7e32317..5564cf2 100644 --- a/rfc-000-mobile-app-backend-stack.md +++ b/rfc-170-mobile-app-backend-stack.md @@ -35,7 +35,7 @@ We have considered two principal options for tech stacks: ### Option 1 - Adopt a serverless stack on AWS -![Architecture diagram showing a simplified approach to running serverless applications on AWS](rfc-000/serverless.png) +![Architecture diagram showing a simplified approach to running serverless applications on AWS](rfc-170/serverless.png) Under this option, we would adopt a serverless stack which broadly mirrors the approach taken on DI. Connectivity would be provided by API Gateways (see note below about the proposed approach to this). Compute would be based on Lambda functions, running the Node.JS runtime. @@ -53,7 +53,7 @@ The principal drawback of this option is that it is not currently a stack that i ### Option 2 - Adopt a Ruby-based containerised stack on AWS -![Architecture diagram showing a possible approach to running containerised Rails applications on AWS](rfc-000/containers.png) +![Architecture diagram showing a possible approach to running containerised Rails applications on AWS](rfc-170/containers.png) In this option, we would build a Rails application (potentially more than one, if we deemed it correct from an architectural perspective). This Rails application would sit in a Docker container, and we would host it on Amazon Elastic Container Service (ECS) - or Elastic Kubernetes Service (EKS) if deemed a better fit. diff --git a/rfc-000/containers.png b/rfc-170/containers.png similarity index 100% rename from rfc-000/containers.png rename to rfc-170/containers.png diff --git a/rfc-000/serverless.png b/rfc-170/serverless.png similarity index 100% rename from rfc-000/serverless.png rename to rfc-170/serverless.png From b8c7c19fbd509544e150befd7ea70bbf0857e41b Mon Sep 17 00:00:00 2001 From: James Miller Date: Wed, 1 May 2024 16:40:16 +0100 Subject: [PATCH 3/3] move RFC back to draft state --- rfc-170-mobile-app-backend-stack.md | 77 ++--------------------------- 1 file changed, 5 insertions(+), 72 deletions(-) diff --git a/rfc-170-mobile-app-backend-stack.md b/rfc-170-mobile-app-backend-stack.md index 5564cf2..17e2eb3 100644 --- a/rfc-170-mobile-app-backend-stack.md +++ b/rfc-170-mobile-app-backend-stack.md @@ -1,80 +1,13 @@ --- -status: proposed -implementation: proposed +status: draft +implementation: draft status_last_reviewed: --- # Back end stack for GOV.UK App backends -## Summary +This RFC has been put back into 'draft' state and is being fully revised following direction from senior leadership that within GOV.UK we are building a standalone app platform distinct from DI's. -This RFC proposes a back end architecture and tech stack for internet-facing services (i.e. APIs) which underpin the GOV.UK mobile app. It draws on the existing work carried out on the Digital Identity programme to define an extensible, scalable architecture which meets the needs of a high-volume mobile application, and create a solid base for future development. +As a result, the rationale and motivations for what we build and how have shifted significantly, so this will need some further thought. -The proposal is to adopt an AWS serverless stack, in line with DI, with the predominant implementation approach being to run Node.js Lambda functions to execute business logic. - -## Problem - -The new GOV.UK App is going to require back end services to enable many of its features. The app is a shared product with Digital Identity, where the existing ID Check app that they have in production will be superseded by a new, single app that incorporates both Digital Identity and GOV.UK features. - -The DI Mobile team have an existing set of back ends which are implemented in line with the Digital Identity architecture - namely, AWS serverless using Lambda functions (primarily Node.js with some Java). The decision making process behind this is recorded in the Digital Identity architecture repostitory (for example, [ADR-0001](https://github.com/govuk-one-login/architecture/blob/main/adr/0001-auth-hosting.md)) _(N.B. this is currently a private repo)_. - -As GOV.UK, we need to determine a tech stack for back end services which underpin the GOV.UK elements of the app. - -The following are key considerations we need to take into account: - -1. There is a single app, and it would be most straightforward to integrate the app with a single back end. This means we only need a single set of configuration rather than multiple settings for different features. Additionally, we can centralise concerns like logging, monitoring and alerting. -1. In all likelihood, the various mobile back end services across both DI and GOV.UK will _eventually_ end up being supported and maintained by the same group of people. Therefore, parity of skillset is an advantage. -1. There are broader conversations across GDS looking into our strategy around tech stacks, and we should fold in to those - -## Options - -We have considered two principal options for tech stacks: - -1. Adopt a serverless stack on AWS -2. Adopt a Ruby-based containerised stack on AWS - -### Option 1 - Adopt a serverless stack on AWS - -![Architecture diagram showing a simplified approach to running serverless applications on AWS](rfc-170/serverless.png) - -Under this option, we would adopt a serverless stack which broadly mirrors the approach taken on DI. Connectivity would be provided by API Gateways (see note below about the proposed approach to this). Compute would be based on Lambda functions, running the Node.JS runtime. - -The Lambda functions would be able to call out to other AWS services as needed. While the subject of this RFC is predominantly the connectivity and compute (i.e. API Gateway and Lambda), the proposal would also be to adopt other cloud-native services which commonly form part of a serverless approach, namely using DynamoDB for storage. - -This option has the following advantages: -* Essentially unlimited scalability without the need for active management -* Cost-efficient, pay-for-what-you-use pricing (we can get some cost reports from DI if this would be helpful) -* A step towards no-ops, where we are not responsible for or have the cost/burden of infra maintenance as this would be handled by AWS, so there are no [tricky manual steps](https://guides.rubyonrails.org/upgrading_ruby_on_rails.html) to upgrade to latest versions of underpinning software (only deprecated runtimes need to be considered) -* Lambda functions are small and self-contained, thus easy to reason about. They are written in JavaScript, which is familiar to many developers and therefore the learning curve is not too steep -* Aligns with the DI tech stack so that the entire mobile back end estate could be maintained by a single group of people -* Benefit from existing DI infrastructure for NFRs like monitoring / logging / alerting - -The principal drawback of this option is that it is not currently a stack that is widely used and understood across GOV.UK, so would require some upskilling - particularly in terms of infrastructure management and use of AWS SAM (although we could look at an alternative to this like CDK). - -### Option 2 - Adopt a Ruby-based containerised stack on AWS - -![Architecture diagram showing a possible approach to running containerised Rails applications on AWS](rfc-170/containers.png) - -In this option, we would build a Rails application (potentially more than one, if we deemed it correct from an architectural perspective). This Rails application would sit in a Docker container, and we would host it on Amazon Elastic Container Service (ECS) - or Elastic Kubernetes Service (EKS) if deemed a better fit. - -As noted in the diagram, there are multiple ways to route internet traffic through to ECS or EKS, of which API Gateway is only one. It is not strictly needed because the Rails apps themselves can handle routing of requests through their controller classes, but it is included here as it would help to standardise the approach along with DI - and would potentially allow us to still use a single endpoint for all app back end concerns. - -The principal advantage of this approach is that it draws on the existing skills and knowledge within GOV.UK around building and running Rails apps. Containers are a recognised, modern way of running web framework-based services on cloud providers. - -There are however numerous downsides to this approach: -* Inconsistent tech stack across the app means we could end up with one team having to maintain services built in very different paradigms. Additionally we would have to create separate monitoring and logging stacks across the two approaches -* Whilst containers (and container-hosting services) are designed to scale up and down flexibly, there is manual configuration, intervention and adjustment needed to do this effectively - -## Proposal - -The proposal is to adopt option 1, serverless applications on AWS, using Lambda functions written in Node.js. There should be some flex around some of the specifics - for example, we may decide that proxying to static files on S3 is a better fit for some workloads, or that DynamoDB is not the right option for data storage for some requirements. But the guiding principle should be that for compute, we use Lambda functions. - -## Appendix - Potential sub-options - -The following are potential sub-approaches we could take, which may address some of the considerations above. They are open to discussion. - -### Option 1A -Use serverless but write Lambda functions in Ruby. This approach enables us to make use of the existing Ruby expertise within GOV.UK, but still allows us to get the benefits of the serverless paradigm and align broadly with the DI tech stack. The reason this isn’t the preferred option is that it introduces an additional language into the ‘target stack’. Both Ruby and Node.js are easy to work with on Lambda and so the difference is judged to be minimal. - -### Option 2A -Use containers but embed them within AWS Fargate. Fargate is a semi-managed ‘serverless’ compute engine for containers which takes care of some concerns such as scaling and server management. DI do use Fargate for some front ends, but the feedback from the team is that it is quite difficult to work with, still requires quite a lot of manual intervention, and can be expensive. Therefore we have discounted this option here. +Stay put for further updates.