Welcome!

Microservices Expo Authors: Liz McMillan, Pat Romanski, Elizabeth White, Mehdi Daoudi, Yeshim Deniz

Blog Feed Post

Emergency Upgrade to Rails 3.2.11 / Leaving ActionWebService

Today, we upgraded our Portal and back-end services which run on Rails to the latest production point release, 3.2.11. This was an emergency upgrade due to recent vulnerabilities that have been found in the product. The fixes were straightforward, but dealing with the upgrade showed us some areas where legacy code was holding us back.

We ran Rails 1.2 far longer than we should have with our old Portal, but were focused on product enhancements and features that were unrelated to the rails version. In 2012, we upgraded to 3.1, but had some old dependencies on ActionWebService. We use web service calls to communicate internally between the server running Portal and the servers running your repositories for things like modifying Subversion permissions or trac.ini files.


We were using the dnordberg fork of ActionWebService to Rails 3.x, but with the upgrade to 3.2, the port was at risk of causing issues. The methods in question were remote procedure call, and while some of them could possibly have been ported to RESTful operations, we wanted to do the minimal changes required to support the existing framework.

We ultimately did the changes in 3 steps:


  1. Modify the server-side controllers to accept parameters and return JSON instead of returning a scalar or object using render :text.
  2. Create a client with the same interface as the one defined in the API spec.
  3. Remove references to ActionWebService.


We used HTTParty to do the GETs and POSTs. To our delight, after we swapped out the transport mechanism, we found that the calls worked without further modification in most cases. Of course, fewer changes means less chance of introducing new bugs.

We’re now on 3.2 and subsequent Rails upgrades should be easier. Due to the above changes, there may still be a couple of kinks here and there, so just open a ticket if you run into a problem that gets in your way. We know that some people ran into some problems with accessing certain pages today, and we apologize for that, but due to the seriousness of the vulnerabilities, we didn’t want to wait one second more than we had to to verify the stability of the code.

Please feel free to drop us an email or reach us via ticket if you have any questions as well about what we’re doing or recommendations for improvement.

Read the original blog entry...

More Stories By Damon Young

Damon Young is Director of Sales at ProjectLocker.com. ProjectLocker was founded in 2003 to provide on-demand tools for software developers. Guided by the simple mission of helping companies build better software, ProjectLocker's services have expanded to include services for the complete lifecycle of software projects, from requirements documentation to build and test automation. ProjectLocker serves companies from startups to Fortune 1000 multinationals.

Microservices Articles
Two apparently distinct movements are in the process of disrupting the world of enterprise application development: DevOps and Low-Code. DevOps is a cultural and organizational shift that empowers enterprise software teams to deliver better software quicker – in particular, hand-coded software. Low-Code platforms, in contrast, provide a technology platform and visual tooling that empower enterprise software teams to deliver better software quicker -- with little or no hand-coding required. ...
"We do one of the best file systems in the world. We learned how to deal with Big Data many years ago and we implemented this knowledge into our software," explained Jakub Ratajczak, Business Development Manager at MooseFS, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
All zSystem customers have a significant new business opportunity to extend their reach to new customers and markets with new applications and services, and to improve the experience of existing customers. This can be achieved by exposing existing z assets (which have been developed over time) as APIs for accessing Systems of Record, while leveraging mobile and cloud capabilities with new Systems of Engagement applications. In this session, we will explore business drivers with new Node.js apps ...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder and Chairman of Alfresco, described how to scale cloud-based content management repositories to store, manage, and retrieve billions of documents and related information with fast and linear scalability. He addres...
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...
Digital Transformation is well underway with many applications already on the cloud utilizing agile and devops methodologies. Unfortunately, application security has been an afterthought and data breaches have become a daily occurrence. Security is not one individual or one's team responsibility. Raphael Reich will introduce you to DevSecOps concepts and outline how to seamlessly interweave security principles across your software development lifecycle and application lifecycle management. With ...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
The now mainstream platform changes stemming from the first Internet boom brought many changes but didn’t really change the basic relationship between servers and the applications running on them. In fact, that was sort of the point. In his session at 18th Cloud Expo, Gordon Haff, senior cloud strategy marketing and evangelism manager at Red Hat, will discuss how today’s workloads require a new model and a new platform for development and execution. The platform must handle a wide range of rec...
More and more companies are looking to microservices as an architectural pattern for breaking apart applications into more manageable pieces so that agile teams can deliver new features quicker and more effectively. What this pattern has done more than anything to date is spark organizational transformations, setting the foundation for future application development. In practice, however, there are a number of considerations to make that go beyond simply “build, ship, and run,” which changes how...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.