Category: Doin’ DevOps

  • How to Upgrade Critical IT Infrastructure with Zero Impact

    How to Upgrade Critical IT Infrastructure with Zero Impact

    Modern problems require modern solutions. A problem might come up that your software isn’t equipped to handle. This is why enterprises around the globe are spending billions of dollars more today than they did a decade ago.

    It’s never a good idea to leave anything to chance, especially if we’re talking about essential software. Keeping critical infrastructure software up to date means it’s more stable and more secure with the latest bug fixes. Of course, this has to be done without affecting your customers.

    However, this may be easier said than done, especially if you have several years of backlogged software updates. The whole upgrade process has to be carefully planned and monitored. Some best practices have to be kept in mind.

    Plan Your Actions

    Achieving a zero-impact upgrade to critical software requires the utmost attention to detail. You need to know exactly where you are and where you’re going. You also need to make sure that you understand every step you’re taking to achieve your goal.

    • Catalog Your Current State: The first step to planning is to know the state of your software. You have to know where you are, in order to get to where you want to go.

    Check which version of the software you’re running and how old it is compared to the latest version. Your outdated software might prevent you from submitting bug reports if it’s no longer a maintained version. 

    • Read the Changelog and Ask Questions: This next step is as time-consuming as it is important. You’re probably aware that most open software has a changelog that’s available for public consumption. You’ll have to read it all. The changelog is a treasure trove of information and may even point back to specific pieces of code that implement the change.

    It will be time-consuming, and several breaks will be in order to ensure productivity. You may find that you don’t need most of the features and bug fixes you’re reading about, but now you know that much more about the software you’re managing in your infrastructure. 

    Remember to take down notes and questions or comments you may have while you’re reading through it all. You may be surprised to find a minor feature you never knew existed that may be very helpful in your current situation. Or you may find a fix for that one minor, but unfixable, bug that your team had to frustratingly find a workaround.

    Write it all down in your notes. That way you have your own little changelog that you can further trim into only the most crucial things. You can then decide if the minor things belong to the same scope or should be added to the backlog for later. 

    • Test Out Your Theories and Think of Edge Cases: Having a plan is well and good but you’ll have to try it out eventually. But, if it’s execution is done directly in an important environment, you’re doing it wrong.

    Similar to a software development life cycle, software upgrades need to be tested prior to actual execution. While brainstorming edge-case scenarios, take into account what might be different and cause problems in the other environments. 

    Document Everything

    This one goes without saying, but remember to document everything. Reading and documenting everything may sound like a lot of work, but when you need to pick up that work after a long weekend, you’ll be happy that you did.

    Document each and every single step, any caveats or issues you encountered, in a way that you can still understand later. This will help your team perform the upgrades and it also provides documentation to other readers who are interested in how the upgrade process was done.

    Execute Your Plan

    After you’ve done all that, it’s time to finally execute your plan. By this time, you should have already tested your plan so much that you know it will work without a shadow of a doubt.

    Still, it’s common for something unexpected to pop up and you may need to do some live debugging to fix it. Execute your plan with that expectation and assurance that your preparation will hold up to any situation.

    As always, remember to document everything as you may want to refer back to your documentation for the next upgrade or while debugging something later.  

    Conclusion

    Upgrading critical infrastructure software can be difficult if you don’t have a good plan. Check your current state, read the changelog, pay attention to every detail, write down notes, ask questions, test your plan, test it again and document everything. At the end of the day, you’ll be glad that you put in all that upfront work.

    — Robert Mardisalu

  • How Integration Can Keep Up with Digital Demands

    How Integration Can Keep Up with Digital Demands

    Integration holds the key to accelerating innovation, but in many organizations, business systems and application integrations haven’t kept up with the demands of digital. Data still exists in a siloed blend of on-premises systems and unconnected cloud applications, and IoT has added another layer of complexity into the mix.

    Understanding the three trends below, and how to leverage them, will help organizations continue to drive innovation for years to come.

    The Rise of the Integration of Things

    It’s no secret that the adoption of IoT is increasing, generating massive amounts of data from devices and sensors. As the number of devices increases in response to the explosive growth of IoT, the amount of data increases exponentially. This explosion of devices–and its associated data–is driving the need to leverage that data for the benefit of the business, such as improved customer experience, cost and downtime reductions or efficiency and productivity gains.

    Integration is the key piece that will enable businesses to get control of this data and put it to work. Without the right integration tools, it’s only possible to leverage IoT at specific levels. Essentially, integration provides the ability to connect the data from IoT devices and enterprise applications, orchestrate workflow and enrich IoT data with contextual information from other systems for better decision-making.

    Organizations can even use integration to link IoT platforms together for a comprehensive view of data, analytics and actions–making it easier and quicker to analyze, draw conclusions from and determine how to use the data. On top of this, they can also create complex and sophisticated responses when something goes wrong by leveraging automated integration workflows.

    As we continue to connect our devices, the Integration of Things will be as important as the Internet of Things.

    Blurred Lines Between Application Development and Integration

    For cloud applications to survive and thrive, they require built-in integration with other apps and data sources. Otherwise, users are constantly switching contexts from one tool to another when trying to complete a task, and content is scattered across the organization in multiple applications and departments. Because of this, the lines between application development and integration will blur as apps are compelled to have integration embedded under the covers.

    There will be many benefits to this. First, organizations will easily create and deploy integrations directly within their products, fully baked into the user experience. These in-app integrations to third-party sources will unlock additional capabilities for users, empowering them to do more.

    Second, building integrations without the right tools and specialized integration know-how requires a lot of work. Embedded integration eases the pain of monitoring API changes and documentations so that maintenance is smoother and cheaper.

    Finally, business services can involve complex interactions with cloud apps and data that require ordering, have dependencies or may even need to be reversible on demand. Organizations can handle these sophisticated jobs by leveraging advanced integration orchestration to manage app interaction–meaning that instead of using manual code for complex data mapping, they can create a visual drag-and-drop data flow. 

    AI Powers Smarter APIs

    Businesses have already been leveraging intelligent automation to improve operations, drive innovation and personalize the customer experience. As we head into the new decade, API management will harness the power of AI with innovative ways of protecting and controlling APIs and the applications they serve.

    Service mesh, an increasingly popular way of discovering and observing services in distributed networks, will evolve into app mesh, an application-aware model of monitoring, managing and securing your APIs. API policies will be able to reconfigure dynamically based on traffic, security threats and identified patterns. Additional layers of defense will come from bots deployed in an organization’s network to constantly monitor behavior and these bots will use machine learning to improve automated threat responses for APIs.

    The integration landscape is changing, but understanding how to harness these trends will ensure organizations are well-equipped to take advantage of evolving technologies for innovation.

    — Ann Marie Bond

  • Developing Apps for IOS 13: Things to Consider

    Developing Apps for IOS 13: Things to Consider

    Authors of numerous articles and videos have covered all the bells and whistles built into iOS 13, the latest major iteration of Apple’s mobile operating system. Rather than diving into all of these perks, though, I will focus on the changes for app developers.

    As it often happens, Apple introduced many proprietary applications that successfully supersede a number of third-party ones. It’s clear that QuickPath will now replace GBoard to enter text and provide swipe features. Also, the native secondary display feature for iPad called Sidecar will substitute Astropad and Dual Display solutions. Furthermore, custom stickers and animated emoji called Memoji can be used instead of the counterpart from Mirror AI.

    The to-do list application now comes with features that used to be a prerogative of the Things app users: you can set a date, create reminders with subtasks and configure various types of alerts based on location. The overhauled Files app allows users to share folders, connect to cloud services, leverage an archiving tool and do many other awesome things. The syncing of lyrics with Apple Music used to be a matter of installing Musixmatch solution, but iOS 13 has introduced a feature of its own for that purpose.

    There are two main conclusions you can draw from these ongoing tweaks. On the one hand, Apple is trying to hold sway over the ecosystem of the most popular applications. On the other hand, the company is developing a transparent and clear-cut array of services for integration and interoperability. 

    In other words, as long as your application hasn’t been replaced with Apple’s native counterpart, make sure its development occupies a unique niche aligned with the platform’s evolution strategy. Take into account the novelties that change the user experience and require that your coders take extra adaptation efforts.

    Dark Mode

    The 2018 macOS release came with the Dark Mode onboard. Users were expecting a similar feature for iOS back then, but it took Apple’s software engineers more time to implement it for iPhone and iPad. And here we go–Dark Mode is finally available in iOS 13. It functions as part of the Night Shift mode, and therefore the switching takes place automatically.

    It’s beyond all doubt that most users will keep the default iOS settings so that the mode is enabled depending on the time of the day. In the meantime, app developers have to do quite a bit of cumbersome work to support the new feature. They need to create UIs with variable colors while adhering to uniform graphics so people can enjoy using the app at any time with an equal degree of convenience.

    iOS 13 comes with turnkey instruments called Color Assets that minimize the amount of work required for app color theme development. iOS 11 and iOS 12 support this toolkit as well, but app makers relying on design for iOS 10 and earlier will have to stay on the sidelines of this progress.

    Standalone iPadOS

    Apple chose to depart from the general unification trend by segregating two platforms for their mobile devices. This approach gave rise to a separate branch called iPadOS. This is most likely a response to the low demand for the latest powerful iPad Pro models. Many users got the impression that the company actually created a professional, multi-functional gadget but failed to equip it with enough solutions to show its full potential. Neither applications nor compelling use cases were available to bridge the gap. The emergence of iPadOS is intended to change this as the independent, fully-fledged platform should match the hardware power.

    Overall, iPadOS bears a strong resemblance to the desktop operating system. It supports desktop-type scrolling features and the option to work with peripherals such as a mouse and trackpad. The revamped SpringBoard seems to bring some long-forgotten widgets back to the home screen. 

    Now that all of these modifications are in place, every developer should think of the iPad home screen widgets that their users might find handy. Perhaps it makes sense to add a widget rendering certain live information or providing helpful shortcuts.

    When it comes to multitasking, the all-new iPadOS appears to outperform macOS in many ways. For instance, iPad users can open multiple windows of the same app and quickly access favorite apps using the Slide Over feature.

    It means there are new scenarios the developers should consider. Among other things, they have to figure out which apps can be combined with theirs on the same screen; how to implement this without sacrificing the user experience; and what role–main or secondary–their app plays in such a tandem.

    To keep up with the new OS architecture, developers also need to ensure a resilient app layout. Enhanced multitasking means that your app will have to run seamlessly in multiple window sizes and proportions ranging from the traditional Full Screen to a swipeable tab in Slide Over mode. As a matter of fact, a similar interface design was available before; however, whereas it used to be optional, you definitely can’t disregard it anymore.

    Safari has also become a part of the maturity trend. Now it displays desktop site versions rather than mobile ones. The fundamental change, though, is that the browser has been fine-tuned at the engine level so the iPad can work with fully-functional web applications such as WordPress and G Suite. 

    Coders can benefit from this tweak as it poses a great alternative to masterminding an iPad-only application. They can save a good deal of time and money, additionally offering their users a readily available tried-and-tested web app if they have one, of course.

    Last but not least, the new Sidecar mode allows users to cast their Mac’s screen content to the iPad. This feature supports macOS Catalina. Aside from the secondary display perk, Sidecar allows you to use Apple Pencil in Mac apps. That’s one more way of leveraging iPad features without having to create a separate app version, which might make some developers question the need for such extra work.

    Data Rendering

    Dashboards are being definitely implemented in full swing in iOS 13. Lots of Apple’s native apps are using data illustrations on their main screens that reflect the event log, explain how to take advantage of new features and give comprehensive clues about various usage scenarios. This complex approach really differs from the purely functional one that used to be the case.

    The refreshed home page of Apple Maps is a good example of the current trend. It includes new tools to work with geolocation and arrange or add places to favorites. The Health app displays daily infographics, too. These features encourage users to open the application over and over.

    The ubiquity of real-time data and infographics has actually turned into a big trend for all Apple products, including smartphones, tablets, desktop computers and smartwatches. Therefore, if your app generates some potentially interesting or useful information, be sure to demonstrate it to the user. That’s what will fill the app’s dashboard. But first, you should understand what types of data your users prioritize: nifty content or strictly functional stuff.

    Photos

    The updated Photos app is one of the most conspicuous changes brought by iOS 13. You can’t go wrong if you say that creating and editing photos is currently among the main iPhone use cases. Apple developers have rethought the whole process to deliver the best graphics experience.

    The app’s home screen covers all the photo gallery browsing scenarios imaginable. It seems to have been designed specifically for hours of gazing at a time. In addition to the use of machine learning technology for choosing the most captivating images, the photo and video editor boasts amazing visualization of the settings and allows you to view the results immediately in the context of the other content. You can barely notice the process of switching between modes–from browsing to editing and taking photos. All in all, the iOS 13 Photos app exemplifies a mobile solution that surpasses its desktop counterpart in many ways.

    This is a serious challenge for developers because it calls forth a whole new level of coherent user experience in mobile app design. The users will be expecting equally elaborate and smooth apps flawlessly aligned with the rest of the iOS 13 ecosystem.

    Security

    Apple has marketed their operating systems as ultimately safe and privacy-friendly for years, consistently highlighting the leak-proof gist of both iOS and macOS as their competitive advantage. As many of you may know, it is not always the case considering how many new malware pieces target Apple users these days. 

    Trying to be on top of privacy defense, Apple updated the Location Alert feature lets the user know about background applications requesting geolocation data. Although, some programs need these details to operate properly, quite a few app authors keep such data harvesting enabled in the background just in case.

    In iOS 13, this characteristic can become a way to ruin your app’s reputation. As soon as the user gets an alert showing a bunch of points on the map that the application has been recently keeping track of, they are likely to follow the system’s recommendation and block this activity without a second thought.

    This security feature is meant to restrain developers from collecting redundant data that isn’t required for their apps to work properly. It also encourages app makers to notify users when and why they need to know their whereabouts.

    Sign in with Apple

    This feature has been anticipated for quite some time and it finally went live with the release of iOS 13. You can now use your Apple ID to sign into various websites and applications. This functionality secures the authentication routine by means of Face ID or Touch ID. Many developers will find it convenient because it introduces a simple and intuitive authentication workflow eliminating the need to store and manage passwords. The security of this process is now entirely up to Apple.

    Programming with Swift

    Apple has been endorsing the Swift programming language for a while. iOS 13 gave these initiatives a boost by introducing SwiftUI that overhauls the entire paradigm of creating applications for Apple devices. Effectively, it is a critical link between programmers and designers that was missing before. SwiftUI also propels a shift toward a reactive programming style. Apple Developer libraries now support a bevy of UI models. Furthermore, the Combine framework will be henceforth heavily used for coding. These instruments are currently in beta testing and things may change dramatically over time, though.

    Nonetheless, Apple has already provided developer tutorials aimed at facilitating the process of switching to reactive programming. The beta testing will definitely unearth a lot of roadblocks and there will be tons of bug fixes and tool replacements further on. However, Apple engineers will certainly address these issues in the long run.

    It appears that the age of Objective-C with its numerous drawbacks is doomed to fade away, succumbing to more competitive development instruments. 

    SwiftUI already allows programmers to compile applications without high coding proficiency. You can easily add modules that will complement your new app. That being said, designers and managers with entry-level skills will be able to compile prototypes of new software products.

    Overlapping Apps for iOS and macOS

    In the aftermath of the growingly close ties between iOS, macOS and the newly released iPadOS, mobile applications can now run on macOS. You actually couldn’t compile a mobile code using Apple’s desktop operating system till the summer of 2019, but now it’s possible. At the 2019 Apple Worldwide Developers Conference (WWDC 2019), experts claimed this could be done without having to use a simulator.

    However, since the layout structure of iPad applications has more in common with macOS style than the iPhone app layout does, we’re mainly talking about executing iPad apps on desktop machines. Given that some Apple apps look very much alike on different devices (Reminders and Stocks), the proprietor of the platform is expecting the developers of third-party apps to stick with the same uniformity across environments.

    It comes as no surprise that some mobile devices are starting to support desktop mouse and trackpad, and the user interfaces are being unified at the level of the smallest details. For instance, the design of the user icon has been concurrently updated in all the services and applications on iOS, iPadOS, watchOS, and macOS. To maintain the rebuilt environment, Apple is busy expanding the app development sections on their website. The company has provided UI kits even for products in beta testing and created a library of interface icons, lagging slightly behind Android in this regard.

    Summary

    To recap, it’s clear that Apple is trying to establish and push forward a convenient ecosystem for app developers. At the end of the day, this is one of the fundamental elements of a long-term competitive strategy and we may expect more changes with the advent of iOS 14.

    — David Balaban

  • Earning an AWS Developer Associate Certification

    Earning an AWS Developer Associate Certification

    Studying for an AWS Certification may seem like an arduous task, especially if one isn’t expecting to take any more tests now that college is finally over. However, the certification doesn’t have to be long and tedious—it can be accomplished in as little as three months or less.

    I had started working in the middle of August as a DevOps engineer at a major financial services regulatory firm, and at the suggestion of my peer mentor, pursued the Developer certification—which I earned by the second week of November. 

    Having recently graduated from college, I had no exposure to cloud computing, let alone Amazon Web Services (AWS). However having ventured into a DevOps role, I quickly realized that in order to contribute to my job, I needed to gain a solid understanding of AWS—preferably as fast as possible. My studying time was a mixture of evenings at home, daily commutes on the train and spare time at work. In total, I would estimate a total study time of 40-60 hours. I believe that by allocating the time and following the procedure listed, anyone can accomplish a similar feat.

    I would break the procedure down into three separate stages: broad overview, documentation and exam specific details. After all, in order to learn any subject well, a broad solid foundation is essential before narrowing down to the minute details.

    Broad Overview

    As someone who was starting with almost no understanding of anything related to AWS, I needed a way to pick up as many of the different services as possible and understand how they relate. Thankfully, my company offered an online teaching environment called Linux Academy that included a course on the Associate Developer Certificate. At this point it may be tempting to assume that I passed the exam simply by following the course. However, I personally believe that although the course helped provide a foundation, it was nowhere near sufficient in covering the full material required.

    The course (approximately 12 hours including some basic labs) provided me with an overview of the major services related to the exam as well as the connection between different components. The course also came with practice quizzes and a final exam, that although were helpful, were not at the level of the AWS exam. The only questions I felt were incredibly helpful were in regards to Read and Write Capacity for RDS. There are four combinations: Read with Eventual Consistency, Write With Eventual Consistency, Read with Strong Consistency and Write with Strong Consistency. Each had a slightly different computation and I would recommend looking up example questions even if you do not use the course.

    Since the course was used more as an overview than to teach everything on the exam, it may be possible to skip this section if you already know some of the material or do not want to pay for any online courses. Simple YouTube videos may be able to provide a similar level of detail. 

    Documentation

    This is the core of the studying and the most annoying but inevitable. From my personal experience, the exam is not passable without reading the white pages. Each certification has a list of suggested white pages to review on the AWS’s provided exam guide. I recommend starting with the one titled AWS Overview, the ordering of the rest is less consequential. Although I did not have the time to, I would recommend going over each white page twice. The Basic Overview is particularly important because it describes more services than what was introduced in Linux Academy and also goes into detail on services. It also helps to differentiate between the Amazon Kinesis services.

    Knowing the Exam

    Finally, after gaining a pretty good foundation and understanding of the services it is important to focus on our objective—tailoring our studying for the AWS exam. “Well, what was everything above this for?” While it is true that it is important to understand the different services that AWS offers, the key to passing the exam is to answer the questions correctly.

    As with any exam, knowing the proper format and types of questions is important. It is important to figure out what level of detail the AWS certification expects as well as what topics are most likely to be emphasized. The easiest way to do this is to take the practice exam offered by AWS. Because the sample exam is offered by AWS itself, it is much more similar question-wise to the actual exam than Linux Academy or other sites I had looked up on the internet. For $20, it provides information that is hard to find otherwise. Furthermore, those questions make it easier to look online and find study guides with questions that will actually resemble the certification and provide answers.

    It is noteworthy to mention that the AWS practice exam only provides guidelines on percent correct for each category but does not return the correct answers. After seeing the results, I recommend focusing on the area that is weakest if only one or two categories are lagging behind. However, if all of the scores are relatively close, I would recommend focusing on the highest one, because it is the subject you most likely have the easiest time understanding. Obviously, if all scores are incredibly high then any remaining studying is your prerogative and if they are all low, then it may be necessary to go over  the material again.

    Miscellaneous

    One advantage I had while studying for the exam is that my work was related to learning AWS and I gained exposure to ECS, EC2, Lambas, Step Functions and the AWS CLI. However, although this experience provided me with a little more familiarity with the products, I would not consider this crucial to my passing the exam.

    There are questions about the correct API calls and I had an incredibly difficult time finding the APIs even on Google—the API calls are located in the documentation under actions. Also, since there are so many API actions, I would advise finding general rules and using those on the test—for example, most calls seem to be singular except list actions which are plural.

    From what I can recall, at the time of November 2019, it seemed that the questions I faced had an emphasis on serverless services such as Kinesis, Lambda, API gateway and much less on IAM which the Linux Academy Course seemed to focus one.

    Conclusion

    Final thoughts include: from what I have seen online, on average, a 70% is required to pass the exam but can oscillate according to the difficulty. If you want, it may also be good to start by taking the practice exam to provide a direction for the rest of the studying. White page reading is monotonous but critical to learning all the information required. However, thankfully the writers were quite proficient and presented the information as efficiently and casually as possible.

    Although the steps provided were the ones I used to pass the AWS Associate Developer, I use a similar series of steps on other exams, whether AWS or not. Start by skimming the entire material in order to warm your brain up to the information, effectively providing it with some reference material and footholds for in depth studying. The inevitable part of studying is the reading of denser material. Admittedly, not everyone learns best through reading but it provides a much faster and more efficient way of learning than auditory, which can take much longer. As you read the material more thoroughly, try to map out connections between different aspects and services. Also, try to find any interesting information that comes across, sometimes the examiner will also find the same information interesting and therefore it is more likely to appear. Lastly, it is important to take advantage of any practice material from the source. Even if they do not contain answers, you can probably search them and potentially learn an answer that may reappear on the exam. Furthermore, it allows you to find similar problems and helps you accustom yourself to the format and questing style of the exam.

    — Jintao Hang

  • Five Technology Trends to Shape Future Investments

    Five Technology Trends to Shape Future Investments

    Humans invented technology to introduce innovative products in the market. Technology’s relentless cycle of innovation has now touched humanity, redefining what it means to be a human, a meaningful change that is impacting business priorities and is expected to do so in the future.    

    The most important tech investment for C-level executives relates to digital transformation, artificial intelligence (AI), Internet of Things (IoT) and cybersecurity. With 71% of the world expected to use mobile phones by 2024 and the successes of mobile banking in developing countries, experts predict that mobile and blockchain technologies will also join to bring about more financial inclusions.

    Here are five things that C-suite business people should invest in.

    Digital Transformation: Everything Online

    As one of the weapons in the arsenal of business innovation, digital transformation has become such a buzz word that it turns people on. According to a report by Forrester, 90% of the executives believe digital transformation is a necessity for their business, and around 60% believe they lag behind in digital transformation. By the end of 2020, a company would either have transformed or will be on its way to adapt to digital transformation.

    IoT: A Thousand Points of Entry?

    Business implementation of IoT and blockchain are very popular these days. However, if we look to enterprises it’s a different story. Costs, security and current political climate are the major hurdles for the enterprise-level implementation of IoT. To get the most out of this innovative technology, businesses need to determine what stands in their way and then work on strategies to sort things out. So until the issues are dealt with, IoT will be seen as a promising technology that’s not ready for prime time.

    AI: A Real Game-Changer

    Every so often a technology comes along that has the potential to completely change everything around it. The last such thing was cloud computing. Like cloud computing, AI has been around for a long time. AI, machine learning and deep learning are catching up with the initial promises and it will become more evident in the coming years.

    Most common usage of AI and machine learning will be seen in business intelligence, automating the repeated tasks, and making future prediction using the previous data. Previously, AI has been used for decision making using data analytics and this is expected to increase in the coming years with more businesses investing in the AI-driven decision-making system. Another use of AI that will be more common is digital identity verification for online businesses.

    Ultimately, AI/machine learning and deep learning will be seen more frequently in the years ahead. However, the promises it brings are far fetched and it’s worth waiting to see the true potential of AI.

    Quantum Computing: The Next Big Thing

    Currently, in R&D, quantum computing will open new ways by solving problems that require a lot of computation. Google’s investment in quantum R&D is expected to grow and more researchers will shift their focus from AI to quantum. With the emergence of 5G, the quantum research industry will see a boom.

    DevOps: For a Customer-Centric Approach

    According to the Forrester report, firms will embrace a customer-centric approach as the DevOps speeds flatter. DevOps continues to impress the heart and minds. However, with a slow-release speed, engineers are experiencing a stress point. DevOps teams must see this as an opportunity to approach DevOps differently. Within the next six to 12 months, DevOps adoption will change and the team will implement new strategies. Testing will revolve around previous radical methods and new technology will help developers to learn new skills.

    — James Efron

  • Launchable Aims To Improve Delivery Velocity, With Kohsuke Kawaguchi and Harpreet Singh

    Launchable Aims To Improve Delivery Velocity, With Kohsuke Kawaguchi and Harpreet Singh

    A new company, Launchable, aims to improve your delivery velocity by helping you be much smarter about which tests you run and when. By applying machine learning (ML) and better use of the data output by your software development work, the two co-founders think they can make a meaningful impact on development efforts.

    Sure, you say, lots of developers say they can change the world. But in this case, the co-founders have some very impressive résumés to give you confidence they just may do it. The dynamic duo is none other than Harpreet Singh, former GM of Atlassian BitBucket and VP of Product and Design at CloudBees, and the one and only Kohsuke Kawaguchi, founder of Jenkins and CloudBees Chief Scientist, most recently.

    Wait a second, you may be asking, you’re saying KK from Jenkins/CloudBees has started a new company? Yes, that’s what I am saying. In a podcast that will be available very soon, KK and Harpreet talk with us about Launchable’s why—and why now. Stay tuned for that.

    It’s worth noting that KK has been at CloudBees for 10 years and working on Jenkins for 15 years. In the tech business, that is nearly a lifetime. During our podcast, KK said he felt that with Jenkins being passed to the Continuous Delivery Foundation (CDF), coupled with a healthy group of leaders within the Jenkins community, now was a good time to move on to the next adventure.

    Beyond Jenkins, CloudBees has grown into its own next phase, with lots of exciting developments announced and more coming. The scientist in KK has led him to explore solutions to problems he sees in the way so many companies are doing development. His longtime friendship with Harpreet, dating back to their days at Sun, has energized them both to once again work together and tackle the real problems that development teams are facing.

    What will come out of Launchable? I don’t know. But the company has already attracted some blue-chip VC investment, as well as an impressive list of angels including Sacha Labourey, CEO and founder of CloudBees.

    They (like everyone else, it seems) are hiring development engineers and data scientists. So if working with KK is something that appeals to you, head over to the Launchable site and check out the Careers section.

    I am sure we will be hearing more about Launchable in the days, weeks and months ahead. In the meantime, best of luck to Harpreet and KK, and many thanks for a job well done with Jenkins.

    — Alan Shimel

  • The Acceleration of Data and Data Storage Trends

    The Acceleration of Data and Data Storage Trends

    There’s never been a more exciting time for data. Increasing demands for size, speed, performance and reliance have propelled the data market forward at a faster rate than could have ever been anticipated, and new technologies are making some dreams for data a reality.

    From open source adoption in place of legacy databases to cloud-native app stacks and more, here are seven trends driving the acceleration of data and data storage. 

    Oracle’s Slow Fade Drives Cloud-Native Adoption

    Organizations of all sizes continue to eschew Oracle for cloud-native databases, shrinking the user base of the monolithic legacy provider. Two major trends driving this activity are the ongoing move to microservices-based redesign of applications and the rise of cloud-native deployments running in public clouds or Kubernetes. Overall, Oracle has lost market share every year since 2013, and legacy relational database players have dropped about five percentage points per year. Major organizations, such as Amazon and Salesforce, have already figured out that it’s to their benefit to use less, not more, Oracle.

    Open Source DB Usage Increases

    Open source databases that claimed 0% of the market 10 years ago, now make up more than 7%. It’s clear that the market is shifting and an increase in open source database adoption is on the rise. This goes against the recent trend of database and data infrastructure companies abandoning open source licenses for some, or all, of their core projects. However, as technology rapidly advances it will be in the best interest of database providers to switch to a 100% open source model, since freemium models take a significantly longer period of time for the software to mature to the same level as a true open source offering.

    Furthermore, Gartner predicts that, by 2022, more than 70% of new in-house applications will be developed on an OSDBMS or OSDBMS-based dbPaaS. It’s clear that open source has proven to be the most successful approach to developing and distributing business-critical infrastructure software, driven by the benefits of reduced total cost of ownership, access to community support and innovation and compatibility with commercial databases, making it easy to migrate towards an open source solution. 

    Kubernetes For Stateful DBs

    There has been continued growth in the adoption of both microservices and containerization. With the combination of massive adoption and the support of a large and thriving open-source community, it is clear that the dynamic nature of containerization and microservices deployments will have huge implications on fundamental application architecture. To put it simply, this is the future of how applications will be built. This is also why the adoption of Kubernetes has continued to grow.

    Multi-Cloud Goes Mainstream

    Multi-cloud deployments are becoming the norm in today’s enterprise. A multi-cloud approach is critically important for organizations that run on-premise, since they need to stay in a hybrid mode when moving microservices to the cloud. As a result, enterprises are widely embracing distributed SQL databases to ensure agility without the availability constraints of traditional monolithic databases, such as Oracle. 

    Rise of Edge Data Centers

    While the rise of edge data centers is assuredly a trend, Gartner predicts that three quarters of all databases will either be deployed or migrated to a cloud platform by 2022. There will also be an increase in multi-cloud adoption as a result of the geo-distribution of data. Edge data centers are already starting to offer data services with geo-distribution, a clear sign that demand is creating supply.

    Cloud-Native App Stacks Gaining in Popularity

    Modern microservices-oriented architectures are becoming increasingly popular. Over time, this leads to environments with lots of microservices that should be able to notify one another of changes and store these changes in a system of record. The application stack that is getting very popular for such use-cases is a combination of:

    • Spring framework to build the applications.
    • Kafka as the message bus to send notification between the microservices.
    • A Distributed SQL database to store the data in a scalable manner and query it efficiently.

    Other application stacks that are rising in popularity are the JAMstack ( Javascript, APIs and Markup) where there is no dependency on any particular web server. Javascript frameworks such as ReactJS and VueJS have become very popular for building the frontend portion of the app. GraphQL frameworks such as Apollo and Hasura are getting increasingly adopted as efficient ways to build the API portion of the app.

    Advances in innovation for data and data storage will undoubtedly continue, driven by major trends across all areas of business, as long as organizations are prepared to embrace change and hit the accelerator on their data strategies.

    — Karthik Ranganathan

  • The Difference Between Capacity and Scalability Planning

    The Difference Between Capacity and Scalability Planning

    Not only does the tech industry love terms, we love to make them super nuanced. For example SecOps versus DevSecOps, continuous delivery versus continuous deployment, hybrid cloud versus multi-cloud, etc. These terms may seem similar on the surface, but when you dig in they are quite different.

    Here are two more: capacity planning versus scalability planning. Both are critical aspects of keeping applications up and running, but two different activities.

    The reason we invest time in capacity and scalability planning is simple: We want to make sure that system resources such as compute, storage and memory are not the cause of an application outage. It is a response to expected and unexpected increases in application usage, as well as the steady growth of application adoption.

    Here are a few differences between capacity planning and scalability planning.

    Long Term Versus Short Term

    Capacity planning is more focused on the base resources, as it relates to the long-term growth in application traffic. The goal is to have enough resources to handle the steady state of the application without breaking the bank by over anticipating usage. With capacity planning there is a big assumption that the application requires to always have a pool of resources available.

    Automated Versus Static

    Scalability could be a manual task, you see utilization creeping up and you respond with more instances. This is probably more common than not. But I don’t believe it’s the overall objective of most teams. Auto-scaling is the goal, where the system knows on its own when it’s time to spin up new resources. The public cloud providers, instrumentation of kubernetes, etc., help support this. Whereas capacity planning is a more deliberate identification of needs, and then statically setting those resource needs within the cloud.

    Strategic Versus Responsive

    Similar to static versus automated, capacity planning is a more strategic activity whereas scalability planning is a more responsive activity. Usually, scalability comes up during peak usage activities such as black Friday sales or school registrations.

    Capacity planning generally calls for more research and leveraging tools such as load balancers and historic data to understand the best path forward. It also should involve the input from the broader team, especially development to discuss the resource usage of new functionality and application architectures.

    There is a good possibility that scalability planning could be all that is left with some modern applications. The reason this might be true is resource allocation theoretically can be 100% application based, where the resources are always one step ahead of current utilization. In order to embrace this model resources need to be provisioned 100% automatic, which means that all infrastructure needs to be scripted. As more companies adopt serverless components of their application, this is already inherently true.

    Capacity planning is where most operations teams spend their time, but resource utilization is shifting left and scalability planning is becoming more common. Scalability planning has become the responsibility of DevOps engineers, SREs and even developers. The main reason capacity planning will survive the long haul relates to budgets. While the application itself can fully control the infrastructure laid out before it, the IT organization and the organization itself will want to impose an upper limit so there is an indicator of when the cost of running the application on the resources may or may not be an issue. Capacity planning in this case will be purely a cost control mechanism, and negotiated just as any budgets are.

    — Chris Riley

  • SauceCon 2020 Speaker Profile: Hélène Doumenc and Jonathan Chacón

    SauceCon 2020 Speaker Profile: Hélène Doumenc and Jonathan Chacón

    This is the first in a series of articles highlighting speakers at SauceCon 2020. SauceCon brings together the global community of Sauce Labs users and continuous testing experts to learn from each other and level up their automated testing and continuous delivery skills. This year’s event will be held April 27-29 in Austin, Texas, and DevOps.com will be there, broadcasting live.

    Jonathan Chacón
    Hélène Doumenc

    Hélène Doumenc and Jonathan Chacón are colleagues on a mission: to help people understand that accessible design is necessary for everyone—not only people with disabilities.

    Hélène and Jonathan work together on the QA team at Cabify, a Spanish ride-sharing company that provides vehicles for hire via its smartphone app. Hélène manages the QA team and Jonathan is an accessibility software engineer who works with other teams within the company to make all of Cabify’s digital and physical user interfaces accessible to all users. As a blind researcher and developer, Jonathan is uniquely qualified to lead this effort. 

    “When I first met Jonathan, I really wanted to work with him to add accessibility testing to our plans, since we were not testing for accessibility at all before,” said Hélène. “This is a clear example of how diversity in our teams can make better products—and better people too! If we didn’t have a blind person working with us, we might never have thought of making our app accessible to people with disabilities.” 

    Jonathan agreed. “Accessibility is necessary in QA processes to guarantee a quality product for everyone, regardless of disability. I want people to understand that accessibility should be a quality feature, and that technology is the way to make society more inclusive,” said Jonathan. 

    Hélène and Jonathan will be co-presenting at SauceCon 2020 on their experience in accessibility testing for mobile applications. They will talk about how creating accessible and inclusive mobile apps is not just a utopian ideal—but something that organizations can turn into a reality. 

    “Recently, I read a comment saying that it is impossible for a blind person to use Twitter,” said Hélène. “People have no idea how wrong this is and how inclusive apps can level the playing field for anyone with a disability. Technology can really help us to create a more inclusive society. We chose to talk about this at SauceCon to make the community aware and conscious about issues that might not cross your mind, but are truly important to create that type of inclusion.”

    You can hear from Hélène, Jonathan and more than 30 other expert speakers at SauceCon 2020, the fourth annual Sauce Labs user conference. To see a full list of presentations or to register, click here.

    — Rebecca Cramer

  • How the Nuts and Bolts of the Internet Are Evolving to Change the Way You Code

    How the Nuts and Bolts of the Internet Are Evolving to Change the Way You Code

    2019 was a big year for internet infrastructure, programming languages and platform development. In the last 12 months, we saw things like new connectivity in the sky and the sea and greater security of those connections with the growth of TLS 1.3 and certificate transparency. But three trends in particular stood out as having some of the biggest impacts on developers as we head into 2020. 

    Rust Capabilities Boost Its Popularity

    Rust continued to grow in popularity as it was voted Stack Overflow’s most beloved language for the fourth year in a row, due in large part to its unmatched ability to free developers from the choice between safety and performance in a programming language. Before Rust, developers had to decide between languages like C, which is fast, but has a high likelihood of security failures, or Haskell, which comes with more safety, but is noticeably less performant. Rust provides a level of safety guarantees developers haven’t been able to enjoy before, while still delivering on low-level, native performance. The learning curve is fairly steep, but the batteries-included features you’d expect from a modern language check the boxes developers need to deliver on priorities next year. 

    HTTP/2 Paves the Way for HTTP/3, Allowing Developers to Build Even More Performant Sites Without All the Hassle

    Protocols that deliver and secure richer content saw progress in 2019, too, with HTTP/2 becoming the most common web protocol and a glimpse of the even greater benefits of HTTP/3 to come in 2020. HTTP/2 made developers’ lives easier by simplifying the hacks and workarounds they had to do to get performant sites working with HTTP/1.1 by addressing the complexity of lots of tiny objects within a page. By reducing page load times and improving responsiveness, HTTP/2 has paved a solid foundation for HTTP/3, which has the potential to become widely deployed in early 2020 as the new transport protocol, QUIC, nears completion. QUIC, a replacement for TCP, addresses the head-of-line blocking delays HTTP/2 exhibits for some p90 scenarios. Additionally, QUIC incorporates TLS 1.3, ensuring an easy upgrade to the most recent version of the internet’s standard security functionality.

    WebAssembly Promises New Possibilities

    Most excitingly, love for and support of WebAssembly (Wasm) by developers picked up steam in 2019 due to the recognition it has received for its secure, performant, cross-platform and cross-device runtime. A glimpse into Wasm’s future promises greater portability, as it allows developers to take the code they have written and run it on entirely different platforms, at scale. Wasm is a sea-change for the entire industry as programs will be able to work not just on different browsers—as we saw with the Google Earth launch on Wasm—but beyond the browser, across various devices and platforms. Think watches, TVs, cars and security systems that can be more securely connected—not to mention the functions-as-a-service speeding up the world on the edge. With the backing of the Bytecode Alliance, a newly formed collaboration between Mozilla, Fastly, Red Hat and Intel, Wasm becomes a prime foundation for more secure and portable software development in 2020.

    With all the changes in 2019, 2020 stands to be another exciting year for developers, bringing even greater flexibility to their roles and career opportunities. Ongoing internet infrastructure improvements continue to empower our developer community and enable more secure and efficient programming and computing—all while improving the end-user experience.

    — Tyler McMullen