Building Smart Deployment Pipelines with Lambda and Codebuild on AWS

VIDEO – Pariveda and GameStop partner to bring you MotherHen, a pipeline that deploys pipelines that deploy applications. (04:00)

Video originally published on Amazon Web Services YouTube

Abby: Hello, and welcome to “This is My Architecture.” I’m Abby. I’m here with Jack from Pariveda and Shane from GameStop. Thank you guys, both, for joining me.

Shane: You’re welcome.

Abby: First off, Jack, tell us a little bit about Pariveda.

Jack: Pariveda is an IT and management consulting firm.

Abby: Cool. And Shane, tell us, for those of us who don’t know, tell us about GameStop.

Shane: We sell video games.

Abby: So a lot of us have probably been in a GameStop. I know I have. So I’m looking at the diagram behind me, and this is maybe the coolest architecture diagram I’ve seen in a while. Tell me a little bit about why you built this MotherHen pipeline.

Jack: Yeah, well, so Shane…if you’ve ever got a digital receipt when you went to that GameStop, Shane built that. And he built it way faster and way cheaper than most projects, whoever done it at GameStop. It was enabled by Lambda. So Pariveda came in to work together, partner with GameStop, and find a way to do this at enterprise scale.

Abby: That’s awesome. So can you walk me through a little bit about what we’re doing in this diagram, so what exactly our pipelines are doing.

Shane: Sure. So what we have here is a pipeline that deploys pipelines that deploy applications. We talk about levels of inception when we worked on this thing. So MotherHen is a code pipeline, so her first step is obviously from GitHub and all of the Egg pipelines, all the Child pipelines are defined in a single GitHub repository.

So her Build step is a Codebuild step that has some script that runs and iterates through that list of Serverless Framework definitions, Serverless EML files and goes…and deploys each of those pipelines, any time there’s an update, to that repository

So we have two pre-defined pipelines and two pre-defined application frameworks that we can use. One is npm and the other one a Serverless Lambda API gateway. So each of these… This one is actually pretty simple. It deploys to npm once it passes all of its unit tests. This one is a little more complex. It has, I think, five steps, three of them are Codebuild steps, but it starts off, you know, you get your code, and then the next thing you do is run your unit tests, do your linting, then we run an integration test where we actually deploy the API, run tests against it, if everything is green, we tear it down, and then deploy it for reals.

Abby: Cool. So it sounds like, from a developer perspective, everything is kind of templated and pipelined out. So, I can run my commands locally and MotherHen kind of takes over the process.

Shane: Absolutely. Our goal as an architecture group is to enable our developers to get their work done quickly and efficiently, produce value as fast as possible. What we really want them to be able to do is the right thing by default. That’s kind of our mantra. We want them to do the right thing by default. It makes life for everyone easier. It makes them go really fast.

Abby: So that’s a good mantra, I think, for everyone to live by, right, is “right by default.” So kind of set everything up to empower people to do it the right way, and then you can build on top of that. And is that maybe why…what drove your architecture choices also? So why you did this templating of pipeline system?

Jack: That’s right. A lot of organizations, GameStop included, AWS is new, there’s a lot to learn. So those outer shells of the Egg encompass things like logging and IM security policies that can be complex to manage and easy to make a mistake. This way, it’s all templated out and we don’t have to worry about mistakes.

Abby: That’s very cool. I mean, I used to be a developer, and I would have loved to work with something like this, where everything was kind of templated and pipelined, and I could just focus on writing a cool application and less about, “Well, how do I deploy that and how do I make sure it’s secure by default?”

So my final question, what’s next for MotherHen?

Shane: Well, one of the things that our group are working on right now and has just completed, as a matter of fact, is that MotherHen can now deploy updates to herself. One more level of inception to worry about.

Abby: That is cool and also terrifying. Jack, Shane, thank you both so much for joining me. It has been Egg-cellent. And thank you for watching “This is My Architecture.”


Leave a Reply

%d bloggers like this: