Designing a cloud-native architecture

You learned about the cloud-native approach earlier in this chapter from a migration point of view, where the focus was on refactoring and rearchitecting applications when migrating to the cloud. Each organization may have a different opinion on cloud-native architecture but, at the center of it, cloud-native is all about utilizing all the cloud capabilities in the best way possible. True cloud-native architecture is about designing your application so that it can be built in the cloud from its foundations.

Cloud-native doesn't mean hosting your application in the cloud platform; it's about leveraging services and features provided by the cloud. This may include the following:

  • Containerizing your monolithic architecture in a microservice and creating a CI/CD pipeline for automated deployment.
  • Building a serverless application with technology such as AWS Lambda Function as a Service (FaaS) and Amazon DynamoDB (a managed NoSQL database in the cloud).
  • Creating a serverless data lake using Amazon S3 (managed Object Storage Service), AWS Glue (managed Spark Cluster for ETL), and Amazon Athena (managed Presto cluster for ad hoc queries).
  • Using a cloud-native monitoring and logging service, for example, Amazon Cloud Watch.
  • Using a cloud-native auditing service, for example, AWS CloudTrail.

The following architecture is an example of a cloud-native serverless architecture for a micro-blogging application:

Cloud-native micro-blogging application architecture

The preceding diagram is utilizing cloud-native serverless services in AWS Cloud. Here, Amazon Route53, which manages the DNS service, is routing user requests. Lambda manages function as a service to handle the code for User Validation, User Profile, and Blog Page. All the blog assets are stored in Amazon S3, which manages object storage services and all user profile data stored in Amazon DynamoDB, which is managed by the NoSQL store.

As users send requests, AWS lambda validates the user and looks at their profile to ensure they have a subscription in Amazon DynamoDB; after that, it picks blog assets such as pictures, videos, and a static HTML writeup from Amazon S3 and displays them to the user. This architecture can be scaled in an unlimited manner as all services are cloud-native managed services, and you are not handling any infrastructure. Crucial factors such as high availability, disaster recovery, and scalability are taken care of by these cloud-native services so that you can focus on your feature development. In terms of cost, you will only pay if a request goes to a blogging application. If no one is browsing for the blog at night, you are not paying anything for hosting your code; you are only paying nominal cost for storage.

The benefit of the cloud-native architecture is that it enables fast-paced innovation and agility in the team. It simplifies building out a complex application and infrastructure. As system administrators and developers, you focus strictly on designing and building your networks, servers, file storage, and other computing resources, and leave the physical implementation to your cloud computing provider. The cloud-native architecture provides several benefits:

  • Fast scale-out, on-demand: You can request the resources you need when you need them. You only pay for what you use.
  • Replicate quickly: Infrastructure-as-a-code means you can build once and replicate more. Instead of building your infrastructure by hand, you can structure it as a series of scripts or applications. Building your infrastructure programmatically gives you the ability to build and rebuild it on demand, when needed for development or testing.
  • Tear up and tear down easily: In the cloud, services are provided on-demand, so it's easy to build up a large experimental system. Your system may include a cluster of scalable web and application servers, multiple databases, terabytes of capacity, workflow applications, and monitoring. You can tear it all down as soon as the experiment is completed and save costs.

There are many more examples in the area of storage, networking, and automation for building the cloud-native architecture. You will learn more about this architecture in Chapter 6, Solution Architecture Design Patterns.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.79.59