Showing entries 1 to 10 of 80
10 Older Entries »
Displaying posts with tag: devops (reset)
Deploying MySQL on Kubernetes with a Percona-based Operator

In the context of providing managed WordPress hosting services, at Presslabs we operate with lots of small to medium-sized databases, in a DB-per-service model, as we call it. The workloads are mostly reads, so we need to efficiently scale that. The MySQL® asynchronous replication model fits the bill very well, allowing us to scale horizontally from one server—with the obvious availability pitfalls—to tens of nodes. The next release of the stack is going to be open-sourced.

As we were already using Kubernetes, we were looking for an operator that could automate our DB deployments and auto-scaling. Those available were doing synchronous replication using MySQL group replication or Galera-based replication. Therefore, we decided to write our own operator.

Solution architecture

The …

[Read more]
Replicating data from MySQL to Oracle

In our work, We used to get a lot of requirements for replicating data from one data source to another.Previously I wrote replication from MySQL to Red-shift.

In this blog I am going to explain about replicating the data from MySQL to Oracle using Tungsten replicator.

1.0. Tungsten Replicator :

It is an open source replication engine supports data extract from MySQL, MySQL Variants such as RDS, Percona Server, MariaDB and Oracle and allows the data extracted to be applied on other data sources such as Vertica, Cassandra, Redshift etc.

Tungsten Replicator includes support for parallel replication, and advanced topologies such as fan-in and multi-master, and can be used efficiently in cross-site deployments.

1.1.0. Architecture :

There are three major …

[Read more]
Production Secret Management at Airbnb

Our philosophy and approach to production secret management Keys are handed off during a check-in in Shanghai

Airbnb is a global community built on trust. The Security team helps to build trust by maintaining security standards to store, manage and access sensitive information assets. These include secrets, such as API keys and database credentials. Applications use secrets to provide everyday site features, and those secrets used to access production resources are particularly important to protect. This is why we built an internal system we call Bagpiper to securely manage all production secrets.

Bagpiper is a collection of tools and framework components Airbnb uses in all aspects of production secret management. This includes storage, rotation and access. More importantly, Bagpiper provides a safe, repeatable pattern that can be applied across Engineering. It is designed to be language and …

[Read more]
Releasing puppet-proxysql version 2.0.0

Everyone knows those situations where there is a task that you need to do and you want to do, but you just don’t come around to actually doing it. Well, for me, this new release was such a task.

Early in 2017, I released the first version of puppet-proxysql on GitHub. It was my first puppet-module release and I was quite proud of it. I had implemented types and providers for managing the ProxySQL resources such as mysql_user, mysql_servers, etc…

At Config Management Camp Gent (February 2017) I met Vox Pupuli, who is the group that forms the puppet-user-community. They picked up the responsibility of taking ownership of well-known modules that are left unmaintained or abandoned and/or modules that only had a single maintainer. The puppet-proxysql module was kind of the latter. Additionally, they …

[Read more]
How To design a better Ansible Role for MySQL Environment ?

In our earlier stage of Ansible, we just wrote simple playbook and ad-hoc command with very long ansible hosts file. When we plan to use Ansible extensively in our daily production use case, we understand that simple playbooks don’t help to scale up to our expectation.

Even though we had options for separate variables, handlers and template files according to our requirements, this un-organized way didn’t help. It looked very messy and made me unhappy when I saw the code too.  That’s the place we decided to use Ansible Role.

My understanding of Ansible Roles?

The role is the primary mechanism for breaking a playbook into multiple files, we can simply refer to the Python Package. Roles help to group multiple tasks, Jinja2 template file, variable file and handlers into a clean directory structure. This will help us to reduce the syntax error while developing and also …

[Read more]
Presentation : MySQL Load balancers and its solution

MySQL load balancers becomes a trend setters in Market for High availability and Scalability. They offer variety of solutions for database. What can be the best load balancer ? It varies from case to case. This presentation was made at Mydbops meetup on 04-08-2018 covers the basics of load balancers with their advantages/ disadvantages and use cases.

How to Automate Minor Version Upgrades for MySQL on RDS

Amazon RDS for MySQL offers the option to automate minor version upgrades using the minor version upgrade policy, a property that lets you decide if Amazon is allowed to perform the upgrades on your behalf. Usually the goal is not to upgrade automatically every RDS instance but to keep up to date automatically non-production deployments. This helps you address engine issues as soon as possible and improve the automation of the deployment process.

If your are using the AWS Command Line Interface (CLI) and you have an instance called test-rds01 it is as simple as changing

[--auto-minor-version-upgrade | --no-auto-minor-version-upgrade]

For example:

aws rds modify-db-instance --db-instance-identifier test-rds01 --apply-immediately …
[Read more]
Interesting happenstance when installing Ansible dependencies in a MySQL Docker container

I’ve been posting quite a bit about Docker as I’ve been working with it a lot as of late. I thought I would share something interesting I discovered a couple weeks ago while working on setting up a Docker container-based lab environment for training purposes here at Pythian, specifically when attempting to install the MySQL-python package inside the container.

I know what you’re thinking: why is he trying to install a package in a Docker container? Doesn’t that go against the “Docker run and forget about it” philosophy? Sure, but in this case, I’m looking to add orchestration via ansible, which I don’t think is completely out of the question in order to coordinate your Docker containers for something like replication. This requires using the …

[Read more]
Add Custom HTTP Basic Auth Entries to iCloud Keychain

While automatic filling of HTTP basic auth credentials works fine on the Mac, I have had significant trouble getting it to work on iOS devices. This is especially unfortunate, because while on the road I sometimes need to have a look at monitoring systems that have HTTP basic authentication enabled and that use long complex passwords. Should be easy with iCloud keychain, right? Yeah...

Opening the respective site in iOS Safari pops up the basic auth credentials dialog. It also shows the little key icon in the keyboard toolbar which gives access to iCloud keychain entries. However, while on the Mac the username and password fields are correctly populated, on iOS you cannot even see the respective entry.

Turns out, and I assume this is a bug in iOS Safari, the type of keychain entries shown is limited to "Web form password". Safari on the Mac stores the entry as "Internet Password" though, as can be seen in the Keychain Access …

[Read more]
Presentation : Handling Schema Changes Via Percona Toolkit

The schema changes in production can cause lock at time and makes the slave to lag. It is more tedious and troublesome with PXC ( Galera ) cluster which can be made smoother with Percona online schema change.

Image Courtesy : Photo by Andrew Ruiz on Unsplash

Showing entries 1 to 10 of 80
10 Older Entries »