Microservices, Devops, Scala, Akka, Spring Boot and more…

Spring Boot Microservices

RXJava/Reactive

 Microservices

New Open Source From IBM

NodeJS Metrics

Agentless System Crawler

DevOps Report

Scala / AKKA

Everything about Tor

Containers

Java 8

Test Data and Generated Data

http://www.fakenamegenerator.com/advanced.php?t=country&n%5B%5D=us&c%5B%5D=us&gen=50&age-min=19&age-max=85

http://www.wordgenerator.net/fake-word-generator.php

http://www.json-generator.com/    <–  nice one

http://www.generatedata.com/

http://www.agilemobiledeveloper.com/2014/01/06/data-generator-and-data-migration/

https://www.mockaroo.com/

http://www.fakemailgenerator.com/   <- really but they receive email

http://www.databasetestdata.com/generated-data

http://www.convertcsv.com/generate-test-data.htm

http://c2.com/cgi/wiki?TestDataGenerator

https://github.com/mvisonneau/docker-generatedata

http://finraos.github.io/DataGenerator/

https://randomapi.com/

https://randomuser.me/

http://www.freedomaingenerator.com/

QuickHit: Check Mail Checking from AWS EC2 with JavaMail

To avoid having to install maven or gradle or specialized tools, we just put in a simple class and shell script.    First download the mail jars you need from here.   A simple wget will work on the links.  Keep them in the same dir as the .java and you can use the shell script below.   Real quick and dirty, but works for testing if your local EC2 instance can send email and there’s no firewall or other issues.

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

try { Properties props = System.getProperties();
                props.put("mail.smtp.host", "localhost");
                props.put("mail.debug", "true");
                Session session = Session.getDefaultInstance(props, null);
                session.setDebug(true);
                Transport transport = session.getTransport("smtp");
                MimeMessage message = new MimeMessage(session);
                Address fromAddress = new InternetAddress("root@localhost.localdomain");
                message.setFrom(fromAddress);
                InternetAddress to = new InternetAddress("tspann@COOLDOMAIN.com");
                message.addRecipient(Message.RecipientType.TO, to);
                message.setSubject("Test Mail");
                message.setText("Test Body");
                transport.connect(host, from);
                message.saveChanges();
                Transport.send(message);
                transport.close();
            } catch (Exception x) {
                x.printStackTrace();
            }
    }
}

mailcheck.sh

javac -cp imap-1.5.4.jar:javax.mail.jar:smtp-1.5.4.jar MailCheck.java
java -cp imap-1.5.4.jar:javax.mail.jar:smtp-1.5.4.jar:. MailCheck

AWS Summit 2015 Slides of Interest

AWS Security

http://www.slideshare.net/AmazonWebServices/nyc-room2-architectingforgreatersecurityinawsbillshinn

http://www.slideshare.net/AmazonWebServices/intro-to-aws-security-50364629

Cost Optimization

http://www.slideshare.net/AmazonWebServices/nyc-room1-costoptimizationfinal20150708

http://www.slideshare.net/AmazonWebServices/creating-a-culture-of-cost-management-in-your-organization-50364904

DevOps

http://www.slideshare.net/AmazonWebServices/nyc-room1-accelerating-devops-pipelines-with-awskoswilms

http://www.slideshare.net/AmazonWebServices/devops-at-amazon-a-look-at-our-tools-and-processes-50364582

AWS EC2 Contianers (DOCKER)

http://www.slideshare.net/AmazonWebServices/amazon-ec2-container-service-manage-dockerenabled-apps-in-ec2-50366981

Introduction to EC2

http://www.slideshare.net/AmazonWebServices/intro-to-aws-amazon-ec2-and-compute-services-50366686

Scaling

http://www.slideshare.net/AmazonWebServices/deep-dive-scaling-up-to-your-first-10-million-users-50366610

VPC

http://www.slideshare.net/AmazonWebServices/deep-dive-amazon-virtual-private-cloud-50365029

http://www.slideshare.net/AmazonWebServices/deep-dive-amazon-virtual-private-cloud-50365085

AWS Elasticache

http://www.slideshare.net/AmazonWebServices/intro-to-aws-database-services-50364961

AWS Lambda

http://www.slideshare.net/AmazonWebServices/aws-lambda-eventdriven-code-in-the-cloud-50364719

AWS EBS

http://www.slideshare.net/AmazonWebServices/deep-dive-maximizing-amazon-ec2-and-amazon-elastic-block-storeperformance

Spring Cloud Configuration

Monday Cool Links

Monitoring and Metrics

https://github.com/nerdalert/cloud-bandwidth

https://www.pagerduty.com/blog/best-metrics-devops-culture/

http://www.slideshare.net/melaniemj/monitoring-is-never-done

https://speakerdeck.com/chrissiebrodigan/measuring-hard-to-measure-things

Culture

http://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead

Tools

https://github.com/EverythingMe/redash

http://githubengineering.com/brubeck/

Servers and Services

https://github.com/CiscoCloud/mesos-consul

DevOps Techniques, Tools and Processes

http://www.daniellesucher.com/presentations/gamedays/#/

http://www.slideshare.net/brendangregg/monitorama-2015-netflix-instance-analysis

Microservices

http://www.slideshare.net/dbryant_uk/devoxxuk-2015-the-seven-deadly-sins-of-microservices-full-version

Reactive

http://saulmm.github.io/when-Iron-Man-becomes-Reactive-Avengers2/

http://www.philosophicalhacker.com/2015/06/19/introduction-to-rxjava-for-android-pt-2/

Big Data

http://blog.acolyer.org/2015/06/18/spinning-fast-iterative-dataflows/

http://vision.cloudera.com/apache-kafka-a-platform-for-real-time-data-streams-part-2/

http://www.slideshare.net/julienledem/how-to-use-parquet-hadoopsummitsanjose2015

Why 12 Factor Application Patterns, Microservices and CloudFoundry Matter? Part 2 – What to change and how.

I first described a difficult scenario that I faced a few years ago.   This article is my recommendations to the current custodians of that project on what to change and how.

With the help of open source frameworks like Spring Cloud and open source platforms like Cloudfoundry, you aren’t forced into having a fragile, manual SDLC.   The first step is to embrace change and join a vibrant community that is succeeding in software development.

 

Overview

  • Increase agility through process, tools and culture
  • Examine the code and depedencies, determine modules based on business domain.
  • Refactor the monolithic EAR into microservices living in JARs guided by the 12 Factor Application patterns and microservices recommendations.
  • 12FA – III – Store configuration in the environment (or even better use a configuration server)
  • Change the Development Process, Frameworks, Libraries and Tools.
  • Change the Build Process and Tools.  Embrace Gradle, Maven, JDK 8.
  • Change the Delivery Process.   Enact Continuous delivery.
  • Change the Database modifications and migration Process and Tools.
  • Change the run-time platform from legacy application server to a PaaS.
  • Centralize the logging.    Using PCF Loggregator and tools like ELK and PaperTrail.
  • Embrace industry standard open source tools, libraries and frameworks
  • Good code fails when you don’t have good process and a platform to help you.
  • Good teams fail when you don’t have a good culture that embraces DevOps, microservices and not giant monoliths.

 

So how could we have improved our process?   The first step is to admin you have a problem and seek help.   By looking to the community, open source and successful startups that have faced similar struggles with monolithic J2EE code bases (Ebay, Netflix), we can determine some functional patterns.

 

Patterns and Principles for Change

  • Use Jenkins to deploy your app with no downtime to CloudFoundry.
  • Use CloudFoundry deployments to do A/B testing with no downtime or difficulty.
  • Bind to database, using the same process in development, test, Q/A and production.   No manual configuration or configuration changes.   Operators make available the correct database settings through the marketplace.  Same manifest and bindings will point to different databases in different spaces.
  • To migrate database changes use flywaydb or liquibase.   These are very well integrated into Spring Boot.
  • Look at NoSQL for part of your database workload, polyglot persistence makes sense in many cases.   For MongoDB development, you handle change management with Mongeez, which is automatically done with JHipster.
  • Smoke tests and automated tests tied to Jenkins.
  • Test against CloudFoundry development for local development, fast deployments, run unit and integration tests locally.
  • Use Maven or Gradle for builds, not ANT.
  • Use Circuit breakers in your web calls to avoid breaking systems and fail safely.
  • Use APM and JMX for deep checks using Pivotal Ops Metrics for CloudFoundry.
  • Have automated scripts check one log stream.  Use tools like ELK (ElasticSearch+Logstash+Kibana) to examine logs.
  • Use CloudFoundry containers that don’t make you SSH to many machines, removing a big manual step that could be a security issue.
  • Move to using smaller, lighterweight Spring Boot Jars and Wars; not giant EAR files.
  • Use lightweight web containers like Jetty, Tomcat, tcServer, or Undertow.
  • Use lightweight frameworks, remember YAGNI and KISS.
  • Read and embrace:  Release It!
  • Break up the apps into smaller, logical components that model real business functionality.
  • Refactor existing code guided by tests, enhancing and adding more tests as the code evolves.  Remembering to use code coverage tools like Jacoco.
  • Design clean RESTful APIs guided by SRP (Single Responsibility Principle).
  • Use smart, modern opinionated frameworks for development like Spring Boot, DropWizard and RatPack.
  • Install GVM and use it to install SpringBoot, Gradle, Groovy, LazyBones and other great tools.  example:   gvm install springboot
  • Use Spring Cloud Connectors, Spring Cloud Netflix projects for Service Discovery and other useful services to enable microservices orchestration and development.
  • Use a very helpful application generator like JHipster.
  • Use Domain Driven Design.
  • Keep to the basics of OOD for existing code and Functional Reactive Programming for new code.
  • Document your API with Spring REST Docs or Swagger.  There is a great presentation on that here.
  • Start your green field projects with one button click or use the Spring CLI (spring init -d=web,data-jpa,actuator,data-rest –build=maven newappdir/).

 

References

Service Discovery

SecurityScorecard Partners with Sequoia in 12.5 Million Series A Funding Round

Vert.x + Yoke (Polyglot Answer to Node.js + Express) + WebSockets on many clouds

http://www.infoq.com/news/2013/05/high-volume-vertx

http://www.slideshare.net/samueltauil/vertx-judcon

http://pmlopes.github.io/yoke/

https://github.com/core9/vertx-yoke-engine-closure

https://github.com/core9/mod-mongo-persistor

Vert.x 2.0 Developing Vert.x with Maven · vert-x/vert.x Wiki

Yoke a middleware framework for Vert.x: Java-Tutorial

zznate/nodej · GitHub

Edge Framework –

Vert.x takes first step towards Eclipse Foundation

cloudfoundry-samples/vertx-vtoons · GitHub

The WebSocket API

Nodyn: Node.JS for the JVM

Vert.x Installation Guide

zznate/intravert-ug · GitHub

Netty: Home

Yoke a middleware framework for Vert.x: Benchmark

Vert.x 2.0 Developing Vert.x with Maven · vert-x/vert.x Wiki

Getting Started With vertx (vert.io) – an Alternative to node.js | Web Builder Zone

zznate/edge · GitHub

CloudBees-community/vertx-clickstack · GitHub

Vert.x

Vert.x – the Node.js for Java in the Cloud | OpenShift by Red Hat

Deploying vert.x Applications to Cloud Foundry | CloudFoundry.com Blog

Fun with Scala and Vert.x | Javalobby

sockjs/sockjs-client · GitHub

Reactor pattern – Wikipedia, the free encyclopedia

Vert X Vs Node Js – Latest Technology News | TechNewsNow.com :: TechnewsNow.com

openshift-quickstart/vertx-openshift-quickstart · GitHub

purplefox/openshift-vertx · GitHub

Running a Java Vert.x app on Heroku

Using web workers – Web developer guide | MDN

Asynchronous concurrency with vert.x – part 1 | synyx – Blog

Asynchronous concurrency with vert.x – Part 2 | synyx – Blog

yoke/example/persona at master · pmlopes/yoke · GitHub

yoke/example/kitcms at master · pmlopes/yoke · GitHub

 

Codenvy

I love this IDE.  It connects to PAAS, easily and without effort.

 

In my example I easily create a Spring application and could run on their local server and easily deploy to AppFog.    It also works with CloudFoundry, CloudBees, Heroku and OpenShift.  All of which have free versions.

It works with Maven and is similiar to Eclipse.

 

codeenvy1 codeenvy2

codeenvy3

 

 

 

Node.js for Production

Coding Guides

10gen: M101J MongoDB for Java Developers – Week 2

M101J

This class has been going great.

The flow of the class is great and it’s worked well on Windows with Eclipse, Maven and JDK 1.6.

Some notes and links:

BSON
document oriented database
The Spark web framework for Java is nice, very small and simple.

 

MongoClient client = new MongoClient();
DB db = client.getDB(“school”);
DBCollection people = db.getCollection(“people”);

 

Sunday’s Best

SPOCK FOR TESTING
vs just mocking
Continuous Integration JEE
Very cool, you can now use CloudBees Jenkins to Build Cloud Foundry Apps!

Agile


Coding Practices


Spring


REST


HTML5 / CSS3

 

Links of the Day

Node.JS Links

 

OpenShift Spring WebApp / Tomcat

OpenShift Express / Node.js

https://openshift.redhat.com/community/blogs/using-nodejs-mongodb-express-for-your-spatial-web-service-and-its-free

 

MongoJEE

https://github.com/angelozerr/mongo-jee/wiki/Mongo-JEE-Demo-with-Apache-CXF-and-Dojo

http://mongo-jee.opensagres.cloudbees.net/

https://github.com/agilemobiledev/mongo-jee

 

Mongodb on OpenShift
HibernateOGM / Mongodb On Openshift
Redmine (Ruby on Rails implementation) – project management SAAS
Android REST Client

https://github.com/agilemobiledev/spring-security-examples.git

https://github.com/shekhargulati/todo-spring3.2.1-with-tests

https://github.com/agilemobiledev/openshift-devdayuk

 

 

Spring Tutorials – Links

http://tshikatshikaaa.blogspot.com/2012/09/spring-mvc-customized-user-login-logout.html

http://tshikatshikaaa.blogspot.com/2012/09/spring-mvc-service-dao-persistence.html

http://tshikatshikaaa.blogspot.com/2012/08/jpa-tutorial-with-examples-using-hibernate-standalone.html

http://tshikatshikaaa.blogspot.com/2012/10/spring-mvc-form-validation-with-annotations.html

http://tshikatshikaaa.blogspot.com/2012/09/junit-testing-spring-service-and-dao.html

http://tshikatshikaaa.blogspot.com/2012/09/spring-mvc-controller-junit-testing.html

http://tshikatshikaaa.blogspot.nl/2012/09/spring-web-jpa-hibernate-in-memory.html

http://tshikatshikaaa.blogspot.com/2012/11/serving-static-resources-with-spring-mvc.html

http://tshikatshikaaa.blogspot.nl/2012/09/junit-testing-spring-service-and-dao.html

http://tshikatshikaaa.blogspot.com/2013/01/anatomy-of-default-openshift-spring-web.html

http://tshikatshikaaa.blogspot.nl/2013/01/spring-selenium-tests-with-annotations.html

http://tshikatshikaaa.blogspot.com/2012/11/spring-mvc-rest-calls-with-http-only.html

http://www.infoq.com/presentations/Introduction-WebSocket

http://tshikatshikaaa.blogspot.com/2012/11/spring-mvc-rest-calls-from-java.html

http://tshikatshikaaa.blogspot.com/2012/10/setting-logging-dependencies-in-spring.html

http://tshikatshikaaa.blogspot.com/2012/11/spring-mvc-rest-calls-with-ajax.html

http://tshikatshikaaa.blogspot.com/2012/10/returning-json-in-spring-with-annotations.html

http://tshikatshikaaa.blogspot.com/2012/11/fetching-json-with-ajax-in-spring-mvc-context.html

http://tshikatshikaaa.blogspot.com/2012/11/introduction-to-spring-jpa-data-features.html

http://tshikatshikaaa.blogspot.com/2012/11/spring-mvc-error-handling.html

http://www.dzone.com/links/r/caching_with_spring_data_redis.html

http://www.dzone.com/links/r/spring_mvc_how_to_use_sessionattributes_annotation.html

http://www.dzone.com/links/r/cloud_stack_of_your_dreams_bootstrap_and_spring_r.html

http://www.dzone.com/links/r/spring_roo_and_twitter_bootstrap_roostrap_for_spr.html

http://www.dzone.com/links/r/spring_transaction_propagation_tutorial.html

http://www.dzone.com/links/r/rest_services_with_jaxrs_and_spring_handling_lost.html

 

 

 

 

 

sj:mug Holiday Mongo Talks

MongoDB @ HP in Mt Laurel, NJ

 

 

My local demo is hitting a MongoDB instance at MongoLab, the provide free hosting for a small dataset.

 

I have a simple application based on Spring Data for Mongodb.

 

MongoOperations mongoOps = null;
 AppConfig config = new AppConfig();
 try {
 mongoOps = config.mongoTemplate();
 } catch (Exception e) {
 e.printStackTrace();
 logger.error("Mongo Connection Error", e);
 }

 Person person = mongoOps.findOne(new Query(where("name").is("Joe")), Person.class);
 logger.info(person.toString());

 model.addAttribute("MongoInfo", person.toString());

 

august 2012 – 2.2
aggregation framework
improved concurrency
mongo is great for email storage / documents
aggregation  – unix style piping
TTL (time to live)
garbage collect data
unwind an array

 

 

Nodester Node.JS + Express + Mongo App Part 1 – Nodester

The Running Node.JS Application on a Nodester

 

I am still working on putting up a full application for the tutorial.  Also I will try the same application on Nodejitsu, CloudFoundry and Heroku.

The following are the basic steps for working with Nodester. It is very similiar to all the other command-line PaaS interfaces. I am running this on
Windows, but it will work in most environments.

 

npm install nodester-cli -g
nodester user setup <username> <password>
nodester user setkey c:.sshid_rsa.pub
nodester app create <appname>
nodester app init <appname>
nodester npm install express
nodester npm install mongoose
nodester npm install socket.io

git add .
git commit -am "Ready to deploy"
git push nodester master

nodester app info
nodester app stop|start|restart
nodester app logs

For nodester they push to master for Nodester to get a new build.

Log into your Application List Page on the Administration Site for Nodester and you will see your newly added Application. Nodester has a good help system that will be useful to you while learning. The git commands are standard GIT which makes using all the cloud systems pretty similiar.

After uploading, I check the logs for errors:

nodester app logs
nodester info Showing logs for: rollerderby
New PID: 18884
chroot_runner
chroot_runner
Spawing /app/server.js
Running node v-0.8.1
:: nodester ::

App listening on port 19885

nodester info ok!

nodester deployed

 

I used there out of the box example and added a connection to my test mongo db database at MongoLab.

 

Link Section:

The final deployed application from this tutorial

http://blog.nodester.com/post/3634535277/running-websockets-on-nodester

http://blog.nodester.com/post/19902515151/tips-for-windows-users

http://blog.nodester.com/

https://github.com/nodester/nodester/wiki/

Restify with Mongodb and Mongoose (src)

Backbone.js Boilerplate

Node.JS Mongodb Native Driver

Mongoose Driver

Mongoose Tutorial

Node.JS and Mongodb Video Tutorial

Node.JS / Mongodb / Mongoose Tutorial

Finding Documents in MongoDB with Mongoose

Node.js Tutorial

Restful API with Node.js and Mongodb + Expresss & Mongoose

Backbone.js Fundamentals

Mongoose Model Definition

No, Not Python, It’s the Holy Grails…

I’ve been evaluating a few different technologies for doing some rapid web development work and recently I have been looking at the bounty of available tools, libraries, frameworks and associates of Spring.  Spring ROO and Groovy/Grails are the big two RAD tools from SpringSource and they look pretty amazing.  I don’t think I’ve found the Holy Grail of Web App development, but these two tools are really helpful in rapidly developing apps.  I am hoping someone combines Roo or Grails with Vert.x to make a really awesome alternative to Node.JS.  I like Node.JS and have been doing JavaScript for a decade, but I prefer the languages of the JVM and Vert.x’s support for multiple languages is pretty awesome.  Hmmm, Vert.x in Grails.

With the excellent STS inside Eclipse, this gives Groovy and Java a great IDE for development, testing and debugging.  And that is something that is lacking for Node.JS.  Node.JS has a few tools out there, but nothing open source, free, full of awesome mature plugins (PMD, Checkstyle, GIT, Maven, JUnit, FindBugs, …) and just plain easy to use.  Eclipse also has plugins for working with CloudFoundry, Heroku, OpenShift and other Cloud environments.

Between Grails and Roo, I really like the fact that I can remove Roo at anytime and still have a fully functionally application setup that utilizes standard Spring tools.  It’s also easier to add other cool Spring projects like Spring Social, Spring Mobile, Spring Data and more.

Both Grails and Roo support MongoDB very well and that’s great too see.  I have a few Mongo DB instances on MongoLab, MongoHQ and OpenShift.  These services all have great free developer services that are great for learning, prototyping and for tutorials.  I am really loving Heroku and OpenShift.  It’s hard to pick one, so I didn’t.  I use them both.

Vert.x + Groovy is really cool, but again not much IDE support, tools or extra libraries.  It should grow start building support now, but competition with Node.JS is pretty fierce.

Interesting, Roo vs Grails Jobs.

 

 

But if you look at just Spring (which Roo is just a tool to help with a Spring project):

 

 

There’s also some great documentation, tutorials and books on Groovy/Grails since it’s been out for a while:  http://grails.org/Tutorials  http://www.infoq.com/minibooks/grails-getting-started On the other hand, Roo is newer, but since it generates standard Spring + Java, you are really just getting a good head start on your project.

Heroku has a nice article on using both with their awesome platform:   https://devcenter.heroku.com/articles/grails  and https://devcenter.heroku.com/articles/spring-mvc-hibernate.

I will post a Github repository of some samples soon.

 

Grails

http://grails.org/screencasts

http://grails.org/Tutorials

http://www.infoq.com/minibooks/grails-getting-started

http://www.youtube.com/watch?v=XIoBfhFR9h0

Grails with STS
http://grails.org/screencast/show/50

Basic Security
http://grails.org/screencast/show/49

http://www.grailsexample.net/

Authentication
http://www.ibm.com/developerworks/java/library/j-grails04289/index.html

http://grails.org/Download

http://grails.org/plugins/

http://akanoo.org/

http://grails.org/doc/latest/guide/gettingStarted.html#requirements

Groovy + Grails + H2

http://grails.org/plugin/mongodb

grails install-plugin mongodb
http://grails.org/doc/latest/guide/gettingStarted.html#creatingAnApplication
http://www.springsource.org/sts

Grails + HTML5 + Android + Cloud
https://manijshrestha.wordpress.com/2011/09/10/building-a-native-kind-of-android-app-using-grails-html-5-css-javescript-hosted-on-cloudfoundry/
http://grails.org/FAQ
http://grails.org/doc/latest/guide/commandLine.html#antAndMaven
http://www.grailsexample.net/introduction-to-grails/
http://grails.org/Developer+Documentation
Getting Started with Grails Part 1
http://grails.org/screencast/show/22
http://en.wikipedia.org/wiki/Grails_(framework)#Persistence
http://www.redtoad.ca/ataylor/2012/02/simple-servlets-in-groovy/
http://blog.hypergeometric.com/2012/03/06/groovy-a-reasonable-jvm-language-for-devops/
http://www.craigburke.com/blog/2012/02/09/creating-google-calendar-in-grails-part-1-the-model/
https://github.com/craigburke/google-calendar-grails
http://grails.org/plugin/qrcode
http://www.objectpartners.com/2012/01/12/generating-excel-from-grails/
http://www.bobbywarner.com/2012/01/09/getting-groovy-with-coffeescript/
http://grails.org/plugin/jxl
https://github.com/bobbywarner/grails-coffeescript-demo
http://ui-patterns.com/patterns/ContinuousScrolling
Push AJAX (PJAX) to Grails
http://www.bobbywarner.com/2012/04/23/add-some-pjax-to-grails/
http://pjax.heroku.com/
https://github.com/defunkt/jquery-pjax
http://www.bobbywarner.com/2012/03/19/making-money-with-grails/
http://www.bobbywarner.com/2012/01/12/another-adventure-with-grails-and-coffeescript/
https://stripe.com/
https://github.com/bobbywarner/grails-coffeescript-demo2
Android
http://vladnevzorov.com/2011/07/04/android-application-architecture-part-iv-android-application-integration-layer/

 

Cloud Hosting on Heroku

Spring MVC Hibernate App
http://afternoon-dusk-5755.herokuapp.com/people/

Example Facebook Node.js App
https://furious-moon-7006.herokuapp.com/

Java | Heroku Dev Center (OpenJDK 6)
https://devcenter.heroku.com/categories/java

Java Web App with Tomcat 7
https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat

Non-Web Java Processes
https://devcenter.heroku.com/articles/run-non-web-java-processes-on-heroku

Heroku Status
https://status.heroku.com/

The Process Model
https://devcenter.heroku.com/articles/process-model#mapping_the_unix_process_model_to_web_apps

 Java FAQ
https://devcenter.heroku.com/articles/java-faq

Java Spring/MVC/Hibernate Tutorial
https://devcenter.heroku.com/articles/spring-mvc-hibernate

Managing SSH Keys
https://devcenter.heroku.com/articles/keys#adding_keys_to_heroku

For Windows 7 Enterprise, I needed to use “id_rsa.pub” to initialize the key, I couldn’t put in a path.   So I cd to the location of the public key.  For tracing ssh, -vT, allows for verbose tracing.

heroku keys:add “id_rsa.pub”

ssh -vT git@heroku.com

git clone git@heroku.com:aMYHEROKUAPP.git -o heroku

Facebook on Heroku
git commit -am “changed greeting”
git push heroku master

Foreman

http://blog.daviddollar.org/2011/05/06/introducing-foreman.html

Node.JS on Heroku
https://devcenter.heroku.com/articles/nodejs

Introduction to Heroku for Java Developers
https://devcenter.heroku.com/articles/intro-for-java-developers

Using the Heroku Command Line Interface(CLI)
https://devcenter.heroku.com/articles/using-the-cli

Creating Applications from the CLI
https://devcenter.heroku.com/articles/creating-apps

GIT Repository SSH Fingerprints
https://devcenter.heroku.com/articles/git-repository-ssh-fingerprints

Heroku CLI Authentication
https://devcenter.heroku.com/articles/authentication

Installing Heroku CLI
https://devcenter.heroku.com/articles/heroku-command

Managing Heroku Processes
https://devcenter.heroku.com/articles/ps

Facebook App on Heroku
https://devcenter.heroku.com/articles/facebook