Skip to content

Releases: fititnt/ap-application-load-balancer

v0.8.7-beta

31 Dec 08:08
ff0abe6
Compare
Choose a tag to compare
v0.8.7-beta Pre-release
Pre-release

AP-ALB v0.8.7-beta is a pre-release. No public APIs where changed. Initial implementation of Continuous integration with Travis-CI at https://travis-ci.com/fititnt/ap-application-load-balancer.

About initial support on Travis-CI and Docker Containers

AP-ALB since v0.8.5-alpha already had minimal support to more OSs than what is possible to run on Travis-CI or a Linux Host using Docker. This means that may not possible to implement soon with standard Travis-CI. While with some workarounds is possible to emulate, even if not perfect, most targeted OSs using Docker, BSDs may require real virtualization or from time to time test on real VPSs. More details on ALB on BSD Systems #37.

This v0.8.7-beta, while already have support for "unitary testing" (one node per run) also did not implement full cluster testing. Even if this eventually become part of CI, we may not release all possibilities on all possible OSs. But the way AP-ALB already is designed, we somewhat make each node (even across different OSs) somewhat equivalent, so with Unitary testing plus at least one complex cluster testing we're would be likely to have several cases covered. For now some of these testings may be done from time to time on some external repository like fititnt/ansible-linux-ha-cluster

Minor internal features

Note: these features should not considered public APIs. They exist most because of Continuous Integration implementation, but may become base for some features on future.

  • MVP of AP-ALB inside docker containers #43 work in progress
  • Convert AP-ALB tests to testinfra #44
  • /opt/alb/info/ now contain text files used by tests to know services on a node (commit: 496b26423e917ce7efca5e4466f5ff75cc7f038d_
    • Even if not a requeriment, the testfiles of AP-ALB may be able to be used even on non-ALB nodes or nodes that are mananged with without use of full "alb-standard" file system structure.

Cross-platform cluster demo featuring v0.8.7-beta

Check https://github.com/fititnt/ansible-linux-ha-cluster/releases/tag/demo-003-ap-alb-v0.8.7-beta for a cross-platform cluster demo. Contain both Ansible Playbooks and ASCIInema demonstration.

v0.8.5-alpha

15 Dec 19:01
c00c9bb
Compare
Choose a tag to compare
v0.8.5-alpha Pre-release
Pre-release

AP-ALB v0.8.5-alpha is a pre-release with very significant code refactoring from the v0.7.4-beta released 22 days/103 commits ago.

Major features

  • Initial official support for clustering related options (see #17)
  • Initial official cross-platform support (see #34)

Minor features

Several small new features. but for lack of time will not mentioned on this changelog.

About the significant code refactoring

While this release, v0.8.5-alpha, have more than double o commits from v0.7.4-beta than the full history of this repository, most of the changes are motivated by the 2 major features.

Consul as alternative to file storage

Check MVP of Consul in High Availability (HA) for AP-ALB #30 and it's related issues.

But in addition to AP-ALB Ansible Role, the Consul storage driver for the underline tool that we use for obtain the Let's Encrypt certificates had to be done. The alternative that worked out-of-the box would be use Redis, but while Redis would work for this feature, one storage like Etcd or Consul would be more expected from a load balancer.

Variables related to OS

The way versions before AP-ALB v0.8.x where implemented would require require too much work to scale with cross-platform support. With this release, most variables that depends of the OS are now on vars/os-family, with a structure like this

$ tree
.
├── main.yml
├── os-family
│   ├── archlinux.yml
│   ├── debian.yml
│   ├── distribution
│   │   ├── cloudlinux.yml
│   │   ├── no-os-family-customization.yml
│   │   ├── ubuntu.yml
│   │   └── version
│   │       ├── debian-10.yml
│   │       ├── debian-11.yml
│   │       ├── debian-9.yml
│   │       ├── no-distribution-customization.yml
│   │       └── ubuntu-18.yml
│   ├── freebsd.yml
│   ├── os-family-version
│   │   ├── no-os-family-version-customization.yml
│   │   ├── redhat-7.yml
│   │   └── redhat-8.yml
│   ├── redhat.yml
│   ├── suse.yml
│   ├── unknown.yml
│   └── untested.yml
└── README.md

4 directories, 20 files

Check the new repository!

With this release, we published a repository with full playbooks demos at https://github.com/fititnt/ansible-linux-ha-cluster

Check the documentation website!

The README.md from the repository was getting large and not accidental complexity. The documentation after this release will be published at https://ap-application-load-balancer.etica.ai/

v0.7.4-beta

23 Nov 11:06
adf2f7e
Compare
Choose a tag to compare
v0.7.4-beta Pre-release
Pre-release

AP-ALB v0.7.4-beta is a pre-release. Both have some minor additions over the V0.6.x series and YAML code refactoring and changes on documentation. Ah, and now is much faster for hosts already deployed 🚀

As said in the v0.7.0-alpha changelog, this release was mostly based on private tests. A new version, v0.8.x will start soon with the features beyond optimizations and new minor features, in special functionality related to clustering (and yes,things can get very challenging to implement if we don't even have features like shared IPs for Keepalived or be require extra disks to be formatted for DBRD!)

New minor features

  • Shared options on documentation now explicitly cites variables that are reused by several ALB Components
    • Some old options only accepted single values, but the new standard is much more flexible.
  • HAProxy Stats Page makes better use of Shared options (refs #16) and is better documented
  • ALB/UFW is now more flexible (refs #14)
    • Most of the old functionality should still work, since already was based on what is now the Shared options.

Optimization

  • ALB is now becoming faster for subsequent runs! (refs MVP ALB Facts #13)
    • It will check for facts it will deploy at ``/etc/ansible/facts.d/` and skip tests for several components
    • Note: all files on /etc/ansible/facts.d/ (the ones deployed by ALB) will be recreated again from scratch if already does not exist. They work as some sort of fact caching

Features removed or not enabled as default

  • Task group common exist, but is not enabled by default.
    • Set alb_manange_common: yes explicitly
    • Note: since common was doing things that just need to setup once, this should not affect old hosts even without changes.
  • Task group DevTools, an optimal non default component, was removed
  • Variables starting with alb_superuser_* (that where never really documented) where replaced for more flexible detailed on Shared options.

Potential issues new with v0.7.4-beta

  • ALB skiping deploy of changes on some component (refs MVP ALB Facts #13)
    • If you have issues with specific ALB components not deploying a change, you can either delete the respective file on the host (for ALB/UFW would be /etc/ansible/facts.d/alb_ufw.fact) or do some very minimal change (like naming something different) and this may alone trigger a deploy
    • Note: this type of issue is more likely to happens if you are making changes to what ALB does not manange was YAML option
      • So it means mostly who is changing ALB core (like the developers) or who is creating custom templates. But we believe the huge speed improvement makes sense. Maybe we explicity release some way to skip the some caches.
  • HAProxy Status page based on older YAML configurations is likely require additional changes
    • This maybe not even break deployment with older configurations (with features that where not well documented), but what was defined with alb_superuser_* would now be done using the alb_auth_users from Shared Options.

v0.7.0-alpha

17 Nov 05:16
febb314
Compare
Choose a tag to compare
v0.7.0-alpha Pre-release
Pre-release

AP-ALB v0.7.0-alpha is the first release of v0.7.x series. Mostly have (YAML) code refactoring and changes on documentation. Even if this release is marked as Alpha, beyond refactoring, still the same as v0.6.4-beta, but next versions of v0.7.x-alpha are likely to have.

Notes for who is looking on the changelog in future

AP-ALB was created 106 days ago note1. This version in special, v0.7.x, is a release (and maybe at least the v0.8.x) mostly driven by results of internal usage on one or more projects from the same Author. These feedback cannot be released to the public directly (aka are used on Enterprise level, just not by IT focused as end goal, but they still need resilient and cheap infrastructure to grow for at least part of it's servers already running on AWS/GCloud). These testing still be relevant since is likely to find bugs and usability issues (think the way AP-ALB expose YAML variable) faster. This also means that at some point servers based on AP-ALB will definitely have huge usage.

note1: but already was based on work done before for @EticaAI, in special EticaAI/aguia-pescadora-ansible-playbooks, but was not easily reusable since was full playbook, not Ansible Role)

v0.6.4-beta

15 Nov 04:02
7103bb9
Compare
Choose a tag to compare
v0.6.4-beta Pre-release
Pre-release

AP-ALB v0.6.4-beta is a unstable, pre-release. No new features over v0.6.3-beta, just fixes and a new demo!

Fixes

ASCIINema v0.6.4-beta

Note: this 10min long demo is using only 2 servers as example. But AP-ALB is flexible: you can just opt to configure one VPS, or several at same time.

asciicast

v0.6.3-beta

13 Nov 11:30
6fb049a
Compare
Choose a tag to compare
v0.6.3-beta Pre-release
Pre-release

AP-ALB v0.6.3-beta is a pre-release with several improvements to deserve be bumped to v.0.7.x. But since still compatible with older versions, we going slowly. Could still take 20 to 30 hours to make it rock solid, but I'm liking the results.

New Features (from v0.6.x until now):

  • Firewall with UFW already very configurable
  • Task group common (see #11)
  • Task group DevTools (see #12)

Notable internal changes

  • Draft of Ansible Facts on hosts (#13)
    • This maybe will deprecate or turn less relevant (#8), in special in future if using Redis

Drawbacks

  • Part of the documentation and variables is getting outdated. This does not necessary is a a strong problem, but at some point is expected to have releases aimed mostly on refactoring and documenting.

v0.6.0-alpha

10 Nov 23:36
6efd682
Compare
Choose a tag to compare
v0.6.0-alpha Pre-release
Pre-release

AP-ALB v0.6.0-alpha is a unstable, pre-release.

This is the first version of ALB with option to setup firewall (uses UFW).

Features

  • Already have a draft of use rules based on these variables:
    • alb_dmz
    • alb_jump_boxes
    • alb_bastion_hosts

v0.5.0-alpha

09 Nov 00:19
8bfafcd
Compare
Choose a tag to compare
v0.5.0-alpha Pre-release
Pre-release

AP-ALB v0.5.0-alpha is a unstable, pre-release.

New features:

  • HAproxy Status page is now easy to configure. Accept both list of users+passwords and/or remote IP to check who can access
  • Logrotate was implemented for both ALB logs and Apps logs (still need testing in production)
  • Debug improvement: now is possible to enable HTTP headers X-ALB-* (like X-ALB-app_uid) to debug apps.

Notable fixes:

  • HAProxy is now enabled/started after update of new configurations (old behavior: was before)
    • All versions < v0.5.0-alpha if a user create one invalid HAproxy configuration, then upload, the server will not stop working (that's great! even on worst cases the ALB is resilient to sysadmin errors), but older versions with Ansible the user would not able to deploy a fix

Issues with progress

v0.4.5-beta

07 Nov 21:48
32ca5cf
Compare
Choose a tag to compare
v0.4.5-beta Pre-release
Pre-release

AP-ALB v0.4.5-beta is pre-release with fixes over v0.4-alpha.

  • Fixes HAProxy not being initialized after first installation (affect all previous versions)
  • Fixes apps logs paths (affect v0.4-alpha)

v0.4-alpha

04 Nov 07:06
8271f01
Compare
Choose a tag to compare
v0.4-alpha Pre-release
Pre-release

AP-ALB v0.4-alpha is a unstable, pre-release, with refactoring aimed to to standardize folders files structures and Ansible variables names.

Quick information:

  • Most references for application_load_balancer are now just alb (seems to be no conflict with other software packages)
  • Think the folder /opt/alb/ as one syntactic sugar for all other folders and files that are important.
  • Some draft of features where not even release in favor of a dedicated role, for now called "ap-application-load-balancer-extras".
  • This release have documentation about "ALB Internals" on alb-internals.md