[HN Gopher] AWS Publishes Reference Architecture, Implementation... ___________________________________________________________________ AWS Publishes Reference Architecture, Implementations for Deployment Pipelines Author : rbanffy Score : 81 points Date : 2023-02-19 15:16 UTC (7 hours ago) (HTM) web link (www.infoq.com) (TXT) w3m dump (www.infoq.com) | voytec wrote: | AWS blog post: | | https://aws.amazon.com/blogs/aws/new_deployment_pipelines_re... | Spivak wrote: | My only nit with their build stages is I don't see them | mentioning that the pipeline stages they outline are _logical_. | When it comes to how the real pipeline actually runs you should | ignore the stages and just specify the minimal dependency graph | and let everything that can be run in parallel run. This usually | means produce your build artifact first and then run _everything_ | immediately after. If you're feeling fancy you can have the steps | remember the logical stage they're in and bail out of later | stages on failure. | jvanderbot wrote: | Not necessarily. You could do staged deployment or a release | train built around beta vs gamma testing before prod. | bobnamob wrote: | Not mentioned in the article but I'd recommend an end to end test | pipeline as well. Deploy your tests like they're your customers, | independent and "adversarial". | | Also, one-box/one-cell deployment stage before your production | stage. Beta/gamma are well and good, but they'll never perfectly | replicate an actual prod deployment | Dowwie wrote: | How much of this is really meant for AWS sized problems? | twblalock wrote: | If you deploy to multiple regions or datacenters it doesn't | matter how big you are -- you should orchestrate deployments so | you don't deploy to all of them at the same time. If something | breaks, you'd rather break a subset of regions than all of | them. | | You should also deploy new code to some kind of non-production | environment before going to prod. Even companies with the best | possible canarying in prod will still do that. | | Some of the technology involved is definitely AWS-scale, but | the principles of software rollout are broadly applicable. | xenophonf wrote: | It's nice to see something like this. I maintain a reference | implementation of some open-source software on AWS, but that was | pieced together over the years from other people's work, now | deleted blog posts (God bless the Internet Archive), and | unmaintained sample code on GitHub. Hopefully, a fully worked | example like this will fill in a lot of the blanks in my | understanding, like how to best implement blue/green deployments | (the CodeDeploy hook for CloudFormation has a lot of weird | limitations), unit test automation, and monitoring. | | Edit: It's blog spam, sadly. Here are direct links to the actual | blog posts and tools. | | https://aws.amazon.com/blogs/aws/new_deployment_pipelines_re... | | https://pipelines.devops.aws.dev/ | | https://github.com/aws-samples/aws-deployment-pipeline-refer... | | https://aws.amazon.com/builders-library/automating-safe-hand... | ldjkfkdsjnv wrote: | This looks similar to the internal pipelines framework that all | of amazon uses to deploy code. Funny to see truly how much value | amazon has gotten out of developing frameworks for the retail | business, and then making those frameworks available publicly. | The abstractions work because they have already been vetted | across amazon for a decade | faizshah wrote: | I think the last missing piece is getting reproducible builds | which I think you can get from buildpacks [0], NixOS [1], or | Bazel [2] running in your CodeBuild. | | [0]: https://buildpacks.io/docs/features/reproducibility/ | | [1]: https://nixos.org/ | | [2]: https://testdriven.io/blog/bazel-builds/ | faizshah wrote: | I also found this post on Cell based architectures this morning, | I didn't know this was public: | https://aws.amazon.com/solutions/guidance/cell-based-archite... | | And a talk on what a cell based architecture is here: | https://youtube.com/watch?v=HUwz8uko7HY | | Cells are basically subsets or shards of customer resources with | infrastructure isolated from other cells. The reference | deployment pipeline in the blog post [0] would deploy to each | cell individually in different waves depending on how your team | configures the waves ultimately limiting the blast radius of a | deployment to a smaller subset of customers. | | [0]: | https://aws.amazon.com/blogs/aws/new_deployment_pipelines_re... | nimbius wrote: | I've always seen AWS as a rather expensive answer to the build. | Any other vps provider or even dedicated Colo is likely much | cheaper and less locked-in than the amazon ecosystem. | | That having been said, the "reference architecture" being offered | just feels like a slow day in the AWS marketing department during | a recession. Nothing really special about it unless I've | completely missed something? | [deleted] ___________________________________________________________________ (page generated 2023-02-19 23:00 UTC)