Lots of getting started questions

Hello,

For the past 4 or 5 weeks I’ve been researching and trying different architectural solutions for my next web project. Once I realized that starting with an API was the way to go I eventually found DreamFactory knew this was the solutions I’ve been looking for.

I want to be sure that I start on a solid foundation before I get too far into things so I am hoping someone can share some words of wisdom.

Sorry this is so long but maybe it can help out others too.

Thank you!


Which host?

Options for me were Azure, Amazon, or OpenShift. I then dropped Azure due to their pricing. I then dropped Amazon because I couldn’t figure out their pricing. OpenShift seemed like a good option after reading Case Study: A Mobile App for Ski Patrollers. Also, OpenShift’s pricing model seems to favor a small developer staring out and growing without an eventual price spike like many providers I am seeing.

So my question is how does Amazon’s pricing model compare to OpenShift’s? Amazon has these things called “EC2 Instance Types” but I have no clue what is needed to run my app.

If there is no opinion on this or OpenShift is comparable then I’ll just stick with Openshift.


What DB?

It’s great that DreamFactory provides connectivity to so many databases but I can’t find any reason to choose one over another. My thinking is that because MySQL is available on more hosting providers then moving would be simple.

Also, DreamFactory says that the, “…default database is a local MySQL setup…”, so maybe it works better with that.

So the question is, does this matter for performance, ease of use, etc.?


Indexes?

I can’t find any information on setting indexes. Does DreamFactory do this automatically?


Database Maintenance?

If I change my models/API does DreamFactory automatically remove columns from relational databases. If not is there a way to do so or is the database supposed to be “black box”?


What starting code base?

I want to use AngularJS with authentication. I went through the three very well done authentication tutorials but I don’t know if this is the best code base to start with. The reasons why are:

1 - This text in the last tutorial that says,

The rule I follow is…‘don’t load it if they are not supposed to see it’. DSP Roles will help with this functionality but to truly build custom access to data you’ll need to employ the much more powerful Server Side Scripting feature that’s available in DSP version 1.5.x. There is a tutorial for this on the way.

However, I cannot find this new tutorial and I believe the current DSP version is 1.7.8.

2 - The final code in GitHub hasn’t been updated in over 5 months.

So what is the best starting code that is current and includes the latest features and best practices for AngularJS authentication?


What next?

I currently have a gear on OpenShift running PHP 5.4. I installed their client tool, connected to my gear via git, and, just for testing purposes, successfully pushed a change.

But I am not clear at this point how I get DreamFactory installed. Do I download the latest dsp-core and then push it to OpenShift? I’m just a little lost here.

Also, when DF says MySQL is automatically installed locally does that mean I don’t have to install MySQL?


The End

If you’ve made it this far you’re awesome! I’ll probably have some followup questions but this will do for now.

Thank you!

We are currently in the microsoft bizspark program that gives us $150/month for azure for 3 years. So you might want to look into getting access into that. It’s a program for startups.

Hey, thanks for reaching out! Let’s see if I can help answer a few of your questions here:

Which host?

All of these are good choices :smile: of course…! It really depends on the size of your application and how much you’d like to spend. Currently, AWS let’s you run a small EC2 instance for a year, at no charge. This could be a good option for you, especially if you’re between Openshift and AWS, because it gives you a chance to evaluate AWS’s EC2 to see if it fits your needs and expected capacity. Azure is also a good choice.

What DB?

To start out, I would stick with the MySQL DB that comes with your DSP. This will at least give you a chance to evaluate it and see if it fits your needs. If you need to scale up and get something like Oracle, this can be done, as well. PostgreSQL is another option. Again, there’s no objective answer here, because of preference and expected application capacities.

Remember, start simple, build. This is an effective way to build applications. When you have the chance to keep something simple, I would recommend doing so. To start off, I’d stick with the MySQL that comes natively with the DSP.

Database Maintenance?

I may need some more insight here as to your actual question, but the DSP (Dreamfactory Service Platform, if I haven’t mentioned by now…) will update the backend based on the current service that is setup. I’ll get you some more info here after your response.

What starting code base?

AngularJS is a good way to go. Especially after going through the three part tutorial. As far as upgrades, we just released 1.7.8 and are planning another release shortly. This also depends on which language you’re most familiar and comfortable with…

OpenShift

We are on the Openshift Marketplace:
Dreamfactory on Openshift

So, just head on over and see if that fits your needs.

Also, when DF says MySQL is automatically installed locally does that mean I don’t have to install MySQL?

When you download the Bitnami packaged version (which is most likely the case), MySQL is included in this install. There is no need to install a separate version of MySQL on your local machine.

Keep 'um coming!

Thanks,

  • Mark

Hi Hoang,

Thank you for your reply. Can I toss a few questions your way?

I am not a DBA or server administrator so I fear leaving security holes. Do you manage the security of the VM yourself?

Azure uses a third party named ClearDB for MySQL and the pricing is ridiculous. What database do you use? Are you paying for ClearDB MySQL or just using the free, small instance?

Also, what size VM are you using? Shared, 1, 2, or 4 core?

Thanks!

Hi Mark,

Thank you very much for taking so much of your time for all my questions. And I will take you up on your “Keep 'um coming!” offer.

Which host?

All of these are good choices smile of course…! It really depends on the size of your application and how much you’d like to spend. Currently, AWS let’s you run a small EC2 instance for a year, at no charge. This could be a good option for you, especially if you’re between Openshift and AWS, because it gives you a chance to evaluate AWS’s EC2 to see if it fits your needs and expected capacity. Azure is also a good choice.

Their pricing scares me.

For example, they say here: Compute – Amazon EC2 Instance Types – AWS

“Lowest-cost general purpose instance type, and Free Tier eligible (t2.micro only)”

But they show here AWS Marketplace: DreamFactory Certified by Bitnami (PV)

that t2.micro is not available for DreamFactory.

So when the free year is over your either paying:

$14.40 / month for a t1.micro which is probably not powerful enough or
$31.68 / month for a m1.small. Will this be enough? I don’t know.

What DB?

To start out, I would stick with the MySQL DB that comes with your DSP. This will at least give you a chance to evaluate it and see if it fits your needs. If you need to scale up and get something like Oracle, this can be done, as well. PostgreSQL is another option. Again, there’s no objective answer here, because of preference and expected application capacities.

Remember, start simple, build. This is an effective way to build applications. When you have the chance to keep something simple, I would recommend doing so. To start off, I’d stick with the MySQL that comes natively with the DSP.

OK, very cool. Thanks.

Database Maintenance?

I may need some more insight here as to your actual question, but the DSP (Dreamfactory Service Platform, if I haven’t mentioned by now…) will update the backend based on the current service that is setup. I’ll get you some more info here after your response.

OK, see. I could not find a way to have a column indexed to optimise selects. Am I missing something?

What starting code base?

AngularJS is a good way to go. Especially after going through the three part tutorial. As far as upgrades, we just released 1.7.8 and are planning another release shortly. This also depends on which language you’re most familiar and comfortable with…

Yes, I am definitely going with AngularJS, but I need a good boilerplate/template/getting started app and the one I linked to from your tutorial seemed like it might be out of date.

When you say you are planning another release are you saying of DSP or the AngularJS authentication example?

OpenShift

We are on the Openshift Marketplace:
Dreamfactory on Openshift

So, just head on over and see if that fits your needs.

I went to OpenShift and selected it and all it did was tell me I had a free account set up on your site. It didn’t actually install it in a gear and I’m still trying to figure out how to do that.

When you download the Bitnami packaged version (which is most likely the case), MySQL is included in this install. There is no need to install a separate version of MySQL on your local machine.

Perfect.

Thanks!

I went to OpenShift and selected it and all it did was tell me I had a free account set up on your site. It didn’t actually install it in a gear and I’m still trying to figure out how to do that.

To install DreamFactory on OpenShift you need an OpenShift account, then install using these instructions https://github.com/dreamfactorysoftware/dsp-core/wiki/Install-CentOS-RedHat

When you say you are planning another release are you saying of DSP or the AngularJS authentication example?

He’s referring to DSP. All the Angular examples on the blog are current and should work (a few of the DSP screenshots may be outdated but are functionally the same).

This is the part I was missing.

Thank you.

Yeah, sorry it’s confusing. We’re working with Red Hat to make this easier. Contact support@dreamfactory.com if you run into any snags with the install.

I’m using SQL Azure because I don’t want to worry about security and other related services and mainly because it’s free for 3 years. I come from an Oracle background so moving to SQL Azure was very easy and fast.