Microservices on AWS

Introduction


Characteristics of Microservices

Decentralized

Independent

Do one thing well

Polyglot

Black box

You build it; you run it

Benefits of Microservices

Agility

Innovation

Quality

Scalability

Availability

Challenges of Microservices

problems

Distributed Systems

Migration

Versions

Organization

Architectural Complexity

Operational Complexity

..................................

Microservices and the Cloud

On-demand resources

Experiment with low cost and risk

Programmability

Infrastructure as code

Continuous Delivery

Managed services

Service orientation

Polyglot

Microservices on AWS


Simple Microservices Architecture on AWS

Reducing Operational Complexity

API Implementation

API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.

AWS Lambda lets you run code without provisioning or managing servers.27 You pay only for the compute time you consume – there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service – all with zero administration

Distributed Systems Components

Service Discovery

Client-Side Service Discovery

hardcode the IP address of the target as part of the configuration of the
communication source

Application Load Balancer-Based Service Discovery

One of the advantages of Application Load Balancing is that it provides health checks and automatic registration/de-registration of backend services in failure cases. The Application Load Balancer also offers path- and host-based routing approaches. Combining these features with DNS capabilities, it’s possible to build a simple service discovery solution with minimum efforts and low cost

DNS-Based Service Discovery

Service Discovery Using Amazon ECS Event Stream

Service Discovery Using Configuration Management

OpsWorks is a configuration management service that uses Chef, an automation platform that treats server configurations as code. OpsWorks uses Chef to automate how servers are configured, deployed, and managed across your EC2 instances or on-premises compute environments.

Service Discovery Using Key Value Store

Third-party software

HashiCorp Consul, etcd, or Netflix Eureka

Distributed Data Management

event sourcing

The core idea behind event sourcing is to represent and persist every application change as an

event record. Instead of persisting application state, data is stored as a stream of events

Kinesis Streams enables you to build custom applications that process or analyze streaming data for specialized needs.48 Kinesis Streams can continuously capture and store terabytes of data per hour from hundreds of thousands of sources, such as website clickstreams, financial transactions, social media feeds, IT logs, and location-tracking events.

CQRS

Asynchronous Communication and Lightweight Messaging

REST-based Communication relies on stateless communication, uniform interfaces, and standard methods.

Asynchronous Messaging

Amazon SQS is a fast, reliable, scalable, fully managed queuing service that makes it simple and cost effective to decouple the components of a cloud application.49

Amazon SNS is fully managed notification service that provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers or other applications.50

Orchestration and State Management

AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows.

Distributed Monitoring

CloudWatch is a monitoring service for AWS Cloud resources and the applications you run on AWS.

Monitoring

Centralizing Logs, Most AWS services already centralize log filesDistributed Tracing

AWS X-Ray provides an end-to-end view of requests as they travel through your application and shows a map of your application’s underlying components.

Options for Log Analysis on AWS

Amazon ES makes it easy to deploy, operate, and scale Elasticsearch for log analytics, application monitoring, interactive search, and more.

Amazon Redshift is a fast, fully managed, petabyte-scale data warehouse service that makes it simple and cost-effective to analyze all your data using your existing business intelligence tools.59

Amazon QuickSight is a fast, cloud-powered business analytics service to build visualizations, perform ad-hoc analysis, and quickly get business insights from your data.60

Kinesis Firehose is a fully managed service for delivering real-time streaming data to destinations such as Amazon S3, Amazon Redshift, or Amazon ES.

Auditing

Audit Trail

CloudTrail is a web service that records AWS API calls for your account and delivers log files to you.62 This includes those taken on the AWS Management Console, the AWS CLI, SDKs, and calls made directly to the AWS API.

Events and Real-Time Actions

CloudWatch Events delivers a near real-time stream of system events that describe changes in AWS resources.65 Declarative rules associate events of interest with automated actions to be taken.

Resource Inventory and Change Management

AWS Config is a fully managed service that provides you with an AWS resource inventory, configuration history, and configuration change notifications to enable security and governance.66 The AWS Config rules feature enables you to create rules that automatically check the configuration of AWS resources recorded by AWS Config.

Conclusion


results matching ""

    No results matching ""