Hundreds of Services without any DevOps Team: Managed Services

Ahmet Kara
MobileAction Technology
5 min readDec 11, 2022

In Mobile Action we’ve got more than hundreds of services including microservices, databases, and several cloud integrations; but we don’t have any dedicated team or any members to manage our DevOps.

I’ll describe our motto on the development and management of our services.

Classic Service Problems

Beginning from the physical machine health you have to manage several problems to keep your service available, including:

  • Machine Health: Your machine might need some repairs on problems like power supply, fans, cooling, and several boards.

Using AWS-like cloud services don’t protect you from machine health problems. Cloud vendor may ask you to replace your host within a limited time frame. It’s also possible to shut it down without any prompt.

  • OS Management: You have to keep your OS healthy and up to date. Keeping track of the problems like memory & CPU usage, patches, upgrades, etc.
  • Service Management: Like the OS, you need to keep your environmental services up to date with their patches and management utilities.
  • Vulnerabilities & Upgrades: Every software tool is open to vulnerabilities. You have to keep an eye on security bulletins to protect your service.
  • Health Check: You have to keep an eye on your service for any problem like high load, backend problems, etc.
  • Backups: You should keep your configuration parameters and data in safe storage for any problem.
  • Scalability: Whatever you host, you should be able to increase your capacity with your growth.

Managed Services

For most of the tools and services, you can find a vendor to handle the problems above, called managed services. They can handle:

  • Automatic OS and service patches and upgrades,
  • Manage your physical machine, move your service to a different machine without any interruption,
  • A metrics dashboard, to monitor your service health with log records.
  • Send any alarms if a problem occurs, to any tool/platform you need.
  • Backups, with any frequency you need. They even let you build staging environments from your backups.
  • Scale your service with any configuration, increasing machine capacity or building a cluster,
  • Configuration console to set up your system for your needs

Drawbacks of Managed Services

Managed services look very good but every beauty has a price:

  • Cost: Managed services cost you more depending on building these services on your own. The service vendor has to bill its costs and some profit.
  • Limited Configuration: The configuration console and other capabilities have some limitations. Building a managed service for any requirement is not an easy job. Vendors have to put some limitations to keep their focus on the most required features.
  • Security: First of all you have to trust the service vendor. Since your data and tools are hosted on their machines, bad vendors can use your data for their benefit. Second, if their system is not secure enough your system might be exposed to attackers. Selecting the service vendor is critical.

DevOps Team Management

On the other hand, if you want to build everything on your own, you have to build a DevOps team, which will bring you different problems to solve:

  • Hiring: You have to find the people that are capable of managing all the tools you have.
  • Training: There are lots of tools in the Software Industry. No one can know everything. You have to train your team for new tools and increase their knowledge of the existing ones.
  • Scheduling: If you want to keep your service available, you need to schedule your team for duty on 7 days and 24 hours. Someone should be able to fix any problems as soon as possible.
  • Retention: Once you’ve set everything above, you have to keep your team in your company. There would be better offers that your team cannot resist. To solve this problem you should either hire more than you need or pay more than they deserve.

Every item on this list brings more cost and it is generally higher than the cost of managed services. Even at comparable values, it’s better to focus on your own product with managed tools.

Sample Managed Services on Mobile Action

Database Services

We highly use AWS-RDS for our RDBMS operations. There are around 100 different DB servers including MySQL, PostgreSQL, and Aurora editions. For some services, we use MongoDB from MongoDB Atlas. We’ve recently migrated one of our databases to Oracle (OCI) and planning to test more.

All of these vendors allow us to handle our high availability and scalability issues with reliable backup & recovery tools.

Application Services

We’re using Heroku for most of our application servers. It is more than a managed Kubernetes service, including scalability, logs & metrics, auto-recovery, CI/CD implementation, and easy test & staging environment setup.

For some special reasons, like the small disk size of Heroku machines we have some AWS Elastic Beanstalk machines, especially for NLP tools.

Open Source Tools

Open source doesn’t mean there’s no cost of ownership. Every open-source tool needs some management work to keep them up and running. We use open-source tools from managed service vendors. We pay more but we don’t get bothered by their management.

Some of the tools we use are RabbitMQ, ElasticSearch, and Redis.

Cloud Tools

If you live in cloud environments you can easily integrate many tools to get more capabilities. Each of them has quick integration with popular vendors that make your life easier.

Some of the tools we use from Cloud Vendors are GitHub, Jira, Intercom, and Miro.

We’ve described this content in an online meet-up (in Turkish)

--

--

Ahmet Kara
MobileAction Technology

Head of Engineering @MobileAction. BS&MS from @CS_Bilkent, PhD from @METU_ODTU