Saturday, January 24, 2015

Private Maven repository in Amazon S3

This blog post explains a convenient and cost-effective way to setup private Maven repository in Amazon S3 with CyclopsGroup awss3-maven-wagon open source package. It also talks about a few general recommended practices about setting up private Maven repository for an organization.

Read more...


Monday, September 1, 2014

Cloudpave started new open source project, Gitcon

Gitcon is an Java open source library that strives to provide a cheap solution for dynamic configuration problem. As a start, it gets properties file from a Git repository and hands it over to Spring context. Please read on in this article.

http://blog.cyclopsgroup.org/2014/09/gitcon-runtime-configuration-via-git.html

Thursday, July 17, 2014

Cloudpave blog site created

This is the very first post of Cloudpave blog site.

Cloudpave, LLC. provides software products as service. Its main focus is SaaS(software as a service) and cloud computing. The company is formed in early 2014 in the state of corns, Indiana, U.S. Check out Cloudpave at http://www.cloudpave.com. The rest of this article talks about how cloudpave.com is setup in AWS.

Following figure is a high level diagram of components and technologies involved in the setup.




1. In Route 53, www.cloudpave.com is a CNAME record that points to a Cloudfront distribution.

2. The origin of Cloudfront distribution is URL of the S3 static website from bucket www.cloudpave.com. Note that here we used custom origin with the URL of static website instead of S3 origin. This is to allow request http://www.coudpave.com/foo/ to be mapped to object s3://www.cloudpave.com/foo/index.html.

3. In Route 53, cloudpave.com is an A record with alias pointing to cloudpave.com static website directly. This means any HTTP request to cloudpave.com domain is handled by S3 website in US east-1 data center first, unlike CDN.

4. The S3 static website cloudpave.com is an empty redirection bucket in US east-1 that redirect any request to domain www.cloudpave.com. This means request http://cloudpave.com/foo/bar.html is redirected by server in US east-1 to http://www.cloudpave.com/foo/bar.html.

5. An VPC in US east-1 is setup to host Cloudpave applications.

6. In Route 53, work.cloudpave.com is a CNAME record pointing to a web application(in form of an Elasticbeanstalk environment) that shows website of http://work.cloudpave.com.

7. The web application communicates with a RESTful application(in form of an Elasticbeanstalk environment) built on top of Datamung. It also relies on an RDS instance in same VPC, a few DynamoDB tables and Simple Workflow.

8. In Route53, blog.cloudpave.com is a CNAME record pointing to a blog in Google Blogger.

In general the design is quite simple, straightforward and typical. It follows very basic design rules:
  • Static content is distributed through Cloudfront.
  • Dynamic applications run in Elasticbeanstalk. 
  • RESTful service is physically separated from web application.
  • Instances are caged in VPC
They might be common sense to you if you know AWS well. But for people who just started with AWS, I hope this article is useful to you.