Because coders code

Use azk and easily orchestrate development environments on your own machine
…and then just code.

Install Documentation
 

azk Features

What’s so great about azk?

Open Source

azk is open source software (Apache 2.0) and will always be.

Flexibility

azk is agnostic and has a very soft learning curve. Keep using the exact same development tools you already use.

Automation

It only takes a few commands. Minutes instead of hours or days.

azk does its magic by executing very short and simple recipe files (Azkfile.js) that describe the environments to be installed and configured.

Reuse

Reuse an entire Azkfile.js or just parts of it. Add new components or create new ones from scratch. Customize everything according to your requisites.

It’s as easy as editing a text file.

 

Performance

azk is fast and your machine will barely feel it.

It uses containers instead of virtual machines. Containers are like virtual machines, only with better performance and lower consumption of physical resources.

azk is built with Docker, the best open source engine for managing containers.

Best Practices

Sharing an Azkfile.js assures total parity among development environments in different programmers' machines and reduces the chances of bugs during deployment.

Not sure if all the programmers in your team are using the updated version of the development environment? Just give them the latest Azkfile.js. With azk, you can kill and restart entire development environments in seconds (literally).

     

Azkfile.js

Azkfile.js is the file format of the recipes that inform azk what to do. An Azkfile.js is a short and simple file written in its own easy-to-understand DSL.


By the way, azk can write it for you by just taking a look at your code or specs.

Add elements that compose your system and describe depedencies among them.

Specify requisites for running your system.

Tell how and where we must run your system.

Give your system an URL and set the inital number of its instances.

Add configuration parameters.

Define persistent mounting points.

Map, name and tipify (udp/tcp) the ports you want to use.

Export variables to child systems.

// azk 0.9.0

systems({
  'web': {
    depends: ["database"],
    image: { docker: "azukiapp/node" },
    provision: [
      "npm install",
    ],
    command: "npm start",
    workdir: "/azk/#{manifest.dir}",
    mounts: {
      "/azk/#{manifest.dir}": path('.'),
    },
    scalable: { default: 3 },
    http: {
      domains: [ "#{system.name}.#{azk.default_domain}" ],
    },
    envs: {
      NODE_ENV: "dev",
    },
  },
  database: {
    image: { docker: "redis" },
    mounts: { "/data": persistent("data") },
    ports: {
      data: "6379/tcp",
    },
    export_envs: {
      REDIS_URL: "redis://#{net.host}:#{net.port.data}/database",
    },
  }
});
// azk 0.9.0

// Add elements that compose your system and describe depedencies among them.
systems({
  'web': {
    depends: ["database"],
    // Specify requisites for running your system.
    image: { docker: "azukiapp/node" },
    provision: [
      "npm install",
    ],
    // Tell how and where we must run your system.
    command: "npm start",
    workdir: "/azk/#{manifest.dir}",
    mounts: {
      "/azk/#{manifest.dir}": path("."),
    },
    // Give your system an URL and set the inital number of its instances.
    scalable: { default: 3 },
    http: {
      domains: [ "#{system.name}.#{azk.default_domain}" ],
    },
    // Add configuration parameters.
    envs: {
      NODE_ENV: "dev",
    },
  },
  database: {
    image: { docker: "redis" },
    // Define persistent mounting points.
    mounts: { "/data": persistent("data") },
    // Map, name and tipify (udp/tcp) the ports you want to use.
    ports: {
      data: "6379/tcp",
    }
    // Export variables to child systems
    export_envs: {
      REDIS_URL: "redis://#{net.host}:#{net.port.data}/database",
    },
  }
});
// azk 0.9.0

// Add elements that compose your system and
// describe depedencies among them.
systems({
 'web': {
  depends: ["database"],
  // Specify requisites for running your system.
  image: { docker: "azukiapp/node" },
  provision: [
   "npm install",
  ],
  // Tell how and where we must run your system.
  command: "npm start",
  workdir: "/azk/#{manifest.dir}",
  mounts: {
   "/azk/#{manifest.dir}": path("."),
  },
  // Give your system an URL and set the inital
  // number of its instances.
  scalable: { default: 3 },
  http: {
   domains:
    [ "#{system.name}.#{azk.default_domain}" ],
  },
  // Add configuration parameters.
  envs: {
   NODE_ENV: "dev",
  },
 },
 database: {
   image: { docker: "redis" },
   // Define persistent mounting points.
   mounts: { "/data": persistent("data") },
   // Map, name and tipify (udp/tcp) the ports
   // you want to use.
   ports: {
    data: "6379/tcp",
   }
   // Export variables to child systems
   export_envs: {
    REDIS_URL:
      "redis://#{net.host}:#{net.port.data}",
   },
 }
});
 

Use Cases

azk is for everyone in a software development project. Find out what it can do for you:

devs

Software Developers

Get the right Azkfile.js and azk does the rest. Your development environment will be ready to roll in a few moments. Create an Azkfile.js from scratch, edit an existing one or even tell azk to write you one based on your requirements or existing code.

You are a coder. All you should have to do is to code. ;)

Sys Admin/Dev Ops

Use azk to automate the installation and orchestration workflow of development environments for your team. You’ll also be able to maintain uniformity across those environments with no effort. Finally, the way azk builds environments makes it super easy to keep track of their evolving versions.

You’ll be your dev team’s hero. 8)

devops
designer

Designers, UX, QA, product managers etc.

(Soon). With the graphical user interface module, every project stakeholder that has to run code in development for any reason will be able to do so, even if they can’t program or install a development environment by themselves.

It doesn’t matter what kind of tests or checks you have to perform (UX, design, QA, product management etc.). With the project’s Azkfile.js you can install everything (including the project code itself) with literally just a few clicks.

You’ll always be empowered. \o/

 

Sponsors

 

Newsletter

Get the latest news about azk!
We promise we’ll never share your information and we’ll only send useful stuff.

 

Testimonials

See what some cool folks with early access to azk are saying about it.

lfcipriani
Parity across instances of a project’s development environment within a team with several developers is a fundamental principle in modern web software development. azk makes that possible in an elegant and easy-to-use way.

Luis Cipriani @lfcipriani
Developer advocate
Twitter

Maybe every project in GitHub should have its own Azkfile.js in order to make its code absolutely ready to run instantly.

Vinícius Baggio @vinibaggio
Software Engineer
Medium

vinibaggio
fnando
azk reduces the entry barrier for beginner developers and catalyses the introduction of new professionals to the marketplace. In that sense, what azk does for environments orchestration looks a lot like what Ruby on Rails did for web development. azk may turn into a relevant tool for programming education everywhere.

Nando Vieira @fnando
Senior Member of the Technical Staff
Heroku

Currently available tools for maintaining development environments are very time and effort consuming. azk makes everything a snap and hides away the tough parts of this process (while keeping it transparent enough so that we’re always aware and in control of what’s going on underneath). It’s like azk came from the future.

Luiz Rocha @lsdr
CTO
Gaveteiro

lsdr
carlosbrando
Quickly integrating new developers into the team or relocating them to different projects are some of the things azk allows me to consider as the CTO of a rapidly growing startup. By the way, azk is open source (and thus 100% free)!

Carlos Brando @carlosbrando
CTO
Enjoei

azk is so simple and yet so powerful. It’s like having a whole PaaS in your own machine. As a developer, azk is the kind of tool I’ve always dreamed of having.

David Lojudice @dalssoft
CTO
Scup

dalssoft
 

Because coders code

Use azk and easily orchestrate development environments on your own machine
…and then just code.

Install Documentation