BLOG

Tag: 'cloud foundry'


Iron Foundry

Windows 8 & RT Discussions, Thor, Thor .NET and vcap-client Status Updates

A few updates from the teams:

Thor

Thor is moving along with implementation of services starting yesterday (Monday). You can view our live Huboard Kanban to see what is currently being worked on. The interface in the last few weeks has gotten a faster, cleaner appearance and stabilized even more around deploying and maintaining your Cloud Foundry based environments.

Read More
Iron Foundry

Latest Alpha Release Features & Additions for the Thor Cloud Foundry UI

Hello Thor Users. We're still in alpha with Thor, but I wanted to share some of the latest progress that has been made over the last few weeks. Here's a run down point by point of the latest pull request #109:

  • Button, styles, and related materials are in line with OS-X standards for the workflow screen of deploying an application.
  • Deployments for node.js, erlang, java, .NET and the other supported applications now works.
  • More unit tests added around new key features, especially detection of the language/framework support.
  • Easier to navigate workflow wizard for deployment with appropriate drop out points, etc.
As for the next steps, our list of stories is listed on Github. Get involved and we'll have them knocked out even faster. We'd also love any input on features that are available now or in the future or any code reviews, architecture suggestions, or similar. Just join the and let's talk. Here's a list of some of the key feature stories coming in our next push:
  • Thor User wants to be able to add a service to the available services.
  • Thor User wants to view a list of services available for use.
  • Thor user wants to be able to view multiple bound services for an application.
  • Thor User wants to be able to bind a service to an application.
  • Thor user wants to see various X parameters for their running services.
  • Thor user wants to be able to view available services for their application(s).

Read More
Iron Foundry

Contribute to Iron Foundry, Here's How!

We've been asked a few times, "what's the quickest, easiest and fastest way to get the code, build it and contribute back to Iron Foundry?" Here's a quick start for doing just that.

Read More
Iron Foundry

Thor!

The Iron Foundry project has had an amazing nine months since its launch. Thank you to the entire community for your support and contributions.

Read More
Iron Foundry

Choosing the Right Database Option for Your Iron Foundry Applications

Iron Foundry offers a host of database services that developers can leverage when building Iron Foundry applications. While there may not be a “wrong” choice (although in some cases, there are horribly inefficient choices!), how can we choose the best database for the situation at hand? Below, we look at each database option in Iron Foundry and why you would, or would not, select it for your application.


MongoDB


What is it?

MongoDB is a popular open-source NoSQL database. While called a “document database”, MongoDB does not store unstructured documents like PDFs or Microsoft Word files, but rather, stores its data as JSON-like files. Each document represents a database record while a collection is similar to a database table. However, unlike traditional relational databases with a fixed schema, MongoDB collections have no such restriction and each document could have entirely different fields. Developers use the Mongo Query Language to find records in MongoDB collections. Through the use of drivers, MongoDB supports a wide variety of languages such as Ruby, Scala, C#, Node, Java and more. MongoDB supports a variety of features (such as replication and indexing) that you’d typically find in RDMS offerings, but also offers unique capabilities such as auto-sharding and batch processing via MapReduce.

When to use it?

There’s actually an excellent page on the MongoDB site that outlines the core use cases and anti-patterns. They also have a useful list of customer stories that explain (sometimes with attachments!) how they are using MongoDB. Basically, MongoDB is a good choice for high performing apps that have complex data objects with a variable schema. Don’t choose MongoDB if you have intense cross-object transactions and heavy SQL coding requirements. While there has been some backlash against MongoDB in the past year, it remains crazy popular for its performance, approachability and lively ecosystem.

Microsoft SQL Server


What is it?

SQL Server is the flagship database product from Microsoft. It uses a relational structure and is made up of databases, tables and records. The tables in a SQL Server database have a fixed schema made up of typed columns. SQL Server has some of the capabilities that you expect to find in a traditional relational database: stored procedures, indexes, constraints and cross-object transactions. Data is queried through the rich T-SQL syntax that allows variables, a full set of operations for creating/reading/updating/deleting data, control flow statements and more. Starting with SQL Server 2005, developers can also write stored procedures and triggers based on the .NET language. While SQL Server uses a proprietary data streaming format (TDS), there are still many ways to access SQL Server data from non-Microsoft clients through ODBC. There are also many libraries to make this easier in Ruby, Node, and Java. While relational databases sometimes get a bad rap for poor scalability, many high volume web sites rely heavily on relational databases like SQL Server. SQL Server consistently ranks as a leader among relational database providers  in “transactions per second” metrics as calculated by TPC.

When to use it?

If you have a relatively static data structure and have many objects with inter-relationships, SQL Server is a good choice. Likewise, if you already have an investment in SQL Server tools, then using the Iron Foundry version will be very straightforward. Developers can easily use the SQL Server Management Studio against Iron Foundry instances and treat the PaaS database just like one installed locally. Microsoft themselves tout use cases for internal business applications, high volume storage for web applications, and more.

MySQL


What is it?

MySQL, now owned by Oracle, claims to be the most popular open source database and is the “M'” in the ubiquitous LAMP (Linux/Apache/MySQL/PHP) web stack. It is a relational database that runs on multiple platforms including Linux, Windows, Mac OS, Solaris and IBM AIX. MySQL has a wide range of capabilities including support for stored procedures, triggers, database views, indexing, and ACID-compliant transactions. Something that’s unique about MySQL (vs other relational databases) is that it offers multiple storage engines that can be used for a given table. Some engines support data types that others do not, and some offer differently levels of support for transactions and indexing. There are engines provided natively, as well as engines created by partners and community members. Queries against MySQL data are performed use SQL that should familiar to anyone who has coded against databases in the past. MySQL offers a series of drivers for client connectivity and there are plenty of other libraries for technologies like Node and Ruby.

When to use it?

Some of the largest web properties in the world rely on MySQL for their data storage. Many of the same reasons that you would use Microsoft SQL Server apply here as well. Structured data, object relationships, and a need for transactions and indexing. Also, if you already have a skills investment in MySQL, then using MySQL for your Iron Foundry application is a no-brainer. The MySQL team has a very nice article on why you’d choose MySQL over Microsoft SQL Server, and Microsoft has the same sort of article on their site. You won’t really go wrong with either choice!

Neo4j


What is it?

Neo4j is an open-source, NoSQL graph database. While many of us are familiar with the other types of NoSQL databases (document databases like MongoDB, or key-value stores like Redis), graph databases are a bit more obscure. Graph databases put a high priority on the relationships between objects and makes it easy to query these relationships. In fact, it’s often much easier than querying relationships in a relational database! The “things” in a graph database are called a node, and the “relationships” are called edges. The Neo4j database is Java-based and stores its data on disk. It’s designed to be very fast and also ACID transaction compliant. The database itself can be embedded within an application or deployed as a full-fledged standalone server. While the API places a premium on Java, developers can also access it through an HTTP/REST interface. Data queries are executed using the Cypher Query Language which is designed for efficient traversal of graphs.

When to use it?

This database will be a great choice for Iron Foundry applications that place a premium on relationships between schema-less data structures. That means that this will be a good fit for social networks, genome analysis, recommendation algorithms and more.

PostgreSQL


What is it?

PostgreSQL is an increasingly popular open-source object-relational database system. You can run PostgreSQL on nearly every operating system including Linux, UNIX, and Windows. It’s a very robust database that is ACID-compliant and has features like joins, views, triggers, stored procedures and native programming interfaces for popular languages/frameworks like Java, .NET, Python, Ruby, ODBC and more. PostgreSQL has a lot of sophisticated features such as GIST indexing, table inheritance,  and a rules system. Queries against the structured tables are done using SQL and should be easy for any database programmer to use. An article about the rise of PostgreSQL generated a lengthy discussion on Hacker News where many proponents and detractors of the platform debated the merits and shortfalls of the platform. It’s a good read.

When to use it?

PostgreSQL has some prominent customers across industries. You’ll often find PostgreSQL compared to MySQL or SQL Server. In essence though, consider choosing PostgreSQL for your Iron Foundry application if you want to use an open-source database for a high-performing (web) application that uses SQL queries. It’s a great fit for complex scenarios that can take advantage of the differentiating features like inheritance and advanced query optimization.

Redis


What is it?

Redis is a fast, widely used open-source NoSQL database that uses a key-value store paradigm. Data is typically stored in-memory, although now users can optionally snapshot data to disk periodically. It runs on UNIX/Linux/MacOS (although non-production quality ports for Windows exist). Redis supports a handful of data types including strings, lists (of strings), sets (unordered collections of strings), sorted sets and hashes (which are useful for object representations). While optimized for individual key retrieval, database content can be filtered/searched through operations like ZRANGE, LRANGEGETRANGE and more. Redis also has some cool features like content expiration, and a pub/sub engine that opens up a whole host of possibilities. There are a variety of data access libraries available for languages/frameworks like .NET, Java, Node, PHP and many more.

When to use it?

Use Redis with your Iron Foundry application when you want blazing speed and have a data set that can sit comfortably in RAM. You would need to be comfortable with the prospects of losing data in the event of a server failure. Many large organizations are using Redis, often to provide a high performing caching layer to their application. You’ll also see everything from  storing session data to creating URL shorteners built with Redis.

Read More
Iron Foundry

Stackato 2.0 integrates Iron Foundry!

Today ActiveState released a new version of their Stackato PaaS built on Cloud Foundry. In this new version they've done a spectacular job integrating the Iron Foundry code into the solution, just add a Windows DEA and you're set.

Read More
Iron Foundry

PDX Cloud Foundry Hackathon

Members of the Iron Foundry Contributors Team will be attending the PDX Cloud Foundry Hackathon this coming April 14th at Puppet Labs in Portland, Oregon. If you're in Portland or want to come to Portland for a great day of Pizza, Beer, and DevOping come and check out the event. Ok, so I got your attention with the beer and pizza, but what's the hacking really about? The event is going to be multi-track with a focus on hacking the Cloud Foundry (and Iron Foundry) Code base. This track will dive into what is in the code base and how it is put together. The other track will focus on working to deploy and build applications specifically for the Cloud Foundry + Iron Foundry based platforms. In addition to the main tracks there are a few other workshops we'll be putting on. These include:

  • On Premise, Off Premise Cloud Foundry - As quoted on the description "You have internal infrastructure and external infrastructure in this "cloud" thing and would like to utilize both... we'll dive into that."
  • Cloud Foundry + Iron Foundry and Bridging the Gaps - "Now we're talking FULL stack across every major stack. Iron Foundry, the missing linq in Cloud Foundry. Adding .NET & having it play nicely with Node.js, Ruby on Rails, and more. We'll also dive into SQL Server, Mongo, and how to make the best use of RDBMS + NoSQL bits. Making the most of the abilities with PaaS."
  • The Interoperable Cloud App Gallery - "Ingy döt Net would like to see a huge collection of apps that have been made to work on any PaaS solution. Think of it as the http://rosettacode.org/ of PaaS. Ingy started a GitHub organization called Cloud-Apps that is meant to curate forks of popular apps that have been made to work with one or more PaaS solutions like:  Cloud Foundry, Stackato, AppFog, PaaS.io, Iron Foundry, OpenShift, Heroku, DotCloud, etc. He is giving out commit to whomever wants it!"
 

Read More
Iron Foundry

Iron Foundry, Stackato, a New Micro Image Pair

Today we’re releasing a new update for the Iron Foundry Micro Instance. The biggest changes are two fold. One is our full support of the Stackato from ActiveState powered micro instance. We’ve taken the great work that the ActiveState Team has done with Cloud Foundry and rolled that into our Iron Foundry enabled Micro Instance! The second big addition is full support for the Cloud Foundry Micro Cloud Foundry 1.2 release.

For those of you that have dived heavily into the overall framework, some of the specifics include changes that enhance the reliability of the controller and self-healing nature of the system.

How to get it up and running? Easy…

First download and get the Stackato Micro Cloud Running.

  1. Download the Stackato Micro Cloud here: http://www.activestate.com/stackato/download_vm
  2. Unzip the image to the location you want the image to execute from.
  3. Set the network on the staccato image to bridged.
  4. Startup the Stackato Image.
  5. When it boots up get the IP and Hostname Address. Note both the host name and IP address.
  6. The Hostname will need to be added to your hosts file, either /etc/hosts in OS-X or Linux and c:WindowsSystem32Drivershosts. Add the IP & host to the file like ‘192.168.NNN.YYYY stackato-XXXX.local’ and  ’api.stackato-XXXX.local testwebapp.stackato-XXXX.local‘ (add additional entries at the end for other web apps you intend to push)
  7. Navigate to http://stackato-XXXX.local and it will redirect to the initial setup page where you enter an email address and password. These credentials are added to the Stackato Instance, so be sure to remember them.

Next step get the Micro Iron Foundry VM Running & Communicating w/ The Stackato Micro Cloud.

    1. Download the Micro Iron Foundry VM here: https://ironfoundry.org/download (Use 7-zip to unzip, or on the Mac use a tool like the “Unarchiver”(http://wakaba.c3.cx/s/apps/unarchiver.html or get it from the App Store)).
    2. If VMWare asks if you have moved or copied the VM, choose “I copied it”.
    3. It will show “Setup is starting services” as this is a Windows VM. After it goes through the inital setup it will continue and require your input
    4. Set the timezone. Click Next
    5. Accept the licensing terms. Click Next
    6. It will now say that the users password must be changed before logging on the first time. Click OK and set the password (make sure to remember the password!)
    7. After setting the password you will now be logged into the core terminal prompt. You can now enable Iron Foundry on your Cloud Foundry Micro Cloud. (Make sure your Cloud Foundry Micro Cloud is running at the same time)
    8. Boot up the Micro Iron Foundry instance. It will prompt you for a password for the Administrator user.
    9. At the command prompt (C:UsersAdministrator) execute these commands:
    10. C:UsersAdministrator>cd C:IronFoundrySetup
    11. C:IronFoundrySetup>RunSetup.cmd
    12. At the prompt enter your domain stackato-XXXX.local, IP address and password.
    13. It will then connect via ssh, patch the system, restart the cloud controller, and setup the local SQL provisioning services in the Iron Foundry VM.
command line results

Once the setup process is done you can use Cloud Foundry Explorer (https://ironfoundry.org/download) to push an ASP.NET application. I’ve attached a sample ASP.NET application. Click the gear icon to add a cloud, click the green + button to add a New Server. Rename server to something and add an api url of api.stackato-XXXX.local, email and password. Clicking ”Validate Account” should succeed. Once the cloud is added, you can use push and choose that cloud to publish to it. You should use “testwebapp” as the name since you added it to the hosts file above. Once pushed, you can visit http://testwebapp.stackato-XXXX.local to browse to your application, and http://testwebapp.stackato-XXXX.local/env to see more detailed info.

To get involved with Iron Foundry check out the project at https://ironfoundry.org and Cloud Foundry at http://www.cloudfoundry.org/. With the code available on github at https://github.com/IronFoundry or https://github.com/cloudfoundry.

Read More
Iron Foundry

Open PaaS for Enterprise Devs - A free session at the Cloud Connect Conference

Open PaaS for Enterprise Devs - A free session at the Cloud Connect Conference, Wed Feb 15, Santa Clara Hyatt Room G

This free session at the Cloud Connect conference is for anyone who wants to learn how open PaaS is enabling enterprise developers. It’s also an ideal opportunity for an informal meet-up of anyone in the Cloud Foundry community interested in deploying PaaS behind the firewall.

Cloud Foundry’s James Watters and Jared Wray from the Iron Foundry team at Tier 3 team up to share insights, best practices and how to’s–with good info for both developers and infrastructure architects. You’ll hear an update on Open PaaS services including Cloud Foundry and why now is the right for IT Ops to transform their thinking from VMs to apps and services. You’ll learn why PaaS may be the best bet yet for quickly enabling Devs with access to the latest technologies for a more agile enterprise. And, we’ll share best practices tips and tricks from  real experiences deploying PaaS on a public cloud that can be applied today in your private cloud environment.    Our hands-on PaaS demos will include:

  • How an Open PaaS can free-up enterprise  to support “any” language in their dev environments: We’ll  deploy  a multi-tier application with Node.js, .NET WCF, and PHP or Java as the front end.
  • How to scale and consume services with PaaS:  we’ll show how to leverage PaaS to scale the application layer while enabling custom, consumable enterprise services

Want to join the free session (and stop by to get some good swag on the Expo Floor) Simply register yourself on the Cloud Connect site for a Free Expo Pass (use priority code CPNACC95). If you are interested in joining the whole conference, that code will get you a 25% discount.

See you in Santa Clara!

Read More