Getting Started with Bluemix, what were your first applications using the platform? They could advise me? And forgive anything for the question.
Thank you for attention.
I think it depends on what is your programming experience and your personal preference. If you want to begin programming with the classic Object-Oriented paradigm you should try Liberty runtime. Instead if you like the scripting languages maybe you could give a try to Python, Ruby or Go runtimes. All of them provide a sample application that you can extend as you want, and have very detailed documentation. I suggest you to take a look at IBM Containers, they are very interesting and powerful, and they make you able to do potentially anything with the platform.
If you come from the on-premise world, please notice that Bluemix is built on Cloud Foundry, and there are two important considerations to think about:
Local file system storage is short-lived. When an application instance crashes or stops, the resources assigned to that instance are reclaimed by the platform including any local disk changes made since the app started. When the instance is restarted, the application will start with a new disk image. Although your application can write local files while it is running, the files will disappear after the application restarts.
Instances of the same application do not share a local file system. Each application instance runs in its own isolated container. Thus if your application needs the data in the files to persist across application restarts, or the data needs to be shared across all running instances of the application, the local file system should not be used.
For this reason local file system should not be used.
Personally since I had some experience in JEE + WAS my first application was a Web app developed on Liberty Runtime.
I suggest you to become familiar with IBM Bluemix DevOps Services, that allows you to develop, build and deploy working on a web IDE.
So the various runtimes and services within bluemix provide 2 types of samples to help you get started. Boilerplate, which are samples you can extend to develop new applications and there is a "deploy to bluemix" button on other samples which can be used to automatically get the sample installed and ready to try. What you start with is usually something like this to see it working and then go from there.
This question already has been answered in a way. But I think what you are looking for are the types of applications you can develop using Bluemix.
To directly answer your question - the first application I developed used the Concept Insights Watson service to extract insights from some news articles and create a concept based news search. I also experimented with Language Translation service where-in I converted the contents of a web page from English to Spanish.
If you look through the documentation pages for the various Watson services, you would come across various use cases where a particular service is applicable.
On a more general note I can see that Bluemix would help us to write some really smart applications in an easy way. The Watson Services provide a real simple interface to all application developers by taking away the highly complex tasks of machine learning and AI algorithms which would need a good level of expertise if done on our own.
Additionally, Bluemix is just like any other PaaS for e.g AWS or Google Compute Engine or Azure. Bluemix does provide relational databases, queues, time series database containers etc as a part of the platform. These would need to be used by the application that you are developing to cater to use cases of inter-process communication, data storage etc.
Hopefully this answer provides you some insight on what applications you can write with the Bluemix concept insight services
Our local applications run on WAS ND. When we moved to trying Liberty on BlueMix(as application, not service), typical problems were mostly around 12 Factors.
Config && Dev/Prod parity --> Earlier our configurations were in files inside application or configured in WAS. With Liberty, we were forced to externalize that and it was easy to setup environment variables in BlueMix.
Process --> As state-fullness was no longer an option, we had to change our application to store session outside, in relational as well as document DB.
Logs --> Logs are not available in local logs files as earlier.
Ephemeral instances --> As mentioned by Umberto
Related
Similar to posts like this Separate dev and prod Firebase environment
I'm running into similar structuring issues. Unlike other posts like that that i've found, in my case, it's GCP as a whole rather than just Firebase. In addition, i'm looking at separation (or not) of blue and green deployments ALONG with the various environments.
The projects will be handling IoT data; mobile, field sensor/modules, web (in the future). Currently everything is unfortunately in one project.
So, i'm thinking of having 3 different projects for the staging, production, and test environments with each project having both blue and green deployments per, perhaps besides test but that's a different conversation.
Does GCP as a whole have documentation or recommendations about this? Or do you guys have any recommendations?
It's hard to answer because it depends a lot of your organization, your needs and your way of working.
Here you can find a google document about resources hierarchy.
However, I already see some GCP customers using only one project for dev/uat/prod because they share the same K8S cluster and separate the environment thanks to the namespace. By the way, the cluster maintenance cost is done only once for all the different steps of the project.
About the Blue/Green it depends on which component you want to apply this. If it's on the website, App Engine, or a Global Loadbalancer can do this. If it's about IoT Core or PubSub, I fear that you have to manage this by yourself or to create 2 different projects for this.
I currently have a few apps that I provide to clients by setting them up on their own website. The app uses their own SQL database to record any transactions.
Recently, the number of customers I supply the app to has increased, leading to a higher maintenance work load as each installation must be managed separately.
I'm ready to move to the next level and want to host the app in a single cloud based environment so that I only have to maintain one instance. I would then provide access to that app to each client site, for example embed it in an iframe or perhaps deliver it via a sub-domain. I am not sure about where the DB would sit?
However, this is new territory for me and I'm not sure where to begin. The app is very small and quite simple. I've read a lot of stuff about SAAS but most of it seems quite enterprise level, I'm really looking for a simple and easy to use starting point.
What's the current best practice for this kind of setup and what might be a good guide to read or platform to use?
I'm developing a web app on the MEAN stack (and probably other stuff, like some way of storing images).
In the startup accelerator I'm working in I've been suggested to let go the IAAS approach for a PAAS one (namely AWS). I must admit being used to working on small scale apps on single virtual machines I'm very confused about how to approach the task and the whole PAAS thing.
Reading through AWS documentation looks like Elastic Beanstalk is the way to go for building a scalable web app. From my understanding it abstracts away the infrastructure management workload taking care of load balancing and resource scaling.
I decided to give it a try.
Now I'm a bit confused on how to setup the infrastructure. Particularly I'm wondering how to fit MongoDB it the puzzle.
I guess I shouldn't install it on the node.js machine but on a different one, so that the two can scale out depending on needs.
My questions are:
where and how should I install Mongo?
should I let go MongoDB in favour of something like DynamoDB? in this case how can I set up a local development environment?
Any suggestions would be appreciated.
I found this guide in the google documentation for the cloud platform.
https://cloud.google.com/developers/articles/high-availability-lamp-stack-on-google-compute-engine
although the files it asks you to download, are not found when the link is clicked?
anyone know where they actually are?
Unfortunately we deprecated this sample application as it was focused on migrating applications around maintenance windows.
Now that we have live migration and transparent maintenance windows, developers no longer need to move components of their application around zones due to impeding maintenance. Additionally, Cloud SQL now supports MySQL wire protocol which significantly reduces the complexities of managing applications for high availability.
In the future we may develop a new application, but it will be greatly simplified since we can offload load balancing to Compute Engine load balancer and persistency to Cloud Datastore and Cloud SQL.
Is there a online/cloud-ish app engine with an available Perl option?
I'd like to write and deploy a personal web app that's hosted by some existing web App engine (the app's fairly simple and resource-cheap, but does need small online storage. If anyone cares, it's basically a family-scope shopping list to be used off of smartphones and PC web browsers).
I'd rather not host it on my home PC's Apache, due to concerns about downtime (my broadband connection is less than stable).
The main candidate my investigations uncovered so far was Google App Engine.
My understanding is that Google App Engine only has Python or Java APIs. Catch is, I'm a Perl guy, with zero exposure to Python.
And if so, is that specific engine inferior enough to Google's engine that it would be worth it for me to learn Python just so I can use Google's? (I don't mind learning Python in theory but I am somewhat stressed for time so I'd rather not embark on that particular project for now - I just want to get the app done and use it).
There was an attempt at one point to get Perl running on the Google App Engine (GAE). However if I recall the nature of the GAE made these attempts difficult, and the group behind the push lost momentum.
Perl applications can (and are) easily hosted on AWS EC (Amazon), Linode (a Virtual Private Server (VPS) provider) and several other solutions. Linode specifically has a VPS solution for $20/month that can host a full Catalyst web stack and comes with, as of this writing, 16GB of storage.
For reference: Perl AppEngine - Project to get Perl on the Google AppEngine.
However like perigrin has already mentioned the project as stalled. Though note its stalled and restarted twice now so don't rule out another revival!
I believe GAE as had its growing pains and was just too much of a slippery moving target for the Perl AppEngine developers. With the inclusion of Java on the GAE it is/was hoped that things would settle down a bit.
Remember Google have promised that "other" languages would be introduced to GAE. So Perl and even Parrot VM may well get on there in the future.
Additional references:
Perl on AppEngine - Brad Fitzpatrick
GAE add feature list
PAE mailing list
/I3az/
Your best bet is to just get a basic web hosting account for $5 a month. As a random example, see Geekisp (This is the ISP I use for such things and have had great service.)
This give you most of the benefit of a cloud solution (ie someone else is doing most of your administration work, leaving you free to just handle the content.)
Learning both the Google App Engine API and Python is probably not worth it for an app that will never need to scale, which is the other main benefit of being "in the cloud".
Another option may be Phenona. It's in beta now but looks very promising.
dotCloud will host perl for you.
However, the cheapest plan (32MB of RAM) is $4.32/month