Thursday, November 6, 2014

Amazon Web Services Cloud PaaS using Elastic Beanstalk on top of Elastic Compute Cloud

In progress - 20141104


Purpose:

    Embrace DevOps by running everything in the cloud - the only thing you need locally is a very good developer machine.

How to become a DevOps developer.
    I need a platform as a service solution for both the application server layer and the database layer but I would like to retain some control over the infrastructure.  There are several solutions including Oracle Cloud, Google AppSpot, Pivotal CloudFoundry, Cloudbees, Heroku and other providers - however there is one service that has almost everything we need - Amazon Web Services.

    I ran Oracle cloud for 6 months - specifically the PaaS offering around their $275/month Java service and their $250/month database service.
http://eclipsejpa.blogspot.ca/2013/06/java-cloud-providers-review.html

However, I found that it did not offer the flexibility that AWS currently offers in a combined Iaas and PaaS model.

Account Setup:

Get an Amazon Web Services account at http://aws.amazon.com
Get Atlassian JIRA, Bitbucket and Bamboo accounts
Link your bamboo and jira accounts https://confluence.atlassian.com/display/BITBUCKET/Linking+Bitbucket+and+GitHub+accounts+to+JIRA
Elastic Beanstalk supports Java 8 and Tomcat 8 but you need to enable Java 8 first https://jira.atlassian.com/browse/BAM-15299#

Developer Setup:

A good machine - ideally the top Mac Pro
VMware Fusion for running multiple OSX, Redhat and Windows virtual machines
MySQL (or PostgreSQL)

Connect to your EC2 or RDS instance

Follow

obrienlabs-mbp15:keys michaelobrien$ chmod 400 obrien_systems_aws_20141115.pem  obrienlabs-mbp15:keys michaelobrien$ ssh-add obrien_systems_aws_20141115.pem obrienlabs-mbp15:keys michaelobrien$ ssh -i obrien_systems_aws_20141115.pem ec2-user@ec2-11-222-333-444.compute-1.amazonaws.com https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
No packages needed for security; 1 packages available Run "sudo yum update" to apply all updates. [ec2-user@ip-172-31-01-01 ~]$ 
or
obrienlabs-mbp15:keys michaelobrien$ ssh-add obrien_systems_aws_20141115.pem
to bastion
obrienlabs-mbp15:keys michaelobrien$ ssh -A ec2-user@ec2-11-222-333-444.compute-1.amazonaws.com
then to instance
obrienlabs-mbp15:keys michaelobrien$ ssh ec2-user@ec2-172-20-1-244.compute-1.amazonaws.com

Make sure you are using the latest AWS CLI as some API has been upgraded
[ec2-user@ip-10-0-1-106 ~]$ aws --version aws-cli/1.5.1 Python/2.6.9 Linux/3.14.20-20.44.amzn1.x86_64

Integration:

    You will want Continuous Integration support in the form of a GIT hosting service that supports Maven.   GitHub is one possibility but I find the Atlassian has a rich ecosystem that integrates very well with Amazon AWS.  A bamboo build account can automate building and deploying to your elastic beanstalk EC2 instances with a minimal amount of scripting.



Throughput:

http://java.awsblog.com/post/TxBSZ02ZOG3VPZ/AWS-SDK-for-Java-Maven-Modules

ScaleArc

ScaleArc as a software SQL cache and read/write sharding proxy sees its best performance when the number of threads is a small multiple of the number of cores in the proxy.
http://java.dzone.com/articles/scalearc-benchmarking-sysbench

20141112 AWS re:Invent Keynote


AWS EC2 container service (docker)
https://aws.amazon.com/ecs/
ECS arrived 20141218
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html

Google just came out with an alpha version of their microservices container – a 3rd option to look at briefly.  


High Availability live key rotation and tracking
AWS Key Management

There is no easy way to see what all is running and what the ecosystem connections are
AWS Config

Additional tracking on top of AWS CloudTrail
AWS Service Catalog

CI and CD
AWS CodeCommit
AWS CodePipeline
AWS CodeDeploy

AWS Aurora  (Cloud native DB)


20141113: AWS Lambda Compute Service
After you ask to be in the preview
https://console.aws.amazon.com/lambda/home?region=us-east-1#/create

get up to speed on node.js
https://aws.amazon.com/sdk-for-node-js/



Total Pageviews

Followers