Releases: fititnt/ap-application-load-balancer
v0.8.7-beta
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
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
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.
- Set
- Task group
DevTools
, an optimal non default component, was removed- As v0.7.x, it was just installing netstat, htop, multitail and (only if HAProxy was enabled, hatop).
- The documentation cites how to use these cli tools with ALB, but for automated installation we suggest one repository created because of ALB, at https://github.com/fititnt/infrastructure-as-code-ad-hoc-ansible
- 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.
- 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
- 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 thealb_auth_users
from Shared Options.
- This maybe not even break deployment with older configurations (with features that where not well documented), but what was defined with
v0.7.0-alpha
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
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
- Fix dropped active SSH connections under certain conditions still need testing
- Fix some issues with
/etc/ansible/facts.d/*
(new feature on 0.6.x)
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.
v0.6.3-beta
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
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
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-*
(likeX-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
- MVP of use use folders on ALB servers to store constants and variables
- Still not stable for this release, can have several changes
- Started draft of
alb_superuser_*
variables (already working for HAproxy Status page
v0.4.5-beta
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
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 justalb
(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