Services Oriented Architecture is a significant step forward in terms of building scaleable and resilient applications. A typical SOA application might look something like whis, where each step in a workflow is connected to a pipeline, or Service Bus.
Under the hood the bus actually uses Amazon Simple Queue between steps.
Point of Slide: to explain VPC's high-level architecture, walking them through the discrete elements of a VPC, and a specific data flow to exemplify 1) data-in-transit security and continued 1) AAA control by the enterprise. AWS (”orange cloud"): What everybody knows of AWS today. Customer’s Network (“blue square”) : The customer’s internal IT infrastructure. VPC (”blue square on top of orange cloud"): Secure container for other object types; includes Border Router for external connectivity. The isolated resources that customers have in the AWS cloud. Cloud Router (“orange router surrounded by clouds”) : Lives within a VPC; anchors an AZ; presents stateful filtering. Cloud Subnet (“blue squares” inside VPC): connects instances to a Cloud Router. VPN Connection: Customer Gateway and VPN Gateway anchor both sides of the VPN Connection, and enables secure connectivity; implemented using industry standard mechanisms. Please note that we currently require whatever customer gateway device is used supports BGP. We actually terminate two (2) tunnels - one tunnel per VPN Gateway - on our side. Besides providing high availability, we can service one device while maintaining service. As such, we can either connect to one of the customer's BGP-supporting devices (preferably running JunOS or IOS).
This slide discusses the corresponding AWS functionality that we will support at limited public beta launch. Please note that the items under "Launch ++" are other AWS capabilities that we are currently evaluating for operability within VPC, but do not have a date as yet. Direct Internet/AWS access is our most important feature.
As you can recall, we’ve setup Amazon VPC in the AWS cloud. We’ve also configured a secure connection between our existing network and Amazon VPC. All of our activity inside our VPC and all traffic to and from our existing network and Amazon VPC can be monitored, managed, and secured by all of our existing security apparatus and procedures/policies. We will deploy our web server and full application platform stack on Amazon EC2 instances that are spawned within Amazon VPC.
Benefits of using Amazon EC2 to host your web application.
We will host all of our static and large files over on Amazon S3. Things like images, music, PDFs, and the like are best suited for Amazon S3. Amazon S3 provides a low-cost, highly reliable and scalable storage environment for your web applications. We will encrypt this data for security reasons.
You can host your relational database on top of Amazon EBS. Companies like IBM and Oracle have even enabled license portability so that you can bring your existing database licenses into the AWS cloud.
As you’ll recall, we want our application to be able to kickoff workflows with a bunch of systems we’re already running internally. While it may make sense, both economically and technically, to eventually migrate these systems into AWS as well, as of right now that isn’t the case. So, we’ll need to be able to have our Employee Provisioning application that is hosted in AWS be able to communicate with our internal systems. With Amazon VPC, this is easy.
These are some additional AWS features that we could use as part of our application.
Building Enterprise Cloud Apps - Presentation Transcript
BUILDING ENTERPRISE CLOUD APPS Mike Culver, Strategic Alliances Team
WE THINK OF THE CLOUD AS A SET OF BUILDING BLOCK SERVICES
Infrastructure As a Service
Amazon Simple Storage Service
Amazon CloudFront
Amazon Elastic Compute Cloud
Amazon Elastic Block Storage
Amazon Simple Queue Service
Amazon SimpleDB
Amazon Elastic MapReduce
People As a Service
Amazon Mechanical Turk
Payments As a Service
Amazon Flexible Payments Service
Amazon DevPay
Fulfillment and Associates
Amazon Fulfillment Web Service
Amazon Associates Web Service
AMAZON ELASTIC COMPUTE CLOUD (AMAZON EC2)
Resizable compute capacity in the cloud
Obtain and boot new server instances in minutes
Quickly scale capacity, up or down, as your computing requirements change
Full root/Administrator access to a Linux/Windows virtual machine
Simple Web service management interface
Changes the economics of computing
CONSERVE CAPITAL Infrastructure Cost $ time Large Capital Expenditure You just lost customers Predicted Demand Traditional Hardware Actual Demand Automated Virtualization
EC2 HAS AN UNPRECEDENTED DURABILITY MODEL Note: Conceptual drawing only. The number of Availability Zones may vary Amazon CloudWatch Auto Scaling Elastic Load Balancing
CLOUD COMPUTING ATTRIBUTES Abstract Resources Not tied to physical hardware and can be flexible as your needs demand. On-Demand Provisioning Ask for what you need, exactly when you need it. Pay only for what you use. Scalability Scale up or down depending on usage needs. No Up-Front Costs No contracts or long-term commitments. Pay only for what you use. Efficiency of Experts Utilize the skills, knowledge and resources of experts.
Scalability means scaling up and scaling down
If we increase the resources in a system, it results in increased performance in a manner proportional to resources added. Increasing performance in general means serving more units of work, but it can also be to handle larger units of work, such as when datasets grow
A scalable service is capable of handling heterogeneity
A scalable service is operationally efficient
A scalable service is resilient
A scalable service becomes more cost effective when it grows
WHAT DO WE MEAN BY SCALABILITY?
Move to the Cloud Build for the Cloud
Design for failure and nothing fails
Loose coupling sets you free
Design for elasticity
Security is everywhere
Don’t fear constraints
Take advantage of a variety of storage options
CLOUD ARCHITECTURE LESSONS
Never expect your systems to be stable
Everything fails
Hard disks
Power supplies
Cabling
Network ports
Switches
Load-balancers
Ethernet chips
IO controllers
Fans
If you can add it, it can fail
DESIGN FOR FAILURE
Use Elastic IP addresses for consistent and re-mappable endpoints
Use multiple Amazon EC2 Availability Zones (AZs)
Create multiple database slaves across AZs
Use real-time monitoring across key access points
Use Amazon Elastic Block Store (EBS) for persistent file systems
Use Amazon EBS Snapshots for disaster recovery and increased persistence
Use Auto Scaling and Elastic Load Balancing to automatically provision new resources
Use Amazon CloudWatch to monitor instance health
HOW TO DESIGN FOR FAILURE WITH AWS
Make no assumptions about the inner workings of your components
Design for a jumble of black boxes
Loosely coupled systems and AWS
De-coupling systems allows for hybrid models (in-cloud + in-physical data center)
Balancing between clusters enables easier scaling
Using queues (Amazon SQS) buffers against failures
BUILD LOOSELY COUPLED SYSTEMS
SOA OFTEN HAS A BUS Service Bus Order Entry Credit Check Inventory Allocation Pick Ticket Generated Send Confirmation Email
ARCHITECT FOR EVERYTHING FAILS AND THEN NOTHING DOES Bus Order Entry Credit Check Bus Amazon Simple Queue Service
Components should not assume the health or location of other components
Bootstrapping and dynamic configuration helps you scale dynamically
Build management components to enable scale-out and scale-in on-demand
DESIGN FOR ELASTICITY
With AWS, physical security is free, network security is easy, and other security can be added
Building secure systems with AWS
Create distinct Security Groups for each Amazon EC2 cluster
Use group-based rules for controlling access between layers
Restrict external access to specific IP ranges and ports
Use strong passwords and certificate-based authentication
Encrypt data stored in Amazon S3
Encrypt all information transmitted across the wire
Consider encrypted file systems for sensitive data
UTILIZE SECURITY MECHANISMS
Having a flexible, on-demand pool of resources allows for different architectures that remove constraints
I need more than xxGB of RAM per instance / Distribute load across multiple instances; use a shared distributed cache
I need more than xxK IOPS on my database / Run multiple read-only copies; sharding; database clustering software
My current server specs are better than an Amazon EC2 instance / Run more Amazon EC2 instances but only when you need them
I need static IPs for my servers / Boot scripts that re-configure software from configuration database
ARCHITECTURAL CONSTRAINTS CAN BE BROKEN
Amazon S3 is optimized for storing large objects
Store persistent data
Amazon CloudFront for performance
Push popular objects to worldwide edge locations
Amazon SimpleDB for speed, scale, and simplicity
Store small bits of data that have no dependencies, such as metadata
Amazon EC2 local disk space for transient data
Amazon EBS acts like a disk drive for persistent storage
Store dynamic content or a traditional RDBMS
EMPLOY MANY STORAGE OPTIONS
Deploy internal applications for greater cost savings
Host a quick and effective marketing campaign
Take advantage of new business opportunities without time consuming procurement processes
Batch data processing
Large scale analytics
Disaster recovery
Development and test environments
Load testing applications on your own infrastructure
DIVERSE ENTERPRISE USE CASES
SAMPLE ARCHITECTURE: MIGRATING YOUR INTERNAL IT APPLICATIONS
A typical enterprise application could need:
A secure environment that is part of the enterprises’ existing network ( Amazon VPC )
Computing power ( Amazon EC2 )
Storage capacity for images, videos, backups, files, etc. ( Amazon S3 )
Indexed storage ( Amazon SimpleDB )
Relational Database ( Your favorite on EBS)
Messaging between components ( Amazon SQS )
Load balancing for optimal performance
ENTERPRISE APPLICATION DESIGN ON AWS
Create a secure connection between assets and applications within your corporate network and assets and applications that reside in AWS
Users and applications within your existing infrastructure securely interact with assets in AWS as if they were local
AMAZON VPC EXTENDS YOUR DATACENTER Your existing infrastructure Amazon VPC
AMAZON VPC ARCHITECTURE Your Network Amazon Web Services Cloud Secure VPN Connection over the Internet Subnets Customer’s isolated AWS resources VPN Gateway
Establish subnets to control who and what can access your resources
Connect your isolated AWS resources and your IT infrastructure via a VPN connection
Launch AWS resources within the isolated network
Use your existing security and networking technologies to examine traffic to/from your isolated resources
Extend your existing security and management policies within your IT infrastructure to your isolated AWS resources as if they were running within your infrastructure
AMAZON VPC CREATES AN ISOLATED ENVIRONMENT WITHIN AWS
Advantages of your on-premises infrastructure
Ensure network isolation
Works with your security tools
Employ your existing identity and authentication infrastructure
Integrates seamlessly with the rest of your infrastructure via VPN
Plus, the benefits of a cloud-based infrastructure
Don’t get trapped by CapEx
True company-level elasticity
Lower operational responsibilities and costs
Super-fast provisioning of on-demand resources
REALIZE THE BEST OF BOTH WORLDS
Available now
Amazon EBS
Single AZ in us-east-1
Amazon CloudWatch
On-Demand and Reserved Instances
Linux/UNIX and Windows
Upcoming features
Direct Internet access
Multiple AZs
Elastic IPs
Security groups
Amazon DevPay
Auto Scaling
Elastic Load Balancing
AMAZON VPC: SUPPORTED AWS FEATURES
Internal new employee provisioning application
A hiring manager visits an internal website
Enters employee information, including start date, office location, computer type, and so on
The website kicks off a series of workflows on existing systems already deployed within the company
Facilities: setup the office space
IT: setup the new computer
Hiring manager: email with forms for employee to fill out
… and so on…
Spiky usage around Summer (new interns)
No internal resources available for the application, so the organization has chosen to deploy in AWS
OUR SAMPLE ENTERPRISE APPLICATION (OLD WAY)
SETUP THE WEB SERVER IN AMAZON VPC Amazon VPC Existing Network AWS Cloud
Flexible
Choose your programming model, application platform, databases, and operating system stack
Cost-effective, pay only for what you use
Scalable
Automatically add and delete resources as they are needed
Reliable
Built on the world-class Amazon infrastructure
Secure
Connection with Amazon VPC ensures that only users within your organization can see your AWS resources
WEB SERVER RUNNING ON AMAZON EC2
USE AMAZON S3 FOR RAW STORAGE Store persistent files in Amazon S3 for lower costs, higher reliability Encrypt sensitive data AWS Cloud
USE AMAZON EBS TO HOST DATABASES AWS Cloud Configure an Amazon EBS device to host your existing relational database. Snapshots can be automatically backed up to Amazon S3.
INTERACT WITH EXISTING CORPORATE SYSTEMS Amazon VPC provides a two-way secure connection so that applications hosted in AWS can communicate with systems hosted in our existing network.
Amazon SimpleDB can be used as a cost-effective, zero-administration indexed store for your application
Amazon CloudWatch, Elastic Load Balancing, and Auto-Scaling services enable greater fault-tolerance and scalability
Amazon Elastic MapReduce can be used to crunch and analyze large amounts of data
Amazon Flexible Payments Service can handle checkout pipelines and payment methods
Amazon Mechanical Turk can be used for tasks best suited for human intervention (e.g., image upload and content approval, database cleansing, etc.)
ADDITIONAL FEATURES
AWS Management Console
Numerous cloud-based third-party providers
RightScale, CA, others
API-based control enables existing workflow applications to manage AWS resources
Existing IT management systems can extend to cloud
Amazon VPC enables existing management and operations systems, security policies, etc. to extend to cloud resources
0 comments
Post a comment