Build Versus Buy for Cloud-Native Applications

Building in the cloud equals decisions, decisions, decisions

Building any application in the cloud today comes with an incredible amount of decisions to make. Which orchestration framework to use? Do you need a service mesh? Which one? What about continuous deployment and integration? Monitoring? Alarming? Logging?

Then there are the decisions you have to make for your application. What database do you use? How do you authenticate? Do you need to send emails? Do you need a message broker? Which one?

2018 Cloud Native Landscape. There are hundreds of tooling and service options.

The right decision: leverage managed services

Your customers care about the business value that your application provides. That’s where you need to spend most of your effort: making sure you are making the right decisions for your customers. The tools you use must help accelerate your development, deployment, and management of your software applications.

Buy ease of mind with managed services

Managed services provide ease of mind. Using a managed Kubernetes cluster frees your developer and ops teams from managing infrastructure. The service provider ensures that you have the capacity that you requested, that your services are up and running, and that your Kubernetes cluster is highly available. Managed services are like having your own platform team, for much lower cost. The 2018 State of DevOps Report showed that the most successful organizations provide resources via self-service. This means managed services are available with a click of a button.

Managed Services for AI, Messaging, Databases

One of the best features of today’s cloud ecosystem is the ability to spin up a managed database with a click of a button. Your developers can start working on the application instantly. The managed database guarantees high availability and resilience. You don’t need to develop domain expertise in database administration to have highly available, distributed, and fault-tolerant databases. The same applies for using a managed message broker or an event-streaming service. The less work to manage services the better. High IT performers report the lowest amount of manual work according to State of DevOps 2017.

You don’t need a team of artificial intelligence engineers to integrate machine learning into your applications. With an AI managed service, you can integrate AI/ML for forecasting, building a recommendation system, face detection, and more with a few clicks of a button. You can easily integrate a smile detector in your video applications.

Managed services allow you to buy expertise and integrate it into your platform and system with speed, ease of mind, and low cost since you don’t need to hire more people or start building things from scratch.

Buy customizable tools

When you buy tools, whether they are managed or not, you should make sure they are customizable to your needs. A lot of tools are opinionated, which removes the burden of making decisions and allows you to integrate immediately. Sometimes you might need to add extra functionality or need something custom for your application. You need tooling that allows you to extend it and customize it. Open-source tools are great for that. The Accelerate: State of Devops Report 2018 showed high correlation between highly effective teams and using open-source.

For continuous integration tools, you might want to customize how the tests are run and add your own suite of smoke tests to the tooling you use. The best tools are the ones that allow you to extend it, leveraging the existing infrastructure to build what you need.

A simple customization like adding a Slackbot like New Relic’s goes a long way in making engineers’ operations better.

How to pick the right services and tools: prototype, experiment, iterate

You want to focus on building your core application: the one that will make your customers happy. With managed services, you can prototype, experiment, and iterate quickly. You can spin up different clusters of managed databases, try them out, and figure out which one fits your use case easily. You can try different logging and monitoring providers before committing to one in your application.

With managed services and customizable tools, you can make the right decisions quickly and confidently. O’Reilly predicted the trend of using managed services in 2017. The more managed services you use, the more time you have to focus on the business problem.

Manifold: Developer Services Marketplace

Manifold Developer Services Marketplace

If you are a fan of managed services, you should check out Manifold, the developer services marketplace. Manifold brings together services from every category you need to power your application. Using Manifold is free and many services on the marketplace are free to use. You can enable logging with a few clicks using Timber.io and Phoenix API. You can integrate SMS and voice services in your application with Till. You can manage configuration and resource templates with Manifold. Manifold even allows you to bring your own application to the platform, so you can manage your entire stack across cloud-providers in one place.

Try out Manifold to find and connect the best cloud services.

Abdallah Abu-Ghazaleh

Toronto

A software developer who is passionate about building things, Abdallah is interested in tackling the problems of scale for software, people, and ideas. Abdallah has experience working on embedded and distributed systems. Abdallah enjoys talking about technology, software development, tech ethics, and human development.

Software Daily

Software Daily

 
Subscribe to Software Daily, a curated newsletter featuring the best and newest from the software engineering community.