The course is part of these learning paths
Scenario - creating a highly available campaign site for loungebeer.com
We evaluate our designs to decide which solution is going to best deliver on the technical and business requirements.
As of February 2018 DynamoDB now supports encryption at rest. This is a great plus for DynamoDB in our evaluation criteria.
This may have influenced the decision process and influenced the outcome of the evaluation if we had gone for a traditional database back end to collect and store entries.
However as we went with Kinesis - ie a managed service - to handle data collection, we ended up with more scalability and elasticity than we might have had with a database back end.
- [ Andrew ] Oh boy, this is exciting. We've got three really really good solutions designs here. There was one other requirement which wasn't a key requirement, which was reporting. We didn't prioritize it as part of our technical requirements but it was one of the things that the business thought they would like to have. Now, I think there's a reporting requirement in monitoring, so that we can always ensure that if there is an issue then we can quickly recover or blacklist or any of those kind of monitoring requirements that we will come up with. It sounds like there's ways of doing it in all platforms. One of the other monitoring opportunities was to show a dashboard of how the campaign was performing. So, how would you go about that in GCP?
- Well the good thing is the app engine actually has a dashboard built in.
- Wow, okay.
- It just comes up automatically when you use app engine. So it goes to your usage. It has a nice graph and everything. So that's taken care of. As far as sort of the more fine grain details of what's going on, you can integrate it with Stackdriver Logging and Stackdriver Logger to take care of all those things.
- [ Andrew ] Nice. And would you use Stackdriver as well, is that what you're thinking?
- So as your app engine has its own dashboard for all of the components you can, let me share my screen. I'll show you. Let me know when you can see this.
- I can see.
- Okay cool. So check it out. Success counts since July first. So 19 successful. We have a dashboard here that's going to show you when a function was run. If you go to the saved data monitor this is where we're actually doing the HTTP trigger. This will show you that you have app insights which is really an amazing way to kind of monitor your traffic and get real time reporting that you can query. It's phenomenal. I'm not going to go into in here, but it's another mechanism we could use for a centralized dashboard that has really good reporting.
- [ Andrew ] Yeah. Fantastic. Is there anything else that we should be thinking about?
- I guess deployments. I'm curious. So you talked about using Cloud formation to kind of deploy to another region.
- [ Andrew ] Yeah, Cloud Former.
- We could use arm templates in the actual world for the same. I guess we would want to have the mechanism that we could push a button and deploy.
- Worst case scenario. Something goes wrong we could deploy in another region.
- Okay so we could put a tick by Multi-Region deploy for AWS and Azure, but for GCP we would need to think through how to best do that. Yep?
- Okay, that's alright. It's not a critical requirement. It's a should have. So I don't think it's something we should be using as a final decision point.
- Since all of these are really light on code we can start looking at these should haves and nice to haves.
- [ Andrew ] We need to do a quick price model. I think we've got some very common features here. I think we've got more simplicity around GCP and Azure, in that we get perhaps, I won't say a lot more, but a good level of functionality with the least complexity potentially. That's what I'm thinking. So why don't we stand up the three as price, on a price calculation and see how they look. And then if we're still dead close we probably could stress test and come up with a recommendation based on performance. My gut feeling here is that all three services are going to provide or meet the critical must-have requirements, and it's going to come down to the shoulds and the coulds to help the customer decide which is the best one. But ultimately it's going to come down to price, as it always does.
- [Ben] For price calculation, what are you thinking, let's just say for a number of requests? That's what I'll do.
- Let's work to 200,000 requests. About that.
- Perhaps we'd better do two models. We'll do 200,000 and one million.
- Alright guys that's fantastic. Those designs are great. Really really, really great. Thank you very much for putting the time into that. Let's get a price comparison done, it's amazing we've been able to turn this around in four hours.
About the Author
Andrew is an AWS certified professional who is passionate about helping others learn how to use and gain benefit from AWS technologies. Andrew has worked for AWS and for AWS technology partners Ooyala and Adobe. His favorite Amazon leadership principle is "Customer Obsession" as everything AWS starts with the customer. Passions around work are cycling and surfing, and having a laugh about the lessons learnt trying to launch two daughters and a few start ups.