Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
A client that I’m working for has a fleet of BeagleBones/Raspberry PI’s operating at customer locations. These devices are installed on local networks and behind firewalls. For SSH connectivity there are several options but we’re still struggling with Software deployments on these devices. We’re not relying on container technology for the moment, so Docker Cloud or Resin.io are not an option, but resin.io looks very promising. We’re using AWS IoT for data collection.
Some requirements regarding the deployment:
push software server -> device
staged rollouts, rollout to a percentage of device which increases over time
rollback software
device provisioning
no container technology
What are some good approaches to achieve this?
(Disclaimer: developer evangelist at resin.io here).
The good thing is, that software that does not rely on containers, can still packaged up (while it does not work the other way around). Containers in resin.io are used as a means to deliver software onto the device, and implement interesting, useful, and safe update strategies, which otherwise would not be possible or would be harder to do. For example:
your application code has a bug (happens!) and crashes. Does that take down the entire device including networking? (on resin.io containers help to limit damage, your app crashed but the device is online and can be updated)
do you have to update the entire machine image when you have an application update? (using containers like this, what's changed in your application code is updated, which results in very little data traffic most of the time, and very quick changes when needed)
using containers like this lets you have practically zero downtime upgrades (starting the new application, and the old running version hands over resources to the new one).
This is not to convince you about container tech, just highlighting that whether or not your own application is containerized (most likely it's not and will stay like that!), do not select against services that use that tech as part of their stack. Every service tries to deliver the functionality you need in any ways necessary.
As for your checklist with regards to resin.io:
push software server -> device: check, git push resin master and your code is getting deployed
staged rollouts, rollout to a percentage of device which increases over time: not part of the general feature set, but it's easy to implement using the resin supervisor API: for example lock updates for all devices, and you can select which devices would get unlocked and updated. Since it's all through an API, it's customizable to fit your preferred deployment strategy
rollback software: not part of the general feature set (yet), but with git it's easy to re-push previous versions. Some care needs to be taken to pin versions of the libraries in your setup to result in a reproducible setup, but doable in practice.
device provisioning: automatic device setup, or provisioning through an API/SDK/CLI is available
no container technology: as mentioned above, in practice you should not need to care too much what way the service delivers your software, as it does not affect how your application behaves, in most cases.
Also, you mentioned AWS IoT, there's some documentation on integrating resin.io with AWS, including an example project doing automatic device provisioning of resin.io devices with AWS IoT (plug in a device, and it automatically gets credentials for AWS IoT). It might be something that interests you.
How about Kura project?
The project has Beaglebone and RPi Gateway software.
http://www.eclipse.org/kura/
http://eclipse.github.io/kura/doc/deploying-bundles.html#install-deployment-package-to-target-device
Related
We (ISV) are currently planning to offer our software on a rental/subscription basis as a service.
It's a native Windows (C++ / .NET) B2B application.
Our software needs access to the file system (drives) on the customers computer and it also needs access to the network (e.g. be able to find other computers in the network).
We want to offer our customers a service where they do not have to bother themselves with setup/updates and always work with the newest version of our software. So we need a single point of maintenance.
In the first phase we do not expect a lot of our customers (let's say 20) to change to this model, so it would not be a problem to have to set them up and manage them manually, but in the long run a solution that allows an automated set/sign up process would be required.
What I found most promising was Citrix XenDesktop/XenApp with VM hosted Apps and personal vDisks, but it seems that the Citrix solution is not able to get access to the network on the client PC (I tried it with the trial in the Azure Marketplace). Also it seems to be high priced.
What would be other possible ways to meet these requirements?
Unless you can make some significant architectural changes to eliminate the need to access the local filesystem and and eliminate the need to do local network browsing, I would recommend focusing on optimizing your local installation and update process. And skip the virtualization/service idea "for now".
You can still go to subscription model with a locally installed application. Just require your application to "phone home" to check its licensing/subscription status on startup.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Currently i am trying to learn various Services of Amazon web services and Microsoft windows azure like Amazon sns,Amazon Storage,amazon Search.
I am having some question in my mind that why now a days cloud platforms are getting so popular than old traditional approach like previously we were storing our files(img,txt,.doc etc) in our web application project only but now adays some web application are storing their files on amazon storage or on azure storage.
What is the benefits of storing files and folders over cloud platform ??
Next why amazon search or azure search is preferred as when they were
not available searching was done and amazon and azure search are not
freely availabale??
Now if we talk about push notification then why to use amazon or azure
push notification if we can easily send notification through codes
that are available on internet??
I general i just want to know that why now a days web application are using more cloud platforms(Azure or amazon) even though they are costly??
Can anybody explain me this with some details??
Among the many reasons, the most important and common ones I can think of are:
High Availability - When you manage your own services, there is always an operational challenge of ensuring that they do not go down i.e, crash. This may cause a downtime to your application or even data loss depending on the situation. The cloud services you have mentioned, offer reliable solutions that guarantee maximum up time and data safety (by backup, for example). They often replicate your data across multiple servers, so that even if one of their servers are down, you do not loose any data.
Ease of use - Cloud services make it very easy to use a specific service by providing detailed documentation and client libraries to use their services. The dashboard or console of many cloud services are often user friendly and do not require extensive technical background to use. You could deploy a Hadoop cluster in Google Compute Engine in less than a minute, for instance. They offer many pre-built solutions which you can take advantage of.
Auto-Scale - Many cloud services nowadays are designed to scale automatically. The are built to scale automatically with increasing traffic. You do not have to worry about the traffic or application load.
Security - Cloud services are secure. They offer sophisticated security solutions using which, you can secure your service from being misused.
Cost - Trying to host your own services require extensive resources like high end servers, dedicated system administrators, good network connectivity etc. Cloud services are quite cheap these days.
Of course you could solve these problems yourself, but smaller organizations often do not prefer to do so because of the operational overhead. It would take more time and resources to reach a stage where your solution is both reliable and functional. People would often prefer to work on the actual problem their application is trying to solve and abstract away most operational problems which cloud services readily offer.
p.s. These are some opinions from an early stage startup perspective.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
Is there any open source alternative to talky.io? where client code and all server side code is available.
I just double checked and it seems the priologic team are keeping tawk.com code behind a paywall, just like talky.io.
In the webRTC ecosystem, vendors either focus on
an application, and the Backend is hidden (think Skype, or bistri, even though bistri pivoted to propose an API as well.),
a PaaS and
then both the sever code is hidden and you won't have an
application, at best a demo, because they do not focus on any
vertical and do no implement business logic (think AWS in general, or tokbox, temasys for webRTC)
propose consulting/app development and will provide a complete
application most often open source, but keeping some key components
(priologic: mobile SDK + app, &yet: app, algoworks, ...) behind a
paywall. They usually team up with a Paas and or Hardware vendor to
provide more compelte/scalable solution to their client
(priologic/oracle, ...).
It is very unlikely, and I wouldn't know of any, that there were a vendor that would provide a full solution open source. It is still too complicated to have a non commercial entity provide one. The ones which do provide a full solution do so for a limited scope.
In any case, an application is always focussed on a use case. Even though the underlying infrastructure might be the same, and the BE/client API might be the same, an app for contact center, and app for social dating, and an app for conferencing will be quite different because they implement a quite different business logic and address quite different market. It is reasonable NOT to expect a full stack, but to have only the top most layer left to implement.
I put a list of vendors and products there, but it s a little bit raw. So here is a recipe to build a free/open-source solution, and then where to look to upgrade:
mandatory: open source signaling server (easyrtc, signalmaster, peerjs-server, rtc.io, ...)
mandatory: BE API (easyrtc, simplertc, peerjs, rtc.io respectively)
optional but highly recommended: add the free turn server rfc5766, or the most advanced version "coTurn". Some of the open source server and library propose examples or how to to support this TURN server by yourself.
optional: a client API that brings you closer to your use case,
optional: a free plugin to support IE and Safari (temasys free plugin),
optional: a media server if you need to host many-to-many calls or conferences (MCU or SFU) (licode, meteecho's janus, medooze, kurento, jitsi's videobridge)
optional: a SIP gateway to connect to VoIP and/or pone by extension (PSTN).
and ... that's about as far as you can go with open source / free libs today. You might hit a scalability problem quite fast depending on your traction.
A next step would be to get hosted servers, but it's not free anymore.
Separate servers:
ICE/TURN/STUN: See xirsys/twilio for hosted solution,
Media server: see dialogic, radysis, for hardware and meedoze, Jitsi, acano, pexip, openclove for software/hosted solutions,
Full Paas including all of the above:
tokbox (beware of streamed minutes billing if you have large conferences, has recording and some features temasys does not have yet)
temasys
some of the media server vendors also market themselves as PaaS. I have not tested, so I can't comment or recommend.
If you want to connect to SIP/phone, you will need different vendors as hither temasys nor tokbox provide interoperability today.
You could have a look at jitsi https://jitsi.org/, which is an opensource solution for private communication and also serves as a video conference tool for the browser.
You could try Subrosa (latin for "under the rose"). According to https://subrosa.io/source: "The Subrosa client and server are both open source and licensed under GPLv3."
Would be better if the server component was GNU AGPL 3.0, to make sure anyone running a server makes their code changes available for re-use, but at least both ends are free code.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I will be performing a distributed load test using JMeter. I am using the JMeter extras plugin to output some nice graphs but all of these graphs have to do with response times, response latency, throughput, etc. I want to also measure CPU, memory used/free, disk usage/latency, and network utilization, maybe some others.
I will be testing a web application that is running on Ubuntu 14.04.
What tools or commands can I use to gather these stats at various points during the load test and either output the raw data or averages?
Thank you for any information you can provide.
Free and great for high level KPIs. Works within JMeter:
http://jmeter-plugins.org/wiki/PerfMon/
Free / Paid and great for detailed low level analysis (stand alone tool):
http://newrelic.com
We use New Relic ourselves and are very satisfied!
I am using Cacti for that, it is relatively easy to install and configure (on Centos it can be installed with yum from the EPEL repository). It uses snmp to get network, CPU, memory, load,..from the various target servers. To monitor disk io's there is a great template (https://github.com/markround/Cacti-iostat-templates), if you follow step by step their instructions it will work (at least on centos/red-hat).
What I like with cacti is that you can also define your own datasources, for example you can ask cacti to execute a shell script on your server that would parse your access.log (or any other application log files) and returns metrics like throughput (nbr requests, nbr bytes) or processing time,.. etc then you can get this plotted side by side with the devices utilizations metrics.
To set-up the whole think you will probably one day, it is not very intuitive how to define your own data sources for example. Also you have to enable snmp on the box, which is easy if you remove the whole /etc/snmp.conf and use the bare minimum. It is a great tool for capacity management.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm looking for a simple self hosted website monitoring tool.
It should be somthing similar to watchmouse.com or pimgdom.com, with a nice UI, colorful charts and so on (Customers like that :)).
At the moment we use Zabbix also for HTTP monitoring, but since now our hoster care about the hardware and software monitoring on the machine directly, we don't need Zabbix anymore.
For pure http-monitoring zabbix or an other monitoring suite is really an overkill.
So what I'm not looking for is:
Zabbix
Nagios
Hyperic
...
Sadly but the truth, after some hours of researching I wasn't able to find a fitting application. My hope is now on you.
I realize this is an old question but I was looking for something like this today and came across Cabot which is self hosted and free, and according to the project's description: "provides some of the best features of PagerDuty, Server Density, Pingdom and Nagios".
Hope this helps someone in the future.
I found this a while ago for my purposes. Nice and simple and self hosted.
You do need shell access to setup cron jobs for it so it probably won't work in a shared environment.
php Server Monitor
Hope this helps.
Peter
I had a lot of success with Groundwork in the past, It's a BEAST and does just about everything imaginable and can be configured in so many ways. It might be overkill if you are just looking for something to schedule some http responses then graph the logs.
Groundwork is more for enterprise level deployments and has both Paid and Community editions with a pretty active community behind it too.
Not sure if you have already found a solution to this or not but give a shot to Apica System's Synthetic Monitoring. You can use the full SaaS, full on-premise, or hybrid model of this system. Take a look at the free trial and if you like what you see, the full portal as well as monitoring agents (with tons of more features than the trial) can be hosted behind your firewall in your own network. As per for monitoring, you can monitor websites/mobile apps, API endpoints, DNS, etc. You can also run complex use cases and see how the web app responds using Selenium or ZebraTester scripts.
If all you want to monitor is website uptime/downtime and response time, I'd have a look at TurboMonitor - it doesn't have all the bells and whistles provided by some other monitoring websites but it's quick and accurate for those two things.
Price-wise, I wouldn't take what they have on their website too seriously. I only actually found out about them when I met them in person and they were very happy to give me a "professional" account for free, supposedly like 5€/month or something on their website.