Microclimate aims to bring a live integrated development experience to microservices development
© Shutterstock / Milles Studio
IBM recently introduced a new development environment; Microclimate is designed to provide a common development framework so that microservices can work together regardless of who created them. We talked with John Duimovich, IBM Distinguished Engineer and Java CTO, about Microclimate’s key features, what’s under its hood and why developers should give it a try.
JAXenter: IBM recently introduced a new development environment called Microclimate. How can it simplify app creation in this complex cloud world?
John Duimovich: Microclimate simplifies app creation via an integrated end-to-end developer workflow for creating microservices. A developer can generate an application, make and test changes with the integrated lightning fast edit, build, test loop and finally, deploy that application via a built-in devops pipeline that supports Docker/Kubernetes applications.
Microclimate will generate the necessary configuration and deployment files needed including Docker, Kube configuration and Helm charts. Any developer can use microclimate to create and deploy a new application in minutes. Microclimate can run in the cloud cluster itself, which simplifies configuration of test environments, requires less mocking of APIs and ensure apps are developed in a real cloud environment.
JAXenter: How does Microclimate work?
By leveraging cloud as part of the development environment, developers will be able to create applications quickly and leverage cloud to do it.
John Duimovich: Microclimate is a cloud-native application itself. The tool is packaged as a suite of Docker containers that can be run on a local laptop or directly in a cloud environment. This architecture allows microclimate to run anywhere from local dev to a test cluster.
Microclimate supports containerized development, which means the application under development runs in a container during the development process. This ensures high fidelity between the dev environment and the production deploy environment by using the same production containers as part of the dev environment. When a developer generates or imports an application into Microclimate, it immediately creates a container with the running application, ready for testing via the Microclimate incremental dev environment.
Microclimate supports an incremental build system for Java, Node.js and Swift which allows changes to be applied to running containers without having to rebuild the containers from scratch, saving developers time. Microclimate includes a preconfigured integrated performance diagnostics allowing the developer to test changes with immediate feedback to the developer. The built-in integration to a deployment pipeline allows developers to reliably deploy their microservices. Microclimate is integrated with IBM Cloud Private and provides the developer experience that can take advantage of cloud scale for common development tasks.
JAXenter: How can Microclimate make sure that microservices work together regardless of who created them?
John Duimovich: Microclimate allows multiple developers to individually create and deploy their microservices into a common test environment, where they can ensure interoperability. Microclimate itself can be used to manage and develop multiple microservices in a single environment, allowing a developer to configure their private development environment with a co-workers microservice, testing combinations earlier in the dev cycle.
JAXenter: What frameworks and runtimes does it support?
John Duimovich: Microclimate supports Java, Node.js and Swift programming languages.
JAXenter: Let’s say we’re already working on a project but we want to enhance it. Can we use Microclimate to do that? How?
John Duimovich: Microclimate has an import capability, so any existing project (git or archive) can be imported into Microclimate and run in a cloud container environment. Using the built-in editor, a developer can make changes and immediately test them without waiting for the project and container to build or restart.
JAXenter: What are the key features of Microclimate?
- Microclimate supports containerized development, matching the development environment to the deployment environment. Microclimate also installs runtime specific tools in containers, which means for polyglot developers, their dev laptop does not get cluttered with many SDKs, and multiple versions of tool chains.
- Microclimate has an integrated fast incremental build/test environment which enables fast incremental development in cloud environment. Local development is supported using the built-in editor or via your own editor.
- Microclimate includes performance and monitor tools, leveraging runtime information for insights into HTTP performance, memory, and CPU, Developers can make changes and see immediate impacts to key performance metrics in their application.
- Microclimate included an integrated pipeline which supports deployment into any docker/kubernetes cluster.
JAXenter: Why should developers give it a try?
We wanted the Cloud Developer to be able to create their own version of a Microclimate, a nicer environment to develop for the Cloud.
John Duimovich: Microclimate brings a live integrated development experience to microservices development. By leveraging cloud as part of the development environment, developers will be able to create applications quickly and leverage cloud to do it. As cloud-native development environments integrate with the Cloud, scenarios like A/B testing, scalability testing via multiple instances deployed and other dev scenarios not easily reproduced on a laptop only dev model. In a cloud dev environment, many other previously difficult to replicate scenarios, become simpler to reproduce.
JAXenter: Where does the name Microclimate come from?
John Duimovich: The name Microclimate is inspired by cloud and the “micro” prefix from microservices. Depending on where you live, clouds bring rainy cold wet weather, and we wanted to invoke a feeling of a warm sunny day, with a nice development environment. People who live in places that are too cold, too wet or too hot, often describe where they live as a Microclimate, it’s still close, only with nicer weather. San Francisco locals frequently hear “oh, I live in a Microclimate, it’s much warmer, and drier there”. In hotter cities, “I live down by the lake/ocean and get evening cooling breezes”.
We wanted the Cloud Developer to be able to create their own version of a Microclimate, a nicer environment to develop for the Cloud, something that suits their needs can be customized and enables developers to leverage cloud for their own development experience. In the end, a Microclimate is intended to be the place a developer wants to develop because it’s a nicer place to develop.