Juju is a Charmed Operator Framework; an open source application management and automation platform comprising 4 parts.
Since its inception in 2009, Juju has facilitated the transition from simple configuration management to model-driven application management.
Use it to deploy, integrate and operate applications and infrastructure - across any substrates (whether Kubernetes, VMs, or bare metal - on public or private clouds).
Enterprise software operations are costly and messy. Configuration management has not solved this. Together, the open source community has the power to dramatically reduce costs and improve the working lives of DevSecOps, SREs, operations teams, and the teams who rely on them. How?
Focus on the four important business decisions and build an application to handle the execution
The Charmed Operator Framework brings business thinking to the world of application management, making it much easier to have conversations between teams about the estate, and much easier to evolve capacity allocation over time: you can easily manage multiple compute environments and lower your costs of ownership. The separation of technical and commercial concerns means the operator is reusable in very different business settings. And reuse enhances the community value of the operator and increases software quality.
Most importantly, Juju is not a ‘language for configuration file management’. It is not a successor to Puppet, Chef, Ansible, Terraform or Salt. Juju removes the requirement to invest in deep institutional knowledge of configuration details altogether, by encapsulating community knowledge in operators that handle those details automatically given a context. Moving beyond configuration management puts the focus on application management and resource allocation. It is the stepping stone to Model Driven Operations.
If each application ran completely independently, then we could share configuration management code as we know it today. The problem is that applications in the enterprise always need to be integrated with other applications. A particular business makes unique choices of combinations of applications to integrate for particular situations. Configuration management tools force us to blend all of those choices into a single tower of babel that reflects the unique landscape inside that enterprise.
Whether it is Chef, Puppet, Salt, Ansible, or Terraform - that enterprise configuration management code cannot simply be taken to another enterprise, because it mixes up knowledge of the applications with knowledge of the particular business and situations those applications are being used. Charmed Operators and the Charmed OLM solve this.
Reusable packages of operations code get wider scrutiny which helps identify security issues faster. They attract a wider range of contributors and with that, a wider range of skills. Security is a many-layered challenge, and the breadth of participation in operator development raises the bar for all users of those operators.
Since all deployment and configuration of the application is handled by the operator, manual mistakes are fewer and easier to discover. Policy can be enforced consistently, regardless of the cloud or infrastructure being used.
Testing, continuous integration, inspection, debugging, observability and traceability are all critical capabilities in distributed systems design and development. Mechanisms for testing are essential for high quality code. The Charmed Operator Framework enables unit testing at the code level. We also respect conventions for real-world functional and acceptance tests.
As a community, continuous integration and testing of operators across a range of substrates and scenarios ensures a high standard of quality in the portfolio. We drive automated tests of operators across the entire ecosystem as a shared project, to raise the quality of operators for all users.
We are focused on the needs of software operations practitioners, with appropriate governance and mechanisms to bring the world's expertise to bear on the shared problem of application management.
Share operations and integration code
Instead of each business writing and maintaining their own scripts to manage their infrastructure, why not share operations and integrations code, through a system that works across substrates, across platforms, across operating systems and through the applications built upon them. Imagine a world where you don’t need to tweak every script, chart, or file to get your scenario to deploy, scale, or upgrade properly - because those operations are handled for you in code, created by yourself and the community around you.
What would this allow you to do? Could you focus on the logic - on the business decisions - that give meaning to those operations? Together, we can combine the knowledge of the open source community into shared, open source applications, which are coded to react to different scenarios, situations, and operations as you’d like them to.
The SRE’s Guide to Taking Control of Applications and Services in a Hybrid Cloud World
Covers such topics as: