📜 ⬆️ ⬇️

Gaming simulators for the development of BrainApps cognitive brain functions with a cloud backend

We continue to talk about the use of the Microsoft cloud for solution development companies (ISVs). In this issue, the head of the BrainApps project, Vitaly Kukharenko, talks about how the cloud is used for the backend processes of game simulators for the development of cognitive brain functions.



Hello! My name is Vitaly Kukharenko, I am the head of the company BrainApps.ru . For 1.5 years now we have been developing game simulators for the development of cognitive functions of the brain. ” It sounds a bit unusual, I agree. But such a name is a very simple explanation. From the beginning of the 19th century, leading scientists from all over the world are trying to study how our brain works, how its “productivity” can be assessed and how its performance can be improved. Conducted hundreds of studies, numerous tests on people and animals. In the course of these experiments, a very interesting property of the brain was discovered - neuroplasticity . The point is that the brain can change under the influence of experience, and also to restore lost connections after damage or as a response to external influences. Those. if you load the brain with various kinds of tasks, then the brain, like a muscle, will pump up, change its structure. That is what determined the slogan of our project - "Fitness for the brain." Our simulators help develop memory, attention and thinking.

Our team is relatively small, but very effective. Taking into account experts in freelance, we are only 12 people. We do not blow up the staff, work with the best specialists from around the world and achieve our goals.

Immediately to the cloud
')
If we talk about why we chose the cloud architecture, the answer lies on the surface: this approach is absolutely, an order of magnitude more advantageous for a number of criteria. Moreover, the benefit is determined not only by the cost of servicing a particular “set of pieces of iron”, systems with clearly determined configurations. We evaluate the benefits of a whole range of criteria: flexibility, resiliency, serviceability of the resulting solution. If to speak more specifically, then there is an option to buy a dedic on some German low-cost airline, like what is called the letter H ...

Everything is taken into account: the cost of the initial installation, the quality of iron, the reaction of technical support, etc. If you have one of the screws in the RAID in a banal way, start to fail the memory, then the procedure of exchanging the server and transferring data is not only an unpleasant thing, but also very resource-intensive. In the case of the cloud, all the problems in treating iron are the problem of cloud technical support. The cost of business downtime and reputational losses will be disproportionately greater than savings.

Therefore, we immediately laid on the cloud architecture to focus on business processes, and not to think about hardware. On our architecture, the cost of the cloud turned out to be cheaper than a set of servers comparable in functionality and performance. Therefore, we are already in the black and sleep soundly at night.



About BizSpark

Special thanks I want to express to Microsoft for the Bizspark program. I first heard about the program at the DevCon 2013 conference where I was fortunate enough to accidentally go. Cute girls gave an activation card, I registered, looked at something and forgot. Then I go in January 15, and it turns out that within the framework of the program you can get absolutely free of charge more than $ 100 for Microsoft Azure resources per month. Plus access to licensed programs. I wanted to try, threw the project, really liked it. Plus full support for open source.

If the project goes, then you can get a grant for Bizspark Plus, where you can already spend cloud resources on much larger amounts. It is clear that in a successful project, iron is about 20 percent of success, but in any case, this is really cool. I highly recommend readers to take a closer look at this program.

Pro technology and technology

Our project uses a fairly large stack of technologies. At once I will make a reservation that we made the choice of certain decisions, guided by our business requirements. Some technologies may seem to the respected readers to be "outdated" or "not sufficiently hipster."



We operate with such logic: if we are able to use something, this “something” has proved itself well, the use of this technology saves us development time and money - it means we use. Basically it is an open source solution.

So,

Our frontend server runs on Ubuntu 14 Server.

Backend servers with a slave and master database are also Ubuntu. Perhaps the question: "Why not CentOS?". Just used to working with him. It is clear where to get the packages, and how the configuration structure is arranged.

  1. MariaDB database . It was thought to use PostgreSQL, but there was no long-term experience with it, so we did on the tools with which we worked a lot and gained impressive experience.
  2. The PHP 5.5 programming language , we use the Laravel 4 framework. When we started, the fifth version was not there yet, and we never got around to updating the version. Now we look towards lumen as the next core of the system. From a business point of view, PHP + laravel is a bundle that provides a sufficient number of free specialists on the market who can solve your problems for sane money.
  3. Web server nginx - I think comments are not needed. Industrial standard.
  4. Caching memcached + MongoDB. We use MongoDB primarily as a cache for statistical information. We have a lot of indicators that are calculated on the basis of a sample of all data from the MySQL database. After calculation, the finished indicators are added to mongo, where they lie until the next recalculation.
  5. We use Beanstalk as a queue server. Since There is a lot of data, and the user does not have to wait, all the processes of statistics recalculation are hung on the queue.


We have a separate item working with errors and monitoring of the system. Since any errors in the system are direct losses, we pay close attention to monitoring the stability of the system.
  1. Sentry (for web errors) and shinken-monitoring (for monitoring server status).
  2. Deploy system written in Magallanes . Quite a convenient and flexible solution. Easily expanded with additional features.
  3. The project code is stored in Git-repositories, on bitbucket. In the same place we set development tasks.
  4. Frontend - as the simulator engine goes angular + places the canvas.
  5. Everything is collected with the help of Gulp - a very convenient solution.
  6. The CSS build comes from LESS.
  7. We use different mail services; we send mail via our sendmail (10 out of 10 by mailtree) and third-party services.


About load

I admit, we didn’t concentrate on load testing, we used estimated parameters. Moreover, our team already had experience in creating large Internet projects. In my previous company, we successfully served nearly a million customers. In this project, they initially laid the foundation for the correct architecture, spent a little more time working on caching systems, etc. We are sure that if some part starts not to cope with the volume, it will be more profitable to promptly modify something and complete it with the necessary additional equipment than to specifically test, taking time away from the main and priority tasks.
As for just testing, here we have clear regulations. Almost the entire system is covered with tests, and we carefully monitor after each calculation, so that they all pass.

About goals

And our goal is to take a leading position in the market for brain development projects in Russia. The next stage is to enter the European market and strengthen their positions there. If we talk about who, no doubt, our product will be useful and interesting, the circle of interested clients will be very wide. But I would single out two basic directions of advancement - this is the mass market and medical institutions. Accordingly, we target two categories of consumers: people who want to develop and improve, spend their free time with benefits, and those who need rehabilitation programs to improve the quality of life and restore activity after injuries, cardiovascular diseases, surgeries and etc. By the way, for the second category we have developed a special adapted version of our program.

About prospects

Despite the crisis in the world, we see enormous prospects for ourselves. People in any, even not very quiet times are ready to invest in themselves. We hope that being attentive, good at counting, quickly memorizing will become the same lifestyle in Russia as knowing English. Now you don’t have to explain to anyone: if you want to discover the whole world for yourself, learn English.

Source: https://habr.com/ru/post/281322/


All Articles