Microservices and day 2 operations
Modern, cloud-native enterprise applications increasingly utilize microservices to deliver features faster and in a more reliable fashion. Overall the setup generally looks something like the following:
There are a number of challenges, however, when migrating an existing monolith to a microservices-style architecture or even when one has the luxury to start with a clean slate:
- To enable application-level dependency management typically containers are nowadays used to package and deploy the microservices. This requires an environment that is capable of producing container images incl. a CI/CD pipeline and a container image repository as well as discipline around container base images.
- Monitoring, logging and troubleshooting must be aware of the containerized workload. This typically means traditional, machine-centric monitoring and alerting systems need to be extended to cover these new requirements or container-container systems must be put in place.
- Microservices are inherently distributed systems and this means that the network becomes a critical resource and needs to be treated as a first-class citizen. This starts with service discovery (potentially in a segregated environment) and spans to security and isolation questions.
With Datawire you’ve got a system at hand that makes it easy to write microservices and that takes care of a number of the issues outlined above. Running Datawire on DC/OS is a great option, since DC/OS takes care of the remaining issues. Let’s have a closer look at what this means:
- In DC/OS it is straightforward to set up CI/CD pipelines that allow your team to generate and deploy container images.
- With Marathon, a battle-proven container orchestrator, you can launch and upgrade containers as well as do health-checking.
- DC/OS has unique capabilities to provide elastic data pipelines alongside your microservices deployments. For example, DC/OS supports popular distributed datastores and engines such as Apache Spark, Apache Cassandra or Apache Kafka—see also below screenshot of the DC/OS universe—that can be used as components in your data analytics pipeline. This means that with a few clicks or a handful of command line instructions you can set up your data analytics together with your microservices-based app written in Datawire, all in one platform and with little operational hassle.
We are excited to work together with Datawire to make the operational side of microservices easier and help you to benefit from it faster and in a more sustainable way: as a first step, you might want to check out DC/OS and learn how to master the day 2 operations from day 1.