How SmartLogic helped these teams grow and manage scale with DevOps support – Technical.ly Brooklyn

At SmartLogic, our business is building custom software applications typically but not always greenfield projects, apps built from scratch. As such, it might not be readily apparent why we offer DevOps consulting unless you consider that for each app we build, were generally also managing the server infrastructure and related deployment procedures.

Given that each project is unique, our team has experience deploying to different cloud hosting environments and designing infrastructure to meet a wide range of client needs. Although its only recently that weve begun to offer DevOps as a standalone consulting service, our team has managed the DevOps architecture and support for a multitude of apps over the past 14+ years, since before AWS was publicly launched in 2006.

All that being said, DevOps is still a bit of a buzzword. In the spirit of providing some clarity and context, here are a handful of examples of the kind of DevOps work weve done for our clients.

DevOps exists where software applications meet deployment infrastructure. Prior to roughly 2009, software engineers (Dev) and system administrators (Ops) were typically siloed and functioned as completely separate teams. DevOps has since emerged as a practice that bridges those two domains with a goal of making deployments more consistent, reliable, repeatable and easier to reason about. If youre interested in more historical context, SmartLogic developer Donald Guys article What is DevOps? is a good place to start.

Some examples of DevOps in practice:

Most modern web apps are deployed to the cloud. Ultimately, the cloud is just a bunch of computers and those computers eventually need updates.

We recently updated and reconfigured some of the cloud infrastructure for SpotCrime, a crime data aggregator with map views, email alerts and daily crime reports. A client of ours since 2008, SpotCrime has evolved over time into a diverse system that uses many programming languages, a polyglot system unified through DevOps work.

For this update, we created playbooks defined with Ansible, an IT automation tool, for server configuration. In this case, some of the infrastructure setup is a bit more manual because the project originated before many of the DevOps tools we currently use.

As with all of our long-term projects, every two to four years theres a need for a full server upgrade to keep the operating systems current, leverage faster virtual machines, and adopt new best practices. We also restructured the servers, separating responsibilities for emails, a high-volume low-frequency task, from the web, API, database and various other servers. The result has been that performance across the different environments has dramatically improved, and the infrastructure is easier to enhance and maintain.

Another long-term client of ours is Brookes Publishing. We develop and support their Ages and Stages Questionnaire (ASQ), a developmental and social-emotional screening tool for children under age 6.

The ASQ project is one that we took over as opposed to building from scratch. One of the initial challenges of the project was getting its deployment to a stable status. Although it was already in production use when we started working on it in 2011, we were not confident in its ability to consistently deploy, so we stood up a new version, migrated the data, and got it on stable footing. The project is housed on client-owned hardware creating a private cloud, for maximum control in support of medical data privacy rules like HIPAA.

In more recent years, weve run operating system updates and transitioned the application to Rackspace; ASQ Online supports seven languages including Arabic and Chinese, and to date the app has been used to collect over 3 million questionnaire responses.

For FolioCollaborative, a SmartLogic client since 2011, the server infrastructure has evolved over time to support growth. At launch, Folio was used in three schools; today, the educator professional growth platform is in use in over 165 schools around the world.

We recently migrated Folio to AWS to support current scale and future growth; we used Terraform to define infrastructure rules as code, both documenting the setup and providing version control for future iterations. We used Ansible to configure the servers and Capistrano, the gold standard for Rails applications, for deployment.

By using modern tools that document and automate resource deployment and configuration, we create reliable, consistent systems; we put the time in up front so that when its time to roll out an update we know that the deploy will run smoothly. These systems are also largely self-documenting, meaning that if another team member needs to troubleshoot, the information they need is contained within the configuration code. This is especially useful for apps that are supported by a variety of developers.

DinnerTime provides personalized and automated meal planning, grocery shopping, recipe support and nutrition education services. Weve worked with DinnerTime since 2012, and we recently created a more robust infrastructure for their application. We built a workflow that leverages GitHub (code version control) and Continuous Integration (automated code testing) to build container images with Docker that can be deployed with Ansible. This allows DinnerTime to retain manual control over deployment, while leveraging the latest in deployment technology.

We also set up a log aggregation toolchain that filters and stores only the most relevant and useful log files. The toolchain, a combination of Fluent Bit and Datadog, makes log entries easy to search and to use in process monitoring and debugging. Logs are also collected and aggregated across multiple servers so that log data is preserved when servers in a cluster are replaced. This setup simplifies monitoring and troubleshooting in DinnerTimes multi-server cluster and ensures that logs persist across infrastructure changes.

In 2019 we started a new project with SimpleBet, a modern sports betting platform. Our team is providing DevOps support for their high-stakes large-scale architecture. SimpleBet focuses on real-time data, and as such has very specific reliability and uptime requirements. We worked with their team to transition their cloud resources to Kubernetes (K8s), a container orchestration system. We also integrated permission and encryption manager Vault and set up lifecycle management for their cloud resources with continuous integration and separate development, testing, and production environments.

The systems we designed and configured will enable their teams to manage their quickly-growing systems with consistency and reliability, while supporting their products high-performance requirements.

As with all of the custom software we write, we bring our opinions and expertise, and we are very intentional and thoughtful about which choices are right for each individual client application. Not every app needs to run in a cluster on Kubernetes; but its important that time and attention are paid to infrastructure and deployment beyond just spinning up a turnkey solution for any app that needs to manage scale efficiently over time. When you need more flexibility than what great tools like Heroku give you, there are many options that can be tailored to your needs.

If you find yourself needing to make sense of infrastructure choices as your product grows and needs to scale, reach out. We work with all kinds of systems and were more than happy to help you find your right DevOps path. And of course if you are seeking assistance with building a custom web or mobile software application, that fits well within our wheelhouse as well.

Original post:
How SmartLogic helped these teams grow and manage scale with DevOps support - Technical.ly Brooklyn

Related Posts

Comments are closed.